


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计院系:工程学院姓名:刘若愚学号:20051001606班号:05205235指导教师:王老师日期:2007年9月C语言程序设计报告第一部分题目要求程序设计题目:学生学籍信息管理系统设计【要求】使用下面的数据,设计一个简单的学籍信息管理系统学生基本信息文件(A.TXT)及其内容:01张成成男02李成华女03王成凤女04张明明男05男06李果男07张园园女学号姓名性别101 宿舍号码电话号码877321111018772311287723112877343338773211187734333试验成绩卷面成绩8775612201A01大学物理366788202B03高等数学478-19
2、001B03高等数学445-18802C01VF3657666学号课程编号学生成绩基本信息文件(B.TXT)及其内容:课程名称学分平时成绩功能要求及说明:数据录入功能:录入每个学生的学号、课程编号、课程名称、学分、平时成绩、试验成绩、卷面成绩共7个数据。综合成绩、实得分根据条件自动运算。综合成绩的计算:如果本课程的试验成绩为-1,则表示无试验,综合成绩=平时成绩*30%磴面成绩*70%如果试验成绩不为-1,表示本课程有试验,综合成绩=平时成绩*15%狱验成绩*15%裕面成绩*70%实得学分的计算:采用等级学分制。综合成绩在90-100之间,应得学分=学分*100%综合成绩在80-90之间,应得
3、学分=-学分*80%综合成绩在70-80之间,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下,应得学分=学分*0%(2)查询功能;分为学生基本情况查询和成绩查询两种1»学生基本情况查询:输入一个学生的学号活姓名,查出此生的基本信息并显示输出。输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。成绩查询:输入一个学号时,查询出此生的所有课程情况,格式如下:学号:姓名;课程编号:课程名称:综合成绩:实得学分:课程编号:课程名称:综合成绩:实得学分:课程编号;课程名称:综合成绩:实得学分:共修:XX科,实得总学分为:XXX删除功能:当
4、在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有的信息排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。第二部分需求分析根据题目要求,由于学生信息是存放在文件中,所以应该提供文件的输入、输出等操作;在程序中要浏览学生的信息,应提供显示、查找、排序等操作;另外还应该提供键盘式选择菜单实现功能选择。第三部分总体设计根据上面的需求分析,可以将这个系统的设计分为以下几个模块:第四部分详细设计主函数主函数设计一般要简单,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。【流程图】程序#include<stdio.h>voidmenu()(int
5、n,w;doputs("tt*MENU*nn");puts("tl.browse2.enter3.Search");puts("t4.browse25.enter26.Search2");puts("t7.exit");puts("nntt*n");printf("Choiceyournumber(1-7):bbbb");scanf("%d",&n);if(n<1|n>7)/w=1;getchar();elsew=0;while(w=1
6、);switch(n)case1:browse();break;case2:enter();break;case3:search();break;case4:browse2();break;case5:enter2();break;case6:search2();break;case7:exit(0);break;对选择的数字作判断/浏览模块/输入模块/查找模块/浏览模块/输入模块/查找模块/退出/main()menu();2»各功能模块设计输入模块:先采用结构体数组存储数据structaintxuehao;charname15;charsex10;intshushenum;intt
7、elenum;a10;structbintxuehao;intkechenghao;charkechengming15;intxuefen;intpingshichengji;intshiyanchengji;intjuanmianchengji;intzonghechengji;intshidechengji;b10;a10.b10中每个数组元素对应一个学生voidjisuan()(inti,n,n1,n2,n3,n4;for(i=0;i<10;i+)(if(bi.shiyanchengji=-1)(bi.zonghechengji=bi.pingshichengji*0.3+bi.j
8、uanmianchengji*0.7;break;if(bi.shiyanchengji!=-1)(bi.zonghechengji=bi.pingshichengji*0.15+bi.juanmianchengji*0.7+bi.shiyanchengji*0.15;break;if(bi.zonghechengji>90&&bi.zonghechengji<100)(n4=bi.xuefen;bi.shidechengji=(n4)*(1);break;elseif(bi.zonghechengji>80&&bi.zonghechengji
9、<90)(n3=bi.xuefen;bi.shidechengji=(n3)*0.9;break;elseif(bi.zonghechengji>70&&bi.zonghechengji<80)(n2=bi.xuefen;bi.shidechengji=(n2)*0.8;break;elseif(bi.zonghechengji>60&bi.zonghechengji<70)(n1=bi.xuefen;bi.shidechengji=(n1)*0.7;break;elseif(bi.zonghechengji<60)(n=bi.xue
10、fen;bi.shidechengji=n*0;break;此简单程序计算综合成绩与实得学分【程序】enter()(inti,n;printf("Howmanychengjijibenxinxidatas(0-%d)?:",10);scanf("d”,&n);printf("nEnterdatanownn");for(i=0;i<n;i+)(printf("nInput%dthchengjijibenxinxirecord.n",i+1);input(i);调用输入函数if(i!=0)save(n);调用保存函
11、数printf_back();一个任务结束时让用户选择是浏览还浏览模块:该模块的功能是显示所有学生记录信息。【流程图】显示学生记录按任意键显示下一屏按任意键返回主采单1【程序】browse()浏览全部模块(inti,j,n;n=load();加载记录printf_face();调用显示数据结构项目函数for(i=0;i<n;i+)(if(i%10=0)(printf("nnPassanykeytocontiune.");目的是分屏显示getch();puts("nn");printf_one(i);printf("n");调用显
12、示一个记录的函数printf("tThereare%drecord.n",n);printf("nPassanykeytoback.");getch();按任意键menu();browse2()该浏览模块的功能是显示所有学生的成绩基本信息(inti,j,n;n=load2();printf_face2();for(i=0;i<n;i+)(if(i%10=0)printf("nnPassanykeytocontiune.");getch();puts("nn");printf_one2(i);printf(&q
13、uot;n");printf("tThereare%drecord.n",n);printf("nPassanykeytoback.");getch();menu();查找模块;该模块的功能是根据输入的学生姓名查找对应的记录,找到以后,增加删除功能。【程序】search()查找学生基本信息的模块(inti,n,k,w1=1,w2,w3,w4;structas;number");数bbb");时能退出number");bbb");n=load();dodok=-1;printf("nnEntern
14、umberthatyouwanttosearch!scanf("%d”,&s.xuehao);输入要修改的数据的学号printf_face();调用显示数据结构项目函数for(i=0;i<n;i+)查找要修改的数据if(s.xuehao=ai.xuehao)k=i;printf_one(k);break;调用显示一个记录的函if(k=-1)printf("nnNoexist!please");printf("nnAreyouagain?nt1).Again2)Noandbackscanf("%d",&w1);保证
15、在第一次找的的基础上再查找找不到while(k=-1&&w1=1);如果W1不等于1时直返回search2()查找学生成绩基本信息的模块inti,n,k,w1=1,w2,w3,w4;structas;n=load2();dodok=-1;printf("nnEnternumberthatyouwanttosearch!scanf("%d",&s.xuehao);printf_face2();for(i=0;i<n;i+)if(s.xuehao=ai.xuehao)k=i;printf_one2(k);break;if(k=-1)pri
16、ntf("nnNoexist!please");printf("nnAreyouagain?nt1).Again2)Noandbackscanf("%d",&w1);while(k=-1&&w1=1);删除模块:该模块的功能是先显示所有学生的信息,考虑到记录的数据较多,建议采用分屏显示【程序】Voiddel()排序模块:该功能枝块的功能是要求将学生记录的综合成绩或实得分升序或降序排序并显示数据。假设这里采用选择法排序。【流程图】用选择法排序保存返回主采单r千口声】rVoidorder()intI,j,n;排序模块Stru
17、ctstudents;n=load();For(i=0;i<n-1;i+)(Save(n);Puts("nn”);Printf_back();设计出的程序如下#include<stdio.h>voidmenu()(intn,w;doputs("tt*MENU*nn");puts("t1.browse2.enter3.Search");puts("t4.browse25.enter26.Search2”);puts("t7.exit");puts("nntt*n");printf
18、("Choiceyournumber(1-7):bbbb");scanf("%d",&n);if(n<1|n>7)(w=1;getchar();elsew=0;while(w=1);switch(n)(case1:browse();break;case2:enter();break;case3:search();break;case4:browse2();break;case5:enter2();break;case6:search2();break;case7:exit(0);break;main()(menu();structa(
19、intxuehao;charname15;charsex10;intshushenum;inttelenum;a10;structb(intxuehao;intkechenghao;charkechengming15;intxuefen;intpingshichengji;intshiyanchengji;intjuanmianchengji;intzonghechengji;intshidechengji;b10;voidjisuan()inti,n,n1,n2,n3,n4;for(i=0;i<10;i+)if(bi.shiyanchengji=-1)bi.zonghechengji=
20、bi.pingshichengji*0.3+bi.juanmianchengji*0.7;break;if(bi.shiyanchengji!=-1)bi.zonghechengji=bi.pingshichengji*0.15+bi.juanmianchengji*0.7+bi.shiyanchengji*0.15;break;if(bi.zonghechengji>90&&bi.zonghechengji<100)(n4=bi.xuefen;bi.shidechengji=(n4)*(1);break;elseif(bi.zonghechengji>80&
21、amp;&bi.zonghechengji<90)(n3=bi.xuefen;bi.shidechengji=(n3)*0.9;break;elseif(bi.zonghechengji>70&&bi.zonghechengji<80)(n2=bi.xuefen;bi.shidechengji=(n2)*0.8;break;elseif(bi.zonghechengji>60&bi.zonghechengji<70)(n1=bi.xuefen;bi.shidechengji=(n1)*0.7;break;elseif(bi.zong
22、hechengji<60)(n=bi.xuefen;bi.shidechengji=n*0;break;enter()(inti,n;printf("Howmanychengjijibenxinxidatas(0-%d)?:",10);scanf("%d",&n);printf("nEnterdatanownn");for(i=0;i<n;i+)printf("nInput%dthchengjijibenxinxirecord.n",i+1);input(i);if(i!=0)save(n);p
23、rintf_back();browse()inti,j,n;n=load();printf_face();for(i=0;i<n;i+)if(i%10=0)printf("nnPassanykeytocontiune.");getch();puts("nn");printf_one(i);printf("n");printf("tThereare%drecord.n",n);printf("nPassanykeytoback.");getch();menu();search()inti,n
24、,k,w1=1,w2,w3,w4;structas;n=load();dodok=-1;printf("nnEnternumberthatyouwanttosearch!number");scanf("%d”,&s.xuehao);printf_face();for(i=0;i<n;i+)if(s.xuehao=ai.xuehao)k=i;printf_one(k);break;if(k=-1)printf("nnNoexist!please");printf("nnAreyouagain?nt1).Again2)Noa
25、ndbackbbb");scanf("%d",&w1);while(k=-1&&w1=1);w4=0;w3=0;if(k!=-1)printf("nnWhatdoyouwanttodo?nt1.Searchanother2.Modify3.Delete4.Backmenubbb");scanf("%d",&w2);switch(w2)case2:w3=modify(k);break;case3:printf("nAreyousure?nt1).sure2).Noandbackbbb&
26、quot;);scanf("%d",&w4);if(w4=1)bk.xuehao=0;bk.kechenghao=0;strcpy(bk.kechengming,"xxxx");bk.xuefen=0;bk.pingshichengji=0;bk.shiyanchengji=0;bk.juanmianchengji=0;bk.zonghechengji=0;bk.shidechengji=0;ai.xuehao=0;strcpy(,"xxxx");strcpy(ai.sex,"xxxx");a
27、i.shushenum=0;ai.telenum=0;break;if(w3=1|w4=1)(save(n);printf("nnSuccessful.”);printf("nnWhatdoyouwanttodo?nt1).Searchanother2).Backbbb");scanf("%d",&w2);while(w2=1);menu();input(inti)(scanf("%d%d%s%d%d%d%d%d%d”,&bi.xuehao,&bi.kechenghao,bi.kechengming,&
28、bi.xuefen,&bi.pingshichengji,&bi.shiyanchengji,&bi.juanmianchengji);jisuan();save(intn)(FILE*fp;inti;if(fp=fopen("b.txt","wb")=NULL)(printf("nCannotopenfilen");returnNULL;for(i=0;i<n;i+)if(ai.xuehao!=0)if(fwrite(&bi,sizeof(structb),1,fp)!=1)printf(&qu
29、ot;filewriteerrorn");fclose(fp);load()(FILE*fp;inti;if(fp=fopen("b.txt","rb")=NULL)(printf("nCannotopenfilen");returnNULL;for(i=0;!feof(fp);i+)fread(&bi,sizeof(structb),1,fp);fclose(fp);return(i-1);printf_face()(printf("ntxuehaokechenghaokechengmingxuefenp
30、ingshichengjishiyanchengjijuanmianchengjizonghechengjishidechengji");printf_one(inti)printf("%5d%5d%15s%5d%5d%5d%5d%5d%5d",bi.xuehao,bi.kechenghao,bi.kechengming,bi.xuefen,bi.pingshichengji,bi.shiyanchengji,bi.juanmianchengji,bi.zonghechengji,bi.shidechengji);printf_back()intk,w;print
31、f("nntSuccessful.nn");printf("Whatdoyouwanttodo?nnt1).Browseallnow2).Back;bbb");scanf("%d",&w);if(w=1)browse();elsemenu();modify(inti)intc,w1=2;doputs("nmodifyby=>nn");puts("1).xuehao2).kechenghao3).kechengming4).xuefen5).pingshichengji6).shiyanche
32、ngji7).juanmianchengji8)zonghechengji9)shidechengji10).alldata11).cancelandback");printf("Whichyouneeded?:bbbb");scanf("%d",&c);if(c>11|c<1)puts("nChoiceerror!Pleaseagain!");getchar();while(c>11|c<1);doswitch(c)case1:printf("xuehao:");scan
33、f("%d”,&bi.xuehao);break;case2:printf("kechenghao:");scanf("%d”,&bi.kechenghao);break;case3:printf("kechengming:");scanf("%s”,bi.kechengming);break;case4:printf("xuefen:");scanf("%d",&bi.xuefen);break;case5:printf("pingshichengj
34、i:");scanf("%d”,&bi.pingshichengji);break;case6:printf("shiyanchengji:");scanf("%d",&bi.shiyanchengji);break;case7:printf("juanmianchengji:");scanf("%d",&bi.juanmianchengji);break;case8:input(i);break;case9:menu();break;puts("nNow:n&
35、quot;);printf_face();printf_one(i);printf("nAreyousure?nnt1).Sure2).Noandremodify3).Backwithoutsaveinthistimebbb");scanf("%d",&w1);while(w1=2);return(w1);enter2()inti,n;printf("Howmanyxueshengjibenxinxi(0-%d)?:",10);scanf("%d",&n);printf("nEnterda
36、tanownn");for(i=0;i<n;i+)printf("nInput%dthxueshengjibenxinxirecord.n",i+1);input2(i);if(i!=0)save2(n);printf_back2();browse2()inti,j,n;n=load2();printf_face2();for(i=0;i<n;i+)if(i%10=0)printf("nnPassanykeytocontiune.");getch();puts("nn");printf_one2(i);print
37、f("n");printf("tThereare%drecord.n",n);printf("nPassanykeytoback.");getch();menu();search2()inti,n,k,w1=1,w2,w3,w4;structas;n=load2();dodok=-1;printf("nnEnternumberthatyouwanttosearch!number");scanf("%d",&s.xuehao);printf_face2();for(i=0;i<n;i
38、+)if(s.xuehao=ai.xuehao)k=i;printf_one2(k);break;if(k=-1)printf("nnNoexist!please");printf("nnAreyouagain?nt1).Again2)Noandbackbbb");scanf("%d",&w1);while(k=-1&&w1=1);w4=0;w3=0;if(k!=-1)printf("nnWhatdoyouwanttodo?nt1.Searchanother2.Modify3.Backmenubbb&
39、quot;);scanf("%d",&w2);switch(w2)case2:w3=modify2(k);break;if(w3=1|w4=1)save2(n);printf("nnSuccessful.”);printf("nnWhatdoyouwanttodo?nt1).Searchanother2).Backbbb");scanf("%d",&w2);while(w2=1);menu();input2(inti)scanf("%d%s%s%d%d”,&ai.xuehao,
40、,ai.sex,&ai.shushenum,ai.telenum);save2(intn)FILE*fp;inti;if(fp=fopen("a.txt”,"wb")=NULL)printf("nCannotopenfilen");returnNULL;for(i=0;i<n;i+)if(ai.xuehao!=0)if(fwrite(&ai,sizeof(structa),1,fp)!=1)printf("filewriteerrorn");fclose(fp);load2()FILE*fp;inti;
41、if(fp=fopen("a.txt","rb")=NULL)printf("nCannotopenfilen");returnNULL;for(i=0;!feof(fp);i+)fread(&ai,sizeof(structa),1,fp);fclose(fp);return(i-1);printf_face2()printf("ntxueshengjibenxinxin");printf_one2(inti)printf("%d%s%s%d%d",ai.xuehao,,
42、ai.sex,ai.shushenum,ai.telenum);printf_back2()intk,w;printf("nntSuccessful.nn");printf("Whatdoyouwanttodo?nnt1).Browseallnow2).Back;bbb");scanf("%d",&w);if(w=1)browse2();elsemenu();modify2(inti)intc,w1=2;doputs("nmodifyby=>nn");puts("1).xuehao2).na
43、me3).sex4).shushenum5)telenum6).alldata7).cancelandback");printf("Whichyouneeded?:bbb");scanf("%d",&c);if(c>7|c<1)puts("nChoiceerror!Pleaseagain!");getchar();while(c>7|c<1);doswitch(c)(case1:printf("xuehao:");scanf("%d”,&ai.xuehao
44、);break;case2:printf("name:");scanf("%s”,);break;case3:printf("sex:");scanf("%s”,ai.sex);break;case4:printf("shushenum:");scanf("%d”,&ai.shushenum);break;case5:printf("telenum:");scanf("%d”,&ai.telenum);break;case6:input(i);break;case7:menu();break;puts("nNow:n");printf_face2();printf_one2(i);printf("nAreyousure?nnt1).Sure2).Noandremodify3).Backwithoutsaveinthistimebbb");scanf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 韩语五级试题及答案
- 物业案场培训
- 木牍教育数学课程体系
- 血透室肌肉痉挛护理查房
- 脑血管病变病人的护理
- 2025年中国母乳喂养乳头罩行业市场全景分析及前景机遇研判报告
- 会计总账业务流程规范
- 餐饮企业租赁及品牌输出服务合同
- 航空公司新员工入职培训
- 车辆无偿租赁与品牌形象展示协议
- 疑难病例讨论课件
- 部编本小学语文六年级下册毕业总复习教案
- JB∕T 11864-2014 长期堵转力矩电动机式电缆卷筒
- 小儿氨酚黄那敏颗粒的药动学研究
- 生态环境行政处罚自由裁量基准
- 长沙市开福区2024届六年级下学期小升初数学试卷含解析
- 2024年安徽普通高中学业水平选择性考试化学试题及答案
- DZ/T 0462.3-2023 矿产资源“三率”指标要求 第3部分:铁、锰、铬、钒、钛(正式版)
- 2024年昆明巫家坝建设发展有限责任公司招聘笔试冲刺题(带答案解析)
- 《取水许可核验报告编制导则(试行)(征求意见稿)》
- 2023年国开(中央电大)04114《会计学概论》题库及标准答案
评论
0/150
提交评论