微机原理成绩统计类课程设计.doc_第1页
微机原理成绩统计类课程设计.doc_第2页
微机原理成绩统计类课程设计.doc_第3页
微机原理成绩统计类课程设计.doc_第4页
微机原理成绩统计类课程设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权,请联系网站删除各专业全套优秀毕业设计图纸课 程 设 计 课程名称 微机原理课程设计 题目名称 学生成绩的统计 学生学院 应用数学学院 专业班级 12信息安全2班 学 号 学生姓名 指导教师 2015 年 1 月 2 日精品文档一、实验内容31.实验任务32.构思猜想3二、 实验设计31. 实验工具:MASM32、ResEd32. 实验过程42.1.图形设计42.2.应用程序代码52.3.程序资源的准备91) 修改Var.bat的地址92) 修改MakeFile103) 生成RC文件104) 生成OBJ文件115) 生成EXE程序123. 实验结果13三、 实验完整代码14四、 实验心得体会18(1) 本实验程序缺点18(2) 本实验程序优点18(3) 开发心得体会18一、实验内容1.实验任务输入十个学生某门课的成绩,统计低于60分,6069分,7079分,8089分,9099分和100分的人数,并输出统计结果。要求学生成绩的输入和统计结果的输出使用图形界面。2.构思猜想成绩统计是用于统计学生成绩的的简单的应用程序,所以正常的成绩统计程序,不能局限于统计一个固定人数(或不可变的),因为如果固定人数的话,当我们要用于不同的班级或专业时,对于不同的人数我们要做更多重复的操作,而造成无谓了人员或者资源的浪费。因此一个成绩统计软件必须要能应用于不同人数,而且能将统计结果呈现出来的。2、 实验设计1. 实验工具:MASM32、ResEd(1)MASM32:MASM32并非是指Microsoft的MASM宏汇编器。MASM32是一个由个人开发的包含了不同版本工具组建的汇编开发工具包。它的汇编编译器是MASM6.0以上版本中的Ml.exe,资源编译器是Microsoft Visual Studio中的Rc.exe,32位链接器是Microsoft Visual Studio中的Link.exe,同时包含有其他的一些如Lib.exe和DumpPe.exe等工具。本实验主要通过MASM开发环境,使我们的代码生成EXE。(2)ResEd:ResEd 是一个图形界面编辑工具,它不但可以用来编写程序所图形界面(如修改图标、菜单、鼠标。版本信息等),还支持了对exe、 dll等执行文件内的资源(图标、菜单、鼠标指针、位图、版本信息)等进行修改、替换。本程序不适用VC+的MFC设计程序的图形界面,因为VC+是被其开发者封装过的开发工具,里面的工作空间与开发工具本身的内部指令有关,因此,若用MFC生成的图形界面然后再取其生成RC文件,里面则会混淆许多我们不知的且对我们应用无用的代码段。使用ResEd,其本身是一个只用来设计图形界面的软件,负责的只是一个界面设计块,不用考虑该图形界面是否能成为应用或者被开发者如何使用,其生成的RC文件,只包含必要的控件的代码和设定,这让我们开发的时候能够更加的清晰且避免许多不必要的错误。2. 实验过程 2.1.图形设计使用ResEd设计我们需要的图形图一:图二:然后按“Ctrl+S”对我们的图形界面进行保存操作,然后就能生成(我取名为Rengar,名字又用户自行定义)Rengar.rc,我们右键文件“编辑”打开文件,这能清晰的看到我们的rc文件,并且在文件最顶端加上一句“#include”,如图示2.2.应用程序代码这里我使用的是老师给出的代码作为模板,添加修改自己的代码进去,完整代码在下面会给出,这里我们只对部分关键代码进行解析1) 我们将刚刚生成的RC文件打开后,将我们控件的ID放进模板中控件ID部分:放入模板的Equ定义中:2) 本程序录入成绩与导出成绩结果是在两个不同的对话框上,因此我们要对两个对话框进行设定结果对话框代码:_ProcDlgMainlprocuses ebx edi esi, hWnd,wMsg,wParam,lParam local szBuffer5:bytemoveax,wMsg.ifeax = WM_CLOSEinvokeEndDialog,hWnd,NULL.elseifeax = WM_INITDIALOGmov esi,failinvoke SetDlgItemInt,hWnd,IDC_EDT2,esi,TRUEmov esi,sixtyinvoke SetDlgItemInt,hWnd,IDC_EDT3,esi,TRUEmov esi,seventyinvoke SetDlgItemInt,hWnd,IDC_EDT4,esi,TRUEmov esi,eightyinvoke SetDlgItemInt,hWnd,IDC_EDT5,esi,TRUEmov esi,ninetyinvoke SetDlgItemInt,hWnd,IDC_EDT6,esi,TRUEmov esi,hundredinvoke SetDlgItemInt,hWnd,IDC_EDT7,esi,TRUE.elseifeax = WM_COMMAND.ifax = IDCANCELinvokeEndDialog,hWnd,NULL.endif.elsemoveax,FALSEret.endifmoveax,TRUEret_ProcDlgMainlendp主界面对话框代码:_ProcDlgMainprocuses ebx edi esi, hWnd,wMsg,wParam,lParam local szBuffer2:bytemoveax,wMsg.ifeax = WM_CLOSEinvokeEndDialog,hWnd,NULL.elseifeax = WM_INITDIALOGinvokeLoadIcon,hInstance,ICO_MAINinvokeSendMessage,hWnd,WM_SETICON,ICON_BIG,eax.elseifeax = WM_COMMANDmoveax,wParam.ifax = IDCANCELinvokeEndDialog,hWnd,NULL .elseif ax = IDC_BTN1; invoke GetDlgItemInt,hWnd,IDC_EDT1,szBuffer,TRUE mov ebx ,index mov scoreebx*(type score),eaxinc indexinc ebxmov index,ebxmov ecx, lengthof scoremov eax,0.elseif ax = IDOKmov fail , 0mov sixty, 0mov seventy, 0mov eighty, 0mov ninety,0mov hundred, 0mov ecx,10again:.if scoreebx*(type score)60inc fail.elseif scoreebx*(type score)70inc sixty.elseif scoreebx*(type score)80inc seventy.elseif scoreebx*(type score)90inc eighty.elseif scoreebx*(type score)100inc ninety.elseif scoreebx*(type score)=100inc hundred.endifinc ebx;.if ebx; Include 文件定义;includewindows.incincludeuser32.incincludelibuser32.libincludekernel32.incincludelibkernel32.lib; Equ 等值定义; IDD_MFC2_DIALOG equ 1100 IDC_BTN1 equ 1001 IDC_EDT1 equ 1002 IDOK equ 1 IDCANCEL equ 2 IDD_DIALOG1 equ 1000 IDC_EDT2 equ 1001 IDC_EDT3 equ 1002 IDC_EDT4 equ 1003 IDC_EDT5 equ 1004 IDC_EDT6 equ 1005 IDC_EDT7 equ 1006ICO_MAIN equ 1; 数据段;.data?hInstancedd?.datascoredword0,0,0,0,0,0,0,0,0,0faildword 0sixtydword 0seventydword0eightydword0ninetydword0hundreddword0indexdword0; 代码段;.code;_ProcDlgMainlprocuses ebx edi esi, hWnd,wMsg,wParam,lParam local szBuffer5:bytemoveax,wMsg.ifeax = WM_CLOSEinvokeEndDialog,hWnd,NULL.elseifeax = WM_INITDIALOGmov esi,failinvoke SetDlgItemInt,hWnd,IDC_EDT2,esi,TRUEmov esi,sixtyinvoke SetDlgItemInt,hWnd,IDC_EDT3,esi,TRUEmov esi,seventyinvoke SetDlgItemInt,hWnd,IDC_EDT4,esi,TRUEmov esi,eightyinvoke SetDlgItemInt,hWnd,IDC_EDT5,esi,TRUEmov esi,ninetyinvoke SetDlgItemInt,hWnd,IDC_EDT6,esi,TRUEmov esi,hundredinvoke SetDlgItemInt,hWnd,IDC_EDT7,esi,TRUE.elseifeax = WM_COMMAND.ifax = IDCANCELinvokeEndDialog,hWnd,NULL.endif.elsemoveax,FALSEret.endifmoveax,TRUEret_ProcDlgMainlendp;_ProcDlgMainprocuses ebx edi esi, hWnd,wMsg,wParam,lParam local szBuffer2:bytemoveax,wMsg.ifeax = WM_CLOSEinvokeEndDialog,hWnd,NULL.elseifeax = WM_INITDIALOGinvokeLoadIcon,hInstance,ICO_MAINinvokeSendMessage,hWnd,WM_SETICON,ICON_BIG,eax.elseifeax = WM_COMMANDmoveax,wParam.ifax = IDCANCELinvokeEndDialog,hWnd,NULL .elseif ax = IDC_BTN1; invoke GetDlgItemInt,hWnd,IDC_EDT1,szBuffer,TRUE mov ebx ,index mov scoreebx*(type score),eaxinc indexinc ebxmov index,ebxmov ecx, lengthof scoremov eax,0.elseif ax = IDOKmov fail , 0mov sixty, 0mov seventy, 0mov eighty, 0mov ninety,0mov hundred, 0mov ecx,10again:.if scoreebx*(type score)60inc fail.elseif scoreebx*(type score)70inc sixty.elseif scoreebx*(type score)80inc seventy.elseif scoreebx*(type score)90inc eighty.elseif scoreebx*(type score)start:invokeGetModuleHandle,NULLmovhInstance,eaxinvokeDialogBoxParam,hInstance,IDD_MFC2_DIALOG,NULL,offset _ProcDlgMain,NULLinvokeExitProcess,NULL;endstart4、 实验心得体会(1) 本实验程序缺点对细节方面处理不够好,例如让用户自定义ecx的大小不能在开始统计前直接在主界面先进行设定,点击录入后没有响应类似于MassageBox那样的提示或者Label提示录入成功,因为学艺不精,不知道如何使用汇编语言进行以上操作,望体谅。(2) 本实验程序优点能够适应不同人数的班级的成绩统计,不局限与一个界面的有限空间,ecx足够大时,能做到“无限”录入数据,而且界面简洁,减少空间。(3) 开发心得体会在刚拿到此课程设计任务的时候,对于刚接触汇编语言不久的我来说无疑是一个“艰巨”的任务,因为只学到了基础的知识且没有实际的汇编开发经验,所以心里莫名的慌。所以在进行开发之前,我在百度查阅来许多关于汇编的资料,还有类似的应用程序的资料,但我发现他们的共同点都是局限于界面的控件数量的统计。因为之前是有一定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论