学生成绩管理系统C语言,删除,查找,新增,排序

您所在的位置:网站首页 删除文件中的信息c语言 学生成绩管理系统C语言,删除,查找,新增,排序

学生成绩管理系统C语言,删除,查找,新增,排序

2024-07-03 15:08| 来源: 网络整理| 查看: 265

需求如下:

1.按各门课成绩排序 2.计算每个人的平均成绩 3.统计各科的平均分,最高分,最低分,不及格人数,各分段人数 4.五分制,添加一个平均绩点 5.根据学生姓名查询各科成绩,重名则全部输出 6.根据学生的学号查询 7.添加一个新的学生 8.删除一个学生

准备文件:

需要将此文件和源.cpp文件放到一个文件夹里,写路径时方便。

源代码在下面,篇幅有点长,望读者耐心浏览。

 测试结果:

 

 

 

 

 

 

代码:

#define EXAMPLE_MACRO_NAME//此代码运行在vs2019中 为防止scanf()等函数出错 #pragma warning(disable:4996) #include #include #include int count = 0;//学生序号 //定义结构体数据 struct student { int s_id;//学号 char s_name[10];//姓名 int s_math;//高数 int s_C;//C语言 int s_DateStructure;//数据结构 int s_English;//英语 int s_avg;//每个学生平均分 }S[10]; int j;//学生个数 void open_file() { FILE* fp; int i; if ((fp = fopen("input.txt", "r")) == NULL) { printf("file open failed."); exit(0);//退出程序(结束程序) } j = 0; while (!feof(fp)) { fscanf(fp, "%d,%d,%d,%d,%d,%s", &S[j].s_id,&S[j].s_math, &S[j].s_C, &S[j].s_DateStructure, &S[j].s_English, S[j].s_name); j++; } j--; fclose(fp);//关闭文件 } //按照各科成绩排序 void s_sort() { open_file(); printf("按照高数进行排序:\n"); for (int i = 0; i < j; i++) { for (int k = 0; k < j - 1 - i; k++) { if (S[k].s_math > S[k + 1].s_math) { struct student t = S[k]; S[k] = S[k + 1]; S[k + 1] = t; } } } count = 0; printf("序号\t学号\t姓名\t高数\tC语言\t数据结构\t英语\n"); for (int i = 0; i < j; i++) //依次打印每一行学生数据,共j条,存在S[0...j-1]中 { if (S[i].s_id == 0) { continue; } printf("%d\t%d\t%s\t%d\t%d\t\t%d\t%d\n", count + 1, S[i].s_id, S[i].s_name, S[i].s_math, S[i].s_C, S[i].s_DateStructure, S[i].s_English); count++; } printf("按照C语言进行排序:\n"); for (int i = 0; i < j; i++) { for (int k = 0; k < j - 1 - i; k++) { if (S[k].s_C > S[k + 1].s_C) { struct student t = S[k]; S[k] = S[k + 1]; S[k + 1] = t; } } } count = 0; printf("序号\t学号\t姓名\t高数\tC语言\t数据结构\t英语\n")


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3