学生成绩管理系统课程设计(论文)(编辑修改稿)内容摘要:

\t\t☆☆☆李世正☆☆☆ )。 printf( \ n\ n)。 getchar()。 } 结束语提示 是在退出程序时对制作人的显示,它可以在主界面里按“ 0”键退出如图 图 系统退出时的结束语展示 19 4 系统 测试 测试分析主要是对学生成绩管理系统的一次运行,从中找出漏洞,让程序更加完美。 增加学生记录测试 测试学生记录增加时,随机选取几个姓名和成绩进行测试,程序运行正常如图 图 增加学生记录 打开文件测试 20 打开文件测试是将以前保存好的文件打开,经过测试,程序能正常打开文件如图 图 4. 2 打开文件 学生成绩排序 学生排序测试时,成绩能正常排列 如图 和图 21 图 按照名次排序 22 图 按照学号排序 查询学生成绩记录 查询学生成绩测试时,成绩能正常显示如图 和 图 为按照学号查找学生记录 23 图 按照学生姓名查找 退出学生成绩查询系统 退出系统是,结束语正常显示如图 程序能正常退出 24 图 退出学生查询系统测试 25 5 课程设计总结 这个系统提供了便捷的操作,让管理者可以 方便的记载学生的成就,信息,数据。 这 是一个综合性较强,较实际的一个编程软件。 通过一周的编程及调试程序,感觉自己对 C 的知识有加深了一层,在这个科技飞速发展的时代,掌握电脑的应用是如今每一位大学生所必须掌握的,掌握电脑知识对于现代人来说都有很重要的作用,掌握电脑知识也是一种本领,也是一种生存技能,可以在以后的工作铺好坚实的道路。 刚开始的时候程序出现很多问题,有时候感觉很苦恼、很烦躁,到那时我并没有放弃,我知道学计算机的就是很枯燥无味,需要耐心,我还是坚持了下来。 本系统的重点就是要理清思路,如何实现想要的结果,所以分成了几大类模块,我做的学生 成绩管理系统主要包括这几个模块,增加、查询、排序、修改、删除、统计、显示等几大类模块,其他我感觉还比较容易,但就是排序这一块,我参考了很多资料,有冒泡法排序、选择法排序、交换法排序等等,其他的我都不太熟悉,所以这里我用了选择法排序,实现想要的结果。 后想说的是,调试程序真的很关键。 调试程序需要较大的耐心。 可能调试程序的时间比自己编写整个程序的时间还要长,下的工夫还要深,但这是一个程序员 必须了解、接受的事实。 通过这个实训的练习,我也学到了很多东西,特别是加深了 C 的理解和应用。 但是为了更好的发展,我还是会好好学习 ,更深层的掌握专业知识。 并且在这两周的实训期间,当在课程设计过程中遇到模棱两可的问题时,同学们能过各抒己见,尊重他人见解,使我能够综 26 合各种观点,取长补短,虚心借鉴,使程序做得更尽人意;当遇到我们都无法解决的问题时,有辅导老师耐心讲解,详细地指出了程序中的错误,不仅帮我解决了当前编程中的问题,而且使我加深了对 C 语言的认识,为以后的学习铺平了道路。 感谢他们,他们不仅是我收获了更多的知识,丰富了学习经验,而且使我养成了“严谨治学”的学习态度,使我拥有了面对困难的勇气,并且体会到了浓浓的师生情。 这必定是我人生中 一笔宝贵的财富,再次感谢他们。 另外,关于删除,这个系统提供了普通的按照学号来删除该学生的个人信息及相关成绩的功能。 当然,再不知道学号的情况下,这个系统还提供了按照姓名来删除的条件。 (这样一来,有同名的就会有点麻烦,在这方面还需要改进 ) 27 参考文献 [ 1]谭浩强 .C 程序设计 .北京:清华大学出版社, 20xx,4; [ 2] C 语言程序设计实例精编; [ 3] C 语言程序设计课本; 28 附录 系统源代码: ifndef H_S TUDEN T_HH define H_S TUDEN T_HH include include string. h include malloc. h define L EN s izeo f(st r uct me ssa ge_s t ude nt ) /* 一个结构体数组元素的长度 */ define numsubs 5 /*学科数目 */ typedef struct message_stude nt /* 结构体定义 */ { char number[6]。 char name[20]。 char sex[4]。 float subject[nums ubs]。 float score。 float average。 int index。 } student。 extern int numstus。 /*学生数目 */ extern student *pointer。 /* 指向结构体数组 */ extern int lens。 int menu_selec t( )。 /*函数声明 */ int openfile (st ude nt stu[])。 /* 打开 文件 */ 29 int findrecord(s t ude nt stud[])。 /* 查找信息 */ int w r it etot e xt( st ude nt st ud[ ])。 /* 将所有记录写入文件 */ void wele()。 /*欢迎界面 */ void display1()。 /*展示制作人信息 */ void showtable()。 /*展示在桌面 */ void sort(student stu[])。 /* 将学生排序 */ void deleterecord(st ude nt stu[],int i)。 /* 删 除信息 */ void addrecord(student stud[])。 /* 增加记录 */ vo id d isp la y( st ude nt s t ud[], int n1, int n2)。 /* 显示数据*/ void amendrecord(st ude nt stud[])。 /* 修改记录 */ void count(stude nt stud[])。 /* 计算名次 */ void sortnum( st ude nt stud[])。 void sortnum2( st ude nt stud[])。 void sortname (st ude nt stud[])。 void sortname2(st ude nt stud[])。 void sortcount(st ude nt stud[])。 void sortcount2(st ude nt stud[])。 void statistic (st ud e nt stud[])。 /* 输出统计信息 */ void display1()。 endif int menu_selec t( ) /*展示在桌面上 */ { char c。 printf( \ n\ n)。 pr int f( ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ \n)。 pr int f( ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ \n)。 pr int f( ┏ ━ ━ ━ ━ ━ ━ ━ ━ ━ ┳ ━ ━ ━ ━━━━━┓ \n)。 pr int f( ☆┃ 1. 增加学生记录 ┃ 息 ┃☆ \n)。 30 pr int f( ┣ ━ ━ ━ ━ ━ ━ ━ ━ ━ ╋ ━ ━ ━ ━━━━━┫ \n)。 pr int f( ☆┃ 2. 查询学生记录 ┃ 6. 打开文件 ┃☆ \n)。 pr int f( ┣ ━ ━ ━ ━ ━ ━ ━ ━ ━ ╋ ━ ━ ━ ━━━━━┫ \n)。 pr int f( ☆┃ 3. 修改学生记录 ┃ 件 ┃☆ \n)。 pr int f( ┣ ━ ━ ━ ━ ━ ━ ━ ━ ━ ╋ ━ ━ ━ ━━━━━┫ \n)。 pr int f( ☆┃ 4. 学生纪录排序 ┃ 录 ┃☆ \n)。 pr int f( ┣ ━ ━ ━ ━ ━ ━ ━ ━ ━ ┻ ━ ━ ━ ━━━━━┫ \n)。 print f( ☆┃ ☆☆ 0. 退 出 系 统 ☆☆ ┃☆ \n)。 pr int f( ┗ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━━━━━┛ \n)。 pr int f( ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ \n)。 pr int f( ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ \n)。 printf( \ n\ n)。 printf( 请选择 (0 8) :)。 c=getchar()。 getchar()。 /*让程序停留 */ return (c 39。 039。 )。 } //include int findrecord(s t ude nt stud[]) /* 查找信息 */ { char str[2]。 int i,num。 if(numst us ==0) { printf( 没 有 可 被 查 找 的 记 录 \ n)。 31 return 1。 } else { pr int f( 以何种方式查找。 \n1. 学号 \t2. 姓名 \t3. 名次 \n)。 gets(str)。 if(str[0]==39。 139。 ) /*按学号查找 */ { printf( 请 输 入 学 号 :)。 gets(str)。 for(i=0。 i= nums t us。 i++) if(strc mp(s tr, st ud[ i]. number)= =0) { display(st ud, i, i)。 break。 } else continue。 } else if(str[0]==39。 239。 ) /* 按姓 名查找 */ { printf( 请 输 入 姓 名 :)。 gets(str)。 for(i=0。 i= nums t us。 i++) if(strc mp(s tr, st ud[ i]. na me)==0 ) { display(st ud, i, i)。 break。 } else continue。 } else if(str[0]==39。 339。 ) /* 按名次查找 */ { printf( 请 输 入 名 次 :)。 scanf(%d ,amp。 num)。 getchar()。 /*让程序停留 */ for(i=0。 i= nums t us。 i++) 32 if(num==st ud [ i]. i nde x) { display(st ud, i, i)。 break。 } else continue。 } if(i nums t us) { printf( 没 有 查 找 所 要 的 信 息。 \ n)。 return 1。 } return i。 } } //include head. h int openfile (st ude nt stu[]) /* 打开文件 */ { int i=0,j。 F ILE *fp。 char filena me[20],s tr [2]。 if(numst us !=0) {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。