ImageVerifierCode 换一换
格式:DOC , 页数:62 ,大小:1.22MB ,
资源ID:3573963      下载积分:14 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3573963.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(学籍管理系统-C语言程序课设报告.doc)为本站上传会员【人****来】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

学籍管理系统-C语言程序课设报告.doc

1、北*学课程设计报告课程名称: C语言程序设计课设 项目名称: 学籍管理系统 学院: 专业: 姓名: 学号: 指导教师: 成 绩: 2010年6月4日目 录第1部分 课程设计题目与要求11.问题描述12.功能要求13.任务分工3第2部分 学籍管理系统的设计与功能实现41.总体设计42.数据结构53.算法设计54.程序代码设计115.测试与调试11第3部分 课程设计总结121.个人总结122.结束语12附录 程序清单13附录 用户使用说明书13参考文献13C程序课设学籍管理系统第1部分 课程设计题目与要求1.问题描述为了分析教学效果并进行相应的学籍处理,各学校每到学期末都对综合成绩进行分类统计、上

2、报成绩汇总结果等,这给每位老师和学籍管理人员带来很大的工作量。使用学籍管理系统可以减少工作者的工作负担。为了方便管理人员查找学生信息,在创新功能中,增加查询成绩功能,增加按学科成绩排名的功能,由于学籍管理系统涉及学生成绩及信息的安全,所以有必要给系统增加密码保护的功能,以保护系统信息的安全。2.功能要求循环显示如图-1所示的主菜单。其中,原始数据的排列是无序的。系统应能够保留原始成绩单。图-1在主菜单选择1:可以进行成绩的录入。在主菜单选择2:进入如图-2的子菜单,并统计成绩。在此可以计算平均、统计各分数段、按学号排序、按平均分排序。在子菜单选择1时,将该班学生的成绩按学号升序排序后的顺序存入

3、std.dat文件中,以方便打印。在子菜单选择2时,求出每位学生的平均分,并按平均分从高到低的顺序进行排序后,写入文件sort.dat中。在子菜单选择3时,统计出各门课、各分数段学生的人数,并如下表的形式输出。在子菜单选择4,返回主菜单;选择0,退出整个系统。 图-2在主菜单选择3:进入如图-3所示的子菜单,处理学籍。在子菜单中选择1,为不及格的学生打印重考通知单时,应在通知单上写明重考的课程、时间和地点(由键盘输入)。为了参加多门课重考的学生完成补考,应避免时间重复。在子菜单中选择2,为3门以上不及格的学生打印退学通知单。通知单上应写明学生的学号、姓名、退学原因(几门课不及格,成绩是多少)。

4、在子菜单中选择3时,删除已退学 的学生信息,将该班中升入高年级的学生信息写入文件next.dat中。在子菜单 选择4,返回主菜单;选择0,退出整个系统。 图-3在主菜单中选择4:进入如图-4所示的子菜单,在子菜单中选择1时,可以用学生的学号或姓名查询学生的成绩。在子菜单中选择2时,可以选择5门课查看五门单科成绩排名,在子菜单中选择3,可以对系统程序进行密码设置,以保护系统程序中的信息安全。 图-4在主菜单中选择5:可以显示我们组成员信息。如图-5所示。 图-5在主菜单中选择0:显示结束信息。按任意键后,退出系统。主菜单和子菜单 能够循环出现,每一项菜单执行之后,询问用户是否继续进行。从子菜单

5、可以返回到主菜单。3.任务分工我们小组成员有C,B和A。此程序是由我们共同完成的。由C负责录入成绩模块(void mycreate voidmyprintf1() void myprintf2() void myprintf3() void myrintf4()函数),B负责统计成绩模块(void mychongji函数,其中包括void mypiauxu1() 、void mypianxu2() 、void mypianxu3()函数),A负责主模块,学籍处理模块和创新功能模块(包括void chulixueji() void chuanxin函数,其中包括void bukao(),void

6、 tuixue(), void shengxue(),void chaxun(),void xueke(),void shezhimima()函数)。60第2部分 学籍管理系统的设计与功能实现1.总体设计根据题目要求,本系统分为一个主模块和五个子模块,其中,子模块包括录入成绩模块、统计成绩模块、处理学籍模块、创新功能模块和关于我们等五个模块。系统功能结构图如下图所示:本系统包括以下12个函数:(1)void myprintf1();函数功能:输出主菜单。(2)void myprintf2();函数功能:输出成绩统计子菜单。(3)void myprintf3();函数功能:输出学籍处理子菜单。(

7、4)void myprintf4();函数功能:输出创新功能子菜单。(5)void myprintf5();函数功能:输出关于我们模块内容。(6)void mycreate();函数功能:定义录入成绩函数,通过键盘输入学生学号,姓名和各科成绩并存放到文件中。(7)void pianxu1(struct student stu,int n);函数功能:定义按学号排序函数,将所有学生的信息通过学号进行排序(被void mytongji函数调用)。(8)void pianxu2(struct student stu,int n);函数功能:定义按平均分排序函数,将所有学生的信息通过其平均分进行排序(

8、被void mytongji函数调用)。(9)void pianxu3(struct student stu,int n);函数功能:定义统计各科分数段函数,将所有学生的各科成绩进行统计,按分数段进行输出(被void mytongji函数调用)。(10)void mytongji();函数功能:定义成绩统计函数。(11)void bukao(struct student stu,int n);函数功能:定义生成并打印补考通知单(被void chulixueji函数调用)。(12)void tuixue(struct student stu,int n);函数功能:定义生成并打印退学通知单(被c

9、hulixueji函数调用)。(13)void shengxue(struct student stu,int n);函数功能:定义生成并打印新名册(被chulixueji函数调用)。(14)void chulixueji();函数功能:定义处理学籍函数。(15)void chaxun(struct student stu,int n);函数功能:定义查询成绩函数(被函数void chuanxin()调用)。(16)void xueke(struct student stu,int n);函数功能:定义学科成绩排名函数(被函数void chuanxin()调用)。(17)void shezhi

10、mima();函数功能:定义密码保护函数(被函数void chuanxin()调用)。(18)void chuanxin();函数功能:定义创新功能函数。2.数据结构学生信息项用结构体student表示,其中包括7个属性,学号num,姓名name,5门成绩chengji5。struct student char num10,name15;int chengji5;学生补考信息项用结构体bukaoxinxi表示,其中包括6个属性,补考时间time1,补考地点size1,补考时间time2,补考地点size2,补考时间time3,补考地点size3。struct bukaoxinxichar ti

11、me110,time210,time310,size110,size210,size310;3.算法设计系统主函数mian()设计录入成绩模块函数void mycreate设计成绩统计模块函数void tongji设计处理学籍模块函数void chulixueji设计 创新功能模块函数void chuanxin设计关于我们模块函数void myprintf5设计4.程序代码设计(1)主模块函数部分代码domyprintf1();printf( );choose=getch();printf(n);switch(choose)case 1:/*录入成绩*/mycreate();break;cas

12、e 2:/*统计成绩*/mytongji();break;case 3:/*处理学籍*/chulixueji();break;case 4:/*创新功能*/chuanxin();break;case 5:/*关于我们*/myprintf5();break;case 0:/*退出系统*/system(cls);printf(nnnnnnn =n 感谢使用本软件,已正常退出,按任意键结束!n =nnnn );exit(0);default :printf( %c为非法选项,请重新输入!按任意键继续!n ,choose);getch();while(choose!=0);此为主模块的主要代码。用do

13、-while循环,显示主菜单,再用getch来输入要选择的项choose,用switch来判断所选的,然后执行相应的函数,如选择1,就执行mycreate函数等。如果输入 的不是0-5,就会一直的循环,直到输入的是0-5选项。(2) 录入成绩模块函数部分代码fp=fopen(chengji.dat,a);dofflush(stdin);/清除缓存printf( 请输入学生的成绩:n);printf( 学号(按#结束输入):);dogets(temp.num);while(strcmp(temp.num,)=0);printf( 姓名(按#结束输入):);dogets(temp.name);wh

14、ile(strcmp(temp.name,)=0);printf( 请依次输入高数、英语、物理、编程、马哲成绩:);scanf(%d%d%d%d%d,&temp.chengji0,&temp.chengji1,&temp.chengji2,&temp.chengji3,&temp.chengji4);if(temp.num0!=#&temp.name0!=#)fprintf(fp,%s %s %d %d %d %d %d n,temp.num,temp.name,temp.chengji0,temp.chengji1,temp.chengji2,temp.chengji3,temp.cheng

15、ji4);while(temp.num0!=#&temp.name0!=#);fclose(fp);程序开始先以“a”方式打开文件chengji.dat,显示提示输入内容,用do-while循环将输入成绩包裹在内,当输入的不是“#”号,就继续执行循环,继续输入 成绩。循环内又镶有do-while循环,要判断输入的是不是为空,若为空,则重新输入。然后将输入的内容写入文件chengji.dat中,当输入的为“#”号时,跳出循环,结束输入。(3)统计成绩模块函数部分代码for(i=0;in-1;i+)k=i;for(j=i+1;j0)k=j;t=stuk;stuk=stui;stui=t;这是用选择

16、排序法对学生的信息按学号进行排序。for(i=0;in;i+)avei=(stui.chengji0+stui.chengji1+stui.chengji2+stui.chengji3+stui.chengji4)/5.0;for(i=0;in-1;i+)k=i;for(j=i+1;javej)k=j;t2=stuk;stuk=stui;stui=t2;t1=avek;avek=avei;avei=t1;用for循环计算每一位学生的平均分ave,再用选择排序法对每一位学生按平均分进行排序。for(i=0;in;i+)/统计高数各分数段的人数if(stui.chengji0/106)gaoshu

17、4+;elseif(stui.chengji0/10=10)gaoshu0+;elsegaoshu9-(stui.chengji0/10)+;这是统计高数各分数段的人数。用for循环对每一位学生的高数成绩进行判断,stui.chengji0/106是指学生的成绩小于60分,并在高数60分以下的人数增一。stui.chengji0/10=10是指学生的成绩等于100分,并在高数90分以上的人数增一。gaoshu9-(stui.chengji0/10)+;是指对学生的每一分数段的人数进行统计,并在相应的人数段增一。domyprintf2();printf( );choose=getch();pri

18、ntf(n);switch(choose)case 1:pianxu1(stu,i);break;case 2:pianxu2(stu,i);break;case 3:pianxu3(stu,i);break;case 4:return;case 0:system(cls);printf(nnnnnnn =n 感谢使用本软件,已正常退出,按任意键结束!n =nnnn );exit(0);default :printf( %c为非法选项,请重新输入!按任意键继续!,choose);getch();while(choose!=0);此为成绩统计功能模块的主要代码。用do-while循环,显示成绩统

19、计模块子菜单,再用getch来输入要选择的项choose,用switch来判断所选的,然后执行相应的函数。如果输入的不是0-4,就会一直的循环,直到输入的是0-4选项。(4)学籍处理模块函数部分代码for(i=0;i0&counti=3)k=0;for(j=0;j5;j+)if(stui.chengjij60)k+;if(k=1)switch(j) case 0:printf(%15s学生高数不及格,请输入他的补考时间和地点:,stui.name);scanf(%s%s,&bukaoreni.time1,&bukaoreni.size1);break; case 1:printf(%15s学生

20、英语不及格,请输入他的补考时间和地点:,stui.name);scanf(%s%s,&bukaoreni.time1,&bukaoreni.size1);break; case 2:printf(%15s学生物理不及格,请输入他的补考时间和地点:,stui.name);scanf(%s%s,&bukaoreni.time1,&bukaoreni.size1);break; case 3:printf(%15s学生编程不及格,请输入他的补考时间和地点:,stui.name);scanf(%s%s,&bukaoreni.time1,&bukaoreni.size1);break; default

21、:printf(%15s学生马哲不及格,请输入他的补考时间和地点:,stui.name);scanf(%s%s,&bukaoreni.time1,&bukaoreni.size1);break;if(k=2)dol=0;switch(j) case 0:printf( 高数不及格,请输入他的补考时间和地点:);scanf(%s%s,&bukaoreni.time2,&bukaoreni.size2);break; case 1:printf( 英语不及格,请输入他的补考时间和地点:);scanf(%s%s,&bukaoreni.time2,&bukaoreni.size2);break; ca

22、se 2:printf( 物理不及格,请输入他的补考时间和地点:);scanf(%s%s,&bukaoreni.time2,&bukaoreni.size2);break; case 3:printf( 编程不及格,请输入他的补考时间和地点:);scanf(%s%s,&bukaoreni.time2,&bukaoreni.size2);break; default :printf( 马哲不及格,请输入他的补考时间和地点:);scanf(%s%s,&bukaoreni.time2,&bukaoreni.size2);break;if(strcmp(bukaoreni.time2,bukaoren

23、i.time1)=0)l=1;printf( 您输入的时间冲突!请重新输入!n);while(l=1);if(k=3)dol=0;switch(j) case 0:printf( 高数不及格,请输入他的补考时间和地点:);scanf(%s%s,&bukaoreni.time3,&bukaoreni.size3);break; case 1:printf( 英语不及格,请输入他的补考时间和地点:);scanf(%s%s,&bukaoreni.time3,&bukaoreni.size3);break; case 2:printf( 物理不及格,请输入他的补考时间和地点:);scanf(%s%s,

24、&bukaoreni.time3,&bukaoreni.size3);break; case 3:printf( 编程不及格,请输入他的补考时间和地点:);scanf(%s%s,&bukaoreni.time3,&bukaoreni.size3);break; default :printf( 马哲不及格,请输入他的补考时间和地点:);scanf(%s%s,&bukaoreni.time3,&bukaoreni.size3);break;if(strcmp(bukaoreni.time3,bukaoreni.time1)=0)l=1;printf( 您输入的时间冲突!请重新输入!n);if(s

25、trcmp(bukaoreni.time3,bukaoreni.time2)=0)l=1;printf( 您输入的时间冲突!请重新输入!n);while(l=1);这是对成绩不及格科目少于等于3科的学生生成并打印补考通知单的代码,先对学生成绩不及格科目进行统计,若学生不及格科目数count大于0而小于等3时,该学生就要进行补考,利用for循环,对每一个学生每一门科进行判断,若该门科不及格,就要求为他输入补考的时间和地点,用switch要判断学生是哪门科不及格,再用if来判断学生的补考时间是否有冲突。最后,再用for循环逐一将需要补考的学生显示出来。for(i=0;in;i+)for(j=0;j

26、5;j+)if(stui.chengjij3)printf( %-15s %-15s,stui.num,stui.name);for(j=0;j5;j+) if(stui.chengjij60)switch(j) case 0:printf(高数 %-4d,stui.chengji0);break; case 1:printf(英语 %-4d,stui.chengji1);break; case 2:printf(物理 %-4d,stui.chengji2);break; case 3:printf(编程 %-4d,stui.chengji3);break; default :printf(马

27、哲 %-4d,stui.chengji4);break;printf(n);这是学生退学名单的代码,用for循环对不及格科目大于3科的学生进行统计,再用switch将其每一门不及格的科目 显示出来。for(i=0;in;i+)for(j=0;j5;j+)if(stui.chengjij60)counti+;if(counti=3)printf( %-15s %-15s %-7d%-7d%-7d%-7d%-7dn,stui.num,stui.name,stui.chengji0,stui.chengji1,stui.chengji2,stui.chengji3,stui.chengji4);fp

28、rintf(fp,%s %s %d %d %d %d %dn,stui.num,stui.name,stui.chengji0,stui.chengji1,stui.chengji2,stui.chengji3,stui.chengji4);用for循环对每一位学生的每一不及格门科进行统计,再用if判断每一个学生的不及格科目是否不大于3,当不及格科目count 不大于3时,将其输出并写入文件next.dat中。(5)创新功能模块函数部分代码printf( 请输入要查询的学号:); gets(a); for(i=0;itime1,bukaoreni-size1);错误error C2232: -

29、time1 : left operand has struct type, use .,经查是运算符的优先级的问题,按照系统指示,将“-”改成“.”问题就解决了。4、整个程序调试如下 (1)运行主程序,出现主界面按任意键后,出现主菜单界面如下(2)调试1功能,出现提示信息因为原有记录,因此输入y,并输入学生“带头大哥”的成绩,如图然后输入# 号结束输入,跳回主菜单。功能1运行正常。(3)调试功能2,出现成绩统计子菜单,如图输入1后,程序显示如图成绩单正常。按y 后返回成绩统计子菜单。输入2后,程序显示成绩统计正常。这时,验证“要继续选择吗(Y/N)?”,按N后,程序运行显示按任意键后,程序自动

30、关闭。重启程序,并回到成绩统计子菜单,选择3后,程序运行显示程序运行结果正常。输入Y,再输入0后,运行结果如下 程序运行结果正常。(4)重启程序,选择3,调试功能3,程序显示处理学籍子菜单选择1,并为补学生输入补考时间和地点,程序运行显示程序运行正常。返回子菜单,选择2,程序运行显示程序运行结果正常。返回子菜单,选择3,程序运行显示程序运行结果正常。程序能正常返回主菜单。(5)调试功能4,程序运行显示创新功能子菜单选择1,输入x,按学号查询,程序显示回车后程序运行结果正确。按姓名查询如下程序运行正常。当输入一个错误的查询学号,如109302100程序运行结果正确。返回,选择2,程序运行显示输入1程序运行结果正常。返回选择3,进入密码设置,因先前并无设置密码,因此程序运行显示输入密码后回车为了验证密码是否已设置,再进入密码设置返回,结果程序运行,重启,验证是否密码生效程序运行显示此时,在程序启动后,要求输入密码,若密码输入错,则程序显示输入正常密码后,程序顺利进入主菜单。功能4正常。(6)调试功能5,即关于我们模块,主菜单下,选择5,程序运行显示按任意键后,程序返回到主菜单 。关于我们模块正常。(7)主菜单 下,选择0,程序自动关闭。(8)主菜单 下,输入除0-5外的字符,程序显示 经过调试,程序功能正常,运行结果正确。第3部分 课程设计总结1.个人总结2009110302104C

移动网页_全站_页脚广告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 

客服