微机原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程设计的内容
输入十个学生某门课的成绩,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出统计结果。要求学生成绩的输入和统计结果的输出使用图形界面。
二、程序界面与操作
三、程序的制作过程
1.界面的设计
用Visual C++ 6.0建立MFC工程设计出程序界面,得到.RC文件、.RES文件和相关的头文件,然后从老师给出的例子“Dialog”中提取Var.bat文件、Makefile文件,再自己编写代码写成.asm文件,最后联结各文件生成EXE应用程序。
先通过vc mfc设计出界面保存后得到
2.代码处理与cmd操作
先与vc 界面链接起来
然后编写代码
编写完后将文件后缀改为asm 将老师dialog文件夹里的Makefile 打开将dialog改为gg
然后打开cmd
进入gg文件夹后输入代码生成obj文件
再通过输入Link /subsystem:windows gg.obj gg.res生成EXE应用程序
程序制作完成
四、程序代码;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
.386
.model flat, stdcall
option casemap :none ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
; Include 文件定义;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
; Equ 等值定义;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
IDR_MAINFRAME equ 128 ;图标IDD_GG_DIALOG equ 102
IDC_EDIT1 equ 1000 IDC_EDIT2 equ 1001 IDC_EDIT3 equ 1002 IDC_EDIT4 equ 1003 IDC_EDIT5 equ 1004 IDC_EDIT6 equ 1005 IDC_EDIT7 equ 1006 IDC_EDIT8 equ 1007
IDC_EDIT9 equ 1008
IDC_EDIT10 equ 1009 IDC_EDIT11 equ 1010 IDC_EDIT12 equ 1011 IDC_EDIT13 equ 1012 IDC_EDIT14 equ 1013 IDC_EDIT15 equ 1014
IDC_EDIT16 equ 1015
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
; 数据段;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
.data?
hInstance dd ?
score dword 0,0,0,0,0,0,0,0,0,0
fail dword 0
sixty dword 0
seventy dword 0
eighty dword 0
ninety dword 0
hundred dword 0 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
; 代码段;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
.code ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>
_ProcDlgMain proc uses ebx edi esi, hWnd,wMsg,wParam,lParam
local @szBuffer[2]:byte
mov eax,wMsg
.if eax == WM_CLOSE
invoke EndDialog,hWnd,NULL
.elseif eax == WM_INITDIALOG
invoke LoadIcon,hInstance,IDR_MAINFRAME
invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax .elseif eax == WM_COMMAND
mov eax,wParam
.if ax == IDCANCEL
invoke EndDialog,hWnd,NULL
.elseif ax == IDOK
mov ebx,0
mov fail,0
mov sixty,0
mov seventy,0
mov eighty,0