您的位置:首页 > 编程语言 > C语言/C++

C语言益智游戏(记忆童年)

2019-05-03 00:22 986 查看

时间:大一上学期

目的:C语言上半部分课设

名称:数字益智游戏(未删减版)

补充:system("cls");为清屏

           system("pause");为暂停屏幕,按任意键结束

一共有5场游戏:

1、 背背乘法口诀表

刚开始为乘法口诀表无答案;小朋友可以自己先思考;然后输入1之后可以看到乘法口诀表及其答案。最后按任意键返回主菜单。

2、 数字比大小

系统给出随机的10个数字,小朋友要找出并输入其中的最大数,如果输入答案是错误,则还有一次机会输入,正确则有鼓励的话。最后按任意键返回主菜单。

3、数数看有多少个字母和数字

游戏一共有5场(1-4为系统给出问题、第五场为自己输入),输入1~5的数字实现,输入1-4时,系统给出包含数字和字母的字符串,输入5时自己输入一个字符串;然后小朋友要回答其中数字和字母个是多少个,系统会自动判断其正误,有一次机会回答问题。最后按任意键返回主菜单。

 

4、加减乘除

系统给出两个任意一位数,前面相对后面的数进行加减乘除,小朋友要分别输入其运行结果,系统会自动判断其正误,有一次机会回答问题。最后按任意键返回主菜单。

5、排序

系统给出任意五个一位数字,小朋友要输出其排序结果,系统会自动判断其正误,有一次机会回答问题。最后按任意键返回主菜单。

代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include<ctype.h>
#include<math.h>

void main()
{
void aa();
void ab();
void bb();
void bc();
void bd();
int x, k;
k = 1;
while (k)
{
system("cls");
printf("\t\t@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ \n");
printf("\t\t# \t \t \3 小朋友益智游戏\3  \t\t  #\n");
printf("\t\t#-------------------------------------------------#\n");
printf("\t\t# \t \t \4 1->背背乘法口诀表 \t \t  #\n");
printf("\t\t# \t \t \4 2->数字比大小 \t\t  #\n");
printf("\t\t#\t \t \4 3->数数看有多少个字母和数字    #\n");
printf("\t\t#\t \t \4 4->加减乘除  \t\t  #\n");
printf("\t\t#\t \t \4 5->排序\t \t \t  #\n");
printf("\t\t@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @  \n");

printf("请选择相应的操作:");
scanf("%d", &x);
switch (x)
{
case 1:  aa(); break;
case 2: ab(); break;
case 3:  bb(); break;
case 4:  bc(); break;
case 5: bd(); break;
default: printf("输入数字错误,请重新选择\n");
}
}

}
void bd() {
int i, a[5], j, c, k, l, o, b, t, s;
printf("*********************************************排序****************************************************\n");
time_t ts;
srand((unsigned int)time(&ts));
for (i = 0; i < 5; i++) { a[i] = rand() % 10; printf("%d\t", a[i]); }
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4 - i; j++)
if (a[j] < a[j + 1]) { b = a[j]; a[j] = a[j + 1]; a[j + 1] = b; }
}
printf("\n小朋友输入你的由大到小排序吧:");
scanf("%d%d%d%d%d", &k, &l, &o, &s, &t);
j = 0;
if (k == a[j] && l == a[j+1] && o == a[j+2] && s == a[j+3] && t == a[4]) printf("                    \2\2    很棒哟,好样的    \2\2    ");

else {
printf("下次努力,细心,正确答案是:");
for (i = 0; i < 5; i++) printf("%d\t", a[i]);
}printf("\n*********************************************排序****************************************************\n\n\n\n"); system("pause");
}
void bc()
{
printf("*********************************************加减乘除************************************************\n");
int i, a[10], j, jia, jian, cheng, chu, k, l, o;
time_t ts;
srand((int)time(&ts));
for (i = 0; i < 2; i++) { a[i] = rand() % 10; printf("%d\n", a[i]); }
jia = jian = cheng = chu = a[0];
for (i = 1; i < 2; i++) {
jia += a[i]; jian -= a[i]; cheng *= a[i]; chu /= a[i];
}

printf("小朋友快输入你前一个数对后一个数的加减乘除(除的结果要四舍五入)的答案哟:");
scanf("%d%d%d%d", &j, &k, &l, &o);
if (j == jia&&k == jian&&l == cheng&&o == chu)printf("完美,棒棒的哟\n");
else printf("好好检查一下哟,加油,两数的加减乘除答案分别外:%d,%d,%d,%d\n", jia, jian, cheng, chu);
printf("*********************************************加减乘除************************************************\n");
system("pause");
}
void bb()
{
int q, w, n, b1 = 0, b2 = 0;
printf("**********************************数数看有多少个字母和数字**************************************************\n");
char a[100] = "asjijFGDFHvn549447548415", b[100] = "ash65196erfvdfredjimo", c[100] = "ijrefvfrjGHHGJHbuerjbfug", d[100] = "ijerdfvoierjiuvfj6489hre547gre7fff48", dd[100], tt[100];
printf("游戏一共有5场(1-4为小东给出问题、第五场为自己输入哟),输入1~5的数字,小朋友想玩哪个呢:");
scanf("%d", &n);
if (n == 1)strcpy(dd, a);
if (n == 2)strcpy(dd, b);
if (n == 3)strcpy(dd, c);
if (n == 4)strcpy(dd, d);

if (n == 5) {
printf("\n@@@自己输入一个字符串:\n");
scanf("%s", tt);
strcpy(dd, tt);
}
printf("%s\n", dd);
for (int i = 0; i<strlen(dd); i++)
{
if (isalpha(dd[i]) != 0) b1++;
else if (isdigit(dd[i])) b2++;
}printf("小朋友快输入你的答案(字母、数字。。用空格隔开):");
scanf("%d%d", &q, &w);
if (q == b1&&w == b2) printf("回答正确了\n");
if (q != b1 || w != b2)  printf("有错误,下次努力,正确是字母个数:%d,数字个数:%d\n\n", b1, b2);
printf("**********************************数数看有多少个字母和数字**************************************************\n");
system("pause");
}
void aa()
{
printf("********************************************************************背背乘法口诀********************************************************************\n");
printf("********小朋友会背吗,在心里面想一想答案哦*****\n");
int  d, i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= 9; j++)
printf("%d*%d=??\t", i, j);
printf("\n");
}
printf("\n(@_@想知道答案吗,是就 输入“1”,就不看!输入“2”@_@ )   :");
scanf("%d", &d);
if (d == 1) {
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= 9; j++)
printf("%d*%d=%-5d", i, j, i*j);
printf("\n");
}
}printf("********************************************************************乘法口诀********************************************************************\n");
system("pause");
}
void ab()
{
printf("******************************************************************数字比大小******************************************************************\n");
printf("小朋友\1比比看下面的数谁最大\n#############################################################\n");
int i, a[10], max, b[1], c;
time_t ts;
srand((unsigned int)time(&ts));
for (i = 0; i < 10; i++)
{
a[i] = rand() % 100;
printf("%d\t", a[i]);
}max = a[0];
for (i = 1; i < 10; i++) if (a[i] > max) max = a[i];
printf("\n#############################################################\n相信自己是最棒的..快来告诉小东你的答案:");
scanf("%d", &b[0]);
if (max == b[0]) printf("\t\t小朋友好厉害, \1   \1 小东为你喝彩\1   \1 \n\n\n \n");
else {
printf("没关系,还有一次机会       @加油@,\t再输入一次:"); scanf("%d", &b[0]); if (max == b[0]) printf("\t\t成功了,失败是成功之母, \1   \1 小东为你喝彩\1   \1 \n\n\n \n");
else    printf("很遗憾,不过没关系的,最大值是%d哟\n\n\n", max);
}printf("******************************************************************数字比大小******************************************************************\n");
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: