matlab中利用switch结构设计学生的管理系统

程序原码:

clc;
clear;
s1=struct('stu_id','201010001','name','韩**','score',[98 100 98],'sex','F');%定义每个学生的信息
s2=struct('stu_id','201010002','name','马*同','score',[92 85 92],'sex','F');
s3=struct('stu_id','201010003','name','董*','score',[95 99 92],'sex','F');
s4=struct('stu_id','201010004','name','郭*','score',[98 85 92],'sex','F');
s5=struct('stu_id','201010005','name','白*','score',[19 69 100],'sex','F');
s6=struct('stu_id','201010006','name','*双双','score',[19 69 90],'sex','F');
s7=struct('stu_id','201010007','name','黄*坤','score',[19 69 88],'sex','F');
s8=struct('stu_id','201010008','name','王**','score',[65 69 100],'sex','M');
s9=struct('stu_id','201010009','name','刘雪*','score',[59 69 100],'sex','M');
s10=struct('stu_id','201010010','name','张*亭','score',[99 95 100],'sex','F');
student={s1,s2,s3,s4,s5,s6,s7,s8,s9,s10};%将所有学生的信息放在一个结构体内
s_course={{'微分方程'},{'泛函分析'},{'矩阵论'}};
s_grade={};%定义等级结构体
s_score=[];%定义成绩结构体
s_count=length(student);%计算一共有多少学生
c_count=length(s_course);%计算一共有几个科目
for j=1:s_count
    for i=1:c_count
    score=student{1,j}.score; %将第j个学生的分数信息取出,赋值给score
    grade=score(i); %将第i门的成绩,赋值个grade
    s_score(j,i)=grade; %将没门成绩给到一个矩阵
    c=fix(grade/10); %对成绩除以10,向下取整
        switch c    %通过switch循环,自动每个成绩的等级进行判断
            case 10
                grade='满分';
            case 9
                grade='优秀';
            case 8
                grade='良好';
            case 7
                grade='中等';
            case 6 
                grade='及格';
            otherwise
              grade='不及格';
        end
    s_grade{j,i}=grade;
    end
end
s_grade;
s_score;
fprintf('各科成绩都是优秀或满分的同学:\n\n')
for i=1:s_count  %依次循环判断,每名学生学生是不是全是满分或优秀
s=all(s_score(i,:)>90);
    if s==1
    name=student{1,i}.name;
    stu_id=student{1,i}.stu_id;
    score=student{1,i}.score; 
    fprintf('姓名:%s  学号:%s\n',name,stu_id)
        for j=1:c_count
            fprintf('科目:%s  分数:%d\n',char(s_course{1,j}),score(j)) %循环打印出科目和分数
       end
    fprintf('\n') %换行
    end
end

 

运行图:

注1:这种题目只能是练习matlab的使用,只是起到练习作用,离实际应用差太远了。一个数学老师,他也不懂数据库,只能用结构体来做,如果懂计算机编程的感觉这个太low,那就请您理解吧,数学系普通教师不懂数据库。

注2:其实我本来应该是将 分数存在另外结构体中,会更加合理。因为明天早上还有课,这样也符合要求了!就不接着改了,毕竟这是个选修课的作业,这也应该是我们班的最高水平之一了,还有同学催着我分享给他。

注3:缺陷是每个学生的课只能一样,如果用到数据库,甚至是将数据存在Excel中,比struct合理的多,实现起来比这也简单!不多扯了,我要睡觉了!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值