资源描述:
《课程成绩分析系统设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、应用软件课程设计——课程成绩分析系统设计数学0801班***—、实验目的给定某课程成绩和相应学号,存为txt文件,通过文件载入,实现以下功能:程序利用自定义函数输出该门课程的最高分以及获得者学号、人数;最低分以及获得者学号、人数;该门课程的平均分与方差。程序1-2:利用MATLAB自带命令输出该门课程的最高分以及获得者学号、人数;最低分以及获得者学号、人数;该门课程的平均分与方差。程序2:利用自定义函数将成绩由高到低排序,显示排序结果、相应学号以及名次。排序结果保存到a.mat文件中。程序3:将学牛成绩均匀分成10个分数段,
2、计算每个分数段上的学生人数,绘制学生成绩频数分布直方图并在图形窗口中显示。二、算法说明程序1T:⑴求最高分的自定义函数伪代码(程序框图见附录11,求最低分的函数算法与之一致):1、iflength(x)^length(y)%判断x、y长度是否相同dispC给定学号和成绩人数不匹配!’)else2>zdf=Inf;zgf=-Inf;%考虑到成绩可能不是百分制,便分别把正无穷、负无穷赋值给max、min。l=lcngth(x);zgfn=0;zdfn=0;d=0;v=0;xx=(1);yy=(l);%zgfx=[];zdfx=[
3、];3、i二1,2,・•・,1%第一次循环求出最高分4、ify(i)>zgf;%判断成绩与前面最高分的大小。5、zgf=y(i);%若高于最高分,将该成绩赋值为最高分。6、结束判断,结束循环。7、i二1,2,…,1%第二次循坏,找岀所有成绩为最高分的学生学号。8、ify(j)==zgf;%判断成绩是否等于最高分。9、zgfn=zgfn+l;%若相等,则人数增加1。zgfx(zgfn)=x(j);%并且将学号计入统计矩阵。10、结束循环,结束判断。⑵求平均分与方差的自编程序框图图示(程序框图见附录12):1、1=1,2,-,1
4、;2、d二d+y(i);求和。3、结束循环。4、u=d/l;%求岀平均数。5、j二1,2,•••,1;6、v二v+(u-y(j))‘2;求偏差平方和。7、结束循环。8、v=v/(l-l);%偏差平方和除以白由度的到方差。9、结束循坏。以上⑴⑵程序整合到一个函数文件yunxing.m(详见附录1)中,通过运行脚木文件pdriver.m(详见附录2)运行。程序1_2:⑴利用MATLAB内部函数求最高分的伪代码(最低分与之一致):1、[zgf,izgf]=max(y);%取幽最高分以及相应位置2、disp(['最高分:1,num2
5、str(zgf)]);dispC相应学号为:J);disp(num2str(x(izgf)))%显示该成绩获得者学号3、y(izgf)=-lnf;%令最高分为负无穷,确保该同学的成绩离开判断程序。4、不确定次数的循环当max(y)==zgf时,执行循环。5、[zgf,izgf]二max(y);6、disp(num2str(x(izgf)))%显示获得最高分同学的学号。7、y(izgf)=-Inf;%令最高分为负无穷,确保该同学的成绩离开新的循环。8、n=n+l;%对最高分个数计数。9、结束循环10、disp(['共有',nu
6、m2str(n),'人'])%显示获得者人数(2)利用MATLAB内部函数求平均分与方差的伪代码:1、a=mean(y);2、disp('★★★★★★')%显示分隔符3、disp(['平均成绩为:*,num2str(a)])4、s二std(y);5、s2二sJ;%标准差平方得方差6、disp(['方差为:J,num2str(s2)])以上⑴⑵程序整合到一个脚本文件pquick.m中(参见附录3)。程序2:1、np0;l二length(x);2、i二1,2,・・・13、[zgf,izgf]二max(y);%提取最高分及位置。4
7、、判断最高分是否与前一个最高分一致,若一致,则名次同前;若不一致,则名次增加1。5、yy(i)=zgf;%定义新的成绩向量yy用以存放排号顺序的成绩。6、xx(i)=x(izgf);%定义新的学号向量xx用以存放排号顺序的成绩。7、y(izgf)=-Inf;%定义该最高成绩为负无穷,退出查找最大值循坏。8、结束循环以上程序参见paixu.m(附录4),通过脚本文件pxdriver.m(附录5)驱动运行。程序3:1、loadxy.txt;y=xy(:,2);clearxy;s=zcros(10,1);%载入分数,将每个分数段上
8、的学生数量定义为s向量的每一个分量。2、x二5:10:95;%每10分为一个分数段,取个位数为5的分数代替一个分数段上的成绩。3、i二1,2,…,length(y);4、%判断第i个同学的成绩分属哪一个分数段,并将相应分数段上的人数加1。5、结束循坏。6、bar(x,s,0.7),xlab