C语言代码实现学生成绩管理系统的完整攻略
一、需求分析
学生成绩管理系统需要完成以下需求:
- 录入学生信息、成绩;
- 查询学生成绩;
- 修改学生成绩;
- 输出学生成绩列表;
- 统计学生成绩情况,如平均成绩、最高分、最低分等。
二、系统设计
- 学生信息和成绩的数据结构:
struct student {
char name[20]; // 姓名
int age; // 年龄
int id; // 学号
float score[3]; // 三门课程成绩
float avgscore; // 平均成绩
};
- 各个功能模块的设计:
- 录入学生信息:从键盘读取输入,将学生信息存入数组中。
- 查询学生成绩:输入要查询学生的姓名或学号,遍历数组,输出相关信息。
- 修改学生成绩:同样输入需求,查找到指定学生后,输入新的成绩覆盖原有成绩。
- 输出学生成绩列表:遍历数组,输出所有学生的姓名、学号和三门成绩。
- 统计学生成绩情况:对成绩进行遍历、计算即可。
示例一
以下是录入学生信息模块的代码实现:
#include <stdio.h>
#define TOTAL_NUM 100 // 最大学生数
struct student {
char name[20];
int age;
int id;
float score[3];
float avgscore;
};
int main()
{
struct student stu[TOTAL_NUM]; // 定义学生数组
int count = 0;
printf("请输入学生信息,输入0退出:\n");
while (1) {
if (count >= TOTAL_NUM) {
printf("学生数已满,无法新增数据\n");
break;
}
printf("请输入第%d个学生的姓名,输入0退出:", count+1);
scanf("%s", stu[count].name);
if (stu[count].name[0] == '0')
break;
printf("请输入第%d个学生的年龄:", count+1);
scanf("%d", &stu[count].age);
printf("请输入第%d个学生的学号:", count+1);
scanf("%d", &stu[count].id);
printf("请输入第%d个学生的三门课程成绩:", count+1);
scanf("%f %f %f", &stu[count].score[0], &stu[count].score[1], &stu[count].score[2]);
stu[count].avgscore = (stu[count].score[0] + stu[count].score[1] + stu[count].score[2]) / 3.0f;
count++;
}
printf("录入的学生信息如下:\n");
for (int i = 0; i < count; i++) {
printf("%s %d %d %.2f %.2f %.2f\n", stu[i].name, stu[i].age, stu[i].id,
stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].avgscore);
}
return 0;
}
示例二
以下是修改学生成绩模块的代码实现:
#include <stdio.h>
#define TOTAL_NUM 100 // 最大学生数
struct student {
char name[20];
int age;
int id;
float score[3];
float avgscore;
};
int main()
{
struct student stu[TOTAL_NUM]; // 定义学生数组
int count = 0, modify_id, modify_index = -1;
printf("请输入学生信息,输入0退出:\n");
while (1) {
if (count >= TOTAL_NUM) {
printf("学生数已满,无法新增数据\n");
break;
}
printf("请输入第%d个学生的姓名,输入0退出:", count+1);
scanf("%s", stu[count].name);
if (stu[count].name[0] == '0')
break;
printf("请输入第%d个学生的年龄:", count+1);
scanf("%d", &stu[count].age);
printf("请输入第%d个学生的学号:", count+1);
scanf("%d", &stu[count].id);
printf("请输入第%d个学生的三门课程成绩:", count+1);
scanf("%f %f %f", &stu[count].score[0], &stu[count].score[1], &stu[count].score[2]);
stu[count].avgscore = (stu[count].score[0] + stu[count].score[1] + stu[count].score[2]) / 3.0f;
count++;
}
printf("请输入修改学生的学号:");
scanf("%d", &modify_id);
for (int i = 0; i < count; i++) {
if (modify_id == stu[i].id) {
modify_index = i;
break;
}
}
if (modify_index != -1) {
printf("请输入新的三门成绩:");
scanf("%f %f %f", &stu[modify_index].score[0], &stu[modify_index].score[1], &stu[modify_index].score[2]);
stu[modify_index].avgscore = (stu[modify_index].score[0] + stu[modify_index].score[1] + stu[modify_index].score[2]) / 3.0f;
printf("修改成功!\n");
printf("学生 %s 的成绩信息如下:\n", stu[modify_index].name);
printf("%.2f %.2f %.2f %.2f\n", stu[modify_index].score[0], stu[modify_index].score[1], stu[modify_index].score[2], stu[modify_index].avgscore);
} else {
printf("未找到该学生的信息!\n");
}
return 0;
}
三、系统实现
将各个模块的设计转化为代码实现即可。购买本公众号后台回复“成绩管理系统”获取完整源代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言代码实现学生成绩管理系统 - Python技术站