屏幕窗口程序的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书
学生姓名:专业班级:
指导教师:工作单位:计算机科学与技术学院
题目:屏幕窗口程序的设计
初始条件:
理论:学完“汇编语言程序设计”、“高级语言程序设计”和“数字逻辑”。
实践:计算机学院科学系实验中心提供计算机和软件平台。如果自己有计算机可以在其上进行设计。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
(1)程序应有操作提示、输入和输出,界面追求友好,最好是菜单式的界面。
(2)设计若干用例(测试数据),上机测试程序并分析(评价)所设计的程序。
(3)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:
在正文第一行写课程设计题目;
1.需求说明(要求、功能简述)或问题描述;
2.设计说明(简要的分析与概要设计);
3.详细的算法描述;
4.源程序与执行结果(含测试方法和测试结果);
5.使用说明;
6.总结,包括设计心得(设计的特点、不足、收获与体会)和展望(该程
序进一步改进扩展的设想)。
时间安排:
设计时间一周: 周1:查阅相关资料。
周2:系统分析,设计。
周3、4:编程并上机调试。
周5:撰写课程设计报告。
设计验收安排:17周星期五8:00起到计算机学院科学系实验中心进行上机验收。
设计报告书收取时间:17周的星期五下午5:00之前。
指导教师签名: 2011年12月25日
系主任(或责任教师)签名: 2011年12月 25日
屏幕窗口程序的设计
1 问题描述
在屏幕上开出三个窗口,它们的行列坐标如图所示:
光标首先定位在右窗口最下面一行的行首(15,50),如从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示于左窗口,则先按下←键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示左窗口的内容。如若再按下→键,输入字符就会接在先前输入的字符之后显示出来。当一行字符显示满后(左右窗口一行显示20个字符,下窗口一行显示50个字符),窗口自动向上卷动一行,输入字符继续显示于最低一行,窗口最高一行向上卷动后消失。
编写屏幕窗口程序时,要求将一些功能程序段定义成宏指令,如:
① scroll——向上卷动
② clear——清屏
③ get_char——接收输入字符,并判断是否是ESCape、←或→键,然后转到相应的入口处理
④ display——在屏幕上显示字符
⑤ pos_curse——光标定位
2 设计分析
2.1 问题分析
(1)宏指令能表示一段具有独立功能的程序代码。宏指令定义的格式如下:
宏指令名 MACRO [哑元表]
︙;实现某种功能的程序段
ENDM
如把上卷全屏幕或部分屏幕(窗口)的功能定义成一条宏指令scroll,其形式为: scroll macro ulrow,ulcol,lrrow,lrcol,att
mov ah,06h
mov al,1
mov ch,ulrow
mov cl,ulcol
mov dh,lrrow
mov dl,lrcol
mov bh,att
int 10h
endm
如此定义之后,在程序中可直接应用宏指令scroll,同时可赋予不同的参数而对不同的窗口进行上卷操作。如程序中需对右窗口上卷一行时调用宏指令:
scroll 5,50,15,70,70h
(2)在数据段中设置6个变量lx,ly,rx,ry,dwx和dwy,它们分别用来记录左窗口、右窗口和下窗口的当前光标位置,以保证在返回本窗口显示字符时,能够接着前一次显示的字符窜之后继续显示。
(3)在窗口中每显示一个字符,都要修改光标的列变量,同时判断是否超出本窗口的边界,如没有超出可继续接收并显示字符,如意超出边界,则需要上卷一行,同时把光标重新定位在本窗口底行的行首。
(4)一个字符无论在左窗口显示还是在右窗口显示,它同时还在下窗口中显示,因此要注意保存显示字符。
2.2 程序中使用的功能调用
INT 10H:
02H 功能:用文本坐标设置光标位置
入口参数:AH = 02H
BH = 页号
DH/DL = 行/列
出口参数:无
03H 功能:在文本坐标下,读光标各种信息
入口参数:AH = 03H
BH = 页号
出口参数:CH = 光标起始行
CL = 光标结束行
DH/DL = 行/列
06H 功能:屏幕初始化或上卷
入口参数:AH = 06H
AL = 0 初始化窗口
AL = 上卷行数
BH = 卷入行属性
CH/CL = 左上角行/列号
DH/DL = 右下角行/列
出口参数:无
0EH 功能:显示字符(光标前移)
入口参数:AH = 0EH
AL = 字符
BH = 页码
BL = 前景色
出口参数:无
INT 16H:
00H 功能:从键盘读字符
入口参数:AH = 00H
出口参数:AH = 扫描码
AL = 字符码
3 算法描述
3.1 算法流程图
算法流程图