请用c语言设计一个简单的学生成绩管理系统,要求系统实现以下功能: 学生信息包括学号、姓名、性别、语文、数学、英语。 插入学生信息: Insert id name sex x y z 其中的参数分别为学号、姓名、性别、三门课的成绩,成绩为浮点数。 输出所有学生信息: List 按照插入的顺序输出所有学生的信息,每行一位学生的信息。每行的格式如下: id name sex x y z 数据之间一个空格,成绩保留1位小数。 查找学生信息: Find id 查找学号为id的学生信息。 修改学生信息: Change id newName,newSex,newX,newY,newZ 把学号为id的学生信息修改为newName,newSex,newX,newY,newZ(学号保持不变) 退出程序: Quit或者Exit
时间: 2023-06-19 11:05:58 浏览: 120
以下是一个简单的学生成绩管理系统的C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT 100
struct student {
char id[10];
char name[20];
char sex;
float score[3];
};
struct student students[MAX_STUDENT];
int num_students = 0;
void insert_student(char *id, char *name, char sex, float x, float y, float z) {
if (num_students < MAX_STUDENT) {
strcpy(students[num_students].id, id);
strcpy(students[num_students].name, name);
students[num_students].sex = sex;
students[num_students].score[0] = x;
students[num_students].score[1] = y;
students[num_students].score[2] = z;
num_students++;
printf("Insert student success.\n");
} else {
printf("Too many students. Cannot insert more.\n");
}
}
void list_students() {
int i;
for (i = 0; i < num_students; i++) {
printf("%s %s %c %.1f %.1f %.1f\n", students[i].id, students[i].name, students[i].sex,
students[i].score[0], students[i].score[1], students[i].score[2]);
}
}
void find_student(char *id) {
int i;
for (i = 0; i < num_students; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("%s %s %c %.1f %.1f %.1f\n", students[i].id, students[i].name, students[i].sex,
students[i].score[0], students[i].score[1], students[i].score[2]);
return;
}
}
printf("Cannot find student with id %s.\n", id);
}
void change_student(char *id, char *new_name, char new_sex, float new_x, float new_y, float new_z) {
int i;
for (i = 0; i < num_students; i++) {
if (strcmp(students[i].id, id) == 0) {
strcpy(students[i].name, new_name);
students[i].sex = new_sex;
students[i].score[0] = new_x;
students[i].score[1] = new_y;
students[i].score[2] = new_z;
printf("Change student success.\n");
return;
}
}
printf("Cannot find student with id %s.\n", id);
}
int main() {
while (1) {
char cmd[10], id[10], name[20], sex;
float x, y, z;
printf("Enter command: ");
scanf("%s", cmd);
if (strcmp(cmd, "Insert") == 0) {
scanf("%s %s %c %f %f %f", id, name, &sex, &x, &y, &z);
insert_student(id, name, sex, x, y, z);
} else if (strcmp(cmd, "List") == 0) {
list_students();
} else if (strcmp(cmd, "Find") == 0) {
scanf("%s", id);
find_student(id);
} else if (strcmp(cmd, "Change") == 0) {
scanf("%s %s %c %f %f %f", id, name, &sex, &x, &y, &z);
change_student(id, name, sex, x, y, z);
} else if (strcmp(cmd, "Quit") == 0 || strcmp(cmd, "Exit") == 0) {
break;
} else {
printf("Unknown command.\n");
}
}
return 0;
}
```
该程序中使用了结构体来表示学生信息,同时使用了全局变量 `students` 和 `num_students` 来存储所有学生的信息和学生数量。程序中实现了插入学生信息、输出所有学生信息、查找学生信息、修改学生信息和退出程序等功能。在主函数中,使用了一个死循环来不断地接受用户输入并执行相应的操作,直到用户输入退出命令为止。
阅读全文