C语言寒假大作战03

心已入冬 提交于 2020-02-11 18:49:09

2.2.1本次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-1
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10272
我在这个课程的目标是 gitee 与 git基础命令学习与使用;通过命令列表和视频学习,注册、登录、上传文件、克隆仓库;学会制作菜单栏;使用上次作业的菜单框架,并在其基础上增加各年级题目操作函数
作业正文 https://www.cnblogs.com/cc2000/p/12259221.html
参考文献 百度百科rand函数的调用

2.2.2 设计思路和遇到的问题

心理过程:刚开始看这个作业的时候,我瞬间懵了,于是便没写了。但问了同学以及看了百度便慢慢明白了。
设计思路:C语言编程:以实例教你如何在控制台程序中模拟一个选项菜单功能,我看了这个提示之后,看了同学写的代码,便明白了要怎么去写。首先必须把未知数设为-1,利用while循环当未知数不等于0时,便进入循环,开始主函数;利用switch结构,构造选择以及选择结果。作业要求要用6个函数,已知3个函数,还要我们去创造三个函数。便可以把3个年级构造成3个函数。由于没设未知数,返回值都可以设为1,代表成立。具体思路是这样。
遇到的问题:不知道怎么去设计菜单,看了C语言编程:以实例教你如何在控制台程序中模拟一个选项菜单功能才清楚。

2.2.3 程序结果截图




2.2.4 程序代码

#include<stdio.h>
#include <time.h>
#include <stdlib.h>
int menu();
int help();
int error();
int grade1(int a);
int grade2(int a);
int grade3(int a);
int main ()
{
    int m=-1,n=0;
    while(m != 0)
    {
        printf("========== 口算生成器 ==========\n");
        printf("欢迎使用口算生成器 :\n");
        printf("\n"); 
        help();
        printf("\n");
        printf("\n");
        menu();
        scanf("%d",&n);
        switch(n)
        {
            case 1:grade1(n);break;
            case 2:grade2(n);break;
            case 3:grade3(n);break;
            case 4:help();break;
            case 5:printf("程序结束, 欢迎下次使用\n任意键结束……");break;
            default:error();break;
        }
    }
}
int menu()
{
    printf("操作列表:\n");
    printf("1)一年级    2)二年级    3)三年级\n");
    printf("4)帮助      5)退出程序\n");
    printf("请输入操作> \n");
    return 1; 
}
int help()
{
    printf("帮助信息\n");
    printf("您需要输入命令代号来进行操作, 且\n");
    printf("一年级题目为不超过十位的加减法;\n");
    printf("二年级题目为不超过百位的乘除法;\n");
    printf("三年级题目为不超过百位的加减乘除混合题目.\n");
    return 1;
}
int error()
{
    printf("Error!!!\n");
    printf("错误操作指令, 请重新输入\n");
    return 1;
}
int grade1(int a)
{
    int n,i,b,c,d;
    char op;
    srand((unsigned)time( NULL ));
    printf("现在是一年级题目\n");
    printf("请输入生成个数>\n");
    scanf("%d",&n); 
    printf("<执行操作:)\n");
    for(i=0;i<n;i++)
    {
        b=rand()%2;
        if(b==0)
          op='-';
        if(b==1)
          op='+';
        c=rand()%10;
        d=rand()%10;
        printf("%2d %c %2d = ___\n",c,op,d);
    }
    printf("执行完了(小声,假装这里有操作\n");
    return 1;
}
int grade2(int a)
{
    int i,n,b,c,d;
    char op;
    srand((unsigned)time( NULL ));
    printf("现在是二年级题目\n");
    printf("请输入生成个数>\n");
    scanf("%d",&n);
    printf("<执行操作:)\n");
    for(i=0;i<n;i++)
    {
        b=rand()%2;
        if(b==0)
          op='*';
        if(b==1)
          op='/';
        c=rand()%10;
        d=rand()%10;
        if(op=='/'&&d==0)
          d=rand()%9+1;
        printf("%2d %c %2d = ___\n",c,op,d);
    }
    printf("执行完了(小声,假装这里有操作\n");
    return 1;
}
int grade3(int a)
{
    int n,i,b,c,d,e,f;
    char op1,op2;
    printf("<执行操作:)\n");
    printf("现在是三年级题目\n");
    printf("请输入生成个数>\n");
    scanf("%d",&n);
    printf("<执行操作:)\n");
    for(i=0;i<n;i++)
    {
        b=rand()%4;
        if(b==0)
           op1='-';
        if(b==1)
           op1='+';
        if(b==2)
           op1='*';
        if(b==3)
           op1='/';
        c=rand()%100;
        d=rand()%100;
        if(op1=='/'&&d==0)
           d=rand()%99+1;
        e=rand()%4;
        if(e==0)
           op2='-';
        if(e==1)
           op2='+';
        if(e==2)
           op2='*';
        if(e==3)
           op2='/';
        f=rand()%100;
        if(op2=='/'&&f==0)
           f=rand()%99+1;
        printf("%2d %c %2d %c %2d = ___\n",c,op1,d,op2,f);
    }
    printf("执行完了(小声,假装这里有操作\n");
    return 1;
}

2.2.5 你对“设计”这个词的理解

  • 百度的解释是:按照任务的目的和要求,预先定出工作方案和计划,绘出图样。
  • 我觉得更准确的应该是按照自己想的思路与题目所给信息去创造属于自己的答案。

    2.2.6 Gitee上传截图与链接

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