本来是在网上百度怎么实现运行程序变颜色,然后一位大佬给了一段他写的程序代码,我敲了敲,发现挺容易理解的,就写为博客记录一下吧。
改天用文件指针实现心理测试,而不是用数组存,老师说用数组显得不专业。。。。。但是真的很方便啊!
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define N 10
#define M 2.5//控制记忆幻灯片的闪动时间:单位/s
int menu1()//自定义主菜单函数
{
int n;
printf("
测试主题
");
printf(" 【注:本测试纯属娱乐】
");
printf("
主菜单
");
printf(" 1.记忆测试
");
printf(" 2.心理测试
");
printf(" 0.退出测试
");
printf("
请选择:_");
scanf("%d",&n);
return n;
}
int da()
{
int m;
printf(" 0:没有,1:偶尔有,2:有时有,3:经常有,4:总是有 请选择:_");
scanf("%d",&m);
if( m==1||m==0||m==2||m==3||m==4)
return m;
else
{
printf("
您的输入有误,请重新输入
");
da();
}
}
void jycs()
{
int k,a[10],b[10],s=0,n;
srand(time(NULL));
printf("
子菜单<记忆测试>
");
printf(" 1.开始测试
");
printf(" 0.回主菜单
");
printf("
请选择:_");
scanf("%d",&n);
while( n> 1)
{
printf("
您的输入有误,请重新输入");
scanf("%d",&n);
}
system("cls");
while(n!=0)
{
for(k = 0;k < 10; k ++)
a[k] = rand()%10;
printf("
【请牢记您看到颜色的顺序】
");
printf("
【一共有十个颜色变化】
");
long time;
for( k = 0; k <10; k ++)
{
switch (a[k])
{
case 0:system("color 90");break;
case 1:system("color f0");break;
case 2:system("color c0");break;
case 3:system("color d0");break;
case 4:system("color 80");break;
case 5:system("color e0");break;
case 6:system("color 10");break;
case 7:system("color 20");break;
case 8:system("color 30");break;
case 9:system("color 40");break;
}
for(time = 0; time <M*33e+7;time++);
system("color b0");
for(time = 0; time < 0.01*33e+7;time++);
}
system("cls");
printf("0:淡蓝色,1:白色,2:淡红色,3:淡紫色,4:灰色,5:黄色,6:蓝色,7:绿色,8:淡绿色,9:红色
");
for( k = 0; k < 10; k ++)
scanf("%d",&b[k]);
printf("
【测试结果】");
for( k = 0; k < 10; k ++)
{
if(a[k] == b[k])
s = s+10;
}
if( s < 40)
printf("
亲!你的记忆力相当差哦!
");
if( s >= 40&&s < 80)
printf("
恭喜你!你的记忆力正常哦!
");
if( s >= 80)
printf("
恭喜你!你的记忆力已经超于常人了!
");
printf(" 1.重新测试
");
printf(" 0.回主菜单
");
printf("
请选择:_");
scanf("%d",&n);
system("cls");
}
}
void xlcs()//自定义心理测试函数
{
int a[20],i,n,s= 0;
printf("
子菜单<心理测试>
");
printf(" 1.开始测试
");
printf(" 0.回主菜单
");
printf("
请选择:_");
scanf("%d",&n);
while( n > 1)
{
printf("
您的输入有误,请重新输入");
scanf("%d",&n);
}
system("cls");
while( n != 0)
{
printf("(1).我真希望自己哪那天突然死去。
");
a[0] = da();
printf("(2).小事我也感到非常着急。
");
a[1] = da();
printf("(3).遇到一点小事我就感到非常烦恼。
");
a[2] = da();
printf("(4).我看到人活着没什么意义。
");
a[3] = da();
printf("(5).我感到心慌。
");
a[4] = da();
printf("(6).我对异性毫无兴趣。
");
a[5] = da();
printf("(7).我觉得太笨,样样不如别人。
");
a[6] = da();
printf("(8).我感到生活中自己是个弱者。
");
a[7] = da();
printf("(9).我变得做什么事都拿不定主意。
");
a[8] = da();
printf("(10).我想自己死去。
");
a[9] = da();
printf("(11).我全身没有一点力气。
");
a[10] = da();
printf("(12).我讲话的声音变得无法有力,闲话少多了。
");
a[11] = da();
printf("(13).我晚上的睡眠时间总的说比往常少多了。
");
a[12] = da();
printf("(14).我什么事情都不想干。
");
a[13] = da();
printf("(15).我感到不高兴,不愉快,不痛快。
");
a[14] = da();
printf("(16).我感到心里难受或心里不舒服。
");
a[15] = da();
printf("(17).我对周围的一切都感到没意思。
");
a[16] = da();
printf("(18).我感到紧张不安。
");
a[17] = da();
printf("(19).我不想吃东西。
");
a[18] = da();
printf("(20).我觉得比平时瘦多了。
");
a[19] = da();
printf("
【测试结果】");
for( i = 0; i < 20; i ++)
s = s+a[i];
if( s < 16)
printf("
得分:_%d亲,你心里很正常哟!
",s);
if( s >= 16&&s<=35)
printf("
得分:_%d亲,你心里有轻度的问题了!
",s);
if( s >35&&s<=45)
printf("
得分:_%d亲,你心里已经有中度的问题了!
",s);
if( s > 45)
printf("
得分:_%d亲,你应该去看医生了!
",s);
printf(" 1.重新测试
");
printf(" 0.回主菜单
");
printf("
请选择:_");
scanf("%d",&n);
system("cls");
}
}
void Switch (int m)//自定义主菜单的选择函数
{
int n;
switch(m)
{
case 1:jycs();break;
case 2:xlcs();break;
}
}
int main()
{
int m,i;
system("color b0");
while((m=menu1())!=0)
{
system("cls");
Switch(m);
}
long time;//退出测试倒计时
for( i = 5; i > 0; i --)
{
printf("
%d秒后退出游戏",i);
for( time = 0; time <= 1.2*33e+7;time++);
system("cls");
printf("
测试主题
");
printf(" 【注:本测试纯属娱乐】
");
printf("
主菜单
");
printf(" 1.记忆测试
");
printf(" 2.心理测试
");
printf(" 0.退出测试
");
printf("
请选择:_0
");
}
return 0;
}
运行效果: