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

上传人:Che****ry 文档编号:34262687 上传时间:2022-08-15 格式:PDF 页数:18 大小:133.92KB
返回 下载 相关 举报
2022年c语言课程设计报告+学生成绩信息管理系统+源代码 .pdf_第1页
第1页 / 共18页
2022年c语言课程设计报告+学生成绩信息管理系统+源代码 .pdf_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《2022年c语言课程设计报告+学生成绩信息管理系统+源代码 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言课程设计报告+学生成绩信息管理系统+源代码 .pdf(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1 实验报告一、 问题陈述及其需求分析(一) 问题陈述学生信息管理系统是对学生信息的基本管理,其中包括以下及模块:(1)增加一个学生的信息(需输入要增加学生的所有信息);(2)统计本班学生总人数及男女生人数。(3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。(4)按学号对所有学生信息排序,并输出结果;(5) 删除一个学生的信息 (需指定要删除学生的学号) ; 同时显示删除后的结果。( 二 ) 功能需求分析学生信息管理系统设计学生信息包括:学号,姓名,性别,出生年月,电话使之提供以下功能:1、 系统以菜单方式工作2、建立链表并显示3、插入新的学生信息4、删

2、除某学号的学生信息5、查找某学号的学生信息6、对学生信息排序7、统计学生人数8、输出学生信息二 总体设计(一)模块依据程序的数据结构,描述该程序的层次结构,如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 2 1、建立链表并显示void createlist(struct stucode *r); 2、插入新的学生信息void insert(struct stucode *r); 3、删除某学号的学生信息void del

3、(struct stucode *r); 4、查找某学号的学生信息void search1(struct stucode *r); 5、对学生信息排序void sort(struct stucode *r); 6、统计学生人数void search2(struct stucode *r); 7、输出学生信息void out(struct stucode *r); 1 建立链表并显示2添加学生信息3删除学生信息息4 按学号查找学生信5 对学生信息排序6统计学生人数7输出学员信息8 学生信息写入文件0退出main() 菜单函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - -

4、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - 3 (二)程序总体框架模块层次结构,只确定了模块之间的关系和函数原型,不是程序的执行步骤。程序总体框架是该程序的总体流程图。改程序不是顺序连续地执行全部功能,而是在某一时刻有选择地执行一种或多种功能。因此选用菜单方式是较佳的方案,程序总体框架如下图:菜单代码1建立链表并显示2添加学生信息3删除学生信息息4 按学号查找学生5 对学生信息排序6统计学生人数7输出学员信息息8 学生信息写入文0退出main() 菜单1 输入2 输出3 排序4 添加5 删除6

5、、统计7 查询8 退出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 4 (三 ) 运行环境(软,硬件环境)硬件: CPU, 内存, 主板, 硬盘, 显卡, 键盘,显示器等等。软件: Windows XP trubo c 应用软件。(四)开发工具和编程语言开发工具: trubo c 编程语言: C 语言三、详细设计(一)数据结构依据给定学生信息和数据格式,数组用结构体实现,结构体层次结构:struct stud 学号整型lon

6、g int num; 姓名字符串name20; 性别字符串sex2; 出生日期字符串birthday12; 联系方式字符串tel12; ; 头文件#include #include #include /*定义数据结构和链表 */ struct stud long num; char name20; char sex2; char birthday12; char tel12; ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - -

7、 5 typedef struct stucode struct stud student ; struct stucode *next; L; (二) 、算法说明1、主函数的算法设计:清屏、显示子菜单及运用选择操作(运用swith语句) ,调用各个子函数,最后退出程序,主要代码:while(flag) system(cls); menu(); choose=getchar(); switch(choose) 2、各个子函数的算法设计1、一些显示操作,输入相应的内容即可代码:2、创建链表并显示学生信息申请空间 p=(L *)malloc(sizeof(L); 学生信息的输入及显示:p-stud

8、ent.num=n; strcpy(p-student.name,a); p-next=NULL; 3、学生信息的删除首先查询要删除的学生信息的学号,如果存在删除该学生, 如果不存在给予相应的提示。t=p-next; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 6 p-next=p-next-next; free(t);/释放空间4、学生信息的排序新建链接,然后按要求对学生信息进行排序while(z-next&z-next

9、-student.num=p-student.num) z=z-next; p-next=z-next; z-next=p; 5、学生人数的统计:6、学生信息的显示 :直接发调用函数即可。四、运行结果五、总结1、调试分析(1)刚编译完后有好多错误和警告,运行失败, 然后经过修改错误警告慢慢减少,最终可以运行。(2)该程序中可能还存在一些小问题,比如有的时候它会主动清屏,有的时候不会。并且我在编译的过程中发现自己存在好多毛病,有粗心了等, 不注意细节,其实自己也知道细节决定成败,以后我会注意。2、设计总结经过一周的课程设计,我学到了很多东西:巩固和加深了对数据结构的理解,提高综合运用本课程所学知

10、识的能力。培养了我选用参考书, 查阅手册及文献资料的能力。 培养独立思考, 深入研究,分析问题、解决问题的能力。过实际编译系统的分析设计、编程调试, 掌握应用软件的分析方法和工程设计方法。够按要求编写课程设计报告书,能正确阐述设计和实验结果, 正确绘制系统和程序框图。通过课程设计, 培养了我严肃认真的工作作风,逐步建立正确的生产观念、 经济观念和全局观念。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 7 课程设计是把我们所学

11、的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度, 巩固了我们的理论知识, 深化了对知识的认识, 并为走向社会打下一个良好的基础。在这次课程设计中我遇到许多问题和麻烦,得到了老师的帮助和指导, 才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中, 也得到很多同学的帮助, 给我及时指出错误, 提出许多宝贵意见。 在此对老师和同学们表示感谢!六、参考文献书籍: 谭浩强 C程序设计(第三版)北京清华大学出版社谭浩强C 程序设计题解与上机指导 (第三版)北京清华大学出版社王为青 刘变红 C 语言高级编程及实例剖析人

12、民邮电出版社张建勋 C 语言程序设计教程清华大学出版社李玲 桂玮珍 刘莲英 C 语言程序设计教程习题解答与实验指导人民邮电出版社源程序:#include #include #include struct stud long num; char name20; char sex2; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 8 char birthday12; char tel12; ; typedef struct st

13、ucode struct stud student ; struct stucode *next; L; void menu(); void createlist(struct stucode *r); void out(struct stucode *r); void search1(struct stucode *r); void search2(struct stucode *r); void del(struct stucode *r); void insert(struct stucode *r); void sort(struct stucode *r); void main()

14、char choose; int flag=1; struct stucode *r=NULL; while(flag) system(cls); menu(); choose=getchar(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - 9 switch(choose) case 1: createlist(&r); out(r); printf(Testing function 1nPress any key to

15、 continuen); getchar(); getchar(); break; case 2: search1(r); printf(Testing function 1nPress any key to continuen); getchar(); getchar(); break; case 3: search2(r); printf(Testing function 1nPress any key to continuen); getchar(); getchar(); break; case 4: del(&r); out(r); printf(Testing function 1

16、nPress any key to continuen); getchar(); getchar(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - 10 break; case 5: insert(&r); out(r); printf(Testing function 1nPress any key to continuen); getchar(); getchar(); break; case 6: sort(&r);

17、 out(r); printf(Testing function 1nPress any key to continuen); getchar(); getchar(); break; case 7: out(r); printf(Testing function 7nPress any key to continuen); getchar(); getchar(); break; case 0: flag=0; printf(The end.n); getchar(); getchar(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -

18、 - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - 11 break; default: printf(nWrong Selection!(选择错误 ,请重选 !)n);getchar(); getchar(); void createlist(struct stucode *r) struct stucode *p,*t; long n; char a20; char s4; char b12; char m12; if(*r) *r=NULL; printf( n 请输入: n 学号(请按学号升序排列)姓名 性别出生日期电

19、话(若要结束请输入五个为零)n); scanf(%ld%s%s%s%s,&n,a,s,b,m); if(n=0) return; p=(L *)malloc(sizeof(L); p-student.num=n; strcpy(p-student.name,a); strcpy(p-student.sex,s); strcpy(p-student.birthday ,b); strcpy(p-student.tel,m); p-next=NULL; *r=p; scanf(%ld%s%s%s%s,&n,a,s,b,m); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -

20、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 18 页 - - - - - - - - - 12 while(n) t=p; p=(L *)malloc(sizeof(L); p-student.num=n; strcpy(p-student.name,a); strcpy(p-student.sex,s); strcpy(p-student.birthday ,b); strcpy(p-student.tel,m); p-next=NULL; t-next=p; scanf(%ld%s%s%s%s,&n,a,s,b,m); void s

21、earch1(struct stucode *r) long x; if(!r) printf(没有学生信息可查询 !n); return ; printf( 请输入要查询的学生信息的学生学号:n); scanf(%ld,&x); while(r&r-student.num!=x) r=r-next; if(r=NULL) printf(Error! No such student !n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 18 页 - - - - -

22、- - - - 13 else printf(%ld %s %s %s %sn,r-student.num,r-student.name,r-student.sex,r-student.birthday,r-student.tel); void search2(struct stucode *r) int a=0,b=0,c=0; if(!r) printf(没有学生信息可统计 !n); return ; else while(r) a+; if(strcmp(r-student.sex,男)=0)b+; if(strcmp(r-student.sex,女)=0)c+; r=r-next; p

23、rintf(共有学生 %d 人,其中男生 %d 人,女生 %d 人,a,b,c); void del(struct stucode *r) long k; struct stucode *p=*r,*t; if(!(*r) printf(没有学生信息可删除!n); return ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 18 页 - - - - - - - - - 14 printf( 请输入要删除的学生信息的学生学号:n); scanf(%ld,&k); i

24、f(p-student.num=k) *r=(*r)-next,free(p); else while(p-next&p-next-student.num!=k) p=p-next; if(p-next=NULL) printf(Error! No such student !n); else t=p-next; p-next=p-next-next; free(t); void insert(struct stucode *r) long n; char a20; char s4; char b12; char m12; L *p,*t,*k; 名师资料总结 - - -精品资料欢迎下载 -

25、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 18 页 - - - - - - - - - 15 printf( n 请输入: n 学号(请按学号升序排列)姓名 性别出生日期电话(若要结束请输入三个为零)n); scanf(%ld%s%s%s%s,&n,a,s,b,m); p=(L *)malloc(sizeof(L); p-student.num=n; strcpy(p-student.name,a); strcpy(p-student.sex,s); strcpy(p-student.birthday ,b)

26、; strcpy(p-student.tel,m); if(!(*r) *r=p; (*r)-next=NULL; return ; if(p-student.numstudent.num) p-next=(*r),(*r)=p; else t=*r; k=t; while(t-next&t-next-student.numstudent.num) t=t-next; p-next=t-next; t-next=p; *r=k; void sort(struct stucode *r) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -

27、 - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - - - - - - 16 struct stucode *t,*p,*q,*z; if(!r) printf(没有学生信息可排序 !n); return ; if(!(*r)|!(*r)-next) return; t=*r; p=t-next; t-next=NULL; while(p) q=p-next; if(p-student.numt-student.num) p-next=t; t=p; else z=t; while(z-next&z-next-student.num=p-student.

28、num) z=z-next; p-next=z-next; z-next=p; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 18 页 - - - - - - - - - 17 p=q; *r=t; void out(struct stucode *r) printf(nn); if(!r) printf(没有学生信息可输出 !n); return ; while(r) printf(%ld %s %s %s %sn,r-student.num,r-student.n

29、ame,r-student.sex,r-student.birthday,r-student.tel); r=r-next; printf(nn); void menu() printf(n 学生信息管理系统 n); printf(n 菜单nn); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 18 页 - - - - - - - - - 18 printf(n 1 建立链表并显示 n); printf(n 2 查找某学号的学生信息 n); printf(n 3 查找某姓名的学生信息 n); printf(n 4 删除某学号的学生信息 n); printf(n 5 插入新的学生信息 n); printf(n 6 按学号降序排列输出 n); printf(n 7 输出n); printf(n 0 退出n); printf(n 请选择您要执行的选项 :n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com