下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 c语言课程设计报告学生成绩信息管理系统源代码

c语言课程设计报告学生成绩信息管理系统源代码.doc

c语言课程设计报告学生成绩信息管理系统源代码

xu行舟
2017-10-08 0人阅读 举报 0 0 暂无简介

简介:本文档为《c语言课程设计报告学生成绩信息管理系统源代码doc》,可适用于综合领域

c语言课程设计报告学生成绩信息管理系统源代码实验报告一、问题陈述及其需求分析(一)问题陈述学生信息管理系统是对学生信息的基本管理其中包括以下及模块:()增加一个学生的信息(需输入要增加学生的所有信息)()统计本班学生总人数及男女生人数。()分别按照学号查找学生的信息若找到则输出该学生全部信息否则输出查找不到的提示信息。()按学号对所有学生信息排序并输出结果()删除一个学生的信息(需指定要删除学生的学号)同时显示删除后的结果。(二)功能需求分析学生信息管理系统设计学生信息包括:学号姓名性别出生年月电话使之提供以下功能:、系统以菜单方式工作、建立链表并显示、插入新的学生信息、删除某学号的学生信息、查找某学号的学生信息、对学生信息排序、统计学生人数、输出学生信息二总体设计(一)模块依据程序的数据结构描述该程序的层次结构如下图:main()菜单函数建添删按对统输学退立加除学学计出生出链学学号生学学信表生生查信生员息并信信找息人信写显息息学排入数息示生文息序信件息、建立链表并显示voidcreatelist(structstucode**r)、插入新的学生信息voidinsert(structstucode**r)、删除某学号的学生信息voiddel(structstucode**r)、查找某学号的学生信息voidsearch(structstucode*r)、对学生信息排序voidsort(structstucode**r)、统计学生人数voidsearch(structstucode*r)、输出学生信息voidout(structstucode*r)(二)程序总体框架模块层次结构只确定了模块之间的关系和函数原型不是程序的执行步骤。程序总体框架是该程序的总体流程图。改程序不是顺序连续地执行全部功能而是在某一时刻有选择地执行一种或多种功能。因此选用菜单方式是较佳的方案程序总体框架如下图:main()菜单输入输出排序添加删除、统计查询退出菜单代码建添删按对统输学退立加除学学计出生出链学学号生学学信表生生查信生员息并信信找息人信写显息息学排数息入息示息生序文信件(三)运行环境(软硬件环境)硬件:CPU,内存主板硬盘显卡键盘显示器等等。软件:WindowsXPtruboc应用软件。(四)开发工具和编程语言开发工具:truboc编程语言:C语言三、详细设计(一)数据结构依据给定学生信息和数据格式数组用结构体实现结构体层次结构:structstud{学号整型longintnum姓名字符串name性别字符串sex出生日期字符串birthday联系方式字符串tel}头文件#include<stdioh>#include<stdlibh>#include<stringh>*定义数据结构和链表*structstud{longnumcharnamecharsexcharbirthdaychartel}typedefstructstucode{structstudstudentstructstucode*next}L(二)、算法说明、主函数的算法设计:清屏、显示子菜单及运用选择操作(运用swith语句)调用各个子函数最后退出程序主要代码:while(flag){system("cls")menu()choose=getchar()switch(choose){}、各个子函数的算法设计、一些显示操作输入相应的内容即可代码:、创建链表并显示学生信息申请空间p=(L*)malloc(sizeof(L))学生信息的输入及显示:p>studentnum=nstrcpy(p>studentname,a)p>next=、学生信息的删除首先查询要删除的学生信息的学号如果存在删除该学生如果不存在给予相应的提示。t=p>nextp>next=p>next>nextfree(t)释放空间、学生信息的排序新建链接然后按要求对学生信息进行排序while(z>nextz>next>studentnum>=p>studentnum)z=z>nextp>next=z>nextz>next=p、学生人数的统计:、学生信息的显示:直接发调用函数即可。四、运行结果五、总结、调试分析()刚编译完后有好多错误和警告运行失败然后经过修改错误警告慢慢减少最终可以运行。()该程序中可能还存在一些小问题比如有的时候它会主动清屏有的时候不会。并且我在编译的过程中发现自己存在好多毛病有粗心了等不注意细节其实自己也知道细节决定成败以后我会注意。、设计总结经过一周的课程设计我学到了很多东西:巩固和加深了对数据结构的理解提高综合运用本课程所学知识的能力。培养了我选用参考书查阅手册及文献资料的能力。培养独立思考深入研究分析问题、解决问题的能力。过实际编译系统的分析设计、编程调试掌握应用软件的分析方法和工程设计方法。够按要求编写课程设计报告书能正确阐述设计和实验结果正确绘制系统和程序框图。通过课程设计培养了我严肃认真的工作作风逐步建立正确的生产观念、经济观念和全局观念。课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会有利于加强我们用知识理论来分析实际问题的能力进而加强了我们对知识认识的实践度巩固了我们的理论知识深化了对知识的认识并为走向社会打下一个良好的基础。在这次课程设计中我遇到许多问题和麻烦得到了老师的帮助和指导才能够使得这次课程设计顺利的进行下去另外在程序调试过程中也得到很多同学的帮助给我及时指出错误提出许多宝贵意见。在此对老师和同学们表示感谢~六、参考文献书籍:谭浩强《C程序设计》(第三版)北京清华大学出版社谭浩强《C程序设计题解与上机指导》(第三版)北京清华大学出版社王为青刘变红《C语言高级编程及实例剖析》人民邮电出版社张建勋《C语言程序设计教程》清华大学出版社李玲桂玮珍刘莲英《C语言程序设计教程习题解答与实验指导》人民邮电出版社源程序:#include<stdioh>#include<stdlibh>#include<stringh>structstud{longnumcharnamecharsexcharbirthdaychartel}typedefstructstucode{structstudstudentstructstucode*next}Lvoidmenu()voidcreatelist(structstucode**r)voidout(structstucode*r)voidsearch(structstucode*r)voidsearch(structstucode*r)voiddel(structstucode**r)voidinsert(structstucode**r)voidsort(structstucode**r)voidmain(){charchooseintflag=structstucode*r=while(flag){system("cls")menu()choose=getchar()switch(choose){case'':createlist(r)out(r)printf("TestingfunctionnPressanykeytocontinuen")getchar()getchar()breakcase'':search(r)printf("TestingfunctionnPressanykeytocontinuen")getchar()getchar()breakcase'':search(r)printf("TestingfunctionnPressanykeytocontinuen")getchar()getchar()breakcase'':del(r)out(r)printf("TestingfunctionnPressanykeytocontinuen")getchar()getchar()breakcase'':insert(r)out(r)printf("TestingfunctionnPressanykeytocontinuen")getchar()getchar()breakcase'':sort(r)out(r)printf("TestingfunctionnPressanykeytocontinuen")getchar()getchar()breakcase'':out(r)printf("TestingfunctionnPressanykeytocontinuen")getchar()getchar()breakcase'':flag=printf("Theendn")getchar()getchar()breakdefault:printf("nWrongSelection!(选择错误,请重选!)n")getchar()getchar()}}}voidcreatelist(structstucode**r){structstucode*p,*tlongncharacharscharbcharmif(*r)*r=printf("n请输入:n学号(请按学号升序排列)姓名性别出生日期电话(若要结束请输入五个为零)n")scanf("ldssss",n,a,s,b,m)if(n==)returnp=(L*)malloc(sizeof(L))p>studentnum=nstrcpy(p>studentname,a)strcpy(p>studentsex,s)strcpy(p>studentbirthday,b)strcpy(p>studenttel,m)p>next=*r=pscanf("ldssss",n,a,s,b,m)while(n){t=pp=(L*)malloc(sizeof(L))p>studentnum=nstrcpy(p>studentname,a)strcpy(p>studentsex,s)strcpy(p>studentbirthday,b)strcpy(p>studenttel,m)p>next=t>next=pscanf("ldssss",n,a,s,b,m)}}voidsearch(structstucode*r){longxif(!r){printf("没有学生信息可查询!n")return}printf("请输入要查询的学生信息的学生学号:n")scanf("ld",x)while(rr>studentnum!=x)r=r>nextif(r==)printf("Error!Nosuchstudent!n")elseprintf("ldssssn",r>studentnum,r>studentname,r>studentsex,r>studentbirthday,r>studenttel)}voidsearch(structstucode*r){inta=,b=,c=if(!r){printf("没有学生信息可统计!n")return}else{while(r){aif(strcmp(r>studentsex,"男")==''){b}if(strcmp(r>studentsex,"女")==){c}r=r>next}}printf("共有学生d人其中男生d人女生d人",a,b,c)}voiddel(structstucode**r){longkstructstucode*p=*r,*tif(!(*r)){printf("没有学生信息可删除!n")return}printf("请输入要删除的学生信息的学生学号:n")scanf("ld",k)if(p>studentnum==k)*r=(*r)>next,free(p)else{while(p>nextp>next>studentnum!=k)p=p>nextif(p>next==)printf("Error!Nosuchstudent!n")else{t=p>nextp>next=p>next>nextfree(t)}}}voidinsert(structstucode**r){longncharacharscharbcharmL*p,*t,*kprintf("n请输入:n学号(请按学号升序排列)姓名性别出生日期电话(若要结束请输入三个为零)n")scanf("ldssss",n,a,s,b,m)p=(L*)malloc(sizeof(L))p>studentnum=nstrcpy(p>studentname,a)strcpy(p>studentsex,s)strcpy(p>studentbirthday,b)strcpy(p>studenttel,m)if(!(*r)){*r=p(*r)>next=return}if(p>studentnum<(*r)>studentnum)p>next=(*r),(*r)=pelse{t=*rk=twhile(t>nextt>next>studentnum<=p>studentnum)t=t>nextp>next=t>nextt>next=p*r=k}}voidsort(structstucode**r){structstucode*t,*p,*q,*zif(!r){printf("没有学生信息可排序!n")return}if(!(*r)||!(*r)>next)returnt=*rp=t>nextt>next=while(p){q=p>nextif(p>studentnum>t>studentnum){p>next=tt=p}else{z=twhile(z>nextz>next>studentnum>=p>studentnum)z=z>nextp>next=z>nextz>next=p}p=q}*r=t}voidout(structstucode*r){printf("nn")if(!r){printf("没有学生信息可输出!n")return}while(r){printf("ldssssn",r>studentnum,r>studentname,r>studentsex,r>studentbirthday,r>studenttel)r=r>next}printf("nn")}voidmenu(){printf("n学生信息管理系统n")printf("n菜单nn")printf("n建立链表并显示n")printf("n查找某学号的学生信息n")printf("n查找某姓名的学生信息n")printf("n删除某学号的学生信息n")printf("n插入新的学生信息n")printf("n按学号降序排列输出n")printf("n输出n")printf("n退出n")printf("n请选择您要执行的选项:n")}

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/19

c语言课程设计报告学生成绩信息管理系统源代码

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利