课程设计题目一.doc_第1页
课程设计题目一.doc_第2页
课程设计题目一.doc_第3页
课程设计题目一.doc_第4页
课程设计题目一.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计题目一:课程成绩分析系统设计一、实验题目题目要求以某班某课成绩为研究对象(包括学号和成绩),实现以下功能: 1.求某门课的最低分、最高分及其相应学号; 2.求该课程的平均分和标准方差; 3.将该课程按照从大到小的顺序排列,并显示相应学号; 4.绘制该课程学生成绩直方图(提示:先将学生成绩分为几个分数段score,统计相应分数段学生人数n,选择分数段的中间数据score1,以score1与n为横、纵坐标,绘制直方图)要求:某班某课成绩的学号和成绩通过文件输入;排序结果保存到文件;直方图在图形窗口显示。另外,将选择的某班某课成绩绘制成表放置到实验报告中,用两种方法(直接用Matlab中的函数命令和编写函数文件)求最低分、最高分、平均分、标准方差。二、算法说明 首先给出一个表格如下图:学号成绩学号成绩2008050019520080501787200805002912008050186920080500387200805019662008050049820080502071200805005732008050219320080500650200805022892008050076820080502385200805008882008050246820080500999200805025652008050105820080502676200805011942008050277920080501290200805028702008050138620080502980200805014722008050307420080501510020080501787所以根据上表编写函数文件按照题目中的顺序求最低分、最高分、平均分、标准方差:给定一个矩阵(第一列为学号,第二列为成绩),将成绩降序排列而学号也根据成绩进行相应的排列,进而取得最大值及最小值,然后依次求平均值和标准方差。算法的伪代码描述:1、 导入表格数据,把数据读取。2、对数据进行处理,运用两种方法求成绩的最小值、最大值、均值、标准差。3、得到以上数据以后,下面对成绩所构成的数据进行排序,运用两种方法,一是matlab内部函数sort,二是运用for循环来完成。对于 i=1,2,n-1;j=n,n-1,n-2,i+1条件语句if x(j)x(j-1)y=x(j);x(j)=x(j-1);x(j-1)=y;%将前后两个元素进行比较较大的一个提前,依次进行循环,最后将元素从大到小排列w=z(j);z(j)=z(j-1); z(j-1)=w;%将第一列相应的元素排列 else x(j) -1)结束循环4、绘制成绩的直方图,绘制该课程自带函数学生成绩直方图时,统计相应分数段学生人数n,选择分数段的中间数据用hist“n,xout=hist(data,10)”以10分为一个段,其中n为分数段内的人数,xout为中间数据,然后bar与hist组合来绘制直方图。三、测试结果运行附录中的程序,得到如下结果:最低分为:70 学号为:200805028 最高分为:100 学号为:200805015 200805015 100 200805009 99 200805004 98 200805001 95 200805011 94 200805021 93 200805002 91 200805012 90 200805022 89 200805008 88 200805003 87 200805017 87 200805013 86 200805023 85 200805029 80 200805027 79 200805026 76 200805030 74 200805005 73 200805014 72 200805020 71 200805028 70根据图示的成绩数据得到了成绩的直方图,如下:四、探讨与分析在编写函数文件求最低分、最高分、平均分、标准方差时,首先考虑到先将矩阵降序排列,联想到课本中的例题:利用for循环机型从大到小排列。其根本时将前后两个数据进行比较较大的提前,依次循环。此题中考虑到还需用到学号因此顺便将学号按对应顺序排列。然后利用平均值和方差的公式定义编写程序求得,其中运用到求和公式sum。此题在做得过程也是多次试验才完成,还是由于自己做得过程中不够仔细,对命令的掌握不够好,以后还应该努力,另外,在绘制直方图时,在网上查了资料,了解到hist也可以用来绘制直方图,就运用了,用的时候也是破费周折,需要以后继续努力。附录:不运用matlab内部函数情况,Load A.txtx=A(:,2);z=A(:,1);n=length(x);for i=1:n-1 for j=n:-1:i+1 if x(j)x(j-1) y=x(j); x(j)=x(j-1); x(j-1)=y;%将分数从大的到小排序 w=z(j);z(j)=z(j-1); z(j-1)=w;%将相应的学号排序 end endendB=z,xa=B(1,2);b=B(n,2);max=B(find(B(:,2)=a) ,:)min=B(find(B(:,2)=b) ,:)avg=sum(x)/nk=1:n;std=sqrt(sum(x(k)-avg).2)/(n-1)disp(最大值为:,num2str(a),);disp(学号为:)disp(num2str(max);disp(最小值为:,num2str(b); disp(学号为)disp(num2str(min);disp(平均分为:,num2str(avg);disp(标准方差为,num2str(std);n,xout=hist(data,10)% %各区间人数n及中心位置xoutbar(xout,n)%绘制出柱状图xlabel(分数)ylabel(人数)title(学生成绩直方图)运用matlab内部函数的情况,laod A.txtB=sortrows(A,-2)%将该课程成绩按照从大到小的顺序排列,并显示相应学号n=length(B)%查看全班的人数a=max(A(:,2);%最大分数b=min(A(:,2); %最小分数max=A(find(A(:,2)=a) ,:) %find命令找出最大值所在行同时显示最大分数及学号min=A(find(A(:,2)=b) ,:) %显示最小分数及学号%某门课的最低分、最高分及其相应学号;averge=mean(B(:,2)%该课程的平均分standard=std(B(:,2)%该课程的标准方差disp(最大值为:,num2str(a),);disp(学号为:)disp(num2str(nax);disp(最小值为:,num2str(b); disp(学号为)disp(num2str(min);disp(平均分为:,num2str(averge)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论