一、菜单程序函数调用图
二、设计思路和遇到的问题
- 设计思路:这次对整个菜单的扩充是在于三个年级题目Operation函数。首先了解到三个函数分别要实现的三种功能,都有相似性,但又循序渐进。然后设置需要的变量,函数,语句以及输入输出的格式。
- 遇到的问题:要达到生成三种随机口算题的目的,需要用到rand()函数,刚开始对rand()函数的用法不清楚,查询资料后,得到: 如要产生[m,n]范围内的随机数num,可用:int num=rand()%(n-m+1)+m.还有就是不知道如何设置生成的个数,后来想到结合for循环可以解决问题。
三、 程序结果截图
四、程序代码
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
void menu() {
printf("\n操作列表:\n");
printf("1)一年级 2)二年级 3)三年级 \n4)帮助 5)退出程序\n");
printf("请输入操作>");
}
void help() {
printf("帮助信息:\n您需要输入命令代号来进行操作,且\n");
printf("一年级题目为不超过十位的加减法;\n二年级题目为不超过百位的乘除法;\n三年级题目为不超过百位的加减乘除混合题目.\n\n");
}
void error() {
printf("Error!!!\n错误操作指令,请重新输入\n\n");
}
void Operation1() {
int i,j;
printf("现在是一年级题目:\n");
printf("请输入生成个数>");
scanf("%d",&j);
printf("<执行操作:\n\n");
for(i=1; i<=j; i++) {
char ch[2]= {'+','-'};
int num1 = rand() % 11;
int num2 = rand() % 11;
int a = rand() % 2+1;
printf(" %2d %c %2d = ___ \n",num1,ch[a],num2);
}
}
void Operation2() {
int i,j;
printf("现在是二年级题目:\n");
printf("请输入生成个数>");
scanf("%d",&j);
printf("<执行操作:\n\n");
for(i=1; i<=j; i++) {
char ch[2]= {'*','/'};
int num1 = rand() % 101;
int num2 = rand() % 101;
int num3 = rand() % 100 + 1;
if(ch[2]='*')printf(" %2d %c %2d = ___\n",num1,ch[rand() % 2],num2);
else printf(" %2d %c %2d = ___\n",num1,ch[rand() % 2],num3);
}
}
void Operation3() {
int i,j;
printf("现在是三年级题目:\n");
printf("请输入生成个数>");
scanf("%d",&j);
printf("<执行操作:\n\n");
for(i=1; i<=j; i++) {
char ch[4]= {'+','-','*','/'};
int num1 = rand() % 101;
int num2 = rand() % 100 + 1;
int num3 = rand() % 100 + 1;
int a1 = rand() % 4+1;
int a2 = rand() % 4+1;
printf(" %2d %c %2d %c %2d = ___\n",num1,ch[a1],num2,ch[a2],num3);
}
}
int main() {
srand((int)time(0));
int Grade;
printf("========口算生成器========\n欢迎使用口算生成器:\n\n");
help();
menu();
while(Grade!=5) {
scanf("%d",&Grade);
printf("<执行操作:\n\n");
switch(Grade) {
case 1:
Operation1();
break;
case 2:
Operation2();
break;
case 3:
Operation3();
break;
case 4:
help();
break;
case 5:
printf("程序结束,欢迎下次使用\n任意键结束......\n");
break;
default:
error();
break;
}
if(Grade!=5) menu();
}
}
五、Gitee上传截图与链接
七、主页链接
https://gitee.com/shenxinglou