MATLAB 学生成绩系统管理:结构体与类实现增删改查

本示例使用 MATLAB 结构体和类构建了一个简单的学生成绩系统,通过命令行窗口实现学生的添加、删除、修改和查询操作。

代码实现

%% 定义学生类
classdef Student
    properties
        name
        id
        grade
    end
end

%% 初始化学生信息
students(1) = Student();
students(1).name = '张三';
students(1).id = 1;
students(1).grade = 85;

students(2) = Student();
students(2).name = '李四';
students(2).id = 2;
students(2).grade = 90;

%% 命令行窗口菜单
while true
    disp('请选择要进行的操作:');
    disp('1. 增加学生');
    disp('2. 删除学生');
    disp('3. 修改学生信息');
    disp('4. 修改学生成绩');
    disp('5. 查看学生信息');
    disp('0. 退出程序');
    choice = input('请输入操作编号:');
    
    switch choice
        case 1 % 增加学生
            new_student = Student();
            new_student.name = input('请输入学生姓名:', 's');
            new_student.id = input('请输入学生学号:');
            new_student.grade = input('请输入学生成绩:');
            students(end+1) = new_student;
            disp('学生信息添加成功!');
            
        case 2 % 删除学生
            id_to_delete = input('请输入要删除的学生学号:');
            for i = 1:length(students)
                if students(i).id == id_to_delete
                    students(i) = [];
                    disp('学生信息删除成功!');
                    break;
                end
            end
            
        case 3 % 修改学生信息
            id_to_modify = input('请输入要修改的学生学号:');
            for i = 1:length(students)
                if students(i).id == id_to_modify
                    students(i).name = input('请输入学生姓名:', 's');
                    students(i).grade = input('请输入学生成绩:');
                    disp('学生信息修改成功!');
                    break;
                end
            end
            
        case 4 % 修改学生成绩
            id_to_modify = input('请输入要修改成绩的学生学号:');
            for i = 1:length(students)
                if students(i).id == id_to_modify
                    students(i).grade = input('请输入新的学生成绩:');
                    disp('学生成绩修改成功!');
                    break;
                end
            end
            
        case 5 % 查看学生信息
            disp('学生姓名    学号    成绩');
            for i = 1:length(students)
                fprintf('%s    %d    %d
', students(i).name, students(i).id, students(i).grade);
            end
            
        case 0 % 退出程序
            disp('程序已退出。');
            return;
            
        otherwise
            disp('输入错误,请重新输入!');
    end
end

代码解释

  1. 定义学生类:使用 classdef 定义 Student 类,该类包含 nameidgrade 三个属性,分别存储学生的姓名、学号和成绩。
  2. 初始化学生信息:创建两个 Student 对象,分别存储张三和李四的初始信息。
  3. 命令行窗口菜单:使用 while 循环和 switch 语句实现命令行窗口菜单,提供以下操作选项:
    • 增加学生:创建新的 Student 对象,并将其添加到 students 数组中。
    • 删除学生:遍历 students 数组,找到要删除的学生,并将其从数组中删除。
    • 修改学生信息:遍历 students 数组,找到要修改的学生,并修改其 namegrade 属性值。
    • 修改学生成绩:遍历 students 数组,找到要修改成绩的学生,并修改其 grade 属性值。
    • 查看学生信息:遍历 students 数组,并输出每个学生的信息。
    • 退出程序:退出 while 循环,结束程序运行。

总结

本示例代码演示了如何使用 MATLAB 结构体和类来构建一个简单的学生成绩系统,并通过命令行窗口实现学生的增删改查操作。该系统提供了一个基础框架,可以根据实际需求进行扩展和改进。


原文地址: https://www.cveoy.top/t/topic/nZ9Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录