打字测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、题目及要求:
本次课程设计要求在TC环境下编写一个打字速度及正确率的测试软件。
1. 程序运行时,启动画面如下:
屏幕画面用线条划分为三部分:左上部分显示“高分榜”;左下为3个功能项——难度级别调整、开始按钮、退出按钮;右侧主画面用于打字。
2. 三个功能项:
画面左下角设置三个功能项,用左/右箭头移动亮条表示当前在哪一个功能项,当亮条移动到某个功能项时,右侧主画面中显示简单的操作提示信息。
对“Start”和“Exit”两个功能项,以按回车键表示选中该功能项。
(1) Level ? ——难度级别调整。
设定三个难度级:1级在打字时只测试26个英文字母的大小写及空格键;2级增加10个数字键、逗号(,)、分号(;)、点(.)、单引号(');3级再增加以下符号:
/ - = ~ ! @ # $ % ^ & * ( ) + < > ?
当亮条停在该功能项时,用上/下箭头增/减难度级。
(2) Start ——开始
用回车键选中该功能项后,先在右侧主画面中分行显示若干个字符。显示的字符需要根据当前设定的难度级随机产生。然后光标停在第一个字符的下面,如下图所示:
textbackground(0);
textcolor(14); /*设置边框颜色为黄色*/
0 黑色
1深蓝
2深绿
3浅蓝
4老红
5老紫
6土黄
7灰色
8浅灰色
9蓝色
10亮绿
11兰色
12红色
13亮紫
14黄色
15 白色
操作者这时可以在键盘上打入相应的字符。每输入一个字符,光标自动后移,本行结束后光标自动移至下一行。显示操作者输入的字符时,用两种不同的颜色区分输入是否正确。如果操作者发现输入有误,可以用退格键删除光标前面的字符。
输入完成或者操作者按ESC键后测试结束,画面上应给出测试结果:
(a)(b)
(c)(d)
如果打字时间超过10分钟或者输入的字符不足一半,则只显示结果但不计分,如上图的(a)和(b)所示。否则需要根据本次输入符号的总数(按ESC退出时并未完全输入)、输入的正确性、花费的时间等因素计算综合得分并显示,如上图(c)所示。如果综合得分超过目前榜上的最低分,还需要输入一个名字,如上图(d)所示,并更新“高分榜”。
(2) Exit ——退出
选中该功能项后,把当前“高分榜”存盘,程序结束。
3. 计分规则
操作者完成一次打字测试后,应综合考虑输入符号总数、输入的正确性、花费的时间等因素,请自行设计一套计分规则,把各个因素量化,并计算总得分。
4. 高分榜
对三个难度级分别设置三个高分榜,当操作者用Level功能项调整难度级时,程度应在左上角及时显示对应难度级的高分榜。一次打字测试完成后,如果出现新的高分记录则高分榜需要及时更新。
程序启动时需要从磁盘文件中读取三个难度级的高分榜,程序退出前则应把当前的高分
榜存盘,程序运行过程的其它时间不对文件进行操作。高分榜存盘文件名由编程者自己设定。
5. 合作
本次课程设计允许两人合作,但必须明确两人的分工,工作量较少者编写的代码不得少于整个程序的1/3。
二、要求提交的内容
1. 含有一定注释的源程序,即.C文件
2. 程序的可执行文件,即.EXE文件
3. 高分榜存盘文件
4. 实验报告,即.DOC文件
实验报告应包含以下内容:
①基本信息
学生的学号、姓名
如果是两人合作,还需要写明各人的分工
②总体结构
●本次设计已实现了哪些功能
●程序由哪几个大的功能块组成,每个功能块中设计了哪些自定义函数(只给出
函数首部及关于函数功能的说明),是否设计了各功能块共用的函数。
③详细设计
以文字描述以下各项,如果相应功能没有完成则不写。
●计分规则
●如何控制亮条在三个功能项之间移动
●如何随机产生打字用的字符
●在打字过程中如何实现退格键的功能
●高分榜存盘文件名及文件内的数据格式
●其它需要说明的内容
④总结
●程序还存在哪些问题。
●本次设计综合运用了C语言的哪些知识点,本人的体会及收获。
三、评分标准
1.对于两人合作提交的设计结果,按以下规则评分,且两人得分相同。
(1) 不及格——出现以下情况之一均被评为“不及格”:
●未能按时提交第二项要求的源程序、可执行文件及实验报告
●源程序中有错误,不能在TC环境下运行
●源程序在TC中运行的效果与提交的.EXE执行文件执行效果不一致
●程序运行后不能出现规定的启动画面
●不能用左/右箭头控制亮条在三个功能项间移动
●程序不能通过选中“Exit”功能项正常结束
(2) 及格——按时提交程序及文档,能显示规定的画面,能显示出高分榜,亮条能在各功能
项间移动,选中“Exit”后程序能正常退出。
(3) 中等——达到“及格”的要求,并能在选中“Start”时进入打字测试画面,能在正确位
置显示输入的符号,能用颜色区分输入的正误,能正常从测试状态返回功能选择状态。
(4) 良好——达到“中等”的要求,并能在打字测试结束时统计及显示测试结果。
(5) 优秀——按时提交程序及文档,程序功能齐全(允许有个别功能未实现或不完善),实验
报告内容详实。
2.独立完成课程设计时,按以下规则评分。
(1) 不及格——出现以下情况均被评为“不及格”:
●未能按时提交第二项要求的源程序、可执行文件及实验报告
●源程序中有错误,不能在TC环境下运行
●源程序在TC中运行的效果与提交的执行文件执行效果不一致
●程序运行后不能出现规定的启动画面
(2) 及格——按时提交程序及文档,并能显示规定的画面,亮条能在三个功能项间移动,选
中“Exit”后程序能正常退出。
(3) 中等——达到“及格”的要求,并能显示出高分榜,能在选中“Start”时进入打字测试
画面,能正常从打字测试状态返回功能选择状态。
(4) 良好——达到“中等”的要求,并能在正确位置显示输入的符号,能用颜色区分输入的
正误。
(5) 优秀——按时提交程序及文档,程序功能齐全(允许有个别功能未实现或不完善),实验
报告内容详实。
四、参考资料
1.ASCII值大于128的扩展字符
以下的小程序可以显示出扩展ASCII字符,其中包括画边框需要使用的各种符号。
#include "stdio.h"
main()
{
int x;
for(x=128;x<256;x++)
printf("%d:%c ",x,x);
getch();
}
2.TC中提供的系统函数
以下列举一些编程时可能要使用的系统函数,具体用法参见英文版TC2.0的有关说明(查看说明的方法是在该编程环境中输入需要查看的函数名称,把光标移到该函数的某个字母上,按Ctrl+F1),注意要用#include包含各函数对应的头文件。
textcolor 设定当前显示用的前景色
textbackground 设定当前显示用的背景色
gotoxy 把光标设置到指定的位置
cputs 用当前设定的前景色和背景色显示字符串
cprintf 用当前设定的前景色和背景色显示数据,类似printf