和同学一起做的程序。
程序运行部分截图:
程序代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <graphics.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
#include <mmsystem.h> /* 加载音乐需要的头文件 /
#pragma comment(lib,“winmm.lib”) / 加载音乐需要的库文件 */
HWND hWnd;
int main();
void gotoxy(int x,int y); /光标移动函数/
void welcome_1(); /* 主界面 */
int _register(); /* 用户登录 */
int welcome_2(); /* 第二个界面 */
int chinese(); /* 中文训练(包含评分功能) */
int english(); /* 英文训练 */
int game(); /* 游戏 */
int readexplation(); /* 读软件说明 */
int read_c( int x ); /* 读中文文章 */
int read_e( int x ); /* 读英文文章 */
int random_(); /* 随机训练 */
int read_txt( int x ); /* 读记录 */
int grade_(); /* 分数选择界面 */
int IndividualEnglish(); /* 自定义英文 */
int IndividualChinese(); /* 自定义中文 */
int welcome_3(); /* 自定义选项 */
int welcome_4();
int main()
{
welcome_1(); /* 主函数调用主菜单 */
}
void gotoxy(int x,int y)
{
COORD c;
c.X=x;
c.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
int welcome_4()
{
fflush( stdin ); /* 清空输入缓冲区 /
out:
MOUSEMSG m; / 定义一个鼠标变量 /
/
* cleardevice();
* initgraph(606,412);
/
loadimage( NULL, L"书.jpg" ); / 覆盖上一界面的文字 /
settextstyle( 60, 0, L"方正舒体" ); / 字体大小和样式 /
settextcolor( RGB( 24, 137, 109 ) ); / 字体颜色,可用rgb//248 57 10 /
setbkmode( TRANSPARENT ); / 透明 /
settextstyle( 20, 0, L"" ); / 字体大小和样式 /
outtextxy( 200, 20, L"1.中文自定义训练情况" ); / 定义功能位置 /
outtextxy( 200, 70, L"2.英文自定义训练情况" ); / 定义功能位置 /
outtextxy( 200, 120, L"3.返回上一级" ); / 定义功能位置 /
while ( 1 )
{
/ hWnd=GetHWnd();//让提示窗口居中 /
m = GetMouseMsg(); / 获取鼠标消息 /
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 0 && m.y <= 40 ) / 自定义中文训练情况 /
{
read_txt( 3 ); / 调用read_txt函数读取自定义中文训练记录 /
initgraph( 606, 412 ); / 重新生成窗口 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 50 && m.y <= 90 ) / 自定义英文训练情况 /
{
read_txt( 5 ); / 调用read_txt函数读取自定义中文训练记录 /
initgraph( 606, 412 ); / 重新生成窗口 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 100 && m.y <= 140 ) / 返回上一级 /
{
loadimage( NULL, L"书.jpg" ); / 重新加载书.jpg将文字覆盖 /
return(0); / 结束该函数 */
}
}
_getch();
}
int welcome_3()
{
fflush( stdin ); /* 清空输入缓冲区 /
out:
MOUSEMSG m; / 定义一个鼠标变量 /
/
* cleardevice();
* initgraph(606,412);
/
loadimage( NULL, L"书.jpg" ); / 覆盖上一界面的文字 /
settextstyle( 60, 0, L"方正舒体" ); / 字体大小和样式 /
settextcolor( RGB( 24, 137, 109 ) ); / 字体颜色,可用rgb//248 57 10 /
setbkmode( TRANSPARENT ); / 透明 /
settextstyle( 20, 0, L"" ); / 字体大小和样式 /
outtextxy( 200, 20, L"1.中文自定义" ); / 设置界面功能的位置 /
outtextxy( 200, 70, L"2.英文自定义" ); / 设置界面功能的位置 /
outtextxy( 200, 120, L"3.返回上一级" ); / 设置界面功能的位置 /
while ( 1 )
{
/ hWnd=GetHWnd();//让提示窗口居中 /
m = GetMouseMsg(); / 获取鼠标消息 */
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 0 && m.y <= 40 ) /*选择中文自定义功能 /
{
IndividualChinese(); / 调用自定义中文函数 /
initgraph( 606, 412 ); / 重新生成窗口 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 50 && m.y <= 90 ) /*选择英文自定义 /
{
IndividualEnglish(); / 自定义中文函数 /
initgraph( 606, 412 ); / 重新生成窗口 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 100 && m.y <= 140 ) / 返回上一级 /
{
loadimage( NULL, L"书.jpg" ); / 重新加载书.jpg将文字覆盖 */
return(0);
}
}
_getch();
}
int IndividualChinese() /* 中文自定义训练 /
{
closegraph(); / 关闭图形系统 /
fflush( stdin ); / 清空输入缓冲区 /
SHOWCONSOLE; / 打开控制台 */
system( “cls” );
system( “color 34” );
FILE *fp, fp2; / 定义一个文件指针fp /
char temp1[3000], a;
float Began = 0.0, End = 0.0, time, speed = 0.0, h = 0.0; / time为时间,speed为速度,h为准确率 /
int i, j, len, len1, number = 0, right = 0, choice, lenth = 0; / len,len1为字符长度,right为正确个数,number为汉字个数 /
char word[5000];
out2:
memset( word, 0, sizeof(word) ); / 初始化数组 /
memset( word, 0, sizeof(temp1) ); / 初始化数组 /
printf( “欢迎来到中文自定义,是否继续上一次的训练内容?\n\n” );
printf( “\n\n1.是\n\n2.否\n\n” );
scanf( “%d”, &choice );
fflush( stdin ); / 清空输入缓冲区 /
if ( choice == 1 )
{
system( “cls” );
fflush( stdin ); / 清空输入缓冲区 /
fp = fopen( “自定义中文.txt”, “r” ); / 文件打开 /
rewind( fp ); / 将文件的指针重新指向开头 /
lenth = fread( word, sizeof(word), 1, fp ); / 文件的读取 /
if ( lenth == 0 )
{
fclose( fp );
printf( “抱歉,无上次训练内容记录!请重新选择!” );
Sleep( 200 ); / 延迟0.2s /
system( “cls” );
goto out2;
}
printf( “\n\n%s”, word );
printf( “\n\n请开始打字(回车表示结束)\n\n” );
Began = clock(); / 开始测试时间 /
fflush( stdin ); / 清空输入缓冲区 /
gets_s( temp1 );
End = clock(); / 结束测试时间 /
}
else{
fflush( stdin ); / 清空输入缓冲区 /
fp = fopen( “自定义中文.txt”, “w” );
rewind( fp );
out3:
system( “cls” );
printf( “请输入自定义训练内容(以回车键结束):” );
gets_s( word );
len = strlen( word );
if ( len == 0 )
{
printf( “请输入有效数据!!!” );
memset( word, 0, sizeof(word) ); / 初始化数组 /
Sleep( 500 ); / 延迟0.5s /
goto out3;
}
fwrite( word, sizeof(word), 1, fp ); / 写入文件 /
out4:
printf( “\n%s”, word );
fflush( stdin ); / 清空输入缓冲区 /
printf( “\n\n请开始打字(回车表示结束)\n\n” );
Began = clock(); / 测试开始时间 /
fflush( stdin ); / 清空输入缓冲区 /
gets_s( temp1 );
End = clock(); / 测试结束时间 /
}
time = ( (End - Began) / CLOCKS_PER_SEC); / 消耗时间 /
len = strlen( temp1 );
len1 = strlen( word );
if ( len == 0 )
{
printf( “请输入有效数据!!!” );
Sleep( 500 ); / 延迟0.5s /
goto out4;
}
for ( i = 0, j = 0; i < len1, j < len; i++, j++ )
{
if ( temp1[j] == ‘.’ || temp1[j] == ‘,’ || temp1[j] == 39 || (temp1[j] <= ‘z’ && temp1[j] >= ‘a’) || (temp1[j] <= ‘Z’ && temp1[j] >= ‘A’) )
{ / 判断是否为中文字符,并判断是否为中文的标点符号和空格问题 /
i++;
number++; / 中文字符的数量 /
}
else if ( word[i] == temp1[j] )
{
if ( word[i + 1] == temp1[j + 1] )
{
right++; / 正确的中文字符数量 /
i++;
j++;
}
}
}
if ( len > len1 ) / 字符长度判断 /
{
len = len1;
printf( “\n\n您多输入的字符不计入成绩!!!\n\n” );
}
speed = ( (len - number) / 2 + number) / time; / 中文打字速度 /
h = (right * 1.0) / ( (len - number) / 2 + number); / 准确率 /
printf( “\n\n您输入的总个数为%d 正确个数为%d 准确率为%.3f% % 速度为%.3f字/s”, ( (len - number) / 2 + number), right, h * 100, speed );
fp2 = fopen( “个人中文训练成绩.txt”, “a+” );
if ( ( (len - number) / 2 + number) == 0 )
{
int a1 = 0;
float a2 = 0.0;
fprintf( fp2, “%d %f %f\n”, a1, a2, a2 );
}
else
fprintf( fp2, “%d %f %f\n”, ( (len - number) / 2 + number), h, speed ); / 写入训练成绩 /
fclose( fp );
fclose( fp2 );
printf( “\n\n请按esc键返回上一界面” );
out:
if ( kbhit() ) / 判断是否有键盘输入 /
{
a = getch();
if ( a == 27 ) / Esc的键位 /
{
system( “cls” );
Sleep( 200 ); / 延迟0.2s */
return(0);
}
else
goto out;
}
else
goto out;
}
int IndividualEnglish() /* 英文自定义训练 /
{
closegraph(); / 图形关闭系统 /
SHOWCONSOLE; / 打开控制台 /
fflush( stdin ); / 清空输入缓冲区 /
system( “cls” );
system( “color 34” );
int i, j, right = 0, lenth = 0, choice, lenth2 = 0, number = 0; / right为正确个数,lenth,lenth1为字符长度,number为训练记录次数 /
float Began = 0.0, End = 0.0, time = 0.0, speed = 0.0; / time为时间,speed为速度 */
FILE *fp, fp2;
char word[5000], temp1[5000], a;
out2:
memset( word, 0, sizeof(word) ); / 初始化数组 /
memset( word, 0, sizeof(temp1) ); / 初始化数组 /
printf( “欢迎来到英文自定义,是否继续上一次的训练内容?\n\n” );
printf( “\n\n1.是\n\n2.否\n\n” );
scanf( “%d”, &choice );
fflush( stdin ); / 清空输入缓冲区 /
if ( choice == 1 )
{
system( “cls” );
fflush( stdin ); / 清空输入缓冲区 /
fp = fopen( “自定义英文.txt”, “a+” );
rewind( fp );
number = fread( word, sizeof(word), 1, fp );
if ( number == 0 ) / 判断是否有训练记录 /
{
fclose( fp );
printf( “抱歉,无上次训练内容记录!请重新选择!” );
Sleep( 200 ); / 延迟0.2s /
system( “cls” );
goto out2;
}
printf( “\n\n%s”, word );
printf( “\n\n请开始打字(回车表示结束)\n\n” );
Began = clock(); / 测试开始时间 /
fflush( stdin ); / 清空输入缓冲区 /
gets_s( temp1 );
End = clock(); / 测试结束时间 /
}
else{
fp = fopen( “自定义英文.txt”, “w” );
rewind( fp );
out3:
system( “cls” );
printf( “请输入自定义训练内容(以回车键结束):” );
fflush( stdin ); / 清空输入缓冲区 /
gets_s( word );
lenth = strlen( word );
if ( lenth == 0 )
{
printf( “请输入有效数据!!!” );
Sleep( 500 ); / 延迟0.5s /
goto out3;
}
printf( “\n\n%s”, word );
fflush( stdin ); / 清空输入缓冲区 /
fwrite( word, sizeof(word), 1, fp );
out4:
printf( “\n\n请开始打字(回车表示结束)\n\n” );
Began = clock(); / 测试开始时间 /
fflush( stdin );
gets_s( temp1 );
End = clock(); / 测试结束时间 /
}
time = ( (End - Began) / CLOCKS_PER_SEC); / 消耗时间 /
lenth = strlen( temp1 ); / 数组名为temp1的字符长度 /
lenth2 = strlen( word ); / 数组名为word的字符长度 /
if ( lenth == 0 )
{
printf( “请输入有效数据!!!” );
Sleep( 500 ); / 延迟0.5s /
goto out4;
}
if ( lenth > lenth2 ) / 判断两个数组字符长度 /
{
lenth = lenth2;
printf( “\n\n您多输入的字符不计入成绩!!!\n\n” );
}
for ( i = 0; i < lenth; i++ )
{
if ( word[i] == temp1[i] )
right++; / 英文字符正确的数量 /
}
float h = right / (lenth * 1.0); / 准确率 /
speed = lenth / (time * 1.0); / 速度 /
printf( “\n\n您的打字总个数为%d 正确个数为%d 准确率为:%.3f%% 打字速度为:%.3f字/s”, lenth, right, h * 100, speed );
fp2 = fopen( “个人英文训练成绩.txt”, “a+” );
if ( lenth == 0 ) / 长度为0 /
{
int b = 0;
float d = 0.0;
fprintf( fp2, “%d %f %f\n”, b, d, d ); / 写入成绩 /
}
else
fprintf( fp2, “%d %f %f\n”, lenth, h, speed ); / 写入成绩 /
fclose( fp2 );
fclose( fp );
printf( “\n\n请按esc键返回上一界面” );
out:
if ( kbhit() ) / 是否有键盘输入 /
{
a = getch();
if ( a == 27 ) / Esc的键位 /
{
system( “cls” );
Sleep( 200 ); / 延迟0.2s */
return(0);
}
else
goto out;
}
else
goto out;
}
int grade_()
{
fflush( stdin ); /* 清空输入缓冲区 /
out:
MOUSEMSG m; / 定义一个鼠标变量 /
loadimage( NULL, L"书.jpg" ); / 覆盖上一界面的文字 /
settextstyle( 60, 0, L"方正舒体" ); / 字体大小和样式 /
settextcolor( RGB( 24, 137, 109 ) ); / 字体颜色,可用rgb//248 57 10 /
setbkmode( TRANSPARENT ); / 透明 /
settextstyle( 20, 0, L"" ); / 字体大小和样式 /
outtextxy( 200, 20, L"1.中文训练情况" ); / 定义菜单功能的位置 /
outtextxy( 200, 70, L"2.英文训练情况" ); / 定义菜单功能的位置 /
outtextxy( 200, 120, L"3.用户自定义训练情况" ); / 定义菜单功能的位置 /
outtextxy( 200, 170, L"4.随机字符训练情况" ); / 定义菜单功能的位置 /
outtextxy( 200, 220, L"5.趣味游戏得分情况" ); / 定义菜单功能的位置 /
outtextxy( 200, 270, L"6.返回上一级" ); / 定义菜单功能的位置 */
while ( 1 )
{
m = GetMouseMsg();
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 0 && m.y <= 40 ) /*选择中文训练情况自定义功能 /
{
read_txt( 1 ); / 调用读记录函数 /
initgraph( 606, 412 ); / 重新生成窗口 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 50 && m.y <= 90 ) / 选择英文训练情况自定义功能 /
{
read_txt( 2 ); / 调用读记录函数 /
initgraph( 606, 412 ); / 重新生成窗口 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 100 && m.y <= 140 ) /*选择用户自定义训练情况自定义功能 /
{
welcome_4(); / 调用菜单函数 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 50 && m.y <= 190 ) /*选择随机字符训练情况自定义训练 /
{
read_txt( 4 ); / 调用读记录函数 /
initgraph( 606, 412 ); / 重新生成窗口 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 200 && m.y <= 240 ) /*选择趣味游戏得分情况自定义训练 /
{
read_txt( 6 ); / 调用读记录函数 /
initgraph( 606, 412 ); / 重新生成窗口 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 250 && m.y <= 290 ) / 返回上一级 /
{
loadimage( NULL, L"书.jpg" ); / 重新加载书的图形界面覆盖文字 */
return(0);
}
}
_getch();
}
int read_txt( int x ) /* 中文训练成绩 英文训练成绩 个人训练成绩 随机训练成绩 游戏分数 /
{
closegraph(); / 关闭图形界面 /
fflush( stdin ); / 清空输入缓冲区· /
system( “cls” );
system( “color 34” );
SHOWCONSOLE; / 打开控制台 /
FILE * fp;
float a, b;
int i = 1, grade, h;
char g;
if ( x == 1 )
fp = fopen( “中文训练成绩.txt”, “r” );
else if ( x == 2 )
fp = fopen( “英文训练成绩.txt”, “r” );
else if ( x == 3 )
fp = fopen( “个人中文训练成绩.txt”, “r” );
else if ( x == 4 )
fp = fopen( “随机训练成绩.txt”, “r” );
else if ( x == 5 )
fp = fopen( “个人英文训练成绩.txt”, “r” );
else
fp = fopen( “游戏训练分数.txt”, “r” );
while ( x <= 5 )
{
while ( fscanf( fp, “%d %f %f”, &h, &a, &b ) != EOF ) / 成功读取字符 /
{
printf( “第%d次的训练中,您输入了%d字,您的准确率为%.3f%%,速度为%.3f字/s\n”, i, h, a * 100, b );
i++;
}
if ( i == 1 )
printf( “暂无训练数据,请快去训练吧!” );
fclose( fp );
break;
}
while ( x >= 6 )
{
while ( fscanf( fp, “%d”, &grade ) != EOF ) / 成功读取字符 /
{
printf( “第%d次的游戏中,您的得分为%d\n”, i, grade );
i++; / 游戏次数 /
}
if ( i == 1 )
printf( “暂无游戏数据,请快去玩游戏吧!” );
fclose( fp );
break;
}
printf( “\n请按esc键盘返回上一级!” );
out:
if ( kbhit() ) / 是否有键盘输入 /
{
g = getch();
if ( g == 27 ) / Esc键位为27 /
{
system( “cls” );
Sleep( 200 ); / 延迟0.2s */
return(0);
}
else
goto out;
}
else
goto out;
}
int random_()
{
closegraph(); /* 图形关闭界面 /
SHOWCONSOLE; / 打开控制台 /
fflush( stdin ); / 清空输入缓冲区 /
system( “color 34” );
system( “cls” );
srand( (unsigned) time( NULL ) ); / 随机数定义 /
int i, j, right = 0, number = 0, lenth, number2 = 0, rands; / rands为产生的随机数 /
float Began = 0.0, End = 0.0, time, speed;;
char temp[3000], temp1[3000], a;
char b = ‘a’;
FILE * fp;
memset( temp, 0, sizeof(temp) ); / 初始化数组 /
memset( temp, 0, sizeof(temp1) );
printf( “请输入需要产生的随机字符个数,注意请不要输入与中文相关的字符,否则将会导致准确率和速度的计算出错!!!:” );
scanf( “%d”, &number2 );
for ( i = 0; i < number2; i++ )
{
rands = rand() % 26; / 产生在0~26的随机数 /
for ( j = 0; j < rands; j++ )
{
b++;
}
printf( “%c”, b );
temp[i] = b;
b = ‘a’; / 转化为随机产生的英文字符 /
}
printf( “\n\n计时开始请输入!\n\n” );
fflush( stdin ); / 清空输入缓冲区 /
Began = clock(); / 测试开始时间 /
gets_s( temp1 );
End = clock(); / 测试结束时间 /
time = ( (End - Began) / CLOCKS_PER_SEC); / 测试总时间 /
lenth = strlen( temp1 );
for ( i = 0; i < lenth; i++ )
{
if ( temp[i] == temp1[i] )
right++; / 正确的英文字符数 /
}
if ( lenth == 0 )
{
int a1 = 0;
float a2 = 0.0;
printf( “\n\n您的打字总个数为0 正确个数为0 准确率为: 0.000%% 打字速度为:0.000字/s” );
fp = fopen( “随机训练成绩.txt”, “a+” );
fprintf( fp, “%d %f %f\n”, a1, a2, a2 ); / 写入成绩 /
}
else {
float sum = right / (lenth * 1.0); / 准确率 /
speed = lenth / (time * 1.0); / 速度 /
printf( “\n\n您的打字总个数为%d 正确个数为%d 准确率为:%.3f%% 打字速度为:%.3f字/s”, lenth, right, sum * 100, speed );
fp = fopen( “随机训练成绩.txt”, “a+” );
fprintf( fp, “%d %f %f\n”, lenth, sum, speed ); / 写入成绩 /
}
fclose( fp );
printf( “\n\n请按esc键返回上一界面” );
out:
if ( kbhit() ) / 是否有按键按下 /
{
a = getch();
if ( a == 27 ) / Esc的键位是27 /
{
system( “cls” );
Sleep( 200 ); / 延迟0.2s */
return(0);
}
else
goto out;
}
else
goto out;
}
int read_e( int x )
{
fflush( stdin ); /* 清空输入缓冲区 /
closegraph(); / 关闭图形界面 /
SHOWCONSOLE; / 打开控制台 */
system( “cls” );
system( “color 34” );
int i, j, right = 0, number = 0, lenth;
float Began = 0.0, End = 0.0, time, speed;;
FILE * fp, * fp2;
if ( x == 1 ) /*选择打开地书籍 /
fp = fopen( “如果你害怕,那说明你不傻.txt”, “r” );
else if ( x == 2 )
fp = fopen( “最大的智慧,是保持冷静.txt”, “r” );
else if ( x == 3 )
fp = fopen( “让自己变成乘数.txt”, “r” );
else if ( x == 4 )
fp = fopen( “你唯一该抱怨的是不够努力的自己.txt”, “r” );
else if ( x == 5 )
fp = fopen( “未来是张白纸,由你自己来画就.txt”, “r” );
else
fp = fopen( “这一天,什么也没发生.txt”, “r” );
char temp[3000], temp1[3000], temp3[3000], a;
memset( temp, 0, sizeof(temp) ); / 初始化数组 /
memset( temp, 0, sizeof(temp1) ); / 初始化数组 /
fgets( temp, 4000, fp );
printf( “%s”, temp );
printf( “\n\n计时开始请输入!\n\n” );
Began = clock(); / 测试开始时间 /
gets_s( temp1 ); / 用户 /
End = clock(); / 测试结束时间 /
time = ( (End - Began) / CLOCKS_PER_SEC); / 测试总时间 */
lenth = strlen( temp1 );
for ( i = 0; i < lenth; i++ )
{
if ( temp[i] == temp1[i] )
right++; /* 正确的英文字符数 */
}
if ( lenth == 0 )
{
int a1 = 0;
float a2 = 0.0;
printf( "\n\n您的打字总个数为0 正确个数为0 准确率为: 0.000%% 打字速度为:0.000字/s" );
fp2 = fopen( "英文训练成绩.txt", "a+" );
fprintf( fp2, "%d %f %f\n", a1, a2, a2 ); /* 写入成绩 */
}else {
float sum = right / (lenth * 1.0); /* 准确率 */
speed = lenth / (time * 1.0); /* 速度 */
printf( "\n\n您的打字总个数为%d 正确个数为%d 准确率为:%.3f%% 打字速度为:%.3f字/s", lenth, right, sum * 100, speed );
fp2 = fopen( "英文训练成绩.txt", "a+" );
fprintf( fp2, "%d %f %f\n", lenth, sum, speed ); /* 写入成绩 */
}
fclose( fp );
fclose( fp2 );
printf( "\n\n请按esc键返回上一界面" );
out:
if ( kbhit() ) /* 是否有按键按下 /
{
a = getch();
if ( a == 27 ) / Esc的键位是27 */
{
system( “cls” );
Sleep( 200 );
return(0);
}
else
goto out;
}
else
goto out;
}
int read_c( int x ) /* x=1表示读第几篇 /
{
closegraph(); / 关闭图形界面 /
SHOWCONSOLE; / 打开控制台 /
fflush( stdin ); / 清空输入缓冲区 */
system( “cls” );
system( “color 34” );
int i, j, right = 0, number = 0;
float Began = 0.0, End = 0.0, speed, time;
FILE * fp, * fp2;
if ( x == 1 ) /*选择打开地书籍 /
fp = fopen( “蜀道难.txt”, “r” );
else if ( x == 2 )
fp = fopen( “茅屋为秋风所破歌.txt”, “r” );
else if ( x == 3 )
fp = fopen( “水调歌头.txt”, “r” );
else if ( x == 4 )
fp = fopen( “将进酒.txt”, “r” );
else if ( x == 5 )
fp = fopen( “琵琶行.txt”, “r” );
else
fp = fopen( “桃花源记.txt”, “r” );
char temp[3000], temp1[3000], a;
memset( temp, 0, sizeof(temp) ); / 初始化数组 /
memset( temp, 0, sizeof(temp1) ); / 初始化数组 /
fgets( temp, 3000, fp );
printf( “%s”, temp );
printf( “\n\n计时开始请输入!\n\n” );
Began = clock(); / 测试开始时间 /
/ scanf("%s", temp1); /
gets_s( temp1 );
End = clock(); / 测试结束时间 /
time = ( (End - Began) / CLOCKS_PER_SEC); / 测试总时间 /
int len = strlen( temp1 ), len1 = strlen( temp );
for ( i = 0, j = 0; i < len1, j < len; i++, j++ )
{
if ( temp1[j] == ‘.’ || temp1[j] == ‘,’ || temp1[j] == 39 || temp1[j] == 32 || (temp1[j] <= ‘z’ && temp1[j] >= ‘a’) || (temp1[j] <= ‘Z’ && temp1[j] >= ‘A’) )
{ / 判断是否为中文字符,并且判断是否为中文标点符号和空格 /
i++;
number++; / 中文字符的个数 /
}
else if ( temp[i] == temp1[j] )
{
if ( temp[i + 1] == temp1[j + 1] )
{
right++; / 正确的中文字符 /
i++;
j++;
}
}
}
if ( ( (len - number) / 2 + number) == 0 ) / 用户打字个数为0 /
{
int a1 = 0;
float a2 = 0.0;
printf( “您的打字总个数为0 正确个数为0 准确率:0.000%% 打字速度为:0.000字/s” );
fp2 = fopen( “中文训练成绩.txt”, “a+” );
fprintf( fp2, “%d %f %f\n”, a1, a2, a2 ); / 写入成绩 /
}
else {
speed = ( (len - number) / 2 + number) / time; / 速度 /
float sum = (right * 1.0) / ( (len - number) / 2 + number); / 准确率 /
printf( “您的打字总个数为%d 正确个数为%d 准确率:%.3f%% 打字速度为:%.3f字/s”, (len - number) / 2 + number, right, sum * 100, speed );
fp2 = fopen( “中文训练成绩.txt”, “a+” );
fprintf( fp2, “%d %f %f\n”, ( (len - number) / 2 + number), sum, speed ); / 写入成绩 /
}
fclose( fp );
fclose( fp2 );
printf( “\n\n请按esc键返回上一界面” );
out:
if ( kbhit() ) / 是否有键盘按下· /
{
a = getch();
if ( a == 27 ) / Esc的键位是27 /
{
system( “cls” );
Sleep( 200 ); / 延迟0.2s */
return(0);
}
else
goto out;
}
else
goto out;
}
int readexplation()
{
closegraph(); /* 图形关闭界面 /
SHOWCONSOLE; / 打开控制台 /
fflush( stdin ); / 清空输入缓冲区 /
system( “cls” );
system( “color 34” );
FILE * fp;
char temp[3000], a;
fp = fopen( “软件使用说明.txt”, “r” );
while ( fscanf( fp, “%s”, temp ) != EOF ) / 成功读取字符 /
printf( “%s\n”, temp );
while ( 1 )
{
if ( kbhit() ) / 是否有键盘按下 /
{
a = getch();
if ( a == 27 ) / Esc的键位是27 */
break;
else
continue;
}
}
fclose( fp );
return(0);
}
int game()
{
fflush( stdin ); /* 清空输入缓冲区 /
srand( (unsigned) time( NULL ) ); / 定义随机数 /
int j = 0, number = 0; / number表示击中个数,每个字符得三分 /
int num = 0, num2, num3, i, n, blood = 50, number2 = 0; / 用于设置 /
char a = ‘a’, b;
TCHAR s[5], s2[5]; / 一种字符类型 /
FILE * fp;
fp = fopen( “游戏训练分数.txt”, “a+” );
/
* initgraph(606, 412);
* cleardevice();
/
loadimage( NULL, L"海.jpg" );
settextstyle( 30, 0, L"宋体" ); / 字体大小和样式 /
settextcolor( RGB( 24, 137, 109 ) ); / 字体颜色,可用rgb//248 57 10 /
setbkmode( TRANSPARENT ); / 透明 /
settextstyle( 30, 0, L"" ); / 字体大小和样式 /
/ outtextxy(235,120, L"1.用户登陆");// /
while ( 1 )
{
setbkmode( TRANSPARENT ); / 透明 /
a = rand() % 26 + 65; / 用于生成的 A~Z的 ASCII码 /
n = rand() % 590 + 3; / 随机掉落的x轴坐标 */
for ( i = 0; i < 412; i = i + 4 )
{
if ( kbhit() ) /*有键盘按下 */
{
b = getch();
if ( b == a )
{
number++;
break;
}
else if ( b == 27 ) /*按下esc键 /
{
fprintf( fp, “%d\n”, number * 3 );
fflush( stdin ); / 清空缓冲区 */
fclose( fp );
return(0); /*程序结束 /
}
else {
blood–; / 血条减少 /
_stprintf( s, _T( “%d” ), blood );
if ( blood <= 0 ) / 血条小于等于0 /
{
fprintf( fp, “%d\n”, number * 3 );
fclose( fp );
loadimage( NULL, L"游戏结束.jpg" );
Sleep( 2000 );
/ closegraph(); /
fflush( stdin ); / 清空缓冲区 */
return(0);
}
continue;
} /*按错血量减一 /
}
setbkmode( TRANSPARENT ); / 透明 /
settextstyle( 15, 0, L"" ); / 设置字体 大小和样式 /
settextcolor( RED );
/ outtextxy(10, 60, s); /
outtextxy( 0, 0, s ); / /
settextstyle( 30, 0, L"" );
num = rand() % 256 + 1; / 随机产生颜色的编号,+1是为了不产生黑色 /
num2 = rand() % 256 + 1; / 随机产生颜色的编号,+1是为了不产生黑色 /
num3 = rand() % 256 + 1; / 随机产生颜色的编号,+1是为了不产生黑色 /
settextcolor( RGB( num, num2, num3 ) ); / 设置颜色 /
outtextxy( n, i, a );
setlinecolor( RGB( num, num2, num3 ) ); / 设置颜色 /
circle( n, i + 20, 20 ); / 画圆 /
if ( number <= 15 ) / 击中字母个数小于等于15 */
Sleep( 20 ); /*下降速度 /
if ( number <= 25 ) / 击中字母个数小于等于25 */
Sleep( 15 ); /*下降速度 /
if ( number <= 35 ) / 击中字母个数小于等于35 */
Sleep( 10 ); /*下降速度 /
if ( number <= 45 ) / 击中字母个数小于等于45 */
Sleep( 5 ); /*下降速度 /
loadimage( NULL, L"海.jpg" );
if ( i >= 402 ) / 最大右边界设定为402 /
{
blood–; / 血条减少 /
_stprintf( s, _T( “%d” ), blood ); / 将blood的数值转化为 TCGAR类型并存在这个数组里 /
if ( blood <= 0 )
{
fprintf( fp, “%d\n”, number * 3 );
fclose( fp );
loadimage( NULL, L"游戏结束.jpg" ); / 游戏结束的图片覆盖游戏 /
Sleep( 2000 );
fflush( stdin ); / 清空输入缓冲区 /
/ closegraph(); */
return(0);
}
break;
}
}
loadimage( NULL, L"海.jpg" );
}
}
int welcome_2() /* 第二个界面 /
{
fflush( stdin ); / 清空输入缓冲区 /
out2:
MOUSEMSG m; / 定义一个鼠标变量 /
initgraph( 606, 412 );
out:
/ cleardevice(); /
loadimage( NULL, L"书.jpg" );
settextstyle( 60, 0, L"宋体" ); / 字体大小和样式 /
settextcolor( RGB( 24, 137, 109 ) ); / 字体颜色,可用rgb//248 57 10 /
setbkmode( TRANSPARENT ); / 透明 /
/ outtextxy(220,50,L"打 字 系 统");// /
settextstyle( 20, 0, L"" ); / 字体大小和样式 /
outtextxy( 200, 20, L"1.中文录入训练" ); / 设置界面功能位置 /
outtextxy( 200, 70, L"2.英文录入训练" ); / 设置界面功能位置 /
outtextxy( 200, 120, L"3.用户自定义训练" ); / 设置界面功能位置 /
outtextxy( 200, 170, L"4.字符随机训练" ); / 设置界面功能位置 /
outtextxy( 200, 220, L"5.趣味游戏" ); / 设置界面功能位置 /
outtextxy( 200, 270, L"6.历史得分" ); / 设置界面功能位置 /
outtextxy( 200, 320, L"7.返回上一级" ); / 设置界面功能位置 /
while ( 1 )
{
m = GetMouseMsg();
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 0 && m.y <= 40 ) / 中文训练 /
{
chinese(); / 调用中文录入函数 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 50 && m.y <= 90 ) / 英文训练 /
{
english(); / 调用英文录入函数 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 100 && m.y <= 140 ) / 用户自定义 /
{
welcome_3(); / 调用界面函数 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 150 && m.y <= 190 ) / 字符随机训练 /
{
random_(); / 调用随机训练函数 /
goto out2;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 200 && m.y <= 240 ) / 趣味游戏 /
{
game(); / 调用游戏函数 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 250 && m.y <= 290 ) / 历史得分 /
{
grade_(); / 调用分数函数 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 300 && m.y <= 340 ) / 返回上一级 /
{
return(0); / 返回上一级 */
}
}
_getch();
}
int english()
{
fflush( stdin ); /* 清空缓冲区 /
out:
MOUSEMSG m; / 定义一个鼠标变量 /
/
* cleardevice();
* initgraph(606,412);
/
loadimage( NULL, L"书.jpg" ); / 覆盖上一界面的文字 /
settextstyle( 60, 0, L"方正舒体" ); / 字体大小和样式 /
settextcolor( RGB( 24, 137, 109 ) ); / 字体颜色,可用rgb//248 57 10 /
setbkmode( TRANSPARENT ); / 透明 /
settextstyle( 20, 0, L"" ); / 字体大小和样式 /
outtextxy( 200, 20, L"1.如果你害怕,那说明你不傻" ); / 设置文章的位置 /
outtextxy( 200, 70, L"2.最大的智慧,是保持冷静" );
outtextxy( 200, 120, L"3.让自己变成乘数" );
outtextxy( 200, 170, L"4.你唯一该抱怨的是不够努力的自己" );
outtextxy( 200, 220, L"5.未来是张白纸,由你自己来画就" );
outtextxy( 200, 270, L"6.这一天,什么也没发生" );
outtextxy( 200, 320, L"7.返回上一级" );
while ( 1 )
{
/ hWnd=GetHWnd();//让提示窗口居中 /
m = GetMouseMsg(); / 获得鼠标消息 */
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 0 && m.y <= 40 ) /*选择第一篇文章 /
{
read_e( 1 ); / 调用读英文文章函数 /
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 50 && m.y <= 90 ) /*选择第二篇文章 /
{
read_e( 2 );
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 100 && m.y <= 140 ) /*选择第三篇文章 /
{
read_e( 3 );
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 50 && m.y <= 190 ) /*选择第四篇文章 /
{
read_e( 4 );
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 200 && m.y <= 240 ) /*选择第五篇文章 /
{
read_e( 5 );
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 250 && m.y <= 290 ) /*选择第六篇文章 /
{
read_e( 6 );
initgraph( 606, 412 ); / 初始化图形界面 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 300 && m.y <= 340 ) / 返回上一级 /
{
loadimage( NULL, L"书.jpg" ); / 用书的图片覆盖文章 */
return(0);
}
}
_getch();
}
int chinese()
{
fflush( stdin ); /* 清空缓冲区 /
out:
MOUSEMSG m; / 定义鼠标变量 /
/
- cleardevice();
- initgraph(606,412);
/
loadimage( NULL, L"书.jpg" ); / 覆盖上一界面的文字 /
settextstyle( 60, 0, L"方正舒体" ); / 字体大小和样式 /
settextcolor( RGB( 24, 137, 109 ) ); / 字体颜色,可用rgb//248 57 10 /
setbkmode( TRANSPARENT ); / 透明 /
settextstyle( 20, 0, L"" ); / 字体大小和样式 /
outtextxy( 200, 20, L"1.蜀道难" ); / 设置中文文章内容 /
outtextxy( 200, 70, L"2.茅屋为秋风所破歌" ); / 设置中文文章内容 /
outtextxy( 200, 120, L"3.水调歌头" ); / 设置中文文章内容 /
outtextxy( 200, 170, L"4.将进酒" ); / 设置中文文章内容 /
outtextxy( 200, 220, L"5.琵琶行" ); / 设置中文文章内容 /
outtextxy( 200, 270, L"6.桃花源记" ); / 设置中文文章内容 /
outtextxy( 200, 320, L"7.返回上一级" ); / 设置中文文章内容 /
while ( 1 )
{
/ hWnd=GetHWnd();//让提示窗口居中 */
m = GetMouseMsg();
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 0 && m.y <= 40 ) /*选择蜀道难 /
{
read_c( 1 ); / 调用读中文文章函数 /
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 50 && m.y <= 90 ) /*选择茅屋为秋风所破歌 /
{
read_c( 2 );
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 190 && m.y >= 100 && m.y <= 140 ) /*选择水调歌头 /
{
read_c( 3 );
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 50 && m.y <= 190 ) /*选择将进酒 /
{
read_c( 4 );
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 200 && m.y <= 240 ) /*选择琵琶行 /
{
read_c( 5 );
initgraph( 606, 412 ); / 初始化图形界面 */
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 250 && m.y <= 290 ) /*选择桃花源记 /
{
read_c( 6 );
initgraph( 606, 412 ); / 初始化图形界面 /
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 150 && m.y >= 300 && m.y <= 340 ) / 返回上一级 /
{
loadimage( NULL, L"书.jpg" ); / 用书的图片覆盖文章 */
return(0);
}
}
_getch();
}
int _register() /* 用户登录 /
{
fflush( stdin ); / 清空缓冲区· /
SHOWCONSOLE; / 打开控制台 /
fflush( stdin ); / 清空输入缓冲区 */
system( “cls” );
system( “color 34” );
FILE fp, fp2;
fp = fopen( “账号.txt”, “r” );
fp2 = fopen( “密码.txt”, “r” );
rewind( fp );
rewind( fp2 );
if ( fp == NULL || fp2 == NULL )
{
printf( “文件打开失败” );
return(0);
}
char id2[30] = { “\0” }, password2[30] = { “\0” }; / 文件端 /
char a;
fscanf( fp, “%s”, id2 ); / 读入id /
fscanf( fp2, “%s”, password2 ); / 读入密码 /
out:
/
* rewind(fp);
* rewind(fp2);
/
int i = 0;
char id[30] = { “\0” }, password[30] = { “\0” }; / 用户端 /
system( “cls” );
gotoxy(30,5);
printf( “1.请输入账号:” );
scanf( “%s” , id );
fflush( stdin );
gotoxy( 30 , 10 );
printf( “2.请输入密码:” );
out2:
while ( 1 ) / esc按键返回值是27 /
{
a = getch();
if ( a != 27 && a != ‘\r’ && a != 8 ) / 用户没有按下esc键 /
{
printf( "" ); / 加密 /
password[i] = a;
i++;
}else if ( a == ‘\r’ ) / 用户按下回车键 /
{
fclose( fp );
fclose( fp2 );
break;
}
else if ( a == 8 ) / 用户按下退格键 /
{
if ( i == 0 )
goto out2;
printf( “\b \b” ); / 覆盖上一个字符 */
i -= 1;
}
else
{
fclose( fp );
fclose( fp2 );
return(0);
}
}
if ( strcmp( id, id2 ) != 0 && strcmp( password, password2 ) == 0 ) /* 判断账号是否输入正确 */
{
printf( "\n\n账号错误!请重新输入!" );
Sleep( 1000 ); /* 延迟1s */
goto out;
}
else if ( strcmp( id, id2 ) == 0 && strcmp( password, password2 ) != 0 ) /* 判断密码是否输入正确 */
{
printf( "\n\n密码错误!请重新输入!" );
Sleep( 1000 ); /* 延迟1s */
goto out;
}
else if ( strcmp( id, id2 ) != 0 && strcmp( password, password2 ) != 0 ) /* 判断账号密码是否输入错误 */
{
printf( "\n\n账号和密码错误!请重新输入!" );
Sleep( 1000 ); /* 延迟1s */
goto out;
}
else {
printf( "\n\n正在进入,请稍候...\n" );
Sleep( 2000 ); /* 延迟2s */
fclose( fp );
fclose( fp2 );
/*
* system("功能选择界面.exe");//进入下一功能
* return 0;
*/
welcome_2(); /* 调用菜单函数 */
return(0); /* 用户选择返回上一级 */
}
}
void welcome_1() /* 主界面 /
{
fflush( stdin ); / 清空缓冲区 /
char temp[100];
int num = 0, choice; / 用于设置 /
MOUSEMSG m; / 定义一个鼠标变量 /
initgraph( 606, 412 ); / 初始化图形界面 /
out:
cleardevice();
loadimage( NULL, L"星空.jpg" );
settextstyle( 30, 0, L"宋体" ); / 字体大小和样式 /
settextcolor( RGB( 24, 137, 109 ) ); / 字体颜色,可用rgb//248 57 10 /
setbkmode( TRANSPARENT ); / 透明 /
outtextxy( 220, 50, L"打 字 系 统" ); / /
settextstyle( 30, 0, L"" ); / 字体大小和样式 /
outtextxy( 235, 120, L"1.用户登陆" ); / 设置功能选择的位置 /
outtextxy( 235, 160, L"2.背景音选择" ); / 设置功能选择的位置 /
outtextxy( 235, 200, L"3.设置" ); / 设置功能选择的位置 /
outtextxy( 235, 240, L"4.软件使用说明" ); / 设置功能选择的位置 /
outtextxy( 235, 280, L"5.退出程序" ); / 设置功能选择的位置 /
while ( 1 )
{
hWnd = GetHWnd(); / 让提示窗口居中 /
m = GetMouseMsg(); / 获取鼠标信息 /
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 235 && m.y >= 115 && m.y < 155 )
{
closegraph(); / 关闭图形界面 /
_register(); / 调用用户登录函数 /
/
* system(“登录.exe”);
* system(“C:\Users\d311\Desktop\新建文件夹\读.exe”);
/
system( “cls” );
/ system(“taskkill -f -im 登录.exe”);//关闭该程序 */
main();
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 230 && m.y >= 155 && m.y <= 190 && num == 0 ) /*选择歌曲 /
{
cleardevice(); / 清除上一界面的图片和文字 /
loadimage( NULL, L"海.jpg" ); / 用海的图片覆盖界面 /
outtextxy( 0, 0, L"1.有何不可" ); / 设置歌曲选择位置 /
outtextxy( 0, 70, L"2.后来" ); / 设置歌曲选择位置 /
outtextxy( 0, 140, L"3.二十四桥枫别雨" ); / 设置歌曲选择位置 /
outtextxy( 0, 210, L"4.克罗地亚狂想曲" ); / 设置歌曲选择位置 */
out1:
m = GetMouseMsg();
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 0 && m.y >= 0 && m.y <= 45 && num == 0 ) /*选择歌曲“有何不可” /
{
mciSendString( L"close a", 0, 0, 0 ); / 关闭a音乐 /
mciSendString( L"open 有何不可.mp3 alias a", 0, 0, 0 ); / 打开歌曲并命名为a /
mciSendString( L"play a repeat", 0, 0, 0 ); / 循环播放至程序退出 */
num++;
goto out;
}
else if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 0 && m.y > 60 && m.y <= 110 && num == 0 ) /*选择歌曲“后来” /
{
mciSendString( L"close a", 0, 0, 0 ); / 关闭a音乐 /
mciSendString( L"open 后来.mp3 alias a", 0, 0, 0 ); / 打开歌曲并命名为a /
mciSendString( L"play a repeat", 0, 0, 0 ); / 循环播放至程序退出 */
num++;
goto out;
}
else if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 0 && m.y >= 125 & m.y <= 180 && num == 0 ) /*选择歌曲“二十四桥枫别雨” /
{
mciSendString( L"close a", 0, 0, 0 ); / 关闭a音乐 /
mciSendString( L"open 二十四桥枫别雨.mp3 alias a", 0, 0, 0 ); / 打开歌曲并命名为a /
mciSendString( L"play a repeat", 0, 0, 0 ); / 循环播放至程序退出 */
num++;
goto out;
}
else if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 0 && m.y >= 190 & m.y <= 250 && num == 0 ) /*选择歌曲“克罗地亚狂想曲 ” /
{
mciSendString( L"close a", 0, 0, 0 ); / 关闭a音乐 /
mciSendString( L"open 克罗地亚狂想曲.mp3 alias a", 0, 0, 0 ); / 打开歌曲并命名为a /
mciSendString( L"play a repeat", 0, 0, 0 ); / 循环播放至程序退出 /
num++;
goto out;
}
else
goto out1;
}
if ( (m.uMsg == WM_LBUTTONDOWN && m.x >= 230 && m.y >= 195 && m.y <= 235 && num == 1) || (m.uMsg == WM_LBUTTONDOWN && m.x >= 230 && m.y >= 195 && m.y <= 235 && num == 0) ) / 关闭歌曲,只能调用一次 /
{
MessageBox( hWnd, L"是否关闭音乐", L"设置提示", MB_YESNO );
if ( MessageBox( hWnd, L"是否关闭音乐", L"设置提示", MB_YESNO ) == IDYES )
{
num++;
mciSendString( L"close a", 0, 0, 0 ); / 关闭音乐 /
goto out;
}
else
goto out;
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 230 && m.y > 235 && m.y <= 275 ) / 软件使用说明 /
{
readexplation();
welcome_1();
}
if ( m.uMsg == WM_LBUTTONDOWN && m.x >= 230 && m.y > 275 && m.y <= 315 ) / 退出程序 */
{
Sleep( 800 );
exit( 0 );
}
}
_getch();
}
由于没怎么写过博客,所以不知道怎么上传软件需要的文档。。。。。有问题就问吧。。