用matlab写一个程序,一组学生的考生成绩如下表所示,若100分为满分,[90-99]为优秀[80-89]为良好,[60-79]为及格,低于 60分为不及格,试编制一个根据成绩划分等级的程序,实现输入一组考生姓名与成绩,输出并打印对应的姓名与等级
时间: 2024-09-18 08:14:36 浏览: 47
为了编写这个MATLAB程序,你可以按照以下步骤来设计:
```Matlab
% 定义学生分数等级映射
grade_map = containers.Map({'优秀', '良好', '及格', '不及格'}, [90, 80, 60, 0]);
% 输入学生信息(这里假设用户会手动输入)
student_scores = input('请输入学生的姓名和成绩,格式为 "姓名 成绩",每行一个,按回车结束:', 's'); % 提示用户输入
% 将字符串分割成姓名和成绩
students = textscan(student_scores, '%s %f', 'HeaderLines', 0);
% 确保数据格式正确
if ~isequal(numel(students{1}), numel(students{2}))
error('输入的数据格式错误,请重新输入');
end
% 遍历学生,计算并输出等级
for i = 1:numel(students{1})
score = students{2}(i);
grade = find(score >= grade_map.keys) - 1; % 找到对应等级的索引
if isempty(grade)
grade = length(grade_map.keys); % 如果分数低于最低等级,设为不及格
end
fprintf('%s 的成绩为 %.0f 分,属于:%s\n', students{1}{i}, score, grade_map(values(grade)));
end
```
在这个程序中,我们首先创建了一个映射表`grade_map`,将每个等级及其对应的分数范围关联起来。然后提示用户输入学生的姓名和成绩,并使用`textscan`函数处理输入。最后,遍历每个学生的成绩,找出其所属的等级,并将其姓名、成绩和等级打印出来。
阅读全文