C语言寒假大作战03
1.1作业头
这个作业属于哪个课程 | 班级链接 |
这个作业的要求在哪里 | C语言寒假大作战03 |
我在这门课程的目标是 | 学习C 库函数 - rand()随机数的产生;continue,for(),while(),switch-case-default循环的熟练运用;以及函数调用和上传代码至码云 |
作业正文 | (https://www.cnblogs.com/chenyiAndy/p/12300567.html) |
参考文献 | 随机数rand |
2.2设计思路和遇到的问题
设计思路
心路历程:开始做的时候,没有什么思路,光想着怎么做好这个随机数,而没有付诸实践,主要是不知道怎么去做,有崩溃的想法;
设计思路:首先利用rand函数实现数值的随机产生,然后利用switch()函数实现加减乘除的随机分配;
遇到的问题
(1)不知道怎么运用rand函数,使数值随机产生;
(2)在排版加减运算的时候,会出现错位,一上一下。
3.3 程序结果截图
4.4 程序代码
include<stdio.h>
define _CRT_SECURE_NO_WARNINGS
include<stdlib.h>
include<time.h>
int menu()
{
printf("=口算生成器=\n");
printf("欢迎使用口算生成器 :\n");
return 0;
}
int help()
{
printf("帮助信息:\n");
printf("你需要输入命令代号来进行操作,且\n");
printf("一年级题目为不超过十位的加减法:\n");
printf("二年级题目为不超过百位的乘除法:\n");
printf("三年级题目为不超过百位的加减乘除混合题目.\n");
return 0;
}
int error()
{
printf("Error!!!\n");
printf("错误操作指令,请重新输入\n");
return 0;
}
void first()
{
printf("现在是一年级题目:\n");
int a, b, c, d,i;
srand((unsigned)time(NULL));
printf("请输入生成个数>");
scanf_s("%d",&d);
printf("<执行操作:)\n");
for (i = 0; i < d; i++)
{
a = rand() % 10 + 0;
b = rand() % 10 + 0;
c = rand() % 2 + 1;
printf("%d", a);
switch (c)
{
case 1:printf(" + %d", b); break;
case 2:printf(" - %d", b); break;
}
printf(" = ___\n");
}
}
void second()
{
printf("\n\n现在是二年级题目:\n");
int a, b, c, d,i;
srand((unsigned)time(NULL));
printf("请输入生成个数>");
scanf_s("%d", &d);
printf("<执行操作:)\n");
for (i = 0; i < d; i++)
{
a = rand() % 100 + 0;
b = rand() % 100 + 0;
c = rand() % 2 + 3;
if (c == 4 && b == 0)
{
i--;
continue;
}
printf("%d", a);
switch (c)
{
case 3:printf(" * %d", b); break;
case 4:printf(" / %d", b); break;
}
printf(" = ___\n");
}
}
void third()
{
printf("\n\n现在是三年级题目:\n");
int a, b, c, d,i;
srand((unsigned)time(NULL));
printf("请输入生成个数>");
scanf_s("%d", &d);
printf("<执行操作:)\n");
for (i = 0; i < d; i++)
{
a = rand() % 100 + 0;
b = rand() % 100 + 0;
c = rand() % 4 + 1;
if (c == 4 && b == 0)
{
i--;
continue;
}
printf("%d", a);
switch (c)
{
case 1:printf(" + %d", b); break;
case 2:printf(" - %d", b); break;
case 3:printf(" * %d", b); break;
case 4:printf(" / %d", b); break;
}
int j;
j = rand() % 100 + 0;
c = rand() % 4 + 1;
if (c == 4 && j == 0)
{
i--;
continue;
}
switch (c)
{
case 1:printf(" + %d", j); break;
case 2:printf(" - %d", j); break;
case 3:printf(" * %d", j); break;
case 4:printf(" / %d", j); break;
}
printf(" = ___\n");
}
}
int main()
{
menu();
printf("\n");
help();
printf("\n");
int n=-1;
while (n != 5)
{
printf("操作列表:\n");
printf("1)一年级 2)二年级 3)三年级\n");
printf("4)帮助 5)退出程序\n");
printf("请输入操作:");
scanf_s("%d",&n);
printf("\n<执行操作:)\n");
printf("\n");
switch (n)
{
case 1:
first();
printf("\n");
break;
case 2:
second();
printf("\n");
break;
case 3:
third();
printf("\n");
break;
case 4:
help();
printf("\n");
break;
case 5:
printf("程序结束,欢迎下次使用,任意键结束\n");
printf("\n");
break;
default:
error();
printf("\n");
break;
}
}
return 0;
}