974723689微机原理课程设计学生成绩管理系统设计_第1页
974723689微机原理课程设计学生成绩管理系统设计_第2页
974723689微机原理课程设计学生成绩管理系统设计_第3页
974723689微机原理课程设计学生成绩管理系统设计_第4页
974723689微机原理课程设计学生成绩管理系统设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、武汉理工大学微机原理与接口技术课程设计说明书1 设计任务及要求1.1问题描述学生成绩信息管理系统,显示的信息包括:学生姓名(name)、数学(math)、英语(english)、计算机(computer)和中文(chinese)成绩;实现的功能包括浏览、查询和退出;此外,程序设有操作提示,包括提示输入和输出,以及在出现错误时界面出现提示,而界面上各功能用菜单式显示。1.2设计说明学生成绩管理是个类似数据库形式的管理程序,因此程序应该包括用户操作的主界面,用于存储数据的库以及能提供不同操作的选择跳转。考虑到用内存作暂时的数据库比较占用内存资源和不适合做长期的管理,所以选用一个指定的记事本来存储,

2、用户界面提示用户进行选择操作并可以浏览、查询以及退出操作界面。2 方案介绍2.1界面设计界面实现人机交互,菜单式的界面予以用户提示信息,设置光标显示,可以在光标处输入字符并显示,在信息输出、输入错误、以及退出时有显示提示语句。为美观界面,可在界面上作相应的图案以输出。界面的显示调用清全屏(clear)、换行(newline)和显示(show),要显示的字符以行为单位分别定义在数据段,并调用set_p3显示光标,以设置输入位置,在输入选择功能成功后,被选择的功能字符后会显示相应的一个字符单位的,同时带颜色的图形,作为标记,此外,当调用另外的功能时,还要消去原标记是调用清右边程序(clear1),

3、以防同时显示2个标记。而在实现不同的功能时,除退出调用的清全屏外,浏览和查询输出信息时调用的是清下屏(clear2),此外,还要注意调用set_p2来设置输出信息显示时光标的位置。2.2程序设计显示主菜单界面后,在光标位置接收用户的操作字符,并判断操作类别:浏览/查询/退出,以调用相应的子程序。整个程序采用主程序调用子程序的方法。主程序完成菜单的显示和功能的选择,而子程序完成各独立功能的实现。2.3功能设计分析设计浏览子程序时,先打开文件,然后读一个记录,并通过调用宏show_item将其显示到屏幕上,若文件指针没有到达文件尾,则继续读记录并显示,当文件指针到达文件尾时,则关闭文件返回主程序。

4、设计查询子程序时,首先保留现场,清除下面屏幕,打开fname指定文件并保留句柄。将光标设置,用宏getin获取最多15个字符的输入到buff1。读23个字节长的记录到buff2,再将buff1和buff2比较是否相同,若不同,再继续读23个字节文件;若相同,则显示所寻找的记录,最后关闭文件,恢复现场。3 软件设计说明3.1软件思想设计学生成绩管理系统的整个程序采用了主程序调用子程序的方法。主程序完成菜单的显示,而子程序完成浏览、删除及退出功能的方法实现。3.2程序说明mess1-mess9、bye、err1、err2为显示时调用的字符串show:用来指定地址的显示字符串,有一个地址参数。set

5、_p2:将光标置于(10,0)处, 使用了bios中断10h的2号功能。set_p3:将光标置于(7,54)处。clear:清除整个屏幕,用bios中断10h的7号功能实现,范围是从坐标(0,0)到(24,79)将整个区域变为空白。clear1:清除右半部分屏幕,清除范围是从坐标(4,36)到(6,50)。clear2:清楚下半部分屏幕,清除范围是从坐标(10,0)到(24,79)。new_line:回车换行。show_item:显示记录内容。执行后先显示名称,然后依次显示4项功课的成绩,各项成绩间空3个空格,最后换行。这个宏包含的语句较多如果每次都用语句实现非常冗长,使用宏后就很简洁,充分体

6、现了使用宏的优点。getin:获取学生信息。这也是一个使用频繁的宏,其中含有很多的指令,含addrs和count2两个参数,addrs是存放信息的数据段位置,count2是接收的字符数。list:作用是显示文件中的记录,先清除显示区域和记录的标题,打开文件,读取输入的一个记录的内容放在缓冲区buff1中,并判断是否到了文件尾,如果不是,则显示这条记录,循环读取直到文件结束,最后关闭程序,恢复现场。query:功能是查询记录。先清除屏幕,打开文件。用宏getin获得15个字节的姓名字符,放在buff1中。读取一条记录,将其放在 buff2中,然后和buff1中的内容进行比较,如果不同,再读取下一

7、个记录,直至读完关闭文件。如果姓名相同,则把该记录输出。若查找不到,则输出提示错误语句。3.3中断说明bios中断int 10h服务程序,与dos系统功能中断 int 21h。使用中断服务程序时,先指定 ah 寄存器的值,该值表示欲调用的功能。在本次设计中调用的功能,设定相关的入口参数,得到功能调用后的出口参数可分别参考下表,表1、表2。表1:bios系统功能调int 10hah功 能调用参数返回参数 / 注释设置显示模式 al=02h显示模式:8025 16色文本2用文本坐标下设置光标位置 bh = 页号 dh = 行 dl = 列 6初始化屏幕或向上滚屏al滚动行数(0清窗口)bh = 属

8、性 ch = 左上角行号 cl = 左上角列号 dh = 右下角行号 dl = 右下角列号9在光标位置显示字符及其属性 bh = 显示页 al = 字符 bl = 属性 cx = 字符重复次数表2:dos系统功能调int 21hah功能调用参数返回参数01键盘输入并回显al=输入字符02显示输出dl=输出字符07键盘输入(无回显)al=输入字符09显示字符串ds:dx=串地址$结束字符串3d打开文件ds:dx=asciiz串地址al=0 读 =1 写 =2 读/写成功:ax=文件代号错误:ax=错误码3e关闭文件bx=文件代号失败:ax=错误码3f读文件或设备ds:dx=数据缓冲区地址bx=文

9、件代号cx=读取的字节数读成功: ax=实际读入的字节数 ax=0 已到文件尾读出错:ax=错误码4c带返回码结束al=返回码 4程序与其流程图4.1主程序段、主流程图:图4-1 主程序流程图主程序段:1.首先设计页面的显示:mov ah,0 mov al,2 int 10h ;设置界面80*25,16色文本 clear newline newline show mess1 show mess2 show mess3 show mess4 show mess5 show mess6 show mess7 set_p3 ;调用设置界面光标位置2.从光标处读取字符判断,选择相应的功能,此外,当输入

10、字符不符合菜单提示的字符时,输出“输入错误”的提示,并等待下次输入反应:w: mov ah,1 int 21h ;设置成输入回显 cmp al,l;判断是否调用list功能 jnz n3 ;在list菜单后显示指定标记 call list jmp wn3: cmp al,q;判断是否调用query功能 jnz n7 ;在query菜单后显示指定标记 call query jmp wn7: cmp al,e jz exitf set_p2 show err1 set_p3 jmp w3.菜单中功能被选中后的标记,以list功能选中为例: clear1 ;清右屛 mov dx,0472h ;设置显

11、示位置 mov ah,2 int 10h mov al,4 ;设置输出图形(如:方块) mov bl,54h ;设置输出颜色 mov cx,1 mov ah,9 int 10h4.2 浏览程序段与流程图:清下屏输出内容标题读取文件中的一个记录ax=0?输出记录返回主程序开始调用list宏list程序段,首先,为以防有前操作在下屏幕显示,所以要清下屏,设置光标位置后,输出“请输入”的提示语句,主要用下段程序实现浏览功能。 mov dx,offset fname mov al,2 ;打开文件 mov ah,3dh int 21h mov bx,axagain: mov dx,offset buff

12、1 mov cx,23 ;设定读取字符数 mov ah,3fh int 21h ;读文件 cmp ax,0;判断循环条件 jz p show_item buff1 jmp againp: mov ah,3eh int 21h ;关闭文件 set_p3 pop dx pop cx pop bx pop ax ret y 图4-2 浏览程序流程图4.3查询程序段与流程图:查询功能实现是通过检验输入字符是否为“q”,当输入正确时要在利用宏set_p2设置的光标处显示提示信息后,清下屏,以防有前操作占用界面空间。等待用户输入要查询学生的姓名,只有在输入正确后,才能显示其成绩,若输入姓名与文件中各姓名不

13、符,则输出“错误”提示语句,不输出成绩。无论是在查询功能实现后,还是查询失败,光标返回到输入处,则此时可重新选择菜单中的功能。主要程序段与流程图如下: mov dx,offset fname 打开文件,设置显示内容光标处,输出提示 getin buff1,15 lea dx,mess8 ;标题 mov ah,9 int 21hb: mov ah,3fh mov cx,23 mov dx,offset buff2 int 21h ;读文件cx=读的字节数 cmp ax,0 ;判断是否查询到文件结尾,即查询失败 jz exit1 ;查询失败则跳转返回 lea si,buff2 lea di,buf

14、f1 mov cx,15loop1: mov al,byte ptrsi cmp al,byte ptrdi jnz b inc si inc di loop loop1 mov buff2+23, $ show_item buff2 exit: mov ah,3eh int 21h 关闭文件 set_p3 ;回输入位置重新选择 retexit1: clear2 ;查询失败,则清下屏 show err2 提示“输入错误”语 jmp exit 句,调用exit返回开始调用query清下屏,打开文件设置光标位置并输出提示“输入”语句读取输入的信息(15byte)到buff1,输出标题语句从文件中读

15、记录(23byte)到buff2ax=0?提示“输入错误,查询失败”返回主程序,等待重新输入,选择功能将buff2与buff1中15byte比较是否相同?显示记录关闭文件并返回 y n n y图4-3 查询功能流程图4.4退出程序段与流程图:开始调用exitf屏幕全清输出语句关闭应用程序当在显示菜单中输入“e”时,选择退出程序功能,此时调用屏幕全清,宏clear,并输出友好语句bye退出。其功能程序段与流程图如下:exitf: clear newline newline show bye mov bx,0100fh;信息显示延时e0: mov cx,0ffffhe1: loop e1 dec

16、bx jnz e0 mov ah,4ch int 21h ret 图4-4 退出功能流程图5 程序功能说明和结果分析5.1浏览功能当在显示界面上输入“l”时,菜单中list(l)后有标记,且屏幕下端显示文件内容,如图5-1。图5-1 浏览功能实现界面5.2退出功能当在显示界面上输入“e”时,界面显示bye语句,如图5-2。图5-2退出功能实现界面5.3查询功能当在显示界面上输入“q”时,界面提示“请输入”语句,输入正确时,界面下端显示查询的成绩如图5-3,否则输出“输入错误”,即查询失败,如图5-4。图5-3查询成功界面显示成绩图5-4 输入错误时,查询失败界面5.4功能选择错误图5-5 功能

17、选择错误界面当在显示界面上输入不是“l”/“q”/“e”时,界面显示err1语句,如图5-5。6 收获及心得体会在我印象中,课程设计在对经一学期学习的理论课程的结合实际的学习,就此次课程设计的题目而言,通过对这一学生成绩管理系统的程序设计,使我对汇编语言的基本知识更加了解,同时也让我认识到汇编语言的知识范围与实际应用值广大。此外,在课程设计完成过程中通过和小组成员的交流,也增加了合作的技巧。同时,还认识到查阅相关的资料也是完成设计不可欠缺的一部分。课程设计让自己学到了一些课本上没有的东西,一定程度上拓宽了自己的知识面,培养了自己独立思考和解决问题的习惯,还增加了学好汇编语言的信心。微机原理与接

18、口技术课程设计是汇编语言与实践相结合的综合应用。在设计中,参考资料,发现其源程序中调用了中断程序,例如int 10h与int 21h,结合利用数据段,可以实现文件的打开、关闭、读取,数据的显示、输出,光标的定位等等。在这次的课程设计中,我也遇到了不少的挫折,例如直到答辩时,我所设计的程序在查询输入错误时无法进行跳转,虽然这时有种书到用时方恨少的感觉,但是在答辩后调试时最终是解决了这项问题。虽然结合课本,会想出一些方法去实现,但是经过调试,发现这时想法是无法解决功能的欠缺。但是结合这次设计中频繁使用的bios中断,想到在读取文件时,隐含的使文件号的值赋值给了数据段的ax,所以在文件读取完时,ax

19、=0,将这点作为查询文件完毕的判断依据,即未查询到输入记录时,把文件读取完毕了,则查询失败。汇编在实际软件开发中的作用和地位是非常重要的,利用课程设计,我们可以很好的将理论与实际生活中的应用、设计相结合,联想。增强了汇编的使用能力,是我们课程设计的目的,相信在未来的就业问题中遇到的设计问题也会与此有异曲同工之处的。在这次课程设计中,我真正体会到了理论学习和课外涉猎的重要性,希望以后在学习时认真弄懂,不要不求甚解。与此同时,增加课外涉猎,开阔思维,培养创新思维。参考文献1 周佩玲,彭虎,傅忠谦.微机原理与接口技术(基于16位机).北京:电子工业出版社.20052 王爽著.汇编语言(第2版).北京

20、:清华大学出版社.20083 艾德才等编著.微型接口技术实用教程.北京:清华大学出版社.20024 王永山等编著.微型计算机原理与应用.西安:西安电子科技大学出版社.19995 温冬蝉,沈美明.ibm pc汇编语言程序设计(第2版).北京:清华大学出版社.20026 姚燕南,薛均义主编.微型计算机原理与接口技术.北京:高等教育出版社. 2004附录:源程序:data segment mess1 db * * * * * * * * * * * student grade management system * * * * * *,0ah,0dh, $ mess2 db / / this is

21、main menu: *,0ah,0dh, $ mess3 db (/ -/ /) list (l) *,0ah,0dh, $ mess4 db )6 6( query (q) *,0ah,0dh, $ mess5 db = y = exit (e) *,0ah,0dh, $ mess6 db / - please enter the word to choose(l/q/e): *,0ah,0dh, $ mess7 db .(_)-(_).* * * * * * * * * * * * * * * * * * * * * * * * * * *,0ah,0dh, $ mess8 db nam

22、e math english computer chinese,0ah,0dh, $mess9 db enter the right name to query:,0ah,0dh, $bye db thanks for use our program!,0dh,0ah,0dh,0ah, bye bye$err1 db wrong word,please enter the right word ! $ err2 db there is no the student,return to menu!$fname db d:masmscore.txt buff1 db 22 dup(?)buff2

23、db 30 dup(?) data ends ;-定义数据段完毕-show macro addrs ;显示 lea dx,addrs mov ah,9 int 21h endm set_p2 macro ;设置界面光标位置(10,0) mov ah,2 mov dh,10 mov dl,0 mov bh,0 int 10h endm set_p3 macro ;设置界面开始光标位置(7,54) mov ah,2 mov dh,7 mov dl,54 mov bh,0 int 10h endm clear macro ;清屏 push ax push bx push cx push dx mov

24、 al,0 mov cl,0 mov ch,0 mov dh,24 mov dl,79 ;上滚窗口右上角(24,79) mov bh,14 ;颜色属性 mov ah,6 ;入口参数 int 10h pop dx pop cx pop bx pop ax endm clear1 macro ;清右屏 mov al,0 mov bh,0h mov ch,4 mov cl,34 mov dh,6 mov dl,50 mov ah,6 int 10h endm clear2 macro ;清下屏 mov al,0 mov bh,7 mov ch,10 mov cl,0 mov dh,24 mov dl

25、,79 mov ah,6 int 10h endm newline macro ;换行 push ax push dx mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h pop dx pop ax endm show_item macro addrs local iloop,w10 push bx push cx mov bx,0 iloop: mov dl,addrsbx ;显示字符 mov ah,2 int 21h inc bx cmp bx,15 jl iloop mov cx,4 w10: mov dl, mov ah,2

26、int 21h mov dl, mov ah,2 int 21h mov dl, mov ah,2 int 21h mov dl,addrsbx mov ah,2 int 21h inc bx mov dl,addrsbx mov ah,2 int 21h inc bx loop w10 newline pop cx pop bx endm getin macro addrs,count2 ;读取数据local zeroit,lp,input_end,exit push bx push ax mov bx,0 zeroit: mov addrsbx, inc bx cmp bx,15 jl z

27、eroit mov bx,0 lp: mov ah,1 int 21h cmp al,0ah jz input_end cmp al,0dh jz input_end mov addrsbx,al inc bx cmp bx,count2 jl lp input_end: cmp al,0dh jz exit cmp al,0ah jz exit mov ah,7 int 21h jmp input_end exit: pop ax pop bx endm ;-开始定义代码段-code segment main proc far assume cs:code,ds:data,es:datast

28、art: mov ax,data mov ds,ax mov ah,0 mov al,2 int 10h ;设置界面 clear newline newline show mess1 show mess2 show mess3 show mess4 show mess5 show mess6 show mess7 set_p3 ;调用设置界面光标位置w: mov ah,1 ;设置成输入回显 int 21h cmp al,l ;判断是否实现list功能 jnz n3 ;-选中菜单后显示标记- clear1 mov dx,0372h ;设定显示位置 mov ah,2 int 10h mov al,

29、3 ;设定输出图形心形 mov bl,24h ;设定输出图形颜色 mov cx,1 mov ah,9 int 10h call list jmp wn3: cmp al,q ;判断是否实现查询功能 jnz n7;-功能选中后显示标记- clear1 mov dx,0472h ;设定显示位置 mov ah,2 int 10h mov al,4 ;设定输出图形方块 mov bl,54h mov cx,1 mov ah,9 int 10h call query jmp w n7: cmp al,e ;判断是否实现退出功能 jz exitf set_p2 clear2 show err1 set_p3 jmp wexitf: clear newline newline show bye;-显示信息延时- mov bx,0100fh e0: mov cx,0ffffhe1: loop e1 dec bx jnz e0 mov ah,4ch int 21h retmain endp;-主程序结束-query pro

温馨提示

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

评论

0/150

提交评论