这个作业属于哪个课程 | 班级链接 |
---|---|
这个作业要求在哪里 | 作业链接 |
**这个作业的目标 ** | 熟悉使用git命令,理解代码用途 |
其他参考文献 | C语言rand和srand用法详解 |
作业正文 | 本篇博客 |
1.1 设计思路和遇到的问题
- 设计思路:用for循环取十道题目,符号用rand的取值来随机选取,随机数也同理用rand生成,用srand和时间来取不同的随机数,添加到已有菜单中。
- 遇到的问题:开始用int来添加rand函数,导致十个题目完全相同,后来改用直接取rand,解决问题。
1.2程序结果截图
1.3程序代码
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
void one()
{
printf(":)
");
printf("
");
printf("现在是一年级题目:
");
printf("操作完成
");
srand((int)time(0));
int i;
for(i=1;i<=10;i++)
{
if(rand()%2==1)
{
printf("%d + %d =__
",rand() % (10),rand() % (10));
}
else
printf("%d - %d =__
",rand() % (10),rand() % (10));
}
}
void two()
{
printf(":)
");
printf("
");
printf("现在是二年级题目:
");
printf("操作完成
");
srand((int)time(0));
int i;
for(i=1;i<=10;i++)
{
if(rand()%2==1)
{
printf("%d * %d =__
",rand() % (101),rand() % (101));
}
else
printf("%d / %d =__
",rand() % (101),rand() % (101)+1);
}
}
void three()
{
printf(":)
");
printf("
");
printf("现在是三年级题目:
");
printf("操作完成
");
srand((int)time(0));
int i;
for(i=1;i<=10;i++)
{
if(rand()%17==0)
printf("%d + %d + %d=__
",rand() % (101),rand() % (101),rand() % (101));
else if(rand()%17==1)
printf("%d + %d - %d=__
",rand() % (101),rand() % (101),rand() % (101));
else if(rand()%17==2)
printf("%d + %d * %d=__
",rand() % (101),rand() % (101),rand() % (101));
else if(rand()%17==3)
printf("%d + %d / %d=__
",rand() % (101),rand() % (101),rand() % (101)+1);
else if(rand()%17==4)
printf("%d * %d / %d=__
",rand() % (101),rand() % (101),rand() % (101)+1);
else if(rand()%17==5)
printf("%d * %d - %d=__
",rand() % (101),rand() % (101),rand() % (101));
else if(rand()%17==6)
printf("%d * %d * %d=__
",rand() % (101),rand() % (101),rand() % (101));
else if(rand()%17==7)
printf("%d / %d / %d=__
",rand() % (101),rand() % (101)+1,rand() % (101)+1);
else if(rand()%17==8)
printf("%d / %d - %d=__
",rand() % (101),rand() % (101)+1,rand() % (101));
else if(rand()%17==9)
printf("%d - %d - %d=__
",rand() % (101),rand() % (101),rand() % (101));
else if(rand()%17==10)
printf("%d - %d + %d=__
",rand() % (101),rand() % (101),rand() % (101));
else if(rand()%17==11)
printf("%d * %d + %d=__
",rand() % (101),rand() % (101),rand() % (101));
else if(rand()%17==12)
printf("%d / %d + %d=__
",rand() % (101),rand() % (101)+1),rand() % (101);
else if(rand()%17==13)
printf("%d - %d * %d=__
",rand() % (101),rand() % (101),rand() % (101));
else if(rand()%17==14)
printf("%d - %d / %d=__
",rand() % (101),rand() % (101),rand() % (101)+1);
else
printf("%d / %d * %d=__
",rand() % (101),rand() % (101)+1,rand() % (101));
}
}
void mistake()
{
printf("Error!
");
printf("错误操作指令,请重新输入
");
printf("
");
}
void four()
{
printf("
");
printf("帮助信息
");
printf("你需要输入命令代号来进行操作,且
");
printf("一年级题目为不超过十位数的加减法;
");
printf("二年级的题目为不超过百位数的乘除法;
");
printf("三年级的题目为不超过百位的加减乘除的混合题目.
");
}
int main()
{
printf("======口算生成器======
");
printf("欢迎使用口算生成器:
");
printf("帮助信息
");
printf("您需要输入命令代号来进行操作,且
");
printf("一年级的题目为不超过十位数的加减法;
");
printf("二年级的题目为不超过百位数的乘除法:
");
printf("三年级的题目为不超过百位数的加减乘除的混合题目.
");
printf("操作列表:
");
printf("1)一年级 2)二年级 3)三年级
");
printf("4)帮助 5)退出程序
");
printf("请输入操作:");
int n;
scanf("%d", &n);
while (1)
{
if (n == 5)
{
break;
}
switch (n)
{
case 1: one(); break;
case 2: two(); break;
case 3: three(); break;
case 4: four(); break;
default: mistake(); break;
}
printf("操作列表:
");
printf("1)一年级 2)二年级 3)三年级
");
printf("4)帮助 5)退出程序
");
printf("请输入操作:");
n = 0;
scanf("%d", &n);
}
printf(":)
");
printf("
");
printf("程序结束,欢迎下次使用,按任意键结束");
getchar();
return 0;
}
1.4Gitee上传截图与链接