结构体数组学生成绩管理系统
时间: 2023-07-21 20:17:12 浏览: 91
好的,学生成绩管理系统可以通过结构体数组来实现。首先,我们可以定义一个结构体来表示每一个学生的信息,包括学号、姓名、性别、年龄和成绩等字段。代码示例如下:
```c
struct student {
int id; // 学号
char name[20]; // 姓名
char gender; // 性别
int age; // 年龄
float grade; // 成绩
};
```
接下来,我们可以定义一个结构体数组来存储所有学生的信息,例如:
```c
struct student stu[100]; // 最多存储100个学生的信息
```
然后,我们可以编写一些函数来实现学生成绩管理的功能,例如添加学生信息、修改学生信息、删除学生信息、查询学生信息等。具体实现可以参考下面的代码示例:
```c
#include <stdio.h>
#include <string.h>
struct student {
int id; // 学号
char name[20]; // 姓名
char gender; // 性别
int age; // 年龄
float grade; // 成绩
};
struct student stu[100]; // 最多存储100个学生的信息
int count = 0; // 学生总数
void add_student() {
printf("请输入学生信息:\n");
printf("学号:");
scanf("%d", &stu[count].id);
printf("姓名:");
scanf("%s", stu[count].name);
printf("性别:");
scanf(" %c", &stu[count].gender);
printf("年龄:");
scanf("%d", &stu[count].age);
printf("成绩:");
scanf("%f", &stu[count].grade);
count++;
printf("添加成功!\n");
}
void modify_student() {
int id;
printf("请输入要修改的学生学号:");
scanf("%d", &id);
for (int i = 0; i < count; i++) {
if (stu[i].id == id) {
printf("请输入新的学生信息:\n");
printf("学号:");
scanf("%d", &stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
printf("性别:");
scanf(" %c", &stu[i].gender);
printf("年龄:");
scanf("%d", &stu[i].age);
printf("成绩:");
scanf("%f", &stu[i].grade);
printf("修改成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
void delete_student() {
int id;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
for (int i = 0; i < count; i++) {
if (stu[i].id == id) {
for (int j = i; j < count - 1; j++) {
stu[j] = stu[j + 1];
}
count--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
void query_student() {
int id;
printf("请输入要查询的学生学号:");
scanf("%d", &id);
for (int i = 0; i < count; i++) {
if (stu[i].id == id) {
printf("学号:%d\n", stu[i].id);
printf("姓名:%s\n", stu[i].name);
printf("性别:%c\n", stu[i].gender);
printf("年龄:%d\n", stu[i].age);
printf("成绩:%.2f\n", stu[i].grade);
return;
}
}
printf("未找到该学生!\n");
}
void list_student() {
printf("学号\t姓名\t性别\t年龄\t成绩\n");
for (int i = 0; i < count; i++) {
printf("%d\t%s\t%c\t%d\t%.2f\n", stu[i].id, stu[i].name, stu[i].gender, stu[i].age, stu[i].grade);
}
}
int main() {
int choice = 0;
while (1) {
printf("请选择操作:\n");
printf("1. 添加学生信息\n");
printf("2. 修改学生信息\n");
printf("3. 删除学生信息\n");
printf("4. 查询学生信息\n");
printf("5. 列出所有学生信息\n");
printf("0. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
modify_student();
break;
case 3:
delete_student();
break;
case 4:
query_student();
break;
case 5:
list_student();
break;
case 0:
return 0;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
```
这段代码实现了一个简单的学生成绩管理系统,可以通过菜单选择不同的操作。当用户输入1时,可以添加一个新的学生信息;输入2时,可以修改已有的学生信息;输入3时,可以删除已有的学生信息;输入4时,可以查询指定学生的信息;输入5时,可以列出所有学生的信息;输入0时,可以退出程序。
阅读全文