您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言程序报告学生学籍信息管理系统
C语言课程设计院系:工程学院姓名:刘若愚学号:20051001606班号:05205235指导教师:王老师日期:2007年9月C语言程序设计报告第一部分题目要求程序设计题目:学生学籍信息管理系统设计【要求】使用下面的数据,设计一个简单的学籍信息管理系统。学生基本信息文件(A.TXT)及其内容:学号姓名性别宿舍号码电话号码01张成成男5018773211102李成华女1018772311203王成凤女1018772311204张明明男5028773433305陈东男5018773211106李果男5028773433307张园园女10287756122….……….…..……….学生成绩基本信息文件(B.TXT)及其内容:学号课程编号课程名称学分平时成绩试验成绩卷面成绩01A01大学物理366788202B03高等数学478-19001B03高等数学445-18802C01VF3657666….…..………..….….…..功能要求及说明:数据录入功能:录入每个学生的学号、课程编号、课程名称、学分、平时成绩、试验成绩、卷面成绩共7个数据。综合成绩、实得分根据条件自动运算。综合成绩的计算:如果本课程的试验成绩为-1,则表示无试验,综合成绩=平时成绩*30%+卷面成绩*70%;如果试验成绩不为-1,表示本课程有试验,综合成绩=平时成绩*15%+试验成绩*15%+卷面成绩*70%。实得学分的计算:采用等级学分制。综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=-学分*80%;综合成绩在70-80之间,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下,应得学分=学分*0%。(2)查询功能;分为学生基本情况查询和成绩查询两种1》学生基本情况查询:输入一个学生的学号活姓名,查出此生的基本信息并显示输出。输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。成绩查询:输入一个学号时,查询出此生的所有课程情况,格式如下:学号:姓名;课程编号:课程名称:综合成绩:实得学分:课程编号:课程名称:综合成绩:实得学分:课程编号;课程名称:综合成绩:实得学分:…………………………..…………共修:XX科,实得总学分为:XXX删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有的信息排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。第二部分需求分析根据题目要求,由于学生信息是存放在文件中,所以应该提供文件的输入、输出等操作;在程序中要浏览学生的信息,应提供显示、查找、排序等操作;另外还应该提供键盘式选择菜单实现功能选择。第三部分总体设计根据上面的需求分析,可以将这个系统的设计分为以下几个模块:第四部分详细设计主函数主函数设计一般要简单,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。【流程图】[程序]#includestdio.hvoidmenu(){intn,w;do{puts(\t\t**********MENU***********\n\n);学生成绩管理系统数据显示数据查找数据插入成绩排序显示一系列功能选项输入n,判断n是否是0-7根据n的值调用各功能模块函数NY数据输入puts(\t1.browse2.enter3.Search);puts(\t4.browse25.enter26.Search2);puts(\t7.exit);puts(\n\n\t\t*************************\n);printf(Choiceyournumber(1-7):[]\b\b\b\b);scanf(%d,&n);if(n1||n7)/对选择的数字作判断/{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();}2》各功能模块设计输入模块:先采用结构体数组存储数据structa{intxuehao;charname[15];charsex[10];intshushenum;inttelenum;}a[10];structb{intxuehao;intkechenghao;charkechengming[15];intxuefen;intpingshichengji;intshiyanchengji;intjuanmianchengji;intzonghechengji;intshidechengji;}b[10];a[10].b[10]中每个数组元素对应一个学生voidjisuan(){inti,n,n1,n2,n3,n4;for(i=0;i10;i++){if(b[i].shiyanchengji==-1){b[i].zonghechengji=b[i].pingshichengji*0.3+b[i].juanmianchengji*0.7;break;}if(b[i].shiyanchengji!=-1){b[i].zonghechengji=b[i].pingshichengji*0.15+b[i].juanmianchengji*0.7+b[i].shiyanchengji*0.15;break;}if(b[i].zonghechengji90&&b[i].zonghechengji100){n4=b[i].xuefen;b[i].shidechengji=(n4)*(1);break;}elseif(b[i].zonghechengji80&&b[i].zonghechengji90){n3=b[i].xuefen;b[i].shidechengji=(n3)*0.9;break;}elseif(b[i].zonghechengji70&&b[i].zonghechengji80){n2=b[i].xuefen;b[i].shidechengji=(n2)*0.8;break;}elseif(b[i].zonghechengji60&b[i].zonghechengji70){n1=b[i].xuefen;b[i].shidechengji=(n1)*0.7;break;}elseif(b[i].zonghechengji60){n=b[i].xuefen;b[i].shidechengji=n*0;break;}}}此简单程序计算综合成绩与实得学分【程序】enter(){inti,n;printf(Howmanychengjijibenxinxidatas(0-%d)?:,10);scanf(%d,&n);printf(\nEnterdatanow\n\n);for(i=0;in;i++){printf(\nInput%dthchengjijibenxinxirecord.\n,i+1);input(i);}调用输入函数if(i!=0)save(n);调用保存函数printf_back();一个任务结束时让用户选择是浏览还是返回}浏览模块:该模块的功能是显示所有学生记录信息。【流程图】【程序】browse()浏览全部模块{inti,j,n;n=load();加载记录printf_face();调用显示数据结构项目函数for(i=0;in;i++){if(i%10==0){printf(\n\nPassanykeytocontiune...);目的是分屏显示getch();puts(\n\n);}printf_one(i);printf(\n);}调用显示一个记录的函数printf(\tThereare%drecord.\n,n);printf(\nPassanykeytoback....);getch();按任意键menu();}browse2()该浏览模块的功能是显示所有学生的成绩基本信息{inti,j,n;n=load2();printf_face2();for(i=0;in;i++){if(i%10==0){printf(\n\nPassanykeytocontiune...);getch();puts(\n\n);}printf_one2(i);显示学生记录按任意键显示下一屏按任意键返回主菜单printf(\n);}printf(\tThereare%drecord.\n,n);printf(\nPassanykeytoback....);getch();menu();}查找模块;该模块的功能是根据输入的学生姓名查找对应的记录,找到以后,增加删除功能。【流程图】【程序】输入学生的名字是否找到此生记录显示找到的记录提示没有找到YN返回主菜单让用户选择1)。查找另一个2)。修改3).删除4)返回主菜单YN询问用户是否继续查找search()查找学生基本信息的模块{inti,n,k,w1=1,w2,w3,w4;structas;n=load();do{do{k=-1;printf(\n\nEnternumberthatyouwanttosearch!number);scanf(%d,&s.xuehao);输入要修改的数据的学号printf_face();调用显示数据结构项目函数for(i=0;in;i++)查找要修改的数据if(s.xuehao==a[i].xuehao){k=i;printf_one(k);break;}调用显示一个记录的函数if(k==-1){printf(\n\nNoexist!please);printf(\n\nAreyouagain?\n\t1).Again2)Noandback[]\b\b\b);scanf(%d,&w1);}保证在第一次找的的基础上再查找找不到时能退出}while(k==-1&&w1==1);如果W1不等于1时直返回search2()查找学生成绩基本信息的模块{inti,n,k,w1=1,w2,w3,w4;structas;n=load2();do{do{k=-1;printf(\n\nEnternumberthatyouwanttosearch!number);scanf(%d,&s.xuehao);printf_face2();for(i=0;in;i++)if(s.xuehao==a[i].xuehao){k=i;printf_one2(k);break;}if(k==-1){printf(\n\nNoexist!please);printf(\n\nAreyouagain?\n\t1).Again2)Noandback[]\b\b\b);scanf(%d,&w1);}}while(k==-1&&w1==1);删除模块:该模块的功能是先显示所有学生的信息,考虑到记录的数据较多,建议采用分屏显示【程序】Voiddel(){}排序模块:该功能模块的功能是要求将学生记录的综合成绩或实得分升序或降序排序并显示数据。假设这里采用选择法排序。【流程图】【程序】Voidorder()排序模块{intI,j,n;Structstudents;n=load();For(i=0;in-1;i++){}Save(n);Puts(“\n\n”);Printf_back();}设计出的程序如下#includestdio.hvoidmenu(){intn,w;do{puts(\t\t**********MENU***********\n\n);puts(\t1.browse2.enter3.Search);puts(\t4.browse25.enter26.S
本文标题:C语言程序报告学生学籍信息管理系统
链接地址:https://www.777doc.com/doc-7092622 .html