结课作业之 学生成绩管理系统

一直想写,总是没抽到时间,今天终于完成了,哈哈哈。。。

可实现n个学生m门成绩录入,并且降序排列。


%信息录入,可实现n门成绩和m个学生
student = struct('Name', '', 'No', '', 'Cirr','','Scores','','Ave','' );%构造结构体
n = input('Please input students number : '); %'对应的人数'

for i= 1:n
    student(i).Name = input('Name: '); 
    student(i).No = input('No: ');
    student(i).Cirr = input('Cirr: ');
    student(i).Scores = input('Scores: ');
    student(i).Ave = mean(student(i).Scores);
end

%成绩排序

for ii=1:length(student)-1
    for jj=ii+1: length(student)
        if(student(jj).Ave > student(ii).Ave)
            temp = student(jj);
            student(jj) = student(ii);
            student(ii) = temp;
        end
    end
end

disp(['Name',blanks(6),'No',blanks(6),'Cirr',blanks(6),'Scores',blanks(6),'Ave',blanks(6)] );

for k=1:n
    disp([student(k).Name ,blanks(9),num2str(student(k).No),blanks(6), student(k).Cirr, blanks(5), num2str(student(k).Scores), blanks(5),num2str(student(k).Ave) ]);
end %注意matlab要合理利用矩阵,比如这个disp的参数就是个大矩阵。
%注意disp只能显示字符串,要把数字进行转换.

测试

>> test
Please input students number : 2
Name: 'a'
No: 1
Cirr: ['c ' 'm ' 'e ']
Scores: [1 2 3 ]
Name: 'b'
No: 2
Cirr: ['c ' 'm ' 'e ']
Scores: [1 2 4]
Name      No      Cirr      Scores      Ave      
b         2      c m e      1  2  4     2.3333
a         1      c m e      1  2  3     2

你可能感兴趣的:(#,Matlab)