clear; s=char('学生成绩管理系统'); t=input('请输入班级人数'); name=cell(1,t); A=0; B=0; C=0; D=0; for i=1:t name{1,i}=input('请输入学生姓名'); marks{1,i}=input('请输入学生成绩'); rank=cell(1,4); for i=1:10 a{i}=89+i; b{i}=79+i... clear; s=char('学生成绩管理系统'); t=input('请输入班级人数'); name=cell(1,t); A=0; B=0; C=0; D=0; for i=1:t name{1,i}=input('请输入学生姓名'); marks{1,i}=input('请输入学生成绩'); rank=cell(1,4); for i=1:10 a{i}=89+i; b{i}=79+i; c{i}=69+i; d{i}=59+i; end c=[d,c]; k=struct('name',name,'marks',marks,'rank',rank); for i=1:t switch k(i).marks case 100 A=A+1; k(i).rank='满分'; case a A=A+1; k(i).rank='优秀'; case b B=B+1; k(i).rank='良好'; case c C=C+1; k(i).rank='及格'; otherwise D=D+1; k(i).rank='不及格'; end end marks=cell2mat(marks);%将分数元胞数组转换成普通矩阵 rank={A,B,C,D};%各分数段人数 e=A/t;%优秀人数所占比例 f=B/t;%良好人数所占比例 g=C/t;%及格人数所占比例 h=D/t;%不及格人数所占比例 i=(A+B+C)/t;%及格率 a=max(marks);%求成绩中的最大值 b=min(marks);%求成绩中的最小值 c=sum(marks)/t;%求所有同学成绩的平均值 d=sort(marks);%将成绩按升序排列 j=std(marks,flag,dim);%求所有成绩的无偏差标准差 disp(['学生姓名','得分','等级','优秀、良好、及格、不及格人数','各等级所占比例','及格率','成绩中的最大值','成绩中的最小值','平均值','标准差','成绩按升序排列']); for i=1:t; disp([t(i).name,blanks(6),t(i).marks,blanks(6),t(i).rank,blanks(6),e,f,g,h,i,a,b,c,d,j]); end end 展开