MATLAB 设计一个学生管理系统(简易结构体版)

设计一个简单的学生成绩管理程序,包含如下功能:
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
请输入作为排序的课程成绩(15)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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值