资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
微机应用 课程设计任务书20 11 20 12 学年 第 1 学期第 16周 16 周 题目字符串动画设计 内容及要求:内容:设计一个字符串动画的程序。可以实现字符从无到有,从左到右,从上到下,大小写变化、颜色变化等功能。要求:(1)屏幕提示输入字符串;(2)输入完成后,字符动画显示:从无到有,从左到右,从上到下,大小写变化、颜色变化等;(3)可连续显示或定时显示,直至单击“Q”或“q”键退出程序。进度安排课程设计内容时间分配方案论证1天分析、设计、调试、运行3天检查、整理、写设计报告、小结1天合计5天学生姓名: 指导时间: 16周指导地点:F楼 409室任务下达2011 年 12月 12日任务完成2011年 12月 16日考核方式1.评阅 2.答辩 3.实际操作 4.其它指导教师系(部)主任王长坤注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档摘 要在DEBUG环境中运行程序,通过编译、链接、执行就可以在界面中输入一串字符按Enter键,就可以看到输入的字符串在闪烁,从无到有,从左到右,从上到下,还有颜色的变化。执行完毕后按“Q”或“q”就可以退出程序。目 录1 课题名称42 课题小组成员43 课题内容及要求44 流程图及其解释54.1主程序流程图设计54.2分布具体功能实现流程图设计64.2.1字符串左移64.2.2字符串下移74.2.3字符串闪烁85 软件设计关键问题或程序段落说明95.1提示输入字符串显示功能实现95.2向右、向下移动功能实现105.3字符串大小写变化实现125.4颜色变化功能实现125.5退出功能实现136 结论146.1调试说明146.2结果记录及分析146.2.1提示输入字符串146.2.2输入后显示字符串156.2.3在特定位置从无到有显示156.2.4在特定位置向右移动166.2.5在特定位置向下移动176.2.6小写变成大写加闪烁177 参考文献188 心得体会199 附录20 1 课题名称字符串动画设计 2 课题小组成员及分工 小组成员:赖龙辉、李骏杰、刘斌、刘文文、刘喜兵 分工:赖龙辉负责主程序的编写和监督组员完成其他程序的编写 李骏杰负责实现字符串右移的程序编写及解释 刘斌负责实现字符串下移的程序编写和解释 刘文文负责实现字符串闪烁的程序编写和解释 刘喜兵负责程序的运行和调试 最后大家一起讨论、总结,并写报告3 课题内容及要求要求:(1)字符动画显示,显示方式可为:从无到有,从左到右,从上到下,颜色变化等;(2)可连续显示,直至单击“Q”或“q”键退出程序。内容:(1)屏幕提示输入字符串主要运用中断INT 21H的0A H功能;(2)在确定光标位置后,通过循环改变其行列数值来达到左右上下移动功能;大小写变化则通过将输入字符与a和z比较,若为小写字母,则减去20H,否则不变;颜色变化则通过INT 10H的09H功能循环调用实现;(3)退出功能通过将输入Q和q与其ASCll比较,跳转到退出程序;而退出程序主 要通过INT 21H的4C H功能实现。 4 流程图及其解释4.1主程序流程图设计字符串右移结束开始 段地址初始化 进入Dos窗口输出提示信息输入字符串显示输入字符串YN字符串向下移动字符串小写变大写 三色变换闪烁按Q,q?图4-1 主程序流程图 4.2分布具体功能实现流程图设计4.2.1字符串右移结束 输完?获取字符串YYN图4-2 字符串右移流程图开始 输出字符串设置光标起始位置延迟1输出空白覆盖字符串延迟2 结束?N横坐标更新4.2.2字符串下移结束 输完?获取字符串YYN图4-3 字符串下移流程图开始 输出字符串设置光标起始位置延迟1输出空白覆盖字符串延迟2 结束?N纵坐标更新4.2.3字符串闪烁结束Y图4-4 字符串闪烁流程图N获取字符串开始N是否输完?Y输出字符串设置起始位置延迟1设置字符串颜色次数已到?5软件设计关键问题或程序段落说明5.1提示输入字符串显示功能实现 屏幕提示输入字符串主要运用中断INT 21H的0A H功能,输入后回车则完成字符串在特定位置的显示。另外,在此段程序中,还通过用空字符串的逐个显示来完成字符从无到有的功能实现。 lea dx,buf mov ah,0ah int 21h mov bx,2 ;多字符输入,回车结束,有效内容自第三个始。 mov di,0B1: mov al,bufbx cmp al,13 ;是否是回车? je AG1 mov buff1di,al inc bx inc di jmp B1AG1: mov ah,0 mov al,2 int 10h;黑白文本OTHER: mov cx,0ffffh;AG: mov dh,7 ;hang mov dl,35 ;lie mov ah,2 mov bh,0 ;页号为0 int 10h ;置光标位置 lea dx,buff1 mov ah,9 int 21h ;显示字符串 mov dh,7 mov dl,35 mov ah,2 mov bh,0 int 10h ;置光标位置 lea dx,buff2 mov ah,9 int 21h; sub cx,1 ; jnz AG ;不等于转移5.2向右、向下移动功能实现 如流程图可知,向下和向右移动,程序基本相同,只不过一个改变的是行,另一个改变的是列,以下以向右移动为例。主要通过INT 10H 调用,且循环操作一定次数实现。其中,在下一次输出时,为了清除前一个位置的输出,用空字符串替代。另外,通过延时控制移动速度。程序如下: mov al,3 mov ah,0 int 10h ;16色文本 mov dl,0 ;字符串向右移动, 给出起始列bbb2: MOV SI,OFFSET buff1 mov di,0bbb1: mov dh,7 ;dh hang dl lie inc dl mov ah,2 int 10h ;置光标位置 2号置光标位置 9号指定输出,每次显示一个 mov ah,09 ;9号功能 inc di mov al,si inc si mov bh,0 ;显示页 mov bl,0eh ;color mov cx,01 ;显示字符的次数 int 10h cmp di,0fh ; 立即数大小取决于字符串大小 jb bbb1 call delay1 sub dl,0fh ; 设置列 mov SI,OFFSET buff2 mov di,0ccc1: mov dh,7 ;dh hang dl lie inc dl mov ah,2 int 10h ;置光标位置 mov ah,09 ;9号功能 inc di mov al,si inc si mov bh,0 ;显示页 mov bl,0eh ;color mov cx,01 ;字符重复一次 int 10h cmp di,0fh jb ccc1 call delay2 mov ah,07 int 21h 首先在一个位置输出 然后输出空白覆盖掉在输出下一个位置 cmp dl,25 jnb xiangxia ; 在这里跳出右移, 转到向下 sub dl,0dh jmp bbb25.3字符串大小写变化实现 因为在ASCII表中大小写相差20H,所以通过将输入字符与a和z比较,若为小写字母,则减去20H,否则不变。程序如下:daxiaoxie: mov dl,7 m
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号