




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年4月19日matlabGUI学生成绩管理系统文档仅供参考西安邮电大学MATLAB及其EDA仿真课内实验报告院(系)名称:电子工程学院学生姓名:李豪专业名称:集成电路设计与集成系统班级:1202班时间:12月20日实验内容建立基于图形用户界面GUI的学生成绩管理系统,该系统能够实现学生成绩信息的增加、删除、查询(查询某门课所有学生的成绩并显示排名,查询某个学生的各科成绩并显示排名)、课程成绩统计最高分、最低分、平均分、方差、并显示相应的排名;绘制柱状图、条形图、饼状图、正太分布曲线等功能。实验目的经过本实验使学生掌握图形用户界面GUI的操作和设计流程,并经过编写回调函数巩固前期的知识。报告正文设计思路学生成绩管理系统界面菜单学生成绩管理系统界面菜单模块显示模块绘图模块单科成绩统计成绩功能菜单绘图菜单菜单模块姓名姓名学号成绩排名显示模块设计步骤与设计内容启动GUI,命令窗口中输入guide放置控件。先放置一个EditText,tag名称设为edit14,颜色设置为灰色,String设置为‘学生成绩管理系统’,该控件的功能是显示该GUI的功能;再放置五个EditText,tag名称分别设为edit1、edit2、edit3、edit4、edit13,颜色均设置为淡蓝色,String分别设置为‘姓名’、‘学号’、‘成绩\其它’、‘排名’、‘成绩类型’,这些控件的功能作为下面listbox的标题;再放置四个listbox,tag名称分别设为xingming、xuehao、grade、paiming,颜色均设置淡蓝色,String设置为‘’,这些该控件的功能是分别显示对应学生的姓名、学号、成绩、排名;再放置五个EditText,tag名称分别设为edit7、edit8、edit9、edit10、edit11,颜色均设置为淡蓝色,String分别设置为’专业‘,‘数学’,‘英语’,‘体育’‘物理’,该控件的功能是显示个人对应的科目;再放置一个Axes,tag名称设为axes1,颜色设置为灰色,该控件的功能是显示绘制的图;保存.fig文件编写.m文件,这部分要详细叙述每个子函数的编写思路,每条语句后面要给出注释说明该语句的功能;只需要附上自己编写的回调函数部分,其它系统自动生成的不需要放入报告中。读取数据思路:从表格中读取数据的对应行赋给对应的句柄[grade,form]=xlsread('student.xlsx');%从EXCEL表格读取数据handles.fenshu=grade;%所有成绩handles.major=grade(:,1);%专业课成绩handles.english=grade(:,2);%英语成绩handles.math=grade(:,3);%数学成绩ihandles.physical=grade(:,4);%体育成绩handles.physics=grade(:,5);%物理成绩=form(2:end,1);%姓名handles.num=form(2:end,2);%学号%ChoosedefaultcommandlineoutputforGUIhandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);显示单科成绩及对应学生的姓名学号和排名思路:利用下拉菜单,获取value值,用case语句判断,当选中下拉菜单的某项时,把该项对应的成绩,姓名,学号,排名的值送给对应listbox显示。val=get(hObject,'value');%获取下拉菜单控件的value值switchval;case2%选中下拉菜单的第二项set(handles.grade,'String',handles.major)%将选中的成绩给listbox.gradeset(handles.xingming,'String',)%将选中的学生姓名给listbox.xingmingset(handles.xuehao,'String',handles.num)%将选中的学生学号给listbox.xuehaohandles.select=handles.major;%将选中的成绩赋给一个变量guidata(hObject,handles);%更新句柄major=handles.major;n=length(major);%获取专业课成绩数据长度d=zeros(n,1);%创立一个n行一列的全零矩阵fori=1:n[a,b]=max(major);%获取major的最大值和位置major(b,1)=0;%把major的最大值置换为0d(b,1)=i;%矩阵d存储成绩的排名endhandles.d=d;%把排名给一个新的变量set(handles.paiming,'String',d);%使排名显示case3set(handles.grade,'String',handles.english)%将选中的成绩给listbox.gradeset(handles.xingming,'String',)%将选中的学生姓名给listbox.xingmingset(handles.xuehao,'String',handles.num)%将选中的学生学号给listbox.xuehaohandles.select=handles.english;%将选中的成绩赋给一个变量english=handles.english;n=length(english);%获取英语课成绩数据长度d=zeros(n,1);%创立一个n行一列的全零矩阵fori=1:n[a,b]=max(english);%获取english的最大值和位置english(b,1)=0;%把english的最大值置换为0d(b,1)=i;%矩阵d存储成绩的排名endhandles.d=d;%把排名给一个新的变量set(handles.paiming,'String',d);case4set(handles.grade,'String',handles.math)%将选中的成绩给listbox.gradeset(handles.xingming,'String',)%将选中的学生姓名给listbox.xingmingset(handles.xuehao,'String',handles.num)%将选中的学生学号给listbox.xuehaohandles.select=handles.math;%将选中的成绩赋给一个变量math=handles.math;n=length(math);%获取数学成绩数据长度d=zeros(n,1);%创立一个n行一列的全零矩阵fori=1:n[a,b]=max(math);%获取English的最大值和位置math(b,1)=0;%把math的最大值置换为0d(b,1)=i;%矩阵d存储成绩的排名endhandles.d=d;set(handles.paiming,'String',d);%显示math成绩排名case5set(handles.grade,'String',handles.physical)%将选中的成绩给listbox.gradeset(handles.xingming,'String',)%将选中的学生姓名给listbox.xuehaoset(handles.xuehao,'String',handles.num)%将选中的学生学号给listbox.xuehaohandles.select=handles.physical;%将选中的成绩赋给一个变量physical=handles.physical;n=length(physical);%获取物理成绩数据长度d=zeros(n,1);%创立一个n行一列的全零矩阵fori=1:n[a,b]=max(physical);%获取physical的最大值和位置physical(b,1)=0;%把math的最大值置换为0d(b,1)=i;%矩阵d存储成绩的排名endhandles.d=d;set(handles.paiming,'String',d);%显示physical成绩排名case6set(handles.grade,'String',handles.physics)%将选中的成绩给listbox.gradeset(handles.xingming,'String',)%将选中的学生姓名给listbox.xingmingset(handles.xuehao,'String',handles.num)%将选中的学生学号给listbox.xuehaohandles.select=handles.physics;%将选中的成绩赋给一个变量physics=handles.physics;n=length(physics);%获取physics成绩数据长度%d=zeros(n,1);%创立一个n行一列的全零矩阵fori=1:n[a,b]=max(physics);%获取physics的最大值和位置physics(b,1)=0;%把physics的最大值置换为0d(b,1)=i;%矩阵d存储成绩的排名endhandles.d=d;%ѧÉúÅÅÃû±äÁ¿set(handles.paiming,'String',d);%显示physics成绩排名case7A=[handles.major';handles.english';handles.math';handles.physical';handles.physics';];在A中储存各科成绩grade=sum(A);%对各科成绩求和sum_grade=grade';%转置set(handles.grade,'String',sum_grade)%显示总成绩set(handles.xingming,'String',)%显示姓名set(handles.xuehao,'String',handles.num)%显示学号handles.select=sum_grade;%把总成绩给一个变量handles.all_grade=sum_grade;%给总成绩排名n=length(sum_grade);%获取总成绩数据长度%%d=zeros(n,1);%创立一个n行一列的全零矩阵fori=1:n[a,b]=max(sum_grade);%获取总成绩的最大值和位置%sum_grade(b,1)=0;%把总成绩的最大值置换为0d(b,1)=i;%矩阵d存储总成绩的排名endhandles.d=d;set(handles.paiming,'String',d);%显示总成绩排名endguidata(hObject,handles);统计分数菜单模块思路:利用下拉菜单,获取value值,判断value值,调用对应的函数(求平均值、最大值、最小值、方差函数)。val=get(hObject,'Value');switchvalcase2[x,y]=max(handles.select);%获取当前选中成绩的最大值set(handles.grade,'String',x);%显示最高成绩set(handles.xingming,'String',(y));%显示对应的姓名set(handles.xuehao,'String',handles.num(y));%显示对应的学号set(handles.paiming,'String',[]);%不显示排名case3[x,y]=min(handles.select);%获取当前选中成绩的最大值set(handles.grade,'String',x);%显示最低成绩set(handles.xingming,'String',(y));%显示对应的姓名set(handles.xuehao,'String',handles.num(y));%显示对应的学号set(handles.paiming,'String',[]);%不显示排名case4middle=mean(handles.select);%获取当前选中成绩的平均值set(handles.grade,'String',middle);%显示平均成绩set(handles.xingming,'String',[]);%不显示姓名set(handles.xuehao,'String',[]);%不显示学号set(handles.paiming,'String',[]);%不显示排名case5Var=var(handles.select);%获取当前选中成绩的方差set(handles.grade,'String',Var);%显示方差set(handles.xingming,'String',[]);%不显示姓名set(handles.xuehao,'String',[]);%不显示学号set(handles.paiming,'String',[]);%不显示排名end功能菜单模块(添加、删除、查询)添加思路:判断数据的长度,将此长度记为n,然后在地n+1行写入新的数据;删除思路:用strcmp比较输入学生的姓名和已有的姓名,用find函数记录该比较的值,给需要删除的学生信息赋为空值,即可实现删除功能;查询思路:用strcmp比较输入学生的姓名和已有的姓名,用find函数记录该比较的值,将查询的学生信息显示在listbox。绘图菜单模块思路:获取下拉菜单的value,判断value值,调用对应的绘图函数(case2hist(handles.select);%绘制柱状图case3bar(handles.select);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 2More than fun Presenting ideas教学设计2024-2025学年外研版英语七年级上册
- 江海职业技术学院《现代文学与新女性》2023-2024学年第二学期期末试卷
- 兴义民族师范学院《摄影测量学实验》2023-2024学年第二学期期末试卷
- 四川大学锦江学院《城市绿地系统规划》2023-2024学年第二学期期末试卷
- 南京审计大学《语文教材与教学案例研究》2023-2024学年第二学期期末试卷
- 济南2025年山东济南市司法局所属济南市保宁学校招聘4人笔试历年参考题库附带答案详解
- 兰州博文科技学院《跨文化交际》2023-2024学年第二学期期末试卷
- 西安医学院《电工电子学》2023-2024学年第二学期期末试卷
- 广州美术学院《现代生物技术及应用》2023-2024学年第二学期期末试卷
- 武汉轻工大学《工程项目管理课程》2023-2024学年第二学期期末试卷
- 事故隐患安全培训事故排查安全隐患
- 新人教版高中数学选择性必修第一册全套精品课件
- 新公务员法培训课件
- 领导干部的国学修养讲义
- 05-第三章-环境污染物的生物转运和生物转化-生物转化幻灯片
- 公司精益改善项目推进管理制度及激励方案
- 工科高等数学(下)知到章节答案智慧树2023年上海海洋大学
- oppor11t刷全网通改全教程
- 儿童羽毛球教程
- 福建某机场二次雷达站基建工程施工组织设计
- 内部控制-仓储与存货循环调查问卷
评论
0/150
提交评论