当前位置:文档之家› C语言课程设计学生成绩管理系统

C语言课程设计学生成绩管理系统

C语言课程设计学生成绩管理系统Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-内蒙古科技大学本科生课程设计说明书题目:C语言课程设计——学生成绩管理系统学生姓名:郭**学号:专业:计算机科学与技术班级:计科-2指导教师:刘立新日期:2015年 12月25日内蒙古科技大学课程设计任务书一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。

某班学生成绩管理,包括以下功能:从键盘输入包括学号、姓名、各门课程成绩(不少于5门),并将其保存在磁盘文件里打开文件后,计算每个人的总分和平均分,排序并保存具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录)具有插入、删除和修改功能具有输出文件数据信息的功能目录行环境Windows系统3.用户特点懂得一些基本的电脑操作即可。

4.条件限制计算机一台1.1数据描述系统的数据类型有:整型int,实型float,字符型char,结构体struct;自己定义的数据类型有:STU;1.2功能需求从键盘输入包括学号、姓名、各门课程成绩(不少于5门),并将其保存在磁盘文件里打开文件后,计算每个人的总分和平均分,排序并保存具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录)具有插入、删除和修改功能具有输出文件数据信息的功能1.3性能需求无1.4运行需求1.硬件环境普通的计算机2.软件环境支持的操作系统包括windows98/xp及及以上版本1.5任务计划本系统共分为一个主页面模块(主函数部分),五个功能模块(功能函数)分别为增加学生成绩信息、查看学生成绩信息、修改学生成绩信息、对学生信息进行排序、退出。

设计时要先写好主函数、定义好全局变量和功能函数,再对五个功能函数进行设计。

在每个功能函数和主函数应加入控制条件使用户可以随时退出系统,并在用户输入指令错误的时候给予提醒和退出选项。

第二章概要设计2.1总体设计2.2数据类型设计(或数据结构设计)2.3typedef struct student------------\n");7. printf("请选择(1-5):");8. scanf("%d",&ch);9. return ch;10.}11.void readscore(STU stu[],int n)D,stu[num].name);12. for(j=0;j<COURSE_NUM;j++)13. {14. scanf(" %f",&stu[num].score[j]);15. }16. stu[num].sum=sum_stu(stu);17. stu[num].aver=stu[num].sum/COURSE_NUM;18. num++;19. }20. getchar();21. if(num!=0)22. {23. printf("\n添加完成!\n");24. }25. else26. {27. printf("\n添加失败!\n");28. }29. printf("回车返回主菜单\n");30. getchar();31. system("cls");32.}33.void printscore(STU stu[],int num)D,stu[i].name);34. for(j=0;j<COURSE_NUM;j++)35. {36. printf("%",stu[i].score[j]);37. }38. printf("%%\n",stu[i].aver,stu[i].sum);39. }40. getchar();41. printf("\n回车返回主菜单\n");42. getchar();43. system("cls");44.}45.int sum_stu(STU stu[])core[i];46. }47. return sum;48.}49.void searchmenu(STU stu[])学号查找\n");50. printf(" 2.按姓名查找\n");51. printf("请选择\n");52. scanf("%d",&ch);53. if(ch==1)54. {55. Search_ID(stu);56. }57. else if(ch==2)58. {59. Search_Name(stu);60. }61. getchar();62. system("cls");63.}64.void Search_Name(STU stu[])D,stu[i].name);65. for(j=0;j<COURSE_NUM;j++)66. {67. printf("%",stu[i].score[j]);68. }69. printf("%%\n",stu[i].aver,stu[i].sum);70. modifymenu(stu,a);71.}72. printf("是否继续(y/n)");73. scanf(" %c",&ch);74. if(ch=='n'||ch=='N')76. break;77. }78. }79.}80.void Search_ID(STU stu[])D,stu[i].name);81. for(j=0;j<COURSE_NUM;j++)82. {83. printf("%",stu[i].score[j]);84. }85. printf("%%\n",stu[i].aver,stu[i].sum);86. modifymenu(stu,a);87.}88. printf("是否继续(y/n)");89. scanf(" %c",&ch);90. if(ch=='n'||ch=='N')92. break;93. }94. }95.}96.void scorefence()改学号\n");97. printf("2.修改姓名\n");98. printf("3.修改成绩\n");99. printf("4.删除\n");100. scanf("%d",&ch);101. switch(ch)102. {103. case 1:104. printf("输入新学号\n"); 105. scanf("%ld",&stu[i].ID); 106. break;107. case 2:108. printf("输入新姓名\n");109. scanf("%s",stu[i].name);110. break;111. case 3:112. printf("输入新成绩\n");113. modifyscore(stu,i);114. break;115. case 4:116. delete_stu(stu,i);117. break;118. default:119. printf("输入错误!请重新输入\n"); 120. Sleep(1000);121. system("cls");122. }123.}124.void modifyscore(STU stu[],int i)core[j]); 125. }126. for(j=0,stu[i].sum=0;j<COURSE_NUM;j++) 127. {128. stu[i].sum=stu[i].sum+stu[i].score[j]; 129. }130. stu[i].aver=stu[i].sum/COURSE_NUM;131.}132.void delete_stu(STU stu[],int i)学号排序\n"); 133. printf("2.按科目1排序\n");134. printf("3.按科目2排序\n");135. printf("4.按科目3排序\n");136. printf("5.按科目4排序\n");137. printf("6.按科目5排序\n");138. printf("7.按均分排序\n");139. printf("8.按总分排序\n"); 140. printf("请选择:\n");141. scanf("%d",&ch);142. switch(ch)143. {144. case 1:145. sort_ID(stu);146. system("cls");147. printscore(stu,num); 148. break;149. case 2:150. sort_score(stu,0); 151. system("cls");152. printscore(stu,num); 153. break;154. case 3:155. sort_score(stu,1); 156. system("cls");157. printscore(stu,num); 158. break;159. case 4:160. sort_score(stu,2); 161. system("cls");162. printscore(stu,num); 163. break;164. case 5:165. sort_score(stu,3); 166. system("cls");167. printscore(stu,num); 168. break;169. case 6:170. sort_score(stu,4);171. system("cls");172. printscore(stu,num); 173. break;174. case 7:175. sort_aver(stu);176. system("cls");177. printscore(stu,num); 178. break;179. case 8:180. sort_sum(stu);181. system("cls");182. printscore(stu,num); 183. break;184. }185.}186.void sort_ID(STU stu[])D<stu[j].ID)187.{188.tmp=stu[j-1];189.stu[j-1]=stu[j];190.stu[j]=tmp;191.}192.}193.}194.}195.void sort_score(STU stu[],int m)core[m]<stu[j].score[m]) 196.{197.tmp=stu[j-1];198.stu[j-1]=stu[j];199.stu[j]=tmp;200.}201.}202.}203.}204.void sort_aver(STU stu[])ver<stu[j].aver) 205.{206.tmp=stu[j-1]; 207.stu[j-1]=stu[j]; 208.stu[j]=tmp; 209.}210.}211.}212.}213.void sort_sum(STU stu[])um<stu[j].sum) 214.{215.tmp=stu[j-1]; 216.stu[j-1]=stu[j]; 217.stu[j]=tmp; 218.}219.}220.}221.}222.int return_ID(STU stu[],long ID)D==ID)223. {224. return i;225. }226. }227. return -1;228.}229.int return_name(STU stu[],char name[])ame,name)==0) 230. {231. return i;232. }233. }234. return -1;235.}参考文献[1].苏小红,车万翔,王甜甜. C语言程序设计,高等教育出版社致谢刘立新老师周立涌老师。

相关主题