欢迎来到天天文库
浏览记录
ID:25285023
大小:165.00 KB
页数:18页
时间:2018-11-19
《c语言课程设计---学生成绩管理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、沈阳航空航天大学课程设计学号班级202姓名张小田指导教师王x岩2012年月日课程设计任务书院系:自动专业:自动班级:202学号:题目:学生成绩管理1一、课程设计时间2011~12第1学期第4周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:一个文本文件(file15.txt,由指导教师提供)存储了若干位同学的数学成绩,文件中每行的内容按照顺序为:学号,班级,数学成绩,姓名。请完成以下问题:1将文件中的内容全部显示到窗体,并统计总人数;2统计数学成绩的平均分;3统计各个班级的平均分。三、课程设计要求1.程序质量
2、:²贯彻结构化的程序设计思想。²用户界面友好,功能明确,操作方便。²用户界面中的菜单至少应包括“打印全部,并统计总人数”、“计算总平均分”、“计算各个班的平均分”、“退出”4项。²代码应适当缩进,并给出必要的注释,以增强程序的可读性。2.课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:________学生签名:________五、说明书成绩六、教师评语15目录一、需求分析1二、设计分析1三、主要界面截图1四、技术要点5五、个人总结9六、参考文献10
3、七、源程序1115一、需求分析通过分析可知,此程序是对表格的信息的统计。很明显程序可分为三个部分:即打印并统计数据,计算总平均分,计算各个平均分。在此只须构件若干个函数进行编程设计。二、设计分析1、程序总体结构图当(1)输入值n=1?真假显示所有学生信息show()n=2?真假计算平均分average()n=3?真假各班平均分aver()n=4?真假退出图1程序总体结构图2.具体功输出I能函数流程图15(1)读取学生数据reads读方式打开D盘file15.txt文件不成功真假打开文件失败循环变量i=0当!feof(fp)时读出
4、一条学生记录到形参数组元素stu[i]returni++读出记录总数赋给形参*n关闭文件图2.读取学生数据(2)显示所有学生信息show循环变量i=0reads(stu,&n);所有的学生信息如下当i5、rage图4.计算总平均分(4).各班平均分aver15循环变量i=0,j=0变量ava[N],ren[N],m=0,ban[N][10]reads(stu,&n)strcpy(ban[0],stu[0].cla)ren[0]=1,ava[0]=stu[0].math,i=n-1当i>0时j<=sstrcmp(ban[j],stu[i].cla)==0真假ava[j]+=stu[i].math;j!=mren[j]++continuem++strcpy(ban[m],stu[i].cla)i--ren[m]=1ava[m]=st6、u[i].math;breaki--;break当i<=m时输出班级ban[i],各班平均分ava[i]/ren[i]图5.各班平均分15三、主要界面截图程序主界面截图四、技术要点本程序有主函数和三个自定义的函数组成即main和show,average,aver。这些是整个程序中最核心的部分,以下便是对这些函数的说明;1.定义函数首先要知道读取数据的文件,定义一个文件指针,把所需的数据读入到程序中,同时定义一个l,每读入一个,l加一来统计学生数目;具体程序如下:#include#include7、>#include"stdlib.h"15#defineN40structstudent{charnum[20];charcla[10];intmath;charname[10];};voidmenu();voidshow();voidaverage();voidaver();voidmain(){intn;while(1){menu();printf("请输入您要选择的操作序号,按回车键确认:");scanf("%d",&n);switch(n){case1:show();break;case2:average();bre8、ak;case3:aver();break;case4:exit(0);break;default:printf("输入错误,请输入列表中存在的序号!");}}}voidmenu(){printf("****************数据统计*********
5、rage图4.计算总平均分(4).各班平均分aver15循环变量i=0,j=0变量ava[N],ren[N],m=0,ban[N][10]reads(stu,&n)strcpy(ban[0],stu[0].cla)ren[0]=1,ava[0]=stu[0].math,i=n-1当i>0时j<=sstrcmp(ban[j],stu[i].cla)==0真假ava[j]+=stu[i].math;j!=mren[j]++continuem++strcpy(ban[m],stu[i].cla)i--ren[m]=1ava[m]=st
6、u[i].math;breaki--;break当i<=m时输出班级ban[i],各班平均分ava[i]/ren[i]图5.各班平均分15三、主要界面截图程序主界面截图四、技术要点本程序有主函数和三个自定义的函数组成即main和show,average,aver。这些是整个程序中最核心的部分,以下便是对这些函数的说明;1.定义函数首先要知道读取数据的文件,定义一个文件指针,把所需的数据读入到程序中,同时定义一个l,每读入一个,l加一来统计学生数目;具体程序如下:#include#include7、>#include"stdlib.h"15#defineN40structstudent{charnum[20];charcla[10];intmath;charname[10];};voidmenu();voidshow();voidaverage();voidaver();voidmain(){intn;while(1){menu();printf("请输入您要选择的操作序号,按回车键确认:");scanf("%d",&n);switch(n){case1:show();break;case2:average();bre8、ak;case3:aver();break;case4:exit(0);break;default:printf("输入错误,请输入列表中存在的序号!");}}}voidmenu(){printf("****************数据统计*********
7、>#include"stdlib.h"15#defineN40structstudent{charnum[20];charcla[10];intmath;charname[10];};voidmenu();voidshow();voidaverage();voidaver();voidmain(){intn;while(1){menu();printf("请输入您要选择的操作序号,按回车键确认:");scanf("%d",&n);switch(n){case1:show();break;case2:average();bre
8、ak;case3:aver();break;case4:exit(0);break;default:printf("输入错误,请输入列表中存在的序号!");}}}voidmenu(){printf("****************数据统计*********
此文档下载收益归作者所有