一个练习打字的游戏小编程.doc
一个练习打字的游戏小编程文章类别:C语言程序设计 | 发表日期:2008-9-24 14:46:50收藏到QQ书签 -大家自己设三个或一个文本文件,内含1000个字符就行了,英文字母或其他字符都可以。谢谢指教!主函数在下面!介绍一下自定义函数的功能吧。自定义函数名称 函数功能 Background() 设置简单友好界面。 DEMO() 设置菜单供用户选择练习方式及退出。 Get_charater() 实现从用户指定文件随机抽取100个字符并显示在屏幕上供用户参照打字的功能 Typing() 程序的核心,实现了接受输入的字符、判定正误、计算练习成绩和时间等并显示在屏幕 特点:而主函数则非常简单,只包含这四个要调用的函数。 这四个函数功能单一,且每个函数不超过50行,较好地满足设计风格。#include <stdio.h>#include <graphics.h>#include <conio.h>#include <dos.h>#include <time.h> 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;num<30;num+) circle(x1,y1,r); /*步骤二、使用当前颜色绘制一个闭合图形*/ setfillstyle(num%12,color1); /*步骤三、设置填充方式*/ floodfill(x1,y1,color1); /*步骤四、对闭合图形进行填充*/ x1+=20; delay(100); setcolor(color2); for(num=0;num<30;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;i<100;i+) putchar(stringi); printf("n"); printf("*"); fclose(in); printf("LET'S 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'&&i<100) 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(); exit(0); main(void) /*主函数包含四个要调用的函数*/ Background(); DEMO(); Get_character(); Typing();本文章来自 21视频教程网 一个练习打字的游戏小编程_C语言程序设计教程 原文链接: