版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2012-2013年第二学期计算机学院软件工程专业程序设计综合实习报告班级:软件工程123学号:姓名:余文杰指导老师:胡增涛题目学生试卷分析统计课程设计内容简介高校老师对班级试卷的分析和研究是很有必要的,程序主要对班级某单科成绩按照平时分数和期末分数进行比例运算后,计算出总评成绩后进行计算最高分、最低分、及格率、标准差、平均分、和各分数段人数分布等内容设计者姓名余文杰指导老师意见 目录一:问题定义5二:可行性研究 1:项目的由来5 2:可选方案5 3:可行性54:结论6三:需求规格说明 1:目标7 2:数据需求83:功能需求8四:总体设计 1:软件的结构:(HIPO图)9五:详细设计:各个模块
2、的伪代码和流程图和盒型图 1:编译预处理模块10 2:主函数模块10 3:函数accept date( )模块11 4:函数show date( )模块12 5:函数show date2( )模块12 6:函数count( )模块13 7:函数draw( )模块 14六:程序源代码:15七:程序测试: 1:测试抓图 19 2:测试内容21 八:总结 1:项目评价22 2:不足之处22 3:心得体会23一:问题定义: 某高校需对学生成绩进行分析,观察学生的考试情况,包括平时成绩、期末成绩、总评成绩,最高分数、最低分数、标准差以及各个分数段的人数等相应标准。成绩某单科成绩的相应情况;二:可行性研究
3、 1:项目的由来: 高校教师或辅导员及班长需要对班级的期末考试成绩和平时成绩进行比例得到相应的总评成绩后对班级的分数进行平均分,标准差,最高分,最低分以及个分数段的人数统计和分析 2:可选方案: :可选用学生考试成绩自动折合相应比例后进行折算后成绩,计算相应的平均分数、最高分数、最低分数、平均数、标准差;画出相应的各个分数段人数的人数,比较直观明了; :可选用人工折算后,计算机计算相应的最高分数、最低分数、平均分数、标准差,直接输出各个分数段的人数 3:可行性 :技术可行性: 每个班级对教师来说都有着几百人以上,用于手工计算分析十分困难,出错概率,而采用计算机进行计算只需要输入分数后快速的计算
4、相应的标准;得知班级成绩的如何,对辅导员或班长岁班级人数不超过半百,但是手工计算起来还是比较慢,出左概率比较大,效率比较低,所以采用将计算机计算比较方便,省时省力; :经济可行性: 开发学生分析统计管理系统,可以在以后都可以使用,利用计算机工作节时节力,不容易出现错误,对学生教育工作有利很有必要; :操作可行性: 操作使用计算机时,简单方便,而且不需要花费太大人力需求; :法律可行性: 建立该系统有力学生管理,不违背法律; 4:结论; 面对高校考试的巨大的计算工作量,采用计算机计算很有必要,采用方案的方法不仅能够省事,节约时间,出错率低等,减少教师的工作量,另外更能直观的观察出班级的考试成绩的
5、整体水平,更好掌握学生状况,有利于下一学年做好有效的工作计划,更有利于对学生的教育管理工作。三:需求规格说明: 1:目标:教师输入学生的信息系统对数据处理学生期末成绩平时成绩和期末成绩比例学生学号学生平时成绩计算比例折算后成绩计算最高分数、最低分数、及格率计算平时成绩平均分数、标准差计算期末成绩平均分数、标准差计算总评成绩平均分数、标准差计算各个分数段的人数画直方图学生成绩分析统计结果的输出输出平时成绩、期末成绩和总评成绩输出成绩的最高分数、最低分数、及格率输出平时成绩的平均分数、表准差输出总评成绩的平均分数、标准差输出期末成绩的平均分数、标准差输出各个分数段的人数直方图教师对成绩分析结果进行
6、观察和了解 2:数据需求: :数据量: 学号,成绩,平均分,标准差,各个分数段人数,最高分数,最低分数,及格率。 :数据定义和结构 :学号=学生在校给安排的学生号码 :成绩=平时成绩X比例+期末成绩X比例(=总评成绩) :平均分=平时成绩平均分数+期末成绩平均分数+总评成绩平均分数:标准差=平时成绩标准差+期末成绩标准差+总评成绩标准差:各个分数段的人数=按照十分为间隔统计每个间隔的人数:最高分数=年级中期末成绩最高的分数:最低分数=年级中期末成绩最低的分数: 及格率=年级中成绩高于六十分数的人数与总人数的百分比 3:功能需求: :性能:响应快,界面美观,使用起来方便,容易操作,但是对于特大数
7、据量可能处理起来有些缓慢,如果有特殊要求还需还需定量 :功能: (IPO图) 学生学号和成绩的输入计算及格率、最高分数、最低分数计算平均分数 计算标准差计算各个分数段人数输出及格率、最高分数、最低分数输出平均分数输出标准差画出各个分数段的人数分布直方图输入处理输出 四:总体设计: 1:软件的结构:(HIPO图)4.2输出每个平均数学生试卷分析统计系统1.文件2.计算前的处理3.计算相关要求4.信息的输出1.2退出1.1初始化2.1输入平时成绩和期末成绩的比例2.2输入学生的学号2.3输入学生的平时成绩和期末成绩3.1计算最高分数最低分数和及格率3.2计算每个平均分数3.3计算么个标准差3.4计
8、算各个分数段人数4.1输出最高分数最低分数和及格率4.3输出每个标准差4.4画出各个分数段的直方图五:详细设计:各个模块的伪代码和流程图和盒型图: 1:编译预处理模块使用的函数库:stdio.h string.h, conio.h math.h 学生数据结构体的声明 typedef struct student 枚举定义 typedef enum boolen 输入函数声明 int accp_date ()输出函数声明void show_date()数据计算函数声明void count显示函数声明void show_date2()画直方图函数声明 void grade() 2:主函数模块:定义
9、整型数 总人数sum,最大分数 max ,最小分数min,定义浮点数 及格率 pass,定义平均分数组 ave 标准差数组 f sum=accept_date(stu,grade) 调用数据输入函数 accept_date调用show_date(stu ,sum,grade) 输出所有学生的序号,平时成绩和总评成绩调用count(&max,&min,&pass,ave,f,stu,sum)计算期末成绩及格率,最高分数,最低分数,以及平时成绩、期末成绩、总评成绩的平均分数和标准差调用show_date2(max,min,pass,ave,f)显示期末成绩最高分数,最低分数以及平时、期末、总评成绩
10、的平均分数和标准差调用drawe(grade),画模拟直方图 3:函数accept date( )模块: i=0 sum=0 temp,a1,a2 flag输入平时成绩与期末成绩的比例,&a1,&a2输入学号 &stui.numberif(&stui.number=0) T F sum=ibreak;While(iSIZE )flage=TrueWhile(flage= =True)输入平时成绩和期末成绩 &stui.score0 &stui.score1输入的成绩是否在1-100之间的数 T F flag=False 输入数合理输出“请重新输入成绩”计算总评成绩 temp=(int)(1.0
11、*a1/100*stui.score0+1.0*a2/100*stui.score1)/ 总评成绩存入数组 stui.score2=temp;if(temp=10) T F grade10+gradetemp+i+返回 总人数return sum4:函数show date( )模块:int i ,j输出所有学号和平时、期末、总评成绩for(i=0;isum;i+)for(j=0;j3;j+)输出三个成绩for(i=0;i=10;i+)输出各个分数段人数5:函数show date2( )模块int jchar str1320=平时成绩分,期末平均分,总评成绩平均分;char str2320=平时
12、成绩标准差,期末成绩标准差,总成绩标准差; For(j=0;j=60) T FP_sum+For (i=0;i*max) T F*max= stui.score1If(stui.score1=60) T F P_sum+For(i=0;i=2;i+)totali=0For(j=0;j3;j+) For(i=0;isum;i+)totalj=totalj+stui.scorej; For(j=0;j3;j+)avei=totalj/sumFor(j=0;j3;j+)fi=0 For(i=0;isum;i+)temp=stui.scorej-avej;fj=fj+temp*temp;fi=sqrt
13、(fabs(fj)/sum)For(i=0;i=21;i+)Int i, j ,max, min ,k, temp , x char screen22447:函数draw( )模块:Max=0For(i=0;imax)T Fmax=gradeiFor(i=1;i=10;i+)gradei=(int)(20.0*gradei/max+0.5)For(j=0;j=41)screenij=0For(i=0;i=41;i+) Screen21i=-Screen2141=XScreen00=YFor(i=0;i=21;i+)Screeni0=|k=1for(x=1;x=10;x+,k=k+4)temp=
14、gradexT if(temp!=0) F T F for(i=1;itemp;i+)For(j=1;j=4;j+)Screen20-i+1j+k=*For(i=0;i=21;i+)For(j=0;j=41;j+)T If(screenij!=0) FPrintf(“%c”,screenij)Pritf(“ “); printf(“n”)六:程序源代码:#include#include#include#include#define SIZE 300typedef struct student /*数据结构体的声明 int number ; /*学号int score3; /*平时 期末 总评成
15、绩 STUDENT; typedef enum boolen /*枚举定义 False,True FLAG; int accept_data(STUDENT stu,int grade); /* 输入数据函数声明 void show_data(STUDENT stu,int sum,int grade);/ / *输出所有学生的序号 平时成绩 期末成绩和总评成绩函数说明 void draw (int grade); /*画直方图函数声明 void count(int *max,int *min ,double *pass,double ava,double f,STUDENT stu,int
16、sum); void show_data2(int max,int min,double pass,double ava,double f); int main() int sum,max,min; /* 数据定义 double pass=0; int grade11=0; STUDENT stuSIZE; double aveSIZE,fSIZE; sum=accept_data(stu,grade) /* 输入人数(sum为总人数) show_data(stu,sum,grade); /* 输出所有学生的序号 、平时成绩、期末成绩和总评成绩draw (grade); /* 画模拟直方图 c
17、ount(&max,&min,&pass,ave,f,stu,sum);/*计算期末成绩的及格率最高分、最低分 以及平时、期末和总评成绩的平均分和标准差 show_data2(max,min,pass,ave,f); /*显示期末成绩的最高分、最低分 以及平时、期末和总评成绩的平均分和标准差 int accept_data(STUDENT stu,int grade) int i=0,sum=0,temp,a1,a2,a; FLAG flag ; printf(n请输入计算总评成绩时使用平时与期末成绩比例,整数表示:); scanf(%d%d,&a1,&a2); a=a1+a2; if(a10
18、0)printf(“请重新输入比例”);scanf(%d%d,&a1,&a2); /*接收计算总评成绩的比例 while(iSIZE) printf(n 请输入学号); scanf(%d,&stui.number); /* 输入学号if(stui.number=0) /*序号-1 跳出循环sum=i; /*sum记录输入的人数 break; printf(n请输入学生平时和期末成绩:);flag=True;while (flag=True) /* 重复读入两个成绩,读到正确的为止scanf(%d%d,&stui.score0,&stui.score1);if(stui.score0=0&stu
19、i.score1=0)flag=False; /* 输入两个成绩合理else printf(n007错误数据,请再次输入平时和期末成绩:);/* 输入另个成绩不合理 temp=(int)(1.0*a1/100*stui.score0+1.0*a2/100*stui.score1)/ /*;计算总评成绩 stui.score2=temp; /* 总评成绩存入数组temp=(stui.score1)/10; /*计算分数段 if(temp=10) /* 分数段存入数组 grade10+; /* 100分数人数存入数组元素10 else gradetemp+1+; /* 90-99分数人数存数数组元
20、素garde9 依次类推 i+; return sum; /* 返回人数 void show_data(STUDENT stu,int sum,int grade) int i,j; for(i=0;isum;i+) /*输出所有学号平时期末和总评成绩 printf(%4d,stui.number); /* 输出所有学号 for(j=0;j3;j+) /* 输出3个成绩 printf(%4d,stui.scorej); printf(n); for(i=1;i=60) p_sum+; for(i=1;i*max)/* 若高于最高分,将其覆盖 *max=stui.score1; if(stui.
21、score160) p_sum+; /*计算及格人数 *pass=(1.0*p_sum/sum)*100; /* 计算及格率 for(i=0;i=2;i+) totali=0; for(j=0;j3;j+) /* 求平时、期末、总评3个总分 for(i=0;isum;i+) /*平时、期末总评初值设置为零 totalj=totalj+stui.scorej; for(j=0;j3;j+) /* 求平时、期末 、总评3个平均分 avej=totalj/sum; for(j=0;j3;j+) fj=0; /* 标准差初值设置为零 for(i=0;isum;i+) /* 计算标准差 temp=stu
22、i.scorej-avej; fj=fj+temp*temp; fj=sqrt(fabs(fj/sum); void show_data2(int max,int min,double pass,double ave,double f ) /* 输出期末及格率、最高分、最低分、及平时、期末、总评的平均分和标准差 int j; char str1320=平时成绩分,期末平均分,总评成绩平均分;char str2320=平时成绩标准差,期末成绩标准差,总成绩标准差;printf(n及格率=%-6.2f%最高分=%d最低分=%dn,pass,max,min);for(j=0;j3;j+) /* 输出
23、期末及格率、最高分、最低分 printf(n%s=%6.2f%s=%6.2f%s=6.2fn,str1j,avej,str2j,fj); void draw(int grade) /*输出模拟直方图 int i,j,max,k,temp,x; char screen2224; /*定义字符型数组,用来表示屏幕的输出 printf(n模拟直方图n); max=0;for(i=1;imax) /* 寻找分数段中人数最多的 max=gradei; for(i=1;i=10;i+) gradei=(int)(20.0*gradei/max+0.5); /*计算显示时应该输出*号的个数 for(i=0;
24、i=21;i+) for(j=0;i=41;j+) screenij=0; /* 先将输出的所有点清零 for(i=0;i=41;i+) screen21i=-;/*X轴所有点设置为符号 screen2141=X;/*显示字样 screen00=Y; /*显示字样 for(i=1;i=21;i+) screeni0=|; /*轴所有点设置为符号 k=1; /* 将符合条件的点赋值星号 for(x=1;x=10;x+,k=k+4) /* X控制输出的行,K控制输出的列 temp=gradex; /* temp取分数值 if(temp!=0) /* 分数不为零,赋值为星号 for(i=1;i=te
25、mp;i+) for(j=1;j=4;j+) /*该分数段每行对应四个星号screen20-i+1j+k=*; /* 输出数组 在屏幕画图 for(i=0;i=21;i+) for(j=0;j=41;j+) if(screenij!=0) /* 数组内容不为0,输出数组内容 printf(%c,screenij); else printf( ); /*否则空格输出 printf(n); printf(0 10 20 30 40 50 60 70 80 90 100n);/*输出分数段 七:程序测试: 1:测试抓图: 2:测试内容: 等价类划分测试数据预测结果测试结果合理数值成绩比例输入分数人数值学号跳出数值平时成绩期末成绩合理等价类信息输入正确250-130:708590成功运行成功运行不合理等价类信息输入错误301530:90110101无法运行无法运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年教师资格《综合素质》历年真题解析
- 2026年统计师资格考试统计综合应用能力冲刺押题卷
- 2026年计算机技术与软件专业技术资格(水平)考试网络工程师专项训练试卷(含答案)
- 2026住院医师规培-北京-北京住院医师规培(放射科)历年参考题库含答案详解
- 2026住院医师规培-上海-上海住院医师规培(医学检验科)历年参考题库含答案详解
- 2026云南卫生系统招聘考试(耳鼻喉科)历年参考题库含答案详解
- 2026事业单位笔试-青海-青海财务(医疗招聘)历年参考题库含答案详解
- 2026事业单位笔试-陕西-陕西消化内科(医疗招聘)历年参考题库含答案详解
- 2026事业单位笔试-海南-海南中西医临床医学(医疗招聘)历年参考题库含答案详解
- 2026事业单位笔试-河北-河北超声诊断(医疗招聘)历年参考题库含答案详解
- 《堤防抢险技术导则SLT 832-2024》知识培训
- 石油化工生产操作与安全管理作业指导书
- 七年级数学上册有理数加减乘除混合运算测试卷
- 《电机与电气控制技术》第4版 习题及答案 第6-8章
- 人教版七年级上册道德与法治全册教学设计
- (正式版)HGT 20686-2024 化工企业电气设计图形符号和文字代码统一规定
- 主题班会课件:勇敢说“不”
- 工程量自动计算表格
- 中职语文基础模块下册教案(全本)
- 商品混凝土制造行业税收指南
- 水利工程建设管理概述课件
评论
0/150
提交评论