版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生成绩标准管理系统高质量C语言程序 学生成绩管理系统摘要:学生成绩管理系统是学校不可或缺的一个组成部分,随着计算机技术的逐渐发展,计算机在教育系统中的应用得到了巨大的发展。教务管理正在逐步迈向管理信息现代化。但是我国的教务管理信息化水平还处在初级阶段,主要表现在对学生的成绩管理、学生的课程管理还是采用原有的人工管理方式。学校的规模不断扩大,学生数量急剧增加,有关学生的各种数据也成倍增长。面对庞大的信息量, 这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有教务管理系统来提高学生成绩管理工作的效率。过这样的系统,可以做到信息的规范管理,科学统
2、计和快速的查询,从而减少管理方面的工作量和减少人为的错误。 本次我们组选的就是学生成绩管理系统,要实现对学生成绩、课程的相关管理。关键词:成绩管理、C语言项目、程序设计、程序分析目 录1、设计目的和要求以本班同学的高等数学、大学物理、C语言、大学英语的成绩为基础,建立一个可以实现以下功能的学生成绩管理系统。A信息维护信息数据以文件形式保存,要求能够实现对学生信息数据的维护,其中包括增加、删除以及修改学生信息。B信息查询要求能够能够实现按学生姓名和学号两种方式查询学生各课成绩。C成绩统计输入任意课程名和一个分数段,统计该课程在该分数段的学生信息。D成绩排序对用户指定的任意课程名,按成绩升序或降序
3、排列学生数据并显示排序结果。2、总体设计根据设计目的和要求,我们首先将程序分成四个模块,分别为信息维护、信息查询、成绩统计及成绩排序。而在各个主模块中,我们又将其分成若干个小模块,从而实现程序设计的要求。其中,模块设计如下:信息维护1、增加学生信息2、删除学生信息3、修改学生信息;信息查询-1、按学号查询2、按姓名查询;成绩统计;成绩排序1、按高数排序2、按大物排序3、按C语言排序4、按英语排序。所以最终实现的功能有:1、增加学生信息2、删除学生信息3、修改学生信息4、按学号查询成绩5、按姓名查询成绩6、成绩按某门课程某个分数段统计7、成绩按某门课程排序。一个方便学校使用的学生成绩管理系统,这
4、个系统的功能比较完善。使用类内函数和主函数中的switch语句实现多分支选择结构,进而实现该系统的各项功能。该系统能实现7项功能。设计本次实验所用到的知识点有:类、指针、数组,构造函数,动态内存分配,switch语句、if语句、while()语句等。student类中的构造函数是来实现当类生成对象时用于对数据的初始化。例如是对学生姓名的初始化,stud.math是对学生高等数学成绩的初始化,而stud.Clanguage是对学生c语言成绩的初始化。而student类将有内在联系的,成组出现的学生姓名,学号,各科成绩结合在一起,形成一种组合型数据结构。 3详细设计该部分是用来修
5、改已录入的学生的数据信息。我们采用通过学号修改的方法来修改已录入的学生的数据信息。当输入学生学号后,系统会提示“请选择您要修改的内容:”同时给出要修改的选项,包括姓名高数、大物、c语言、英语、及退出供您选择。当做出选择后,会得到“请输入新数据”的提示。该部分通过if语句、switch语句和while语句实现其功能。void xiugai(struct Student_type stud) /*修改*/ int i=0,choice; int u; printf("请输入您要修改的学生的学号:n"); scanf("%s",&u); for(i=0
6、;i<SIZE;i+) printf("请选择您要修改的内容:n"); printf(" - n"); printf("| 姓名 请按 1 |n"); printf("| 高数 请按 2 |n"); printf("| 大物 请按 3 |n"); printf("| c语言 请按 4 |n"); printf("| 英语 请按 5 |n"); printf("| 退出 请按 0|n"); printf("+-+n&quo
7、t;); printf("请输入您的选择:"); scanf("%d", &choice);switch(choice)case 0:break; case 1: printf("请输入新姓名:"); scanf("%s", ); break; case 2: printf("请输入新的高数分数:"); scanf("%d", &studi.math); break;case 3: printf("请输入新的大物分数:"
8、); scanf("%d",&studi.physic); break;case 4: printf("请输入新的c语言分数:"); scanf("%d", &studi.Clanguage); break; case 5: printf("请输入新的英语分数:"); scanf("%d", &studi.English); break; default: printf("n无效选项!"); break;break; printf("修改成功
9、n");for(i=0;i<SIZE;i+)printf("%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);该部分是用来删除已录入的学生的数据信息。我们采用按姓名查找,删除一条记录的方法实现删除功能。首先,输入要删除记录的名字,然后通过if语句和strcmp函数找到对应的数据,最后借用strcpy函数一一将下一数据的值覆盖到上一个数据,从而实现删除数据的的功能。该部分通过if语句和strcmp函数以及strcp
10、y函数实现其功能。void shanchu() /*按姓名查找,删除一条记录*/ char s10; int j,i=0; printf("输入要删除记录的姓名:"); scanf("%s",s);for(i=0;i<SIZE-1;i+)if(strcmp(,s)=0)for(j=i;j<SIZE;j+) /*删除操作*/ studj.num=studj+1.num;strcpy(,studj+1.name); studj.physic=studj+1.physic; studj.math=studj+
11、1.math; studj.Clanguage=studj+1.Clanguage; studj.English=studj+1.English;printf("Delete Successed!n");saved();for(i=0;i<SIZE;i+)printf("%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); 该部分是用来新增学生的数据信息。首先设计一个save函数,先打开文件数据库,能够实
12、现保存并关闭文件后,通过fread写入一组数据,从而达到新增数据的目的。void save()FILE *fp;int i;if(fp=fopen("","ab")=NULL)printf("can open filen");return;if(fwrite(&studSIZE,sizeof(struct Student_type),1,fp)!=1)printf("file write errorn");fclose(fp);printf("添加成功n");for(i=0;i<S
13、IZE+1;i+)fread (&studi,sizeof(struct Student_type),1,fp);printf("%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);void zengjia()printf("请输入新学生信息n");scanf("%s%d%d%d%d%d",studSIZE.name,&studSIZE.num,&studSIZE.m
14、ath,&studSIZE.physic,&studSIZE.Clanguage,&studSIZE.English);save();4、调试分析修改数据功能如下图:删除数据功能如下图:增加数据功能如下图:5、总结本学生成绩管理系统能够实现增加,修改,删除记录的信息维护功能、按姓名,学号查询学生成绩信息功能、某一课程在某一分数段的统计功能及某一课程的排序功能。编好程序,运行完毕后,我们也发现了一些缺陷。比如,修改只能通过输入学号对该记录数据组进行修改,而删除也只做了输入学号删除记录的设定。当然,缺憾是补课避免的。总体上来讲,计算机综合课程设计上完了,完成了一个基本的学生
15、成绩管理系统,从系统需求分析、数据库设计开始到系统的设计实施,逐步熟悉了c语言程序设计。 在组长的带领下我们经过了好几周的时间反复编写和调试程序,从课本和网上查阅相关资料,终于完成了整个课程设计。过程中,也遇到不少困难,如编程逻辑把握不住,经验太少,不太善于调试程序等。不过我们还是一步一步的自己动手做,不会的地方参考别人的程序自己再试着写或请教老师,在此过程中收获多多。6、答辩记录7、教师意见附录:#include <>#include <>#include<>#define SIZE 5struct Student_typechar name10;int
16、num;int math;int physic;int Clanguage;int English;studSIZE;int weihuxuanze()int i;printf("*");printf("t*n");printf("*");printf("*请选择你所需的功能的序号*n");scanf("%d",&i);return i;void saved()FILE *fp;int i;if(fp=fopen("","wb")=NULL)pri
17、ntf("can open filen");return;for(i=0;i<SIZE;i+)if(fwrite(&studi,sizeof(struct Student_type),1,fp)!=1)printf("file write errorn");fclose(fp);void save()FILE *fp;int i;if(fp=fopen("","ab")=NULL)printf("can open filen");return;if(fwrite(&stud
18、SIZE,sizeof(struct Student_type),1,fp)!=1)printf("file write errorn");fclose(fp);printf("添加成功n");for(i=0;i<SIZE+1;i+)fread (&studi,sizeof(struct Student_type),1,fp);printf("%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.
19、English);void zengjia()printf("请输入新学生信息n");scanf("%s%d%d%d%d%d",studSIZE.name,&studSIZE.num,&studSIZE.math,&studSIZE.physic,&studSIZE.Clanguage,&studSIZE.English);save();void xiugai(struct Student_type stud) /*修改*/ int i=0,choice; int u; printf("请输入您要修改的学
20、生的学号:n"); scanf("%s",&u); for(i=0;i<SIZE;i+) printf("请选择您要修改的内容:n"); printf(" - n"); printf("| 姓名 请按 1 |n"); printf("| 高数 请按 2 |n"); printf("| 大物 请按 3 |n"); printf("| c语言 请按 4 |n"); printf("| 英语 请按 5 |n"); pr
21、intf("| 退出 请按 0|n"); printf("+-+n"); printf("请输入您的选择:"); scanf("%d", &choice);switch(choice)case 0:break; case 1: printf("请输入新姓名:"); scanf("%s", ); break; case 2: printf("请输入新的高数分数:"); scanf("%d", &stud
22、i.math); break;case 3: printf("请输入新的大物分数:"); scanf("%d",&studi.physic); break;case 4: printf("请输入新的c语言分数:"); scanf("%d", &studi.Clanguage); break; case 5: printf("请输入新的英语分数:"); scanf("%d", &studi.English); break; default: printf
23、("n无效选项!"); break;break; printf("修改成功n");for(i=0;i<SIZE;i+)printf("%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);void shanchu() /*按姓名查找,删除一条记录*/ char s10; int j,i=0; printf("输入要删除记录的姓名:"); scanf("%s&
24、quot;,s);for(i=0;i<SIZE-1;i+)if(strcmp(,s)=0)for(j=i;j<SIZE;j+) /*删除操作*/ studj.num=studj+1.num;strcpy(,studj+1.name); studj.physic=studj+1.physic; studj.math=studj+1.math; studj.Clanguage=studj+1.Clanguage; studj.English=studj+1.English;printf("Delete Successed!n"
25、);saved();for(i=0;i<SIZE;i+)printf("%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);void paixu_math(struct Student_type stud) /*按高树成绩排序*/ int i,j,k=0,p,q,r,w;double y;char x10;int t;for(i=0;i<SIZE-1;i+)/*选择法法排序*/ k=i;for(j=i+1;j<S
26、IZE;j+) if(studj.math>studk.math)k=j;p=studi.physic;studi.physic=studk.physic;studk.physic=p;q=studi.math;studi.math=studk.math;studk.math=q;r=studi.English;studi.English=studk.English;studk.English=r;w=studi.Clanguage;studi.Clanguage=studk.Clanguage;studk.Clanguage=w;t=studi.num;studi.num=studk.
27、num;studk.num=t;strcpy(x,);strcpy(,);strcpy(,x);for(i=0;i<SIZE;i+)printf("%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);void paixu_physic(struct Student_type stud) /*按大物成绩排序*/ int i,j,k=0,p,q,r,
28、w;double y;char x10;int t;for(i=0;i<SIZE-1;i+)/*选择法法排序*/ k=i;for(j=i+1;j<SIZE;j+) if(studj.physic>studk.physic)k=j;p=studi.physic;studi.physic=studk.physic;studk.physic=p;q=studi.math;studi.math=studk.math;studk.math=q;r=studi.English;studi.English=studk.English;studk.English=r;w=studi.Clan
29、guage;studi.Clanguage=studk.Clanguage;studk.Clanguage=w;t=studi.num;studi.num=studk.num;studk.num=t;strcpy(x,);strcpy(,);strcpy(,x);for(i=0;i<SIZE;i+)printf("%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi
30、.English);void paixu_Clanguage(struct Student_type stud) /*按C语言成绩排序*/ int i,j,k=0,p,q,r,w;double y;char x10;int t;for(i=0;i<SIZE-1;i+)/*选择法法排序*/ k=i;for(j=i+1;j<SIZE;j+) if(studj.Clanguage>studk.Clanguage)k=j;p=studi.physic;studi.physic=studk.physic;studk.physic=p;q=studi.math;studi.math=st
31、udk.math;studk.math=q;r=studi.English;studi.English=studk.English;studk.English=r;w=studi.Clanguage;studi.Clanguage=studk.Clanguage;studk.Clanguage=w;t=studi.num;studi.num=studk.num;studk.num=t;strcpy(x,);strcpy(,);strcpy(,x);for(i=0;i<SIZE;i+)printf("
32、%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);void paixu_English(struct Student_type stud) /*按英语成绩排序*/ int i,j,k=0,p,q,r,w;double y;char x10;int t;for(i=0;i<SIZE-1;i+)/*选择法法排序*/ k=i;for(j=i+1;j<SIZE;j+) if(studj.English>studk.English
33、)k=j;p=studi.physic;studi.physic=studk.physic;studk.physic=p;q=studi.math;studi.math=studk.math;studk.math=q;r=studi.English;studi.English=studk.English;studk.English=r;w=studi.Clanguage;studi.Clanguage=studk.Clanguage;studk.Clanguage=w;t=studi.num;studi.num=studk.num;studk.num=t;strcpy(x,
34、);strcpy(,);strcpy(,x);for(i=0;i<SIZE;i+)printf("%-10s%8d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);void tongji(struct Student_type stud) /按分数段统计人数 int i,j,a,max,min,k,l,q,p,w; k=0,l=0,p=0,q=0,w=0; printf(&quo
35、t;你想统计哪科成绩: 1高数 2大物 3C语言 4英语 n"); scanf("%d",&j); printf("请输入两个分数:n"); scanf("%d%d",&max,&min); if(max<min) a=max;max=min;min=a; if(j=1)for(i=0;i<SIZE;i+) if(studi.math>min&&studi.math<max)k+;printf("%-8s%4d%4d%4d%4d%4dn",s
36、,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); else if(j=2)for(i=0;i<SIZE;i+) if(studi.physic>min&&studi.physic<max)l+;printf("%-8s%4d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); else if(j=3)for(i=
37、0;i<SIZE;i+) if(studi.Clanguage>min&&studi.Clanguage<max)p+;printf("%-8s%4d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); else if(j=4) for(i=0;i<SIZE;i+) if(studi.English>min&&studi.English<max) q+;printf("
38、%-8s%4d%4d%4d%4d%4dn",,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); printf("分数段的人数为 :%d",w);int paixuxuanze()int i;printf("*");printf("t*n");printf("*");printf("t*n");printf("*请选择你所需的功能的序号*n");scanf("
39、;%d",&i);return i;int zhucaidan()int i;printf("t*学生成绩管理系统*n");printf("*");printf("t*n");printf("*");printf("t*n");printf("*请选择你所需的功能的序号*n");scanf("%d",&i);return i;int chaxunxuanze()int i; printf("tt1. 按学号查询n"); printf("tt2 .按姓名查询n"); printf("tt按其它数字键退出 n"); scanf("%d",&i); return i;void chaxun_xuehao(struct Stude
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商品监督员跨界整合模拟考核试卷含答案
- 光学数控磨工岗前工作合规考核试卷含答案
- 《数值分析》课程教学大纲
- 2026年中考二轮复习之选择题复习1:《实数》(学生版+教师版合并)
- 机器人关节密封材料:低摩擦、长寿命与小型化驱动机器人关节密封材料升级
- 2026年春招:中学教师题库及答案
- 2026年春招:中国联通面试题及答案
- 【应用方案】2026智慧农业基于作物生长模型的机器人智能管控方案
- 《小海蒂》测试题及答案
- 演唱《丰收之歌》教学设计-2026-2027学年新苏少版(简谱)小学音乐四年级上册
- 2026秋新教材人教版四年级上册数学全册教案(教学设计)
- 2025年全国工会系统经审业务技能大赛知识题库及答案
- 肝硬化临床诊治管理指南2025版解读
- 永临结合的专项施工方案与实施
- DB42∕T 1714-2021 湖北省海绵城市规划设计规程
- 颅脑损伤中医护理常规
- 铁路计量标准管理办法
- 财务公司办公室6s管理制度
- JC-T 1099-2023 硫铝酸钙改性硅酸盐水泥
- 财政违法行为处罚处分条例分析
- 大学生网络心理课件
评论
0/150
提交评论