一个练习打字的游戏小编程.doc_第1页
一个练习打字的游戏小编程.doc_第2页
一个练习打字的游戏小编程.doc_第3页
一个练习打字的游戏小编程.doc_第4页
一个练习打字的游戏小编程.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一个练习打字的游戏小编程文章类别:C语言程序设计 | 发表日期:2008-9-24 14:46:50收藏到QQ书签 -大家自己设三个或一个文本文件,内含1000个字符就行了,英文字母或其他字符都可以。谢谢指教!主函数在下面!介绍一下自定义函数的功能吧。自定义函数名称 函数功能 Background() 设置简单友好界面。 DEMO() 设置菜单供用户选择练习方式及退出。 Get_charater() 实现从用户指定文件随机抽取100个字符并显示在屏幕上供用户参照打字的功能 Typing() 程序的核心,实现了接受输入的字符、判定正误、计算练习成绩和时间等并显示在屏幕 特点:而主函数则非常简单,只包含这四个要调用的函数。 这四个函数功能单一,且每个函数不超过50行,较好地满足设计风格。#include #include #include #include #include char string101; void Background() int driver=DETECT,mode; /*定义变量*/ int x1=20,y1=20,r=10,num; int x2=20,y2=450; int color1=10,color2=10; /*在此设置颜色,一改全改*/ initgraph(&driver,&mode,a:bgi ); /*初始化图形模式*/ setcolor(color1); /*步骤一、设置当前颜色用于绘图*/ for(num=0;num30;num+) circle(x1,y1,r); /*步骤二、使用当前颜色绘制一个闭合图形*/ setfillstyle(num%12,color1); /*步骤三、设置填充方式*/ floodfill(x1,y1,color1); /*步骤四、对闭合图形进行填充*/ x1+=20; delay(100); setcolor(color2); for(num=0;num30;num+) circle(x2,y2,r); setfillstyle(num%12,color2); floodfill(x2,y2,color2); x2+=20; delay(100); setcolor(YELLOW); /*改变当前颜色,输出友好话*/ settextstyle(0,0,2); outtextxy(50,150,WELCOME TO THE TYPING WORLD!); setcolor(LIGHTMAGENTA); outtextxy(200,350,DESIGED BY HE ZHANG HONG); sleep(3); /*延时二秒观看结果*/ closegraph(); /*关闭图形*/ void DEMO() /*设置菜单函数*/ printf(_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*n” ttt THE DEMO DISPLAY FOR THE FILE SYSTEMn n tt 1:PRATICE ONLY ENGLISH Characters.n tt 2:PRATICE OTHER Charcters.n tt 3:PRATICE ALL Charcters.n tt 4:QUIT AT ONCE!n n); void Get_character(void) /*设置得到字符函数*/ void Typing(); /*声明typing()函数*/ FILE *in; int i,t,choice; char ch; t=abs(time(0)%700; /*获取随机数来指定下面指针的位*/ printf(nPLEASE ENTER YOUR CHOICE:); choice=getch(); clrscr(); /*清屏*/ switch(choice) /*选择不同打开文件来打不同的字符*/ case 1: in=fopen(english.txt,r); break; case 2: in=fopen(others.txt,r); break; case 3: in=fopen(type all.txt,r); break; case 4: exit(1);break; fseek(in,t*1l,0); fgets(string,101,in); printf(n); printf(*); for(i=0;i100;i+) putchar(stringi); printf(n); printf(*); fclose(in); printf(LETS BEGIN TYPING,OK?Y/N); printf(n); ch=getch(); if(ch=n|ch=N) /*判定是否练习打字*/ exit(0); else if(ch=y|ch=Y) Typing(); void Typing(void) /*设置打字(包括计算其他结果)函数*/ int i,j,Right_char=0,Wrong_char=0,Sum_char=0; float Speed,Timeused,Right_rate; char absorb_char,ch_1,ch_2,ch_3; time_t star,stop; /*定义time变量,获取系统时间并显示在屏幕上*/ time(&star); printf(n); printf(time begin:%s,ctime(&star); i=0; absorb_char=getchar(); /*接受键盘输入的字符并在下面的while语句判定正 错和计算结果*/ while(absorb_char!=n&i100) if(absorb_char=stringi) Right_char+; Sum_char+; else Wrong_char+; Sum_char+; i+; absorb_char=getchar(); time(&stop); Timeused=difftime(stop,star); /*利用difftime()函数输出所用时间*/ Right_rate=(float)Right_char/(float)Sum_char*100; Speed=(Sum_char/Timeused)*60; printf(time end:%s,ctime(&stop); /*下面显示分数*/ printf(*#YOUR SCORE!#*); printf( 1: TOTAL TIME USED:%.3fn,Timeused); printf( 2: YOU HAVE TYPED:%dn,Sum_char); printf( 3: Typing Right_Characters are:%dn,Right_char); printf( 4: Typing Wrong_Characters are:%dn,Wrong_char); printf( 5: YOUR TYPING SPEED IS :%.2fminn,Speed); printf( 6: YOUR TYPING RIGHT_RATE IS :%.2f%n,Right_rate); printf(*#YOUR SCORE!#*); if(Speed=50|Right_rate=80) /*询问用户是否重来一遍*/ printf( NOT VERY GOOD!n TRY IT AGAIN,OK?Y/Nn); ch_2=getch(); if(ch_2=n|ch_2=N) exit(0); else if(ch_2=y|ch_2=Y) clrscr(); DEMO(); /*分别调用函数重来一遍*/ Get_character(); Typing(); exit(0); else printf( WELL DONE!n ONE MORE TIME?Y/Nn); /*询问用户是否重来一遍*/ ch_3=getch(); if(ch_3=n|ch_3=N) exit(0); else if(ch_3=y|ch_3=Y) clrscr(); DEMO(); /*分别调用函数重来一遍*/ Get_character(); Typing(); ex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论