C语言教务系统3个基础功能

实现3个基础功能如添加和删除学生信息 查看学生成绩,使用c语言,使用3种基础结果,使用指针数组等知识

在C语言中,我们可以使用结构体(struct)来存储学生的信息,使用数组或链表来存储学生数据的集合,使用函数来完成添加、删除和查看学生信息的功能。

以下是一个简单的例子来展示这三个功能:

#include <stdio.h>

#define MAX_STUDENTS 100 // 最大学生数量

// 定义学生信息的结构体
struct Student {
    int id; // 学生ID
    char name[50]; // 学生姓名
    float score; // 学生成绩
};

// 创建一个存储学生信息的数组
struct Student students[MAX_STUDENTS];

// 当前学生数量
int num_students = 0;

// 添加学生信息的函数
void add_student(int id, char *name, float score) {
    if (num_students >= MAX_STUDENTS) {
        printf("学生数量已达上限!\n");
        return;
    }
    students[num_students].id = id;
    strcpy(students[num_students].name, name);
    students[num_students].score = score;
    num_students++;
}

// 删除学生信息的函数
void delete_student(int id) {
    int i;
    for (i = 0; i < num_students; i++) {
        if (students[i].id == id) {
            for (int j = i; j < num_students - 1; j++) {
                students[j] = students[j + 1];
            }
            num_students--;
            return;
        }
    }
    printf("未找到ID为 %d 的学生!\n", id);
}

// 查看学生成绩的函数
void view_student_scores() {
    int i;
    for (i = 0; i < num_students; i++) {
        printf("ID: %d, Name: %s, Score: %.2f\n", students[i].id, students[i].name, students[i].score);
    }
}

int main() {
    // 添加学生信息
    add_student(1, "张三", 88.5);
    add_student(2, "李四", 92.5);
    add_student(3, "王五", 85.0);

    // 查看学生成绩
    view_student_scores();

    // 删除一个学生的信息
    delete_student(2);

    // 再次查看学生成绩
    view_student_scores();

    return 0;
}

注意:此代码中的字符串拷贝函数 strcpy 需要包含头文件 #include <string.h>。如果是在现代的编程环境下,可能需要使用更安全的字符串拷贝函数 strncpy 来防止缓冲区溢出。

以上代码是一个非常基础的例子,对于更复杂的情况(如学生数量不固定,需要动态分配内存;需要按照成绩排序等),需要用到更多的编程技巧和数据结构知识。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^