编写一个对本班学生本学期成绩管理程序。输入学号、姓名、科目、成绩(设有5名同学、4门功课)。能自动对成绩进行单科或综合的排序、查找答:judge=input('是输入(1)还是查找(2)还是排序(3)?');ifjudge==1forn=1:5txt=['请输入第'int2str(n)'个学生姓名:'];lab{n,1}=input(txt);txt=['请输入第'int2str(n)'个学生学号:'];lab{n,2}=input(txt);txt=['请输入第'int2str(n)'个学生数学成绩:'];lab{n,3}=input(txt);txt=['请输入第'int2str(n)'个学生外语成绩:'];lab{n,4}=input(txt);txt=['请输入第'int2str(n)'个学生语文成绩:'];lab{n,5}=input(txt);txt=['请输入第'int2str(n)'个学生物理成绩:'];lab{n,6}=input(txt);lab{n,7}=lab{n,3}+lab{n,4}+lab{n,5}+lab{n,6};endlab{n+1,1}='none';%留出一个空行以便以后的操作lab{n+1,2}=-1;lab{n+1,3}=-1;lab{n+1,4}=-1;lab{n+1,5}=-1;lab{n+1,6}=-1;savelablabelseifjudge==2loadlab.matk=input('你是要用学号(1)还是姓名(2)查找?');ifk==1num=input('请输入学号');m=1;while(num~=lab{m,2}&&m=5)m=m+1;endifm5disp('查无此人')else%txt=['姓名:'+int2str(lab{m,1})];%disp(lab{m,1});disp(lab{m,1});txt=['学号'int2str(lab{m,2})];disp(txt);txt=['数学成绩'int2str(lab{m,2})];disp(txt);txt=['外语成绩'int2str(lab{m,2})];disp(txt);txt=['语文成绩'int2str(lab{m,2})];disp(txt);txt=['物理成绩'int2str(lab{m,2})];disp(txt);endelsename=input('请输入姓名');m=1;while(~strcmp(name,lab{m,1})&&m=5)m=m+1;endifm5disp('查无此人')else%txt=['姓名:'+int2str(lab{m,1})];%disp(lab{m,1});disp(lab{m,1});txt=['学号'int2str(lab{m,2})];disp(txt);txt=['数学成绩'int2str(lab{m,3})];disp(txt);txt=['外语成绩'int2str(lab{m,4})];disp(txt);txt=['语文成绩'int2str(lab{m,5})];disp(txt);txt=['物理成绩'int2str(lab{m,6})];disp(txt);endendelseloadlab.mat;turn=input('按什么顺序排?从大到小(1)从小到大(2)');info=input('按什么排序?学号(1)数学成绩(2)外语成绩(3)语文成绩(4)物理成绩(5)综合成绩(6)');ifturn==1switchinfocase1forflag=1:4fori=5:-1:2iflab{i,2}=lab{i-1,2}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase2forflag=1:4fori=5:-1:2iflab{i,3}=lab{i-1,3}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase3forflag=1:4fori=5:-1:2iflab{i,4}=lab{i-1,4}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase4forflag=1:4fori=5:-1:2iflab{i,5}=lab{i-1,5}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase5forflag=1:4fori=5:-1:2iflab{i,6}=lab{i-1,6}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase6forflag=1:4fori=5:-1:2iflab{i,7}=lab{i-1,7}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendotherwisedisp('未做任何改动');endelseswitchinfocase1forflag=1:4fori=5:-1:2iflab{i,2}=lab{i-1,2}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase2forflag=1:4fori=5:-1:2iflab{i,3}=lab{i-1,3}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase3forflag=1:4fori=5:-1:2iflab{i,4}=lab{i-1,4}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase4forflag=1:4fori=5:-1:2iflab{i,5}=lab{i-1,5}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase5forflag=1:4fori=5:-1:2iflab{i,6}=lab{i-1,6}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase6forflag=1:4fori=5:-1:2iflab{i,7}=lab{i-1,7}forj=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendotherwisedisp('未做任何改动');endendsavelablab;read=input('排序完成,是否查看?查看(1)不查看(2)');ifread==1fork=1:5disp(lab{k,1});txt=['学号'int2str(lab{k,2})];disp(txt);txt=['数学成绩'int2str(lab{k,3})];disp(txt);txt=['外语成绩'int2str(lab{k,4})];disp(txt);txt=['语文成绩'int2str(lab{k,5})];disp(txt);txt=['物理成绩'int2str(lab{k,6})];disp(txt);endendend本程序可完全实现题目中要求的全部功能,但在排序时希望以后可以改为用调用函数的形式来简化程序,而且对于用户错误操作的提醒方面尚有不足