用流程图将学生的百分制成绩转换为五分制成绩。定义分数段:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(0-5
时间: 2023-06-16 09:03:15 浏览: 1259
以下是将学生的百分制成绩转换为五分制成绩的流程图:
![学生成绩转换为五分制成绩](https://i.imgur.com/sSZ4yK2.png)
流程图说明:
1. 输入学生的百分制成绩。
2. 判断学生的百分制成绩是否等于100分。
3. 如果是,将五分制成绩设为5分。
4. 如果不是,判断学生的百分制成绩是否在90-99分之间。
5. 如果是,将五分制成绩设为4分。
6. 如果不是,在判断学生的百分制成绩是否在80-89分之间。
7. 如果是,将五分制成绩设为3分。
8. 如果不是,在判断学生的百分制成绩是否在60-79分之间。
9. 如果是,将五分制成绩设为2分。
10. 如果不是,在判断学生的百分制成绩是否在0-59分之间。
11. 如果是,将五分制成绩设为1分。
12. 如果不是,将五分制成绩设为0分。
13. 输出学生的五分制成绩。
相关问题
用matlab1.分别使用if-else-end和switch-case分支(条件) 结构,将学生的百分制成绩转换为五分制成绩。定义 分数段:满分(100),优秀(90-99),良好(80-89), 及格(60-79),不及格(0-59)。假设以下5位同学 Jack、Marry、Peter、Rose、Tom的百分制成绩分别 为72、83、56、94、100,请编写程序显示5位同学 的姓名、百分制成绩,并给出他们的五分制成绩。
使用if-else-end结构的代码如下:
```matlab
% 定义五分制成绩的分数段
A = 5; % 满分
B = 4; % 优秀
C = 3; % 良好
D = 2; % 及格
F = 1; % 不及格
% 定义学生姓名和百分制成绩
names = {'Jack', 'Marry', 'Peter', 'Rose', 'Tom'};
scores = [72, 83, 56, 94, 100];
% 转换为五分制成绩
for i = 1:length(names)
name = names{i};
score = scores(i);
disp([name, '的百分制成绩为:', num2str(score)]);
if score == 100
disp([name, '的五分制成绩为:A']);
elseif score >= 90
disp([name, '的五分制成绩为:B']);
elseif score >= 80
disp([name, '的五分制成绩为:C']);
elseif score >= 60
disp([name, '的五分制成绩为:D']);
else
disp([name, '的五分制成绩为:F']);
end
end
```
使用switch-case结构的代码如下:
```matlab
% 定义五分制成绩的分数段
A = 5; % 满分
B = 4; % 优秀
C = 3; % 良好
D = 2; % 及格
F = 1; % 不及格
% 定义学生姓名和百分制成绩
names = {'Jack', 'Marry', 'Peter', 'Rose', 'Tom'};
scores = [72, 83, 56, 94, 100];
% 转换为五分制成绩
for i = 1:length(names)
name = names{i};
score = scores(i);
disp([name, '的百分制成绩为:', num2str(score)]);
switch floor(score / 10)
case 10
disp([name, '的五分制成绩为:A']);
case {9}
disp([name, '的五分制成绩为:B']);
case {8}
disp([name, '的五分制成绩为:C']);
case {7, 6}
disp([name, '的五分制成绩为:D']);
otherwise
disp([name, '的五分制成绩为:F']);
end
end
```
用MATLAB 分别使用if-else-end和switch-case分支(条件)结构,将学生的百分制成绩转换为五分制成绩。定义分数段:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(0-59)。假设以下5位同学 Jack、Marry、Peter、Rose、Tom的百分制成绩分别为72、83、56、94、100,请编写程序显示5位同学的姓名、百分制成绩,并给出他们的五分制成绩。 (1)请提交程序、结果和流程图。 (2)比较两种分支结构,说明解决这个问题你更 喜欢使用哪一种?为什么?
使用if-else-end的程序代码如下:
```matlab
% 定义五分制成绩的字符串数组
grades = ["不及格", "不及格", "不及格", "不及格", "不及格"];
% 定义五位同学的姓名和百分制成绩
names = ["Jack", "Marry", "Peter", "Rose", "Tom"];
scores = [72, 83, 56, 94, 100];
% 计算五分制成绩
for i = 1:length(scores)
if scores(i) == 100
grades(i) = "优秀";
elseif scores(i) >= 90
grades(i) = "优秀";
elseif scores(i) >= 80
grades(i) = "良好";
elseif scores(i) >= 60
grades(i) = "及格";
else
grades(i) = "不及格";
end
end
% 显示结果
disp("姓名" + " 百分制成绩" + " 五分制成绩");
for i = 1:length(names)
disp(names(i) + " " + scores(i) + " " + grades(i));
end
```
使用switch-case的程序代码如下:
```matlab
% 定义五分制成绩的字符串数组
grades = ["不及格", "不及格", "不及格", "不及格", "不及格"];
% 定义五位同学的姓名和百分制成绩
names = ["Jack", "Marry", "Peter", "Rose", "Tom"];
scores = [72, 83, 56, 94, 100];
% 计算五分制成绩
for i = 1:length(scores)
switch true
case scores(i) == 100
grades(i) = "优秀";
case scores(i) >= 90 && scores(i) < 100
grades(i) = "优秀";
case scores(i) >= 80 && scores(i) < 90
grades(i) = "良好";
case scores(i) >= 60 && scores(i) < 80
grades(i) = "及格";
otherwise
grades(i) = "不及格";
end
end
% 显示结果
disp("姓名" + " 百分制成绩" + " 五分制成绩");
for i = 1:length(names)
disp(names(i) + " " + scores(i) + " " + grades(i));
end
```
程序的流程图如下:
![分支结构流程图](https://i.imgur.com/f3KrnMd.png)
个人更喜欢使用if-else-end分支结构,因为它的逻辑相对更清晰,代码也更易读。而switch-case结构虽然可以实现同样的功能,但是在分支较多的情况下,代码可能会出现较长的情况列表,使得代码可读性下降。
阅读全文