Matlab课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
至诚学院
《 MATLAB 实践》
课程设计
学生姓名:
学号:
专业班级:(2)
指导教师:
二○一四年四月三十日
目录
1.设计目的 (3)
2.题目分析 (3)
3.总体设计 (3)
4.具体设计 (4)
5.小结和心得 (15)
1、设计目的:
使用MATLAB的GUI程序设计学生成绩管理系统。完成需学生成绩的基本管理,包含对学生成绩的读入、修改、添加和查询等基本的功能。
本课题主要解决对学生成绩总体的客观评价,通过一系列数据的分析比较,例如平均值,成绩分布等整体数据的处理,以及matlab和excel在数据联动功能方面的应用,所绘制的直方图、正态分布图等图像信息使得分析成绩系统更直观、有效地反映学生此课程这一阶段的表现,进而研究今后的教学重点,以及从教学到考试等一连串过程中的薄弱环节,从而达到教学相长的目的。
不论是对学生的整体学习情况还是单独考虑每个学生的学习情况都能够进行较好的评价。面比起单纯的"绝对分数"评价学生的学习状况,忽略了基础条件的差异,我们运用了各种方法和模型来去避免这类现象的发生,动态的分析每个学生的情况,并从定性和定量两方面分别给出了数值与建议。
2、题目分析
根据课题的要求,分析成绩管理系统的现实需求,我们可以概括为设计的程序应该包含的几个基本模块及应该完成的功能如下:
1.文件管理:完成成绩表格的导入(.xls文件),完成对修改后的成绩文件的保存。
2.成绩管理:完成对学生成绩、学号、成绩、总分的显示和修改,还有添加新的学生的信息。
3.查询管理:完成对姓名或者学号的查询的显示和删除,学生的信息显示在成绩管理里面的显示框里面。
4.在学生的姓名显示框点击学生姓名,成绩管理系统里面自动获取学生的基本信息。
5.统计出学生的最高分和最低分以及各科成绩的平均分情况。
6.通过各科成绩的统计分布直方图,直观地分析学生的各科的成绩状况。
3、总体设计
围绕设计的题目范围,我们可以将起绘制成功能模块的总体模块图如下图1。根据设计的模块设计成GUI的设计图如下图2。
通过将导入的学生信息的数据保存到全局变量的数组里面,到每个模块需要使用时,导出数据即可完成对数据的引用,在需要完成操作的按钮下编写回调函数来达到需要完成的功能。设计内容包含对回调函数的编写和对于程序功能的调试,分析问题原因,在实现程序功能时,进一步改善程序的设计构架。
图1
图2
4、具体设计
利用MATLAB的GUI程序设计实现成绩管理系统的功能。各个模块功能的实现及程序设计如下:
4.1.模块设计界面及程序设计
4.1.1显示模块模块:
显示模块需要完成的是对于学生姓名、序号以及成绩的显示,并且在点击姓名显示框里面的学生姓名时,成绩管理的模块里面可以自动显示学生的以上基本信息。设计界面如下:
对于姓名显示框的程序设计如下:
% --- Executes on selection change in xmlist.
function xmlist_Callback(hObject, eventdata, handles)
% hObject handle to xmlist (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) content=get(hObject,'value');
set(handles.chengjilist,'value',content);
set(handles.xhlist,'value',content);
chengji=handles.chengji;
xingming=handles.xingming;
xuehao=handles.xuehao;
set(handles.lredit1,'string',xingming(content));
set(handles.lredit2,'string',chengji(content,1));
set(handles.lredit3,'string',chengji(content,2));
set(handles.lredit4,'string',xuehao(content,1));
set(handles.xmedit,'string',xingming(content));
set(handles.xuehaoedit,'string',xuehao(content));
set(handles.lredit13,'string',xingming(content))
set(handles.zfedit,'string',(chengji(content,1)+chengji(content,2)));
首先设置姓名显示的高亮位置表示选中的学生,调出handles里面的信息,然后通过set函数将数字赋值给显示框。
4.1.2文件管理模块:
文件管理模块要实现的是对于保存成绩的表格文件(.xls文件)的读取和对于学生信息修改或者删除之后的保存功能。因此添加了两个控件按钮来实现,在点击按钮后,弹出读取(或保存)文件的所在位置,添加文件后,系统完成对成绩的读取(或保存)功能。没有选中文件时,提示“没有选择文件”。设计界面如下:
4.1.2.1打开成绩文件的按钮的设计程序:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)