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