版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安邮电大学MATLAB及其EDA仿真院(系)名称: 学生姓名: 专业名称: 班级:课内实验报告电子工程学院李豪集成电路设计与集成系统1202 班2013年12月20日实验内容建立基于图形用户界面GUI的学生成绩管理系统,该系统能够实现学生成绩信息的增加、删除、查询(查询某门课所有学生的成绩并显示排名,查询某 个学生的各科成绩并显示排名)、课程成绩统计最高分、最低分、平均分、方差、 并显示相应的排名;绘制柱状图、条形图、饼状图、正太分布曲线等功能。二、实验目的通过本实验使学生掌握图形用户界面 GUI的操作和设计流程,并通过编 写回调函数巩固前期的知识。三、报告正文(一)设计思路厂学生成绩管、理
2、系统界面J菜单模块显示模块绘图模块I)菜单模块r r统广功r计匕匕 厶冃成菜绩单绘 图 菜 单显示模块 . 訂绩名(二)设计步骤与设计内容1. 启动GUI,命令窗口中输入guide2. 放置控件。先放置一个Edit Text,tag名称设为edit14,颜色设置为灰色,String设置为学生成绩管理系统,该控件的功能是显示该GUI的功能; 再放置五个 Edit Text,tag名称分别设为 editl、edit2、edit3、edit4、edit13 , 颜色均设置为淡蓝色,Stri ng分别设置为姓名、学号、成绩其他、排名、成绩类型,这些控件的功能作为下面listbox的标题;再放置四 个
3、listbox, tag 名称分别设为 xingming、xuehao、grade paiming,颜色均 设置淡蓝色,String设置为,这些该控件的功能是分别显示对应学生 的姓名、学号、成绩、排名;再放置五个Edit Text,tag名称分别设为edit7、 edit8、edit9、edit10、edit11,颜色均设置为淡蓝色,String分别设置为专业,数学,英语,体育物理,该控件的功能是显示个人对应的科 目;再放置一个Axes,tag名称设为axes1,颜色设置为灰色,该控件的功 能是显示绘制的图;3.4保存.fig文件5.编写.m文件,这部分要详细叙述每个子函数的编写思路,每条语句
4、后面 要给出注释说明该语句的功能;只需要附上自己编写的回调函数部分,其 他系统自动生成的不需要放入报告中。读取数据思路:从表格中读取数据的对应行赋给对应的句柄grade,form = xlsread(stude nt.xlsxhan dles.fe nshu = grade;han dles.major = grade(:,1);han dles.e nglish = grade(:,2);han dles.math = grade(:,3);han dles.physical = grade(:,4);han dles.physics= grade(:,5);han dles .n ame
5、= form(2:e nd,1);han dles .num = form(2:e nd,2);% Choose default comma nd line output for GUI han dles.output = hObject;% Update han dles structure);%从EXCEL表格读取数据%所有成绩%专业课成绩%英语成绩%数学成绩i%体育成绩%物理成绩%姓名%学号guidata(hObject, han dles);显示单科成绩及对应学生的姓名学号和排名思路:利用下拉菜单,获取value值,用case语句判断,当选中下拉菜单的某项时,把该项对应的成绩,姓名,学
6、号,排名的值送给对应listbox 显示。% 将选中的成绩赋给一个变量%更新句柄% 获取专业课成绩数据长度% 创建一个 n 行一列的全零矩阵% 获取 major 的最大值和位置% 把 major 的最大值置换为 0% 矩阵 d 存储成绩的排名val = get(hObject,value );switch val;case 2 set(handles.grade, String listbox.gradeset(handles.xingming, String listbox.xingmingset(handles.xuehao, String listbox.xuehaohandles.se
7、lect = handles.major; guidata(hObject, handles); major = handles.major; n = length(major); d = zeros(n,1);for i = 1:na,b = max(major);major(b,1) = 0;d(b,1) = i;end%获取下拉菜单控件的 value 值%选中下拉菜单的第二项,handles.major)%将选中的成绩给,)%将选中的学生姓名给,handles.num)%将选中的学生学号给% 把排名给一个新的变量handles.d = d;set(handles.
8、paiming,case 3String ,d); % 使排名显示set(handles.grade,listbox.gradeString ,handles.english)%将选中的成绩给set(handles.xingming,listbox.xingmingString ,)%将选中的学生姓名给set(handles.xuehao,listbox.xuehaoString ,handles.num)%将选中的学生学号给String ,d);handles.select = handles.english; english = handles.english;n
9、= length(english);d = zeros(n,1);for i = 1:na,b = max(english);english(b,1) = 0;d(b,1) = i;endhandles.d = d;set(handles.paiming, case 4%将选中的成绩赋给一个变量%获取英语课成绩数据长度%创建一个 n 行一列的全零矩阵%获取 english 的最大值和位置% 把 english 的最大值置换为 0% 矩阵 d 存储成绩的排名% 把排名给一个新的变量set(handles.grade, String,handles.math)%将选中的成绩给listbox.gra
10、deset(handles.xingming, String listbox.xingmingset(handles.xuehao, String listbox.xuehaohandles.select = handles.math; math = handles.math; n = length(math);d = zeros(n,1);for i = 1:na,b = max(math); math(b,1) = 0;d(b,1) = i; end handles.d = d;set(handles.paiming, String case 5set(handles.grade, Str
11、ing listbox.gradeset(handles.xingming, String listbox.xuehaoset(handles.xuehao, String listbox.xuehaohandles.select = handles.physical; physical = handles.physical; n = length(physical);d = zeros(n,1);for i = 1:na,b = max(physical); physical(b,1) = 0;d(b,1) = i; end handles.d = d;set(handles.paiming
12、, String case 6set(handles.grade, String listbox.gradeset(handles.xingming, String listbox.xingming,)% 将选中的学生姓名给,handles.num)% 将选中的学生学号给%将选中的成绩赋给一个变量%获取数学成绩数据长度%创建一个 n 行一列的全零矩阵%获取 English 的最大值和位置% 把 math 的最大值置换为 0% 矩阵 d 存储成绩的排名,d); % 显示 math 成绩排名,handles.physical)% 将选中的成绩给,)%
13、 将选中的学生姓名给,handles.num)% 将选中的学生学号给%将选中的成绩赋给一个变量%获取物理成绩数据长度%创建一个 n 行一列的全零矩阵%获取 physical 的最大值和位置% 把 math 的最大值置换为 0% 矩阵 d 存储成绩的排名,d);% 显示 physical 成绩排名,handles.physics)% 将选中的成绩给,)% 将选中的学生姓名给set(handles.xuehao,listbox.xuehaoString ,handles.num)% 将选中的学生学号给handles.select = handles.physics; phy
14、sics = handles.physics;n = length(physics);d = zeros(n,1);for i = 1:na,b = max(physics); physics(b,1) = 0;d(b,1) = i;%将选中的成绩赋给一个变量%获取 physics 成绩数据长度 %创建一个 n 行一列的全零矩阵%获取 physics 的最大值和位置% 把 physics 的最大值置换为 0% 矩阵 d 存储成绩的排名% 显示 physics 成绩排名endhandles.d = d;set(handles.paiming,case 7A =% ? eu ? 士 ?d?Stri
15、ng ,d);handles.major;handles.english;handles.math;handles.physical;hand les.physics;grade = sum(A); sum_grade = grade; set(handles.grade, set(handles.xingming, set(handles.xuehao,在A中储存各科成绩%对各科成绩求和%转置StringStringStringhandles.select = sum_grade; handles.all_grade = sum_grade;,sum_grade) % 显示总成绩,handl
16、)% 显示姓名,handles.num) % 显示学号%把总成绩给一个变量n = length(sum_grade); d = zeros(n,1);for i = 1:n给总成绩排名 %获 取总成绩数据长度 %创建一个 n 行一列的全零矩阵a,b= max(sum_grade);%获取 总成绩 的最大值和位置sum_grade(b,1) = 0; d(b,1) = i;endhandles.d = d;% 把总成绩的最大值置换为 0%矩阵d存储总成绩的排名set(handles.paiming,String ,d);% 显示总成绩排名endguidata(hObject, ha
17、ndles);统计分数菜单模块 思路:利用下拉菜单,获取 value 值,判断 value 值,调用对应 的函数(求平均值、最大值、最小值、方差函数)。Value );val = get(hObject, switch valcase 2x,y = max(handles.select);%获取当前选中成绩的最大值set(handles.grade,String ,x); % 显示最高成绩set(handles.xingming,String ,(y);% 显示对应的姓名set(handles.xuehao,String ,handles.num(y);% 显示对应的学
18、号set(handles.paiming,String ,);%不显示排名case 3x,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 ,);%不显示排名case 4middle = mean(handles.select);%
19、获取当前选中成绩的平均值set(handles.grade,String ,middle); % 显示平均成绩set(handles.xingming,String ,); % 不显示姓名set(handles.xuehao,String ,);% 不显示学号set(handles.paiming,String ,); % 不显示排名case 5Var = var(handles.select);% 获取当前选中成绩的方差set(handles.grade,String ,Var); % 显示 方差set(handles.xingming,String ,); % 不显示姓名set(handl
20、es.xuehao,String ,); % 不显示学号set(handles.paiming,String ,); % 不显示排名end 功能菜单模块(添加、删除、查询) 添加思路:判断数据的长度, 将此长度记为 n, 然后在地 n + 1 行 写入新的数据; 删除思路:用 strcmp 比较输入学生的姓名和已有的姓名,用 find 函数记录该比较的值,给需要删除的学生信息赋为空值, 即可实现删除功能; 查询思路:用 strcmp 比较输入学生的姓名和已有的姓名,用 find 函数记录该比较的值, 将查询的学生信息显示在 listbox 。 绘图菜单模块思路:获取下拉菜单的 value, 判
21、断 value 值,调用对应的绘图函数(case 2hist(ha ndles.select);%case 3bar(ha ndles.select); %case 4histfit(ha ndles.select,6); %太分布曲线case 5绘制柱状图绘制条形图绘制正pie(ha ndles.select); %绘制饼状图)6.运行结果,包括GUI的初始化界面、查询界面、删除功能、统计功能等,可以用图片形式展现;初始界面查询界面TT学生成绩管理系统学牛成绩管理系统学牛成绩管理系统删除功能学生成绩管理系统,_ 工口 :学生成绩管理系统 UT-r-H * 4十-rFX厅 .4学主成绩管理系统统计功能学生成绩管理系统(三)问题与心得体会1总结实验中遇到的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京工业大学浦江学院《税收管理》2021-2022学年第一学期期末试卷
- 百通馨苑二期三区18#楼工程安全施工组织设计
- 防溺水的说课稿
- 端午节的说课稿幼儿园
- 《中 国石拱桥》说课稿
- 《忆读书》说课稿
- 简单外包合同(2篇)
- 【初中化学】二氧化碳的实验室制取教学课件-2024-2025学年九年级化学人教版上册
- 南京工业大学《土质学与土力学》2021-2022学年第一学期期末试卷
- 统一海之言体育旅行定制综艺案例
- 家畜繁殖学课件
- 浙江森马服饰股份有限公司营运能力分析及提升策略研究
- 《数字化测图》教学教案
- 图像数据预处理详述
- 室颤的抢救与护理课件
- 人教版 九年级化学上册 第六单元 碳和碳的氧化物 课题2 二氧化碳的制取研究 说课稿
- 2023人民音乐出版社招聘7人笔试参考题库(共500题)答案详解版
- 第19课《小站》课件(共18张)(五四学制)语文六年级上册
- 智慧医疗人工智能的应用
- 行业变革下的专业知识更新与迭代
- 内蒙古自治区2021-2022学年普通高中学业水平考试(高二会考)英语真题
评论
0/150
提交评论