| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 515 人关注过本帖
标题:帮我看一下用C忱的打字程序,还没有完成,帮我一下
只看楼主 加入收藏
ghggui88
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-12-31
收藏
 问题点数:0 回复次数:1 
帮我看一下用C忱的打字程序,还没有完成,帮我一下


#include<conio.h>
#include<stdio.h>
#include<dos.h>
void login();
void lrform();
void del();
void show();
void show_bot();
void readfile();
void init();
void wzlr();
void left();
void right();
void up();
void down();
void pageup();
void pagedown();
void mainwin();
void interrupt new();
void settimer(void interrupt(*)());
void kill();
void interrupt (*old)();
unsigned char name[10];
unsigned char class[20];
unsigned char s[300][81],s1[300][81];
unsigned int sum_line,curi=3,curj=3,line=0,timecount=3000;
unsigned int timercount=0,count=0,count1=0,zqzs=0,cwzs=0,lrsd=0;

FILE *fp;

main()
{
window(1,1,80,25);
textbackground(1);
textcolor(7);
clrscr();
login();
lrform();
readfile();
show();
wzlr();
}

void init()
{int i,j;
for(i=0;i<300;i++)
for(j=0;j<=80;j++)
{
s[i][j]='\0';
s1[i][j]='\0';
}
}

void login()
{
int i,x,y;
char ch;
window(25,10,55,16);
textbackground(2);
textcolor(10);
clrscr();
gotoxy(1,1);
cprintf("┏━━━━━━━━━━━━━┓");
gotoxy(1,2);
cprintf("┃学生姓名: ┃");
gotoxy(1,3);
cprintf("┃ ┃");
gotoxy(1,4);
cprintf("┃学生班级: ┃");
gotoxy(1,5);
cprintf("┃ ┃");
gotoxy(1,6);
cprintf("┃ 确定  取消 ┃");
gotoxy(1,7);
cprintf("┗━━━━━━━━━━━━━┛");
gotoxy(13,2);
i=0;
ch=getch();
while(ch!=13&&i<10){name[i]=ch;cprintf("%c",ch);i++;ch=getch();}
if(ch==13)
{name[i]='\0';gotoxy(13,4);}
i=0;
ch=getch();
while(ch!=13&&i<20){class[i]=ch;cprintf("%c",ch);i++;ch=getch();}
class[i]='\0';
getch();
}

void lrform()
{
window(2,1,80,3);
textbackground(1);
textcolor(7);
gotoxy(1,1);
clrscr();
cprintf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓");
gotoxy(1,2);
cprintf("┃ 班级名称: 姓名: ┃");
gotoxy(1,3);
cprintf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");
gotoxy(17,2);
cprintf("%s",class);
gotoxy(37,2);
cprintf("%s",name);
show_bot();
mainwin();
}

void mainwin()
{ int i;
window(2,4,80,21);
textbackground(1);
textcolor(7);
clrscr();
gotoxy(1,1);
cprintf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓");
for(i=2;i<=17;i++)
{ gotoxy(1,i);
cprintf("┃ ┃");
}

gotoxy(1,18);
cprintf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");
gotoxy(3,2);
}
void show_bot()
{int min,sec;
float fzs;
window(2,22,80,24);
textcolor(7);
gotoxy(1,1);
cprintf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓");
gotoxy(1,2);
cprintf("┃ 剩余时间: 正确字数: 错误字数: 录入速度 : ┃");
gotoxy(1,3);
cprintf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");
gotoxy(16,2);
min=(timecount-count)/60;
sec=(timecount-count)%60;
cprintf("%u:%u",min,sec);
gotoxy(41,2);
cprintf("%u",zqzs);
gotoxy(58,2);
cprintf("%u",cwzs);
gotoxy(74,2);
fzs=count*1.0/60;
if(fzs>0)
lrsd=(int)(zqzs*1.0/fzs);
cprintf("%u",lrsd);
}


void readfile()
{
sum_line=0;
fp=fopen("m:\\c\\file1.txt","r");
if(fp==NULL){gotoxy(1,1);cprintf("文件不能打开!");getch();exit(0);}
while(!feof(fp))
{
fgets(s[sum_line],80,fp);
sum_line++;
}
}

void show()
{
int sum,i;
clrscr();
mainwin();
if(sum_line-line>8)sum=8;
else
sum=sum_line-line;
for(i=0;i<sum;i++)
{
gotoxy(3,(i+1)*2);
cprintf("%s",s[line+i]);
}
gotoxy(curj,curi);
}


void wzlr()
{
int i;
unsigned char ch='',ch1='';
disable();
settimer(new);
enable();
while(ch!=27)
{
i=line+(curi-3)/2;
if(ch1==0&&ch==72)
{up();ch='';}
else if(ch1==0&&ch==80)
{down();ch='';}
else if(ch1==0&&ch==75)
{left();ch='';}
else if(ch1==0&&ch==77)
{right();ch='';}
else if(ch==0){ch1=ch;}
else if(ch==8){del();ch='';}
else if(s[i][curj-3]>160&&ch1!='')
{if(ch1==s[i][curj-3]&&ch==s[i][curj-2])
{ textcolor(7);zqzs+=1;}
else
{ textcolor(4);cwzs+=1;}
cprintf("%c%c",ch1,ch);
ch1='';ch='';
curj+=2;
if(curj>strlen(s[i]))
{curj=3;down();}
}
else if(s[i][curj-3]<160)
{if(ch==s[i][curj-3])
{ textcolor(7);zqzs+=1;}
else
{ textcolor(4);cwzs+=1;}
cprintf("%c",ch);
curj+=1;
ch1='';ch='';
if(curj>strlen(s[i]))
{curj=3;down();}
}
else
ch1=ch;
if(!kbhit())
{
if(count!=count1)
{
show_bot();
window(2,4,80,21);
gotoxy(curj,curi);
count1=count;
}
}
else
ch=getch();
}
}

void up()
{
if(curi>3){curi-=2;gotoxy(curj,curi);}
else if(line>0){line-=1;show();}
else
;
}
void down()
{
if(curi<16){curi+=2;gotoxy(curj,curi);}
else
if((line+(curi-3)/2)<sum_line){line+=1;show();}
else
;
}
void left()
{
int i,j;
i=line+(curi-3)/2;
if(curj>3)
if(s[i][curj-4]>160){curj-=2;gotoxy(curj,curi);}
else
{curj-=1;gotoxy(curj,curi);}
else
if(curi>3)
{curj=strlen(s[i-1]);curi-=2;gotoxy(curj,curi);}
else
if(line>0){curj=strlen(s[i-1]);gotoxy(curj,curi);up();}
else
;
}

void right()
{
int i,len;
i=line+(curi-3)/2;
len=strlen(s[i]);
if(curj<len)
if(s[i][curj-3]>160)
{curj+=2;gotoxy(curj,curi);}
else
{curj+=1;gotoxy(curj,curi);}
else
if(i<sum_line)
{curj=3; down();}
}
void del()
{int i;
i=line+(curi-3)/2;
if(curj>3)
{ if(s[i][curj-4]>160)
{gotoxy(curj-2,curi);cprintf(" ");
curj-=2;
gotoxy(curj,curi);
}
else
{
gotoxy(curj-1,curi);cprintf(" ");
curj-=1;
gotoxy(curj,curi);
}
}
else
{
if(curi>3){curi-=2;
curj=strlen(s[i-1]);
if(s[i-1][curj-4]>160)
{gotoxy(curj-1,curi);
cprintf(" ");
curj-=1;
gotoxy(curj,curi);
}
else
{
gotoxy(curj,curi);
cprintf(" ");
gotoxy(curj,curi);
}

}
}
}

void interrupt new()
{
timercount++;
if(timercount==18)
{
count++;
timercount=0;
}
old();
}

void settimer(void interrupt (*IntProc)())
{
old=getvect(0x1c);
disable();
setvect(0x1c,IntProc);
enable();
}

void kill()
{
disable();
setvect(0x1c,old);
enable();
}

搜索更多相关主题的帖子: 打字 
2005-12-31 13:34
抱着猫猫睡
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-2-22
收藏
得分:0 

请问的你中文能在程序中显示啊?怎么我这里都是乱麻呀??


2006-02-22 09:43
快速回复:帮我看一下用C忱的打字程序,还没有完成,帮我一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012154 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved