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

该博客详细介绍了使用汇编语言设计一个打字计时练习程序的过程,包括设计目的、程序流程、关键问题和调试运行结果。程序通过键盘中断处理输入,计算打字时间和正确率,并在屏幕上显示。设计中包含了输入输出处理、时间计算和正确率判断等功能,旨在提升学生的汇编语言编程技能。
摘要由CSDN通过智能技术生成

汇编语言课程设计报告

( 2014 -- 2015 年度第 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所示:

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值