C语言编写学生成绩管理系统
时间: 2023-07-09 08:34:43 浏览: 70
好的,学生成绩管理系统是一个比较典型的应用程序,下面是一个简单的C语言代码示例,可以供您参考:
```c
#include<stdio.h>
#include<string.h>
#define MAX_STUDENT_NUM 100 //最大学生数
#define MAX_GRADE_NUM 5 //每个学生最多的成绩数
struct student{
char name[20]; //姓名
int id; //学号
float grade[MAX_GRADE_NUM]; //成绩
float avg_grade; //平均成绩
};
struct student stu_list[MAX_STUDENT_NUM]; //学生信息列表
int stu_num = 0; //学生数量
void add_student(); //添加学生信息
void delete_student(); //删除学生信息
void print_student(); //打印学生信息
void query_student(); //查询学生信息
void calc_avg_grade(); //计算平均成绩
int main(){
int choice;
printf("欢迎使用学生成绩管理系统!\n");
do{
printf("\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 打印学生信息\n");
printf("4. 查询学生信息\n");
printf("0. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch(choice){
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
print_student();
break;
case 4:
query_student();
break;
case 0:
printf("谢谢使用!");
break;
default:
printf("无效的选择,请重新输入!\n");
}
}while(choice != 0);
return 0;
}
void add_student(){
if(stu_num >= MAX_STUDENT_NUM){
printf("学生数量已达上限,无法添加!\n");
return;
}
struct student stu;
printf("请输入学生姓名:");
scanf("%s", stu.name);
printf("请输入学生学号:");
scanf("%d", &stu.id);
printf("请输入学生的%d门成绩:", MAX_GRADE_NUM);
for(int i=0; i<MAX_GRADE_NUM; i++){
scanf("%f", &stu.grade[i]);
}
stu_list[stu_num] = stu;
stu_num++;
printf("添加成功!\n");
}
void delete_student(){
int id;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
int index = -1;
for(int i=0; i<stu_num; i++){
if(stu_list[i].id == id){
index = i;
break;
}
}
if(index == -1){
printf("没有找到该学生!\n");
return;
}
for(int i=index; i<stu_num-1; i++){
stu_list[i] = stu_list[i+1];
}
stu_num--;
printf("删除成功!\n");
}
void print_student(){
if(stu_num == 0){
printf("没有学生信息!\n");
return;
}
printf("姓名\t学号\t");
for(int i=1; i<=MAX_GRADE_NUM; i++){
printf("成绩%d\t", i);
}
printf("平均成绩\n");
for(int i=0; i<stu_num; i++){
printf("%s\t%d\t", stu_list[i].name, stu_list[i].id);
for(int j=0; j<MAX_GRADE_NUM; j++){
printf("%.2f\t", stu_list[i].grade[j]);
}
printf("%.2f\n", stu_list[i].avg_grade);
}
}
void query_student(){
int id;
printf("请输入要查询的学生学号:");
scanf("%d", &id);
for(int i=0; i<stu_num; i++){
if(stu_list[i].id == id){
printf("姓名:%s\n", stu_list[i].name);
printf("学号:%d\n", stu_list[i].id);
for(int j=0; j<MAX_GRADE_NUM; j++){
printf("成绩%d:%.2f\n", j+1, stu_list[i].grade[j]);
}
printf("平均成绩:%.2f\n", stu_list[i].avg_grade);
return;
}
}
printf("没有找到该学生!\n");
}
void calc_avg_grade(){
for(int i=0; i<stu_num; i++){
float sum = 0;
for(int j=0; j<MAX_GRADE_NUM; j++){
sum += stu_list[i].grade[j];
}
stu_list[i].avg_grade = sum / MAX_GRADE_NUM;
}
}
```
这个程序包含了添加学生信息、删除学生信息、打印学生信息和查询学生信息这四个操作。您可以根据需要对程序进行修改和完善。
阅读全文