《matlabGUI学生成绩管理系统》由会员分享,可在线阅读,更多相关《matlabGUI学生成绩管理系统(20页珍藏版)》请在金锄头文库上搜索。
1、.西安邮电大学MATLAB及其 EDA 仿真课内实验报告院(系)名称:电子工程学院Word 专业资料.学生姓名:李豪专 业 名 称:集成电路设计与集成系统班级:1202班时间:2013 年12月20日一、实验内容建立基于图形用户界面GUI 的学生成绩管理系统,该系统能够实现学生成绩信息的增加、删除、查询(查询某门课所有学生的成绩并显示排名,查询某个学生的各科成绩并显示排名) 、课程成绩统计最高分、最低分、平均分、方差、并显示相应的排名;绘制柱状图、条形图、饼状图、正太分布曲线等功能。二、实验目的通过本实验使学生掌握图形用户界面GUI 的操作和设计流程,并通过编写回调函数巩固前期的知识。三、报告
2、正文(一)设计思路Word 专业资料.学生成绩管理系统界面菜单模块显示模块绘图模块菜单模块单统功绘科计能图成成菜菜绩绩单单显示模块姓学成排名号绩名(二)设计步骤与设计内容1. 启动 GUI ,命令窗口中输入guideWord 专业资料.2. 放置控件。先放置一个 Edit Text ,tag 名称设为 edit14 ,颜色设置为灰色, String 设置为学生成绩管理系统 ,该控件的功能是显示该 GUI 的功能;再放置五个 Edit Text , tag 名称分别设为 edit1 、 edit2 、edit3 、 edit4 、edit13,颜色均设置为淡蓝色,String 分别设置为 姓名、
3、学号、成绩 其他、排名、成绩类型,这些控件的功能作为下面listbox的标题;再放置四个listbox, tag名称分别设为 xingming、xuehao、 grade 、paiming ,颜色均设置淡蓝色,String 设置为,这些该控件的功能是分别显示对应学生的姓名、学号、成绩、排名;再放置五个Edit Text ,tag名称分别设为 edit7 、edit8 、edit9 、edit10 、edit11 ,颜色均设置为淡蓝色, String 分别设置为专业, 数学,英语,体育物理,该控件的功能是显示个人对应的科目; 再放置一个 Axes ,tag 名称设为 axes1 ,颜色设置为灰色
4、,该控件的功能是显示绘制的图;3.Word 专业资料.4. 保存 .fig 文件5. 编写 .m 文件,这部分要详细叙述每个子函数的编写思路, 每条语句后面要给出注释说明该语句的功能;只需要附上自己编写的回调函数部分,其他系统自动生成的不需要放入报告中。读取数据思路:从表格中读取数据的对应行赋给对应的句柄grade,form = xlsread(student.xlsx); % 从 EXCEL 表格读取数据handles.fenshu = grade;% 所有成绩handles.major = grade(:,1);%专业课成绩handles.english = grade(:,2);%英语成
5、绩handles.math = grade(:,3);% 数学成绩 ihandles.physical = grade(:,4);%体育成绩handles.physics= grade(:,5);% 物理成绩handles.name = form(2:end,1);% 姓名handles.num = form(2:end,2);% 学号% Choose default command line output for GUI handles.output = hObject;% Update handles structureguidata(hObject, handles);显示单科成绩及对应
6、学生的姓名学号和排名思路:利用下拉菜单,获取 value 值,用 case 语句判断,当选中下拉菜单的某项时,把该项对应的成绩,姓名,学号,排名的值送给对应listbox显示。Word 专业资料.val = get(hObject,value );% 获取下拉菜单控件的value 值switchval;case 2% 选中下拉菜单的第二项set(handles.grade,String,handles.major)% 将选中的成绩给listbox.gradeset(handles.xingming,String,handles.name)% 将选中的学生姓名给listbox.xingmings
7、et(handles.xuehao,String,handles.num)% 将选中的学生学号给listbox.xuehaohandles.select = handles.major;% 将选中的成绩赋给一个变量guidata(hObject, handles);% 更新句柄major = handles.major;n = length(major);%获取专业课成绩数据长度d = zeros(n,1);%创建一个 n 行一列的全零矩阵for i = 1:na,b = max(major);% 获取 major 的最大值和位置major(b,1) = 0;% 把 major 的最大值置换为
8、0d(b,1) = i;% 矩阵 d 存储成绩的排名endhandles.d = d;% 把排名给一个新的变量set(handles.paiming,String,d);% 使排名显示case 3set(handles.grade,String,handles.english)% 将选中的成绩给listbox.gradeWord 专业资料.set(handles.xingming,String,handles.name)% 将选中的学生姓名给listbox.xingmingset(handles.xuehao,String,handles.num)% 将选中的学生学号给listbox.xueh
9、aohandles.select = handles.english;% 将选中的成绩赋给一个变量english = handles.english;n = length(english);% 获取英语课成绩数据长度d = zeros(n,1);% 创建一个 n 行一列的全零矩阵for i = 1:na,b = max(english);% 获取 english的最大值和位置english(b,1) = 0;% 把 english的最大值置换为0d(b,1) = i;% 矩阵 d 存储成绩的排名endhandles.d = d;% 把排名给一个新的变量set(handles.paiming,S
10、tring,d);case 4set(handles.grade,String,handles.math)% 将选中的成绩给listbox.gradeset(handles.xingming,String,handles.name)% 将选中的学生姓名给listbox.xingmingset(handles.xuehao,String,handles.num)% 将选中的学生学号给listbox.xuehaoWord 专业资料.handles.select = handles.math;% 将选中的成绩赋给一个变量math = handles.math;n = length(math);% 获
11、取数学成绩数据长度d = zeros(n,1);% 创建一个 n 行一列的全零矩阵for i = 1:na,b = max(math);% 获取 English 的最大值和位置math(b,1) = 0;% 把 math 的最大值置换为0d(b,1) = i;% 矩阵 d存储成绩的排名endhandles.d = d;set(handles.paiming,String,d);% 显示 math 成绩排名case 5set(handles.grade,String,handles.physical)% 将选中的成绩给listbox.gradeset(handles.xingming,String,handles.name)% 将选中的学生姓名给listbox.