matlab使用struct记录学生的英语、数学、物理三门课的成绩。脚本的功能是:输入N个学生的这3门成绩,然后输出:每个学生的三门课平均分、三门课总分和三门课各自的成绩等级(A、B、C、D、E)(要求:调用第3题中的grade函数)。
时间: 2024-05-25 20:16:39 浏览: 38
%% 定义结构体
students = struct('name',{},'english',{},'math',{},'physics',{},'average',{},'total',{},'grade',{});
%% 输入学生信息
N = input('请输入学生人数:');
for i = 1:N
name_i = input(sprintf('请输入第%d个学生的姓名:',i),'s');
english_i = input(sprintf('请输入%s的英语成绩:',name_i));
math_i = input(sprintf('请输入%s的数学成绩:',name_i));
physics_i = input(sprintf('请输入%s的物理成绩:',name_i));
students(i).name = name_i;
students(i).english = english_i;
students(i).math = math_i;
students(i).physics = physics_i;
end
%% 计算平均分和总分,并赋值到结构体中
for i = 1:N
average_i = (students(i).english + students(i).math + students(i).physics) / 3;
total_i = students(i).english + students(i).math + students(i).physics;
students(i).average = average_i;
students(i).total = total_i;
end
%% 计算成绩等级,并赋值到结构体中
for i = 1:N
grade_i = grade(students(i).average);
students(i).grade = grade_i;
end
%% 输出结果
fprintf('%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n','姓名','英语','数学','物理','平均分','总分','成绩等级');
for i = 1:N
fprintf('%-10s%-10.1f%-10.1f%-10.1f%-10.1f%-10.1f%-10s\n',students(i).name,students(i).english,students(i).math,students(i).physics,students(i).average,students(i).total,students(i).grade);
end
阅读全文