MATLAB 学生成绩管理系统:结构体和类实现增删改查功能
MATLAB 学生成绩管理系统:结构体和类实现增删改查功能
本文提供一个使用 MATLAB 结构体和类实现的学生成绩管理系统的示例代码。该系统支持添加学生、修改学生成绩、删除学生和查看学生信息等功能。
代码示例:
% 定义学生结构体
student.name = '';
student.id = '';
student.grade = [];
% 定义学生类
classdef Student
properties
name
id
grade
end
methods
function obj = Student(name, id, grade)
obj.name = name;
obj.id = id;
obj.grade = grade;
end
function obj = setGrade(obj, grade)
obj.grade = grade;
end
end
end
% 创建学生列表
students = {};
% 主程序
while true
disp('请选择操作:');
disp('1. 添加学生');
disp('2. 修改学生成绩');
disp('3. 删除学生');
disp('4. 查看学生信息');
disp('0. 退出程序');
choice = input('请输入数字选择操作:');
switch choice
case 1 % 添加学生
name = input('请输入学生姓名:', 's');
id = input('请输入学生学号:', 's');
grade = input('请输入学生成绩:');
student.name = name;
student.id = id;
student.grade = grade;
students = [students, student];
disp('学生添加成功!');
case 2 % 修改学生成绩
id = input('请输入要修改成绩的学生学号:', 's');
found = false;
for i = 1:length(students)
if strcmp(students(i).id, id)
grade = input('请输入新的成绩:');
students(i).grade = grade;
found = true;
disp('成绩修改成功!');
break;
end
end
if ~found
disp('未找到该学生,请检查学号是否正确!');
end
case 3 % 删除学生
id = input('请输入要删除的学生学号:', 's');
found = false;
for i = 1:length(students)
if strcmp(students(i).id, id)
students(i) = [];
found = true;
disp('学生删除成功!');
break;
end
end
if ~found
disp('未找到该学生,请检查学号是否正确!');
end
case 4 % 查看学生信息
if isempty(students)
disp('学生列表为空!');
else
disp('学生列表如下:');
for i = 1:length(students)
disp(['姓名:', students(i).name, ',学号:', students(i).id, ',成绩:', num2str(students(i).grade)]);
end
end
case 0 % 退出程序
disp('感谢使用本系统,再见!');
break;
otherwise
disp('无效的选择,请重新输入!');
end
end
功能说明:
- 添加学生:输入学生姓名、学号、成绩,将学生添加到学生列表中。
- 修改学生成绩:输入学生学号,查找学生并输入新的成绩,将学生的成绩更新。
- 删除学生:输入学生学号,查找学生并删除。
- 查看学生信息:显示当前学生列表中的所有学生的姓名、学号和成绩。
代码分析:
- 代码使用结构体
student和类Student来存储和操作学生信息。 - 结构体
student用于简单地存储学生信息,而类Student提供了更完善的封装和方法,例如setGrade方法可以用于修改学生的成绩。 - 代码使用循环和
switch语句来实现用户的选择操作。 - 代码使用
input函数获取用户的输入,并使用disp函数输出结果。 - 代码使用
strcmp函数进行字符串比较,使用num2str函数将数字转换为字符串。
总结:
该代码示例展示了使用 MATLAB 结构体和类实现学生成绩管理系统的基本方法。通过修改和扩展代码,可以实现更复杂的功能,例如成绩统计、排名等。
原文地址: https://www.cveoy.top/t/topic/n0gC 著作权归作者所有。请勿转载和采集!