一、菜单程序函数调用图
![](https://img2018.cnblogs.com/blog/1806786/202002/1806786-20200208163854670-515869517.png)
二、设计思路和遇到的问题
- 设计思路:我看了题目之后先选择了仔细观看资料才开始动手敲代码。了解到该题目要用到六个函数后,我对六个函数的作用以及内容进行了分配。由于该程序只有在特定的条件下才能终止循环,选择用while语句搭配switch语句进行设计。然后开始考虑switch的几个case常量表达式。
- 问题:只调用while语句设置了当输入5时结束循环,导致只有第一次循环执行操作前才会出现操作列表。调用if语句设置了输入除5以外的数字都能出现操作列表,解决了问题。
三、 程序结果截图
![](https://img2018.cnblogs.com/blog/1806786/202002/1806786-20200208164151622-430489969.png)
![](https://img2018.cnblogs.com/blog/1806786/202002/1806786-20200208164159378-1749440956.png)
![](https://img2018.cnblogs.com/blog/1806786/202002/1806786-20200208164207651-412239158.png)
![](https://img2018.cnblogs.com/blog/1806786/202002/1806786-20200208164215439-1401243797.png)
四、程序代码
#include<stdio.h>
void menu() {
printf("
操作列表:
");
printf("1)一年级 2)二年级 3)三年级)
4)帮助 5)退出程序
");
printf("请输入操作>");
}
void help() {
printf("帮助信息:
您需要输入命令代号来进行操作,且
");
printf("一年级题目为不超过十位的加减法;
二年级题目为不超过百位的乘除法;
三年级题目为不超过百位的加减乘除混合题目.
");
}
void error() {
printf("Error!!!
错误操作指令,请重新输入
");
}
void FirstGrade() {
printf("现在是一年级题目:
只有聪明的人才看不见
");
}
void SecondGrade() {
printf("现在是二年级题目:
good good study
");
}
void ThirdGrade() {
printf("现在是三年级题目:
day day up
");
}
int main() {
int Grade;
printf("========口算生成器========
欢迎使用口算生成器:
");
help();
menu();
while(Grade!=5) {
scanf("%d",&Grade);
printf("<执行操作:
");
switch(Grade) {
case 1:
FirstGrade();
break;
case 2:
SecondGrade();
break;
case 3:
ThirdGrade();
break;
case 4:
help();
break;
case 5:
printf("程序结束,欢迎下次使用
任意键结束......
");
break;
default:
error();
break;
}
if(Grade!=5) menu();
}
}
五、对“设计”这个词的理解
- 从粗略到详细,从模糊到清晰,设计是在寻找错误或缺点中,拨云见日,慢慢完善的一个过程。
六、Gitee上传截图与链接
![](https://img2018.cnblogs.com/blog/1806786/202002/1806786-20200208164537416-1344315958.png)
![](https://img2018.cnblogs.com/blog/1806786/202002/1806786-20200208164626658-269584473.png)
七、主页链接
https://gitee.com/shenxinglou