设计一个简单的学生成绩管理程序,包含如下功能:
1、可创建不少于100名学生成员;
2、每名成员的记录包括:学号、姓名、专业和5门课程的成绩;
3、能够实现添加、删除、修改学生成员;
4、能够实现添加、删除、修改学生成员的课程成绩;
5、分别计算每一门课程的平均成绩 ;
6、每一门课程单独排序,输出由高到低的课程、姓名、成绩信息。
运行结果
>> zuoye3
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):1
请输入学号:1
请输入名字:1
请输入专业:1
请输入课程1成绩:5
请输入课程2成绩:4
请输入课程3成绩:3
请输入课程4成绩:2
请输入课程5成绩:1
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):1
请输入学号:2
请输入名字:2
请输入专业:2
请输入课程1成绩:2
请输入课程2成绩:1
请输入课程3成绩:3
请输入课程4成绩:4
请输入课程5成绩:5
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):1
请输入学号:1
该学生已存在,请重新输入学号:
请输入学号:3
请输入名字:1
请输入专业:1
请输入课程1成绩:1
请输入课程2成绩:2
请输入课程3成绩:3
请输入课程4成绩:5
请输入课程5成绩:4
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):1
请输入学号:5
请输入名字:3
请输入专业:3
请输入课程1成绩:3
请输入课程2成绩:4
请输入课程3成绩:3
请输入课程4成绩:2
请输入课程5成绩:1
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):2
输入要删除学生的学号:2
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):6
id: 1
name: 1
zy: 1
kc1: 5
kc2: 4
kc3: 3
kc4: 2
kc5: 1
id: 3
name: 1
zy: 1
kc1: 1
kc2: 2
kc3: 3
kc4: 5
kc5: 4
id: 5
name: 3
zy: 3
kc1: 3
kc2: 4
kc3: 3
kc4: 2
kc5: 1
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):3
请输入修改学生的学号:1
请输入修改后的学号:1
请输入修改后的名字:1
请输入修改后的专业:1
请输入修改后的课程1成绩:1
请输入修改后的课程2成绩:1
请输入修改后的课程3成绩:1
请输入修改后的课程4成绩:1
请输入修改后的课程5成绩:1
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):6
id: 1
name: 1
zy: 1
kc1: 1
kc2: 1
kc3: 1
kc4: 1
kc5: 1
id: 3
name: 1
zy: 1
kc1: 1
kc2: 2
kc3: 3
kc4: 5
kc5: 4
id: 5
name: 3
zy: 3
kc1: 3
kc2: 4
kc3: 3
kc4: 2
kc5: 1
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):4
课程1平均成绩:3
课程2平均成绩:4
课程3平均成绩:3
课程4平均成绩:2
课程5平均成绩:1
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):5
请输入作为排序的课程成绩(1至5):2
按课程2降序输出
id: 5
name: 3
zy: 3
kc1: 3
kc2: 4
kc3: 3
kc4: 2
kc5: 1
id: 3
name: 1
zy: 1
kc1: 1
kc2: 2
kc3: 3
kc4: 5
kc5: 4
id: 1
name: 1
zy: 1
kc1: 1
kc2: 1
kc3: 1
kc4: 1
kc5: 1
----------------------------------------------------------
| 1:添加一个学生 |
| 2:删除一个学生 |
| 3:修改一个学生 |
| 4:查看平均成绩 |
| 5:成绩排序 |
| 6:打印 |
| 7:退出 |
-----------------------------------------------------------
请输入你要进行的操作(输入每行开头代表的操作数):7
>>
代码
clear all;
n=1;
while 1
fprintf('----------------------------------------------------------\n');
fprintf('| 1:添加一个学生 |\n');
fprintf('| 2:删除一个学生 |\n');
fprintf('| 3:修改一个学生 |\n');
fprintf('| 4:查看平均成绩 |\n');
fprintf('| 5:成绩排序 |\n');
fprintf('| 6:打印 |\n');
fprintf('| 7:退出 |\n');
fprintf('-----------------------------------------------------------\n');
sr = input('\n请输入你要进行的操作(输入每行开头代表的操作数):');
switch sr
case 1
while 1
flag=0;
student(n).id=input('请输入学号:');
for i=1:n-1
if student(i).id==student(n).id
flag=1;
end
end
if flag==1
fprintf('该学生已存在,请重新输入学号:\n');
continue;
else
student(n).name=input('请输入名字:');
student(n).zy=input('请输入专业:');
student(n).kc1=input('请输入课程1成绩:');
student(n).kc2=input('请输入课程2成绩:');
student(n).kc3=input('请输入课程3成绩:');
student(n).kc4=input('请输入课程4成绩:');
student(n).kc5=input('请输入课程5成绩:');
n=n+1;
break;
end
end
case 2
while 1
flag=0;
sxh=input('输入要删除学生的学号:');
for i=1:n-1
if student(i).id==sxh
flag=1;
end
end
if flag==0
fprintf('该学生不存在,请重新输入:\n');
continue;
else
if sxh==n-1
n=n-1;
break;
else
for i=sxh:n-2
student(i)=student(i+1);
end
n=n-1;
break;
end
end
end
case 3
while 1
flag=0;
xgxs=input('请输入修改学生的学号:');
for i=1:n-1
if student(i).id==xgxs
flag=i;
break;
end
end
if flag==0
fprintf('该学生不存在,请重新输入:');
continue;
else
student(flag).id=input('请输入修改后的学号:');
student(flag).name=input('请输入修改后的名字:');
student(flag).zy=input('请输入修改后的专业:');
student(flag).kc1=input('请输入修改后的课程1成绩:');
student(flag).kc2=input('请输入修改后的课程2成绩:');
student(flag).kc3=input('请输入修改后的课程3成绩:');
student(flag).kc4=input('请输入修改后的课程4成绩:');
student(flag).kc5=input('请输入修改后的课程5成绩:');
break;
end
end
case 4
for i=1:n-1
pjkc1=mean(student(i).kc1);
pjkc2=mean(student(i).kc2);
pjkc3=mean(student(i).kc3);
pjkc4=mean(student(i).kc4);
pjkc5=mean(student(i).kc5);
end
disp(['课程1平均成绩:',num2str(pjkc1)]);
disp(['课程2平均成绩:',num2str(pjkc2)]);
disp(['课程3平均成绩:',num2str(pjkc3)]);
disp(['课程4平均成绩:',num2str(pjkc4)]);
disp(['课程5平均成绩:',num2str(pjkc5)]);
fprintf('\n');
case 5
kcx=input('请输入作为排序的课程成绩(1至5):');
switch kcx
case 1
for i=1:n-1
for j=1:n-i-1
if student(j).kc1<student(j+1).kc1
student(1000)=student(j);
student(j)=student(j+1);
student(j+1)=student(1000);
end
end
end
fprintf('按课程1降序输出\n');
for i=1:n-1
disp(student(i));
end
case 2
for i=1:n-1
for j=1:n-i-1
if student(j).kc2<student(j+1).kc2
student(1000)=student(j);
student(j)=student(j+1);
student(j+1)=student(1000);
end
end
end
fprintf('按课程2降序输出\n');
for i=1:n-1
disp(student(i));
end
case 3
for i=1:n-1
for j=1:n-i-1
if student(j).kc3<student(j+1).kc3
student(1000)=student(j);
student(j)=student(j+1);
student(j+1)=student(1000);
end
end
end
fprintf('按课程3降序输出\n');
for i=1:n-1
disp(student(i));
end
case 4
for i=1:n-1
for j=1:n-i-1
if student(j).kc4<student(j+1).kc4
student(1000)=student(j);
student(j)=student(j+1);
student(j+1)=student(1000);
end
end
end
fprintf('按课程4降序输出\n');
for i=1:n-1
disp(student(i));
end
case 5
for i=1:n-1
for j=1:n-i-1
if student(j).kc5<student(j+1).kc5
student(1000)=student(j);
student(j)=student(j+1);
student(j+1)=student(1000);
end
end
end
fprintf('按课程5降序输出\n');
for i=1:n-1
disp(student(i));
end
end
case 6
for i=1:n-1
disp(student(i));
end
case 7
break;
end
end
版本2016a