#C语言寒假大作战03

一。表头

这个作业属于哪个教程 [班级链接](https://edu.cnblogs.com/campus/zswxy/SE2019-1)
这个作业要求在哪里 这里
我在这个课程的目标是 使用switch编写菜单程序,使用rand函数来产生随机数,并以规律进行排列
作业正文
其他参考的文献 [学长的视频](http://v.harson.co/static/video/git.mp4)

二。正文

2.1设计思路和遇到的问题

设计思路:在寒假大作战02作业的基础上运用rand()函数来输出一个范围内的随机数;
遇到的问题:不知道如何随机输出加减乘除的符号。

2.2程序结果截图



2.3程序代码
需要使用新增加的三个函数,且使用上次作业的框架,调用关系如上面思维导图

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

2.4码云截图


主页

posted on 2020-02-12 13:57  魏乾豪  阅读(110)  评论(0编辑  收藏  举报

导航