matlab学生成绩管理系统
时间: 2023-10-16 08:31:12 浏览: 78
一个简单的 Matlab 学生成绩管理系统可以包括以下功能:
1. 添加学生信息
2. 添加学生课程成绩
3. 计算学生总成绩和平均成绩
4. 查看学生信息和成绩
5. 修改学生信息和成绩
6. 删除学生信息和成绩
下面是一个简单的实现过程:
1. 创建一个包含学生姓名、学号、性别、年龄等信息的结构体数组,并设置相应的字段。
```matlab
students = struct('name', {}, 'id', {}, 'gender', {}, 'age', {});
```
2. 创建一个包含学生课程成绩的二维数组,并使用学号来对应学生信息。
```matlab
scores = [];
```
3. 添加学生信息,可以使用 input 函数获取用户输入,并将输入信息存储到结构体数组中。
```matlab
name = input('请输入姓名:', 's');
id = input('请输入学号:', 's');
gender = input('请输入性别:', 's');
age = input('请输入年龄:');
student = struct('name', name, 'id', id, 'gender', gender, 'age', age);
students(end+1) = student;
```
4. 添加学生课程成绩,可以使用 input 函数获取用户输入,并将成绩存储到二维数组中。
```matlab
id = input('请输入学号:', 's');
score1 = input('请输入课程1成绩:');
score2 = input('请输入课程2成绩:');
score3 = input('请输入课程3成绩:');
score = [score1, score2, score3];
scores(end+1, :) = [id, score];
```
5. 计算学生总成绩和平均成绩,可以使用 for 循环遍历二维数组,根据学号查找对应的学生信息,并计算总成绩和平均成绩。
```matlab
for i = 1:size(scores, 1)
id = scores(i, 1);
idx = find(ismember([students.id], id));
total_score = sum(scores(i, 2:end));
avg_score = mean(scores(i, 2:end));
students(idx).total_score = total_score;
students(idx).avg_score = avg_score;
end
```
6. 查看学生信息和成绩,可以使用 for 循环遍历结构体数组,输出每个学生的信息和成绩。
```matlab
for i = 1:numel(students)
disp(students(i));
idx = find(ismember(scores(:,1), students(i).id));
if ~isempty(idx)
disp(['课程1成绩:', num2str(scores(idx, 2))]);
disp(['课程2成绩:', num2str(scores(idx, 3))]);
disp(['课程3成绩:', num2str(scores(idx, 4))]);
disp(['总成绩:', num2str(students(i).total_score)]);
disp(['平均成绩:', num2str(students(i).avg_score)]);
end
end
```
7. 修改学生信息和成绩,可以使用 input 函数获取用户输入,并根据学号查找对应的学生和成绩,进行修改。
```matlab
id = input('请输入学号:', 's');
idx = find(ismember([students.id], id));
if ~isempty(idx)
name = input('请输入姓名:', 's');
gender = input('请输入性别:', 's');
age = input('请输入年龄:');
students(idx).name = name;
students(idx).gender = gender;
students(idx).age = age;
idx = find(ismember(scores(:,1), id));
if ~isempty(idx)
score1 = input('请输入课程1成绩:');
score2 = input('请输入课程2成绩:');
score3 = input('请输入课程3成绩:');
score = [score1, score2, score3];
scores(idx, 2:end) = score;
total_score = sum(score);
avg_score = mean(score);
students(idx).total_score = total_score;
students(idx).avg_score = avg_score;
end
end
```
8. 删除学生信息和成绩,可以使用 input 函数获取用户输入,并根据学号查找对应的学生和成绩,进行删除。
```matlab
id = input('请输入学号:', 's');
idx = find(ismember([students.id], id));
if ~isempty(idx)
students(idx) = [];
idx = find(ismember(scores(:,1), id));
if ~isempty(idx)
scores(idx, :) = [];
end
end
```
阅读全文