C语言寒假大作战03

拥有回忆 提交于 2020-02-12 15:24:36
问题 答案
这个作业属于哪个课程 班级链接
这个作业的要求在哪里 作业要求
这个作业的目标 在自主设计一个菜单栏的基础上增加各年级题目操作函数。
参考文献 作业要求里提供的一系列文献随机数rand,百度百科,dev 码云。

2.1设计的思路和遇到的问题。

(1)设计思路:在上次完成的菜单栏框架的基础上在执行一年级,二年级,三年级的switch语句里面加上rand随机数函数来生成计算式子。
(2)遇到的问题:二年级的随机式子总是只生成一个,反复检查后发现是其中一个变量设置错了。

2.2程序结果截图




2.3程序代码

     '''
     #include<stdio.h>
     #include<stdlib.h>
     #include<time.h>
     void menu();
     void error(int a);
     void help();
     int main()
     {
   int cj=1;
   int b,m,i,ch,ch2,g;
   printf("========口算生成器========\n");
   printf("欢迎使用口算生成器:\n");
   printf("\n");
   help();
   while(cj)
    {
    menu();
    scanf("%d",&cj);
    if(cj==5)
    break;
    switch(cj)
    {
        case 1:printf("现在是一年级题目:\n");
               printf("请输入生成题目个数:");
               scanf("%d",&b);
               printf("题目列表:\n"); 
               printf("\n");
               for(i=0;i<b;i++)
               {
                    m=rand()%2;
                    if(m==1)
                    printf(" %d + %d = \n", rand()%11,rand()%11);
                    else
                    printf(" %d - %d = \n", rand()%11,rand()%11);
               }
               
               break;
        case 2:printf("现在是二年级题目:\n");
               printf("请输入生成题目个数:");
               scanf("%d",&b);
               printf("题目列表:\n"); 
               printf("\n");
               for(i=0;i<b;i++)
               {
                    m=rand()%2;
                    if(m==1)
                    printf(" %d * %d = \n", rand()%101,rand()%101);
                    else
                    printf(" %d / %d = \n", rand()%100+1,rand()%100+1);
               }
               break;
        case 3:printf("现在是三年级题目:\n");
               printf("请输入生成题目个数:");
               scanf("%d",&b);
               printf("题目列表:"); 
               printf("\n");
               for(i=0;i<b;i++)
               {
                    m=rand()%4;
                    switch(m)
                    {
                        case 0:
                        ch='+';break;
                        case 1:
                        ch='-';break;
                        case 2:
                        ch='*';break;
                        case 3:
                        ch='/';break;
                       }
                        g=rand()%4;
                        switch(g)
                        {
                            case 0:
                            ch2='+';break;
                            case 1:
                            ch2='-';break;
                            case 2:
                            ch2='*';break;
                            case 3:
                            ch2='/';break;
                        }
                        printf(" %d %c %d %c %d = \n",rand()%101,ch,rand()%100+1,ch2,rand()%100+1);
               }
               break;
        case 4:help();
               break;
        default:error(cj);
                break;
    }
    printf("\n");
 }
   printf("\n");
   printf("程序结束,欢迎下次使用....");
      }
   void help()
  {
    printf("帮助信息:\n");
    printf("你需要输入命令代号来进行操作,且\n");
    printf("一年级题目不超过十位数的加减法:\n");
    printf("二年级题目不超过百位的乘除发:\n");
    printf("三年级题目不超过百位的加减乘除混合题目。\n");
    printf("\n");
}
void menu()
{
    printf("操作列表:\n");
    printf("1)一年级  2)二年级  3)三年级\n");
    printf("4)帮助  5)提出程序\n");
    printf("<请输入操作>:");
    printf("\n");
}
void error(int a)
{
    printf("Error!!!");
    printf("错误操作指令,请重新输入\n");
}

2.4Gitee上传截图与链接

陈琬琰yoyo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!