屏幕窗口程序的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 算法流程图

算法流程图

相关文档
最新文档