某班有M人(具体人数由键盘输入)参加期末考试,有N门课程(具体课程数由键盘输入)用C语言编程实现包括以下功能的菜单驱动的学生成绩管理系统。
时间: 2024-03-09 11:47:22 浏览: 104
好的,我理解了,您想了解如何用C语言编写一个菜单驱动的学生成绩管理系统,我可以给您提供一些思路和代码示例。
首先,您需要定义一些结构体来存储学生信息和成绩信息,例如:
```c
#define MAX_NAME_LEN 20
#define MAX_COURSE_NUM 10
// 学生信息结构体
typedef struct {
int id; // 学号
char name[MAX_NAME_LEN]; // 姓名
} Student;
// 成绩信息结构体
typedef struct {
int student_id; // 学号
int course_id; // 课程编号
float score; // 成绩
} Score;
```
然后,您可以定义一个数组来存储所有学生和成绩信息:
```c
#define MAX_STUDENT_NUM 100
Student students[MAX_STUDENT_NUM];
Score scores[MAX_STUDENT_NUM * MAX_COURSE_NUM];
int student_num = 0; // 实际学生数量
int score_num = 0; // 实际成绩数量
```
接下来,您可以编写一些函数来实现不同的功能,例如:
1. 添加学生信息:
```c
void add_student() {
if (student_num >= MAX_STUDENT_NUM) {
printf("学生数量已达上限,无法添加新学生!\n");
return;
}
printf("请输入新学生的学号和姓名:");
scanf("%d %s", &students[student_num].id, students[student_num].name);
student_num++;
printf("添加成功!\n");
}
```
2. 添加成绩信息:
```c
void add_score() {
int student_id, course_id;
float score;
printf("请输入学生的学号和课程编号:");
scanf("%d %d", &student_id, &course_id);
// 查找学生是否存在
int i;
for (i = 0; i < student_num; i++) {
if (students[i].id == student_id) {
break;
}
}
if (i == student_num) {
printf("该学生不存在!\n");
return;
}
// 添加成绩信息
printf("请输入该学生的成绩:");
scanf("%f", &score);
scores[score_num].student_id = student_id;
scores[score_num].course_id = course_id;
scores[score_num].score = score;
score_num++;
printf("添加成功!\n");
}
```
3. 查询学生成绩:
```c
void query_score() {
int student_id, course_id;
printf("请输入要查询的学生的学号和课程编号:");
scanf("%d %d", &student_id, &course_id);
// 查找学生是否存在
int i;
for (i = 0; i < student_num; i++) {
if (students[i].id == student_id) {
break;
}
}
if (i == student_num) {
printf("该学生不存在!\n");
return;
}
// 查找成绩信息
int j;
for (j = 0; j < score_num; j++) {
if (scores[j].student_id == student_id && scores[j].course_id == course_id) {
break;
}
}
if (j == score_num) {
printf("该学生没有该课程的成绩!\n");
return;
}
printf("该学生的成绩为:%.2f\n", scores[j].score);
}
```
最后,您可以编写一个菜单函数来实现交互式操作:
```c
void menu() {
printf("欢迎使用学生成绩管理系统!\n");
while (1) {
printf("请选择要执行的操作:\n");
printf("1. 添加学生信息\n");
printf("2. 添加成绩信息\n");
printf("3. 查询学生成绩\n");
printf("4. 退出系统\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
add_score();
break;
case 3:
query_score();
break;
case 4:
printf("谢谢使用!\n");
return;
default:
printf("无效的选项!\n");
break;
}
}
}
```
您可以在主函数中调用菜单函数来启动程序:
```c
int main() {
menu();
return 0;
}
```
以上就是一个简单的学生成绩管理系统的实现。当然,这只是一个基础版本,您可以根据自己的需求进行扩展。
阅读全文