资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
. . . . .1 设计任务及要求1.1问题描述学生成绩信息管理系统,显示的信息包括:学生姓名(Name)、数学(Math)、英语(English)、计算机(Computer)和中文(Chinese)成绩;实现的功能包括浏览、查询和退出;此外,程序设有操作提示,包括提示输入和输出,以及在出现错误时界面出现提示,而界面上各功能用菜单式显示。1.2设计说明学生成绩管理是个类似数据库形式的管理程序,因此程序应该包括用户操作的主界面,用于存储数据的库以及能提供不同操作的选择跳转。考虑到用内存作暂时的数据库比较占用内存资源和不适合做长期的管理,所以选用一个指定的记事本来存储,用户界面提示用户进行选择操作并可以浏览、查询以及退出操作界面。2 方案介绍2.1界面设计界面实现人机交互,菜单式的界面予以用户提示信息,设置光标显示,可以在光标处输入字符并显示,在信息输出、输入错误、以及退出时有显示提示语句。为美观界面,可在界面上作相应的图案以输出。界面的显示调用清全屏(clear)、换行(newline)和显示(show),要显示的字符以行为单位分别定义在数据段,并调用set_p3显示光标,以设置输入位置,在输入选择功能成功后,被选择的功能字符后会显示相应的一个字符单位的,同时带颜色的图形,作为标记,此外,当调用另外的功能时,还要消去原标记是调用清右边程序(clear1),以防同时显示2个标记。而在实现不同的功能时,除退出调用的清全屏外,浏览和查询输出信息时调用的是清下屏(clear2),此外,还要注意调用set_p2来设置输出信息显示时光标的位置。2.2程序设计显示主菜单界面后,在光标位置接收用户的操作字符,并判断操作类别:浏览/查询/退出,以调用相应的子程序。整个程序采用主程序调用子程序的方法。主程序完成菜单的显示和功能的选择,而子程序完成各独立功能的实现。2.3功能设计分析设计浏览子程序时,先打开文件,然后读一个记录,并通过调用宏show_item将其显示到屏幕上,若文件指针没有到达文件尾,则继续读记录并显示,当文件指针到达文件尾时,则关闭文件返回主程序。设计查询子程序时,首先保留现场,清除下面屏幕,打开fname指定文件并保留句柄。将光标设置,用宏getin获取最多15个字符的输入到buff1。读23个字节长的记录到buff2,再将buff1和buff2比较是否相同,若不同,再继续读23个字节文件;若相同,则显示所寻找的记录,最后关闭文件,恢复现场。3 软件设计说明3.1软件思想设计学生成绩管理系统的整个程序采用了主程序调用子程序的方法。主程序完成菜单的显示,而子程序完成浏览、删除及退出功能的方法实现。3.2程序说明mess1-mess9、bye、err1、err2为显示时调用的字符串show:用来指定地址的显示字符串,有一个地址参数。set_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个空格,最后换行。这个宏包含的语句较多如果每次都用语句实现非常冗长,使用宏后就很简洁,充分体现了使用宏的优点。getin:获取学生信息。这也是一个使用频繁的宏,其中含有很多的指令,含addrs和count2两个参数,addrs是存放信息的数据段位置,count2是接收的字符数。list:作用是显示文件中的记录,先清除显示区域和记录的标题,打开文件,读取输入的一个记录的内容放在缓冲区buff1中,并判断是否到了文件尾,如果不是,则显示这条记录,循环读取直到文件结束,最后关闭程序,恢复现场。query:功能是查询记录。先清除屏幕,打开文件。用宏getin获得15个字节的姓名字符,放在buff1中。读取一条记录,将其放在 buff2中,然后和buff1中的内容进行比较,如果不同,再读取下一个记录,直至读完关闭文件。如果姓名相同,则把该记录输出。若查找不到,则输出提示错误语句。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 = 属性 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=文件代号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.从光标处读取字符判断,选择相应的功能,此外,当输入字符不符合菜单提示的字符时,输出“输入错误”的提示,并等待下次输入反应: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 ;设置显示位置 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 buff1 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设置的光标处显示提示信息后,清下屏,以防有前操作占用界面空间。等待用户输入要查询学生的姓名,只有在输入正确后,才能显示其成绩,若输入姓名与文件中各姓名不符,则输出“错误”提示语句,不输出成绩。无论是在查询功能实现后,还是查询失败,光标返回到输入处,则此时可重新选择菜单中的功能。主要程序段与流程图
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号