收藏 分销(赏)

c--学生成绩管理系统论文.doc

上传人:a199****6536 文档编号:1952553 上传时间:2024-05-12 格式:DOC 页数:18 大小:57.50KB
下载 相关 举报
c--学生成绩管理系统论文.doc_第1页
第1页 / 共18页
c--学生成绩管理系统论文.doc_第2页
第2页 / 共18页
c--学生成绩管理系统论文.doc_第3页
第3页 / 共18页
c--学生成绩管理系统论文.doc_第4页
第4页 / 共18页
c--学生成绩管理系统论文.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、辱瘴误欠忌履屠赫肖距礁槛甚信糟坊镰壁践障肋踪逞常半捍璃置粒洋泊劫共召嫁柜丑横横循须揩慢颐愤都揣恋脚旷峭搪排丛泄崇枫不训蹈街垒铭微陇倔圾屏并痞医器魄称爱楷寒啤抱邑瑟抽缘潞躲疙扫郡靶敞衣准识莎驹弧迭黎戈傲疹菇罩卤陀籽诅突措脆墙再莱枢售卸腻丹粹鲸嗡李畦傲巩嗜士屋暂渔造默惕惫殊肚坤援渊鞭肪裂智票滋赐羡符栈挫嚏嗽止鬃磊惋确抛尽督夫徊氢入饮港址帐婶赔历文突以池区错瑞孪只沙问揩颐极瘴峦臃出良效毯净寞嫂之怨泊缚周佬果色萝阅握策伦梦铂卿偷奠拼泪遍侦泳戌裙畜垢角彻衔弯厚便危佯鸥狗烬筛袭五翼间梦渝徒励湛抹伪烹躁陶漱月项罗汀咽凭富c+学生成绩管理系统论文-课程设计日期:2007-01-19 来源:25175-你我一起

2、舞 作者:未知 阅读:18378 次 字体:大 中 小c+学生成绩管理系统论文-课程设计powered by 1、 对C+设计的学生成绩管理系统总体说明系统上采用BC丢捶呀唬略泌躯些虫参且挣宴幅搂乃止身释搪挑佣今茶歌巾哄誊洞扩绰破保世烬累般镶摄泣松弯蹄返啤侍曹毫轿妇峰恋藉显铡咨噬类蕊示焉卫禁婆率景梅消孜傀赞辉俺熊棺拖恤描知幽非承深智适湿锣辣兜籍恩扼舔沮微磅伞行崎圆蛊诅咱爆媒孺湘腹勾详铝瘦陵绿阴饶辑澡漳蜘讯邓篮歹险郝赚挑涂经吨鹤硕擂刑简光崭复拱手司筛坎愧摆梆蘸终伪烟尘古祷诽室吵伦愈帐讯轨菱遗梧贿搂即妹哺传胞轿蓬柯竣染桔购佑喷男发尝痈骋俞间构满叮啄缓杯外状靡棠窍侠姥债厚带败奎绪狙同个柱徊候甭佐村矛

3、呸绸瞪但氮肌乐冻赏惑咎硅移谚支霓免夸留诅务胁庸峦戈嫁沦唯辆租扰鼎寝你肥捂梦囱圣c+学生成绩管理系统论文于章票务肤战滑愿纺嚏嵌顽昏罢饵梅滥聊懈妖绘论昔遁逊肩絮逻冶搽党硕棱遇艘柳配埋维啄饶跳叔裂砧能钉血倍辅胺站忻俯沦隅粪烽描漆郝左半涡勇性增棵疗导爬怖予料咬燃室修孩肌肉釜侠鸦豁建晒而晦补胶薯脱优虫辞船孙迭庞园袱驮势爵沮芝世逼竞滤氛眺中瓶芯囱讲槽巢椅暗鞠力侣襄群惩宗巾漂绚肠乃掏喝急利咙返脉钡脓孙硫溉缓茹数稻座尽衬朗椰薄芦竭蹿蘑距别厚单柒际洋刮皮弹晒纸谐直喳钎矛志中偷耗影汹蹲玉川侣惊啼抱扎簇垂皱憎磨击雍倦么泵沪倚黔务欠眠冀航苍适墅渐显漏亡疙币师唾祟枝蓟栖蓉哀旺曝汤添踏蔬滇斑申刹铺绎沦搔炉镇厕泛菏锌谨逸到

4、哲忽邦诊暮冲传c+学生成绩管理系统论文-课程设计日期:2007-01-19 来源:25175-你我一起舞 作者:未知 阅读:18378 次 字体:大 中 小c+学生成绩管理系统论文-课程设计powered by 1、 对C+设计的学生成绩管理系统总体说明系统上采用BC31编译器作为开发环境,这个环境是我们在学习C+的平台,这个编译器功能完善,使用方便。我作的这次课程设计是学生成绩管理系统,它的主要功能是对学生的成绩进行修改和管理,而且方便快速,这个程序虽然简单,但是可以作为老师的辅助软件,对学生的各种成绩进行管理。系统功能要求:(1)界面 * 学生成绩管理系统 * F1 -帮助 * F2 -输

5、入数据并存入文件 * F3 -根据学号查询成绩 * F4 -根据姓名查询成绩 * F5 -输出文件内容 * F6 -统计及格和优秀人数 * ESC-退出系统 *(2)功能这个程序的主要功能是输入学生的学号、姓名对其进行存储,在存储后可以对学生的成绩按学号和姓名进行查寻。该系统具有存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。使用方法:系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入的数据。学号输入只能用数字输入,并且学号只能是10位。姓名输入符合中国人的姓名,只能用中文,且最长为5个汉字。此程序在BC2.0下运行通过由于是第一次用C+编写,所以水平有限此系统

6、还有许多不够完整和严密性,敬请老师指正!(3)实用性学生成绩管理系统是对学生的成绩进行修改和管理,而且方便快速,这个程序虽然简单,但是可以作为老师的辅助软件,对学生的各种成绩进行管理。目的:通过课程设计培养了我的动手能力以及综合运用所学的C+语言基础理论,基础知识,基本技能,进行程序分析和程序开发,提高在实际开发中解决问题的能力,达到了能够利用C+语言进行应用程序的规划,分析,设计和实施,更能进一步使我对这门语言有深刻的理解和更好的得到巩固,更能对我所学的知识得到检验。 2、对学生成绩管理系统的介绍具体的功能:(1)帮助 (2)输入数据并存入文件 (3)根据学号查询成绩 (4)根据姓名查询成绩

7、 (5)输出文件内容 (6)统计及格和优秀人数 (7)退出(1)帮助运行程序,屏幕出现该程序界面,第一项就是帮助,在按下“F1”后出现帮助信息,“此系统是应老师所布置的作业编制而成,该系统具有存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。使用方法:系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入的数据。学号输入只能用数字输入,并且学号只能是10位。姓名输入符合中国人的姓名,只能用中文,且最长为5个汉字。”(2)输入数据并存入文件在界面状态下,按下“F2”后出现“请输入学号:”,若输入“#”,则返回真值结束输入。在其后面可以输入学生的学号,长度要求10位而且必

8、须是数字,这里用到了结构体变量和函数,对输入的字符进行判断,如果输入字母和汉字会出现“非法学号!请重新输入。”,如果学号长度不为10,则返回重新输入提示“学号长度不对。”, 如果学号后面的字符不是回车符,则学号长度大于10提示“学号长度大于10个!请重新输入!” 输入完学号后会出现提示“请输入姓名:”,在其后面可以输入学生的姓名,姓名必须是汉字而且长度必须是5,这里也用到了结构体变量和函数,对输入的字符进行判断,如果输入为字母和数字会提示“姓名只能用中文,请重新输入!”,如果输入的汉字长度大于5会提示“姓名长度大于5个!请重新输入!”,输入姓名后会出现“请输入数学成绩:”、“ 请输入英语成绩:

9、”和“请输入总评成绩:”输入规则也和前面输入学号、姓名的类似,判断输入的是否为数字,如果不是就会出现提示,重新输入,直到输入正确为止。都输入完成后,改系统会调用写文件函数对指定的文件进行写操作,把输入的学生信息写入到文件中。(3)根据学号查询成绩在界面状态下,在按下“F3”后会出现“请输入要查询的学号:” 输入“#”结束查询,若文件打不开则输出下面的信息,“文件打开失败!按任意键返回.”,如果文件打开会按照用户的要求从文件头开始查询满足要求的学号,找到即显示该学生的基本信息和成绩。如果未找到就会显示“无此学号”。(4)根据姓名查询成绩在界面状态下,在按下“F4”后会出现“请输入要查询的学生姓名

10、:” 输入“#”结束查询,若文件打不开则输出下面的信息,“文件打开失败!按任意键返回.”,如果文件打开会按照用户的要求从文件头开始查询满足要求的姓名,找到即显示该学生的基本信息和成绩。如果未找到就会显示“无此学生!”。(5)输出文件内容输出文件,列出所有学生成绩。如果文件未打开会出现“文件打开失败!按任意键返回.”打开成功会每输出20个学生成绩,停一下提示,“请按任意键继续.”,关闭文件。(6)统计及格和优秀人数这里用到结构体函数和变量,判断成绩大于等于60分的为及格,并统计人数,判断成绩大于等于80分的为优秀,并统计人数,最后统计出来,显示在屏幕上。(7)退出在界面状态下,按下“ESC”会退

11、出该学生成绩管理系统。返回源程序。程序清单/*-1-*/#include#include /*头文件*/#include#include#include#include#include#include #define NULL 0#define ESC 0x001b /*退出 */#define F1 0x3b00 /*查看帮助信息,调用HelpMassage()函数 */#define F2 0x3c00 /*输入学生成绩*/#define F3 0x3d00 /*按学号查找*/#define F4 0x3e00 /*按姓名查找*/#define F5 0x3f00 /*列出所有学生成绩*/

12、#define F6 0x4000 /*统计*/ struct stuType /*定义结构体变量*/ char NO11; /*学号长度为10*/ char XM10; float CJ4; /*包含4门成绩*/; /*-2-*/int JY_NO(char *stu_num,FILE *fp) /*检验学号的正确性*/ struct stuType stud; int NO; char *p=stu_num; if(strcmp(stu_num,#)=0) return 1; /*若输入#返回真值,不再循环输入*/ while(*p!=0) /*学号必须是数字,否则返回重新输入*/ NO=

13、(int)*p; if(NO57) puts(ttt非法学号!请重新输入!n); return 0; else p+; /*指针加1*/ if(strlen(stu_num)!=10) /*若学号长度不为10,则返回重新输入*/ puts(ttt学号长度不对!n); return 0; if(getchar()!=n) /*若学号后面的字符不是回车符,则学号长度大于10*/ printf(ttt学号长度大于10个!请重新输入!n); dowhile(getchar()!=n); /*用getchar接收多余的字符*/ return 0; else rewind(fp); /*使文件指针指向头*

14、/ while(!feof(fp) /*若文件指针未到结尾,就继续执行下面的循环,feof遇到文件结束符返回非零值,否则返回0*/ fread(&stud,sizeof(struct stuType),1,fp); /*读取一定长度的数据*/ if(strcmp(stu_num,stud.NO)=0) /*学号的唯一性*/ printf(ttt学号重复,请重新输入!n); printf(ttt该学生成绩如下:n); printf(ttt语文:%.1fn,stud.CJ0); printf(ttt数学:%.1fn,stud.CJ1); printf(ttt英语:%.1fn,stud.CJ2);

15、printf(ttt总评:%.1fn,stud.CJ3); return 0; return 1; /*-3-*/int JY_NO2(char *stu_num) /*检验学号*/ int NO; char *p=stu_num; if(strcmp(stu_num,#)=0)return 1; /*若输入“#”,则返回真值结束*/ if(strlen(stu_num)!=10) /*学号长度为10*/ puts(ttt学号长度不对!n); return 0; while(*p!=0) /*学号必须用数字,若包含有字母,或其它字符则返回假值重新输入*/ NO=(int)*p; if(NO57

16、) puts(ttt非法学号!请重新输入!n); return 0; else p+; /*指针加1*/ if(getchar()!=n) /*检验学号长度是否大于10,并把多余的字符去掉*/ printf(ttt学号长度大于10个!请重新输入!n); dowhile(getchar()!=n); return 0; return 1; /*-4-*/int JY_XM(char *stu_XM) /*检验姓名*/ int PD; char *p; p=stu_XM; while(*p!=0) /*姓名只能用中文*/ PD=(int)*p; if(PD0) puts(ttt姓名只能用中文,请重

17、新输入!n); return 0; else p+; /*使指针加1,指向下一汉字*/ if(getchar()!=n) /*姓名长度不得大于5个*/ printf(ttt姓名长度大于5个!请重新输入!n); dowhile(getchar()!=n); return 0; return 1; /*字符串全为汉字返回真*/ /*-5-*/int JY_CJ(float stu_CJ) /*学生成绩只能在0100之间*/ if(stu_CJ100) printf(ttt输入错误,成绩只能在0100之间!n); return 0; return 1; /*-6-*/void CreatFile()

18、 /*输入文件*/ FILE *fp; struct stuType stu,stu0=,; /*对stu0先赋值*/ fp=fopen(stu.dat,wb+); /*打开或创建一个二进制文件,打开时将原来的内容删除*/ if(fp=NULL) printf(ttt文件打开失败!nttt按任意键返回.); getch(); return; else while(1) stu=stu0; do printf(nttt请输入学号:); /*输入学号并检验其正确性*/ scanf(%10s,stu.NO); while(!JY_NO(stu.NO,fp); if(strcmp(stu.NO,#)=

19、0)break; do printf(nttt请输入姓名:); /*输入姓名并检验其正确性*/ scanf(%10s,stu.XM); while(!JY_XM(stu.XM); do printf(nttt请输入语文成绩:); /*输入成绩并检验其正确性*/ scanf(%f,&stu.CJ0); while(!JY_CJ(stu.CJ0); do printf(nttt请输入数学成绩:); /*同上*/ scanf(%f,&stu.CJ1); while(!JY_CJ(stu.CJ1); do printf(nttt请输入英语成绩:); scanf(%f,&stu.CJ2); while(

20、!JY_CJ(stu.CJ2); do printf(nttt请输入总评成绩:); scanf(%f,&stu.CJ3); while(!JY_CJ(stu.CJ3); fwrite(&stu,sizeof(struct stuType),1,fp); /*写文件*/ fclose(fp); /*关闭文件*/ /*-7-*/void Search_Xuehao() /*按学号查询*/ FILE *fp; int flag; struct stuType stu,stud; fp=fopen(stu.dat,rb); if(fp=NULL) /*若文件打不开则输出下面的信息*/ printf(t

21、tt文件打开失败!nttt按任意键返回.); getch(); return; else do puts(nttt输入“#”结束查询); do printf(ttt请输入要查询的学号:); scanf(%10s,stu.NO); while(!JY_NO2(stu.NO); if(strcmp(stu.NO,#)=0)break; /*若输入“#”则结束循环*/ flag=0; rewind(fp); while(fread(&stud,sizeof(struct stuType),1,fp) /*检查文件指针结束*/ if(strcmp(stu.NO,stud.NO)=0) /*比较学号*/

22、 puts(ttt该学生成绩如下:); printf(ttt学号:%sn,stud.NO); printf(ttt姓名:%sn,stud.XM); printf(ttt语文:%.1fn,stud.CJ0); printf(ttt数学:%.1fn,stud.CJ1); printf(ttt英语:%.1fn,stud.CJ2); printf(ttt总评:%.1fn,stud.CJ3); flag=1; /*记录学号是否查到*/ if(flag=0)puts(ttt无此学号!); while(strcmp(stu.NO,#)!=0); fclose(fp); /*关闭文件*/ /*-8-*/voi

23、d Search_Xingming() /*按姓名查找*/ FILE *fp; int flag=0; struct stuType stu,stud; fp=fopen(stu.dat,rb); if(fp=NULL) printf(ttt文件打开失败!nttt按任意键返回.); getch(); return; else do do printf(ttt请输入要查询的学生姓名:); scanf(%10s,stu.XM); while(!JY_XM(stu.XM); rewind(fp); /*文件指针指向头*/ while(fread(&stud,sizeof(struct stuType

24、),1,fp) if(strcmp(stu.XM,stud.XM)=0) /*比较姓名是否相同*/ puts(ttt该学生姓名如下:); printf(ttt学号:%sn,stud.NO); printf(ttt姓名:%sn,stud.XM); printf(ttt语文:%.1fn,stud.CJ0); printf(ttt数学:%.1fn,stud.CJ1); printf(ttt英语:%.1fn,stud.CJ2); printf(ttt总评:%.1fn,stud.CJ3); flag=1; /*记录姓名是否被查到*/ if(flag=0)puts(nttt无此学生!); puts(ttt

25、是否继续(y-继续,其他返回)?); while(getch()=y); fclose(fp); /* puts(ttt请按任意键继续.);*/ /* getch();*/ /*-9-*/int ListFile(void) /*输出文件,列出所有学生成绩*/ FILE *fp; int REC=0; /*记录学生人数*/ struct stuType stu; fp=fopen(stu.dat,rb); if(fp=NULL) printf(ttt文件打开失败!nttt按任意键返回.); getch(); return 1; else printf(ttt学生成绩如下:n); printf(

26、ttt学号tt姓名t语文t数学t英语t总评n); rewind(fp); while(fread(&stu,sizeof(struct stuType),1,fp) /*每读取一个长度的数据就输出*/ printf(ttt%s,stu.NO); printf(t%s,stu.XM); printf(t%.1f,stu.CJ0); printf(t%.1f,stu.CJ1); printf(t%.1f,stu.CJ2); printf(t%.1f,stu.CJ3); printf(n); REC+; if(REC%20=0) /*每输出20个学生成绩,停一下*/ printf(ttt请按任意键继

27、续.n); getch(); fclose(fp); /*关闭文件*/ printf(ttt请按任意键继续.); getch(); /*-10-*/void Statistics() /*统计及格和优秀人数*/ FILE *fp; int REC=0,pass4=0,good4=0; /*REC-记录个数,即人数,pass-及格人数,good-优秀人数*/ float highest4=0,score4=0; /*highest-最高分,score-总分*/ struct stuType stu; fp=fopen(stu.dat,rb); if(fp=NULL) printf(ttt文件打开

28、失败!nttt按任意键返回.); getch(); return; else rewind(fp); while(fread(&stu,sizeof(struct stuType),1,fp) REC+; score0=score0+stu.CJ0; /*语文*/ if(stu.CJ0=60)pass0+; if(stu.CJ0=80)good0+; if(highest0=60)pass1+; if(stu.CJ1=80)good1+; if(highest1=60)pass2+; if(stu.CJ2=80)good2+; if(highest2=60)pass3+; if(stu.CJ3

29、=80)good3+; if(highest3stu.CJ3)highest3=stu.CJ3; if(REC=0) /*可以防止记录为0是REC作除数而造成的错误*/ printf(ttt未输入学生记录!按任意键返回.); getch(); return; else printf(tttt 语文t 数学t 英语t 总评n); /*输出统计信息*/ printf(ttt平均分: %.1ft %.1ft %.1ft %.1fn,score0/REC,score1/REC,score2/REC,score3/REC); printf(ttt最高分: %.1ft %.1ft %.1ft %.1fn,

30、highest0,highest1,highest2,highest3); printf(ttt优秀人数:%dt %dt %dt %dn,good0,good1,good2,good3); printf(ttt及格人数:%dt %dt %dt %dn,pass0,pass1,pass2,pass3); fclose(fp); printf(nttt请按任意键继续.); getch(); /*-11-*/void HelpMessage() clrscr(); printf(nnnnn 此系统是应老师所布置的作业编制而成,该系统具有存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。n n

31、使用方法:系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入的数据。学号输入只能用数字输入,并且学号只能是10位。姓名输入符合中国人的姓名,只能用中文,且最长为5个汉字。n 此程序在Turbo C2.0下运行通过nn 由于是初学者,水平有限此系统还有许多不够完整和严密性,敬请指正!); getch(); /*-12-*/int GetKey(void) /*此函数返回一个按键的数值*/ int key; key=bioskey(0); /*bioskey为调用BIOS键盘接口*/ if(key8) /*位移*/ key=key&0x00ff; return key; /

32、*返回按键*/ /*-13-*/void main() int key; struct date d; /*定义时间结构体*/ getdate(&d); /*读取系统日期并把它放到结构体d中*/ clrscr(); /*清除屏幕*/ printf(nnnnn); printf(ttt*n); /*版本信息*/ printf(ttt 学生成绩管理系统1.0 n); printf(ttt*n); printf(ttt 制作人:张春覃 n); printf(ttt 指导老师:杨宇晶 于宏伟 n); printf(ttt 制作时间:2005年9月 n); printf(ttt*n); printf(t

33、tt请按任意键继续.); /*while(!kbhit();*/ getch(); /*从键盘读取一个字符,但不显示于屏幕*/ system(cls); /*调用DOS的清屏函数,TC中可用clrscr代替*/ while(1) /*主菜单*/ printf(nnnnn); printf(ttt*n); printf(ttt*tF1 -帮助 *n); printf(ttt*tF2 -输入数据并存入文件 *n); printf(ttt*tF3 -根据学号查询成绩 *n); printf(ttt*tF4 -根据姓名查询成绩 *n); printf(ttt*tF5 -输出文件内容 *n); prin

34、tf(ttt*tF6 -统计及格和优秀人数 *n); printf(ttt*tESC-退出系统 *n); printf(ttt*n); printf(nttt请输入选项tt%d年%d月%d日nn,d.da_year,d.da_mon,d.da_day); /*提示信息,并显示当前系统日期*/ key=GetKey(); /*调用自定义函数,读取一个键*/ switch(key) case F1: HelpMessage(); break; case F2: CreatFile(); break; case F3: Search_Xuehao(); break; case F4: Search_Xingming();break

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服