900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 英文打字测试C语言课程设计 语言设计打字练习题库.doc

英文打字测试C语言课程设计 语言设计打字练习题库.doc

时间:2022-03-08 08:45:51

相关推荐

英文打字测试C语言课程设计 语言设计打字练习题库.doc

汇编语言课程设计报告

( -- 年度第 1 学期)

专业xxx学生姓名xxxx班级xxx学号xxxx指导教师xxx完成日期xxxxx

目录

1.设计目的与设计要求

2.程序流程图6

2.1主程序流程图6

2.2时间计算流程图7

2.3正确率计算流程图8

3.设计关键问题10

3.1输入输出10

3.1.1 输出显示信息10

3.1.2 输入十个字符12

3.2 输入字符串所用时间计算12

3.3 正确率判断14

4.调试运行结果分析15

参考文献21

附录二 打字计时练习程序24

一.设计目的

本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基

础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程

序设计方法,提高分析问题,解决问题的综合应用能力。

设计要求

在缓冲区预放了一些字母,运行时,可按照屏幕上显示的字母输入练习,

每输入完一行按回车键后,可显示出练习输入的时间。

设计思路

系统总体分析

在缓存区预放了一些字母,运行时可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间。当一个句子分析完后(回车键作为结束符),屏幕上以min:sec:msec的格式显示出键入字符的时间。在每次打字之前,屏幕上先显示一个例句,然后打字员按照例句,将句中字符通过键盘输入。这个过程共进行五次,当键入一个enter键时,推出打字计时练习程序。

在键盘上联系的打字例句及其他地址表,计时单位等预存在DATA数据段中。自编的中断程序Kbint检测按键时产生的中断,并将按键扫描码转换为ASCII码存入缓存区BUFFER(内存中一个区域),这个工作和EOM09类型的键盘中断例行程序所完成的工作大致相同,只是在解释各个键时作了简化,即只解释了可显示字符(如英文小写字母,数字及一些字符),其他特殊键(如组合键,双态键,功能键),都未做解释,只做字符码0来处理。在主程序部分保存原有09类型的中断向量,设置自编例行程序的中断向量,设置中断屏蔽位,然后在开断。当键盘中断处理后,主程序安排指令读取缓存区中的字符并显示在屏幕上。在主程序的末尾,利用DOS功能恢复原09类型的中断向量,然后返回DOS。在显示键入的字符时,还应判断字符是否为回车符。说明一个句子输入完毕,此时调用显示时间的子程序显示打字时间,然后顺序显示一个例句。如果所存放的例句都已显示完毕,则再次从第一个例句开始显示,直至键入某个功能(如ESC键等)退出程序,结束打字练习。打字时间统计利用自编的计时器中断处理程序Clint来完成。每输入一个例句,计时一次。在此中断例行程序中,定时器中断的次数记录在计数单位count中,当count的计数单位为18 时,sec计数单位加1,当sec计数值达到60时,min计数单位加1,因为输入一个句子无论如何不会达到小时级,所以hours计数值得调整判断,实际上只起到退出计时器的作用。

加入一个显示菜单程序,使得原来的程序具有观赏性;显示时间的子程序disptime分别将各计时单位的二进制数转化为十进制,并以min:sec:msec的形式出来。其中msec是由count中的计数值转化成的。

Count*1s/18.2=count*55ms

此式中,18.2是计算机系统中产生的一个中断,每秒18.2次。

2. 主模块框图

程序的核心模块是打字计时,通过显示的例句进行打字练习,最后显示打字时间,主题流程图如下:

a. 建立汇编源程序—通过 b.编译为目标文件——d.连接执行文件

c.不通过,重新修改(语句错误) e.运行

f.不正确,用调试工具调试,重新修改(逻辑错误)

g.正确完成

2程序流程图

2.1主程序流程图

图1 主程序流程图

主程序的流程图如图1所示:

说明:首先定义堆栈段,数据段,代码段等,初始化。显示提示信息提示打字练字的规则,说明如何开始,如何退出等。显示出字符串后,开始读取系统时间并保存。然后输入字符串存到指定的缓冲区。输入结束后,再次读取系统时间,并由两次所读取的时间计算出输入字符串所用的时间并显示。调用正确率计算函数,并显示在屏幕上。看输入字符串对应位正确的个数是不是十个,如果是十个,则继续往下,看输入的是

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。