C语言寒假大作战03

C语言寒假大作战03

这个作业属于哪个课程? https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10271
这个作业要求在哪里? https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10261
这个作业的目标 利用程序编程完成“口算题菜单”,并使其能够完成简单的加减乘除,最后将其上传至码云上
作业正文 https://i-beta.cnblogs.com/posts/edit
参考文献 随机数rand,码云gitee,学长写的Git操作快速入门,百度(如何在码云上添加文件夹)等。

2.2.2 设计思路和遇到的问题

 思路:在制作“口算题菜单”这个程序时,由于前面的设计与上一次作业类似,首先根据思维导图设立了3个函数模型,阅读了解rand函数后,利用好rand函数,尤其注意利用if-else来转换符号,从而得出结果。
 问题 :1.在编写过程中,无法输出正确的所要生成的个数。
      2.不知道如何使符号随意转换,后上网查找资料得可根据rand函数随机的性质来取余。
      3.函数的实参和形参有点分不清。

2.2.3 程序结果截图

C语言寒假大作战03_第1张图片

C语言寒假大作战03_第2张图片

C语言寒假大作战03_第3张图片

2.2.4 程序代码


#include
#include
#include
int first(int a) {
    char op ;
    for (int i = 0; i < a; i++) {
        if (rand() % 10 % 2 == 0)
            op = '+';
        else
            op = '-';
        printf("%d %c %d = __\n", rand() % 10, op, rand() % 10);
    }
    return 0;
}
int second(int b) {
    char op;
    for (int i = 0; i < b; i++) {
        if (rand() % 10 % 2 == 0)
            op = '/';
        else
            op = '*';
        printf("%d %c %d = __\n", rand() % 10, op, rand() % 10);
    }
    return 0;
}
int thrid(int d) {
    char op1,op2;
    for (int i = 0; i < d; i++) {
        if (rand() % 100 % 2 == 0)
            op1 = '/';
        else 
            op1 = '*';
        if (rand() % 100 % 4 == 0)
            op2 = '+';
        else
            op2 = '-';
        printf("%d %c %d %c %d= __\n", rand() % 100, op1, rand() % 100,op2,rand()%100);
    }
    return 0;
}
int help(int opt) {
    opt = -1;
    while (opt != 0) {
        printf("操作列表:\n");
        printf("1)一年级    2)二年级    3)三年级\n");
        printf("4)帮助    5)退出程序\n");
        return opt;
    }
}
int menu(int c) {
    if (c == 1)printf("现在是一年级题目:\n请输入生成的个数>");
    else if (c == 2)printf("现在是二年级题目:\n请输入生成的个数>");
    else printf("现在是三年级题目:\n请输入生成的个数>");
    return 0;
}

int main()
{
    printf("========== 口算生成器 ==========\n");
    printf("欢迎使用口算生成器 :\n \n");
    printf("帮助信息:\n您需要输入命令代号来进行操作, 且\n一年级题目为不超过十位的加减法;\n二年级题目为不超过百位的乘除法;\n三年级题目为不超过百位的加减乘除混合题目.\n");
    printf("\n");
    printf("操作列表:\n");
    printf("1)一年级    2)二年级    3)三年级\n");
    printf("4)帮助    5)退出程序\n");
    int opt,n;
    time_t t;
    srand((unsigned)time(&t));
b: printf("请输入操作\n\n\n");
    scanf_s("%d", &opt);
    while (opt != 0) {
        
        switch (opt) {
        case 1:menu(opt); scanf_s("%d", &n); first(n); goto b;
        case 2:menu(opt); scanf_s("%d", &n); second(n); goto b;
        case 3:menu(opt); scanf_s("%d", &n); thrid(n); goto b;
        case 4:help(opt); goto b;
        case 5:printf("程序结束,欢迎下次使用任意键结束......"); return 0;
        default:printf("Error!!!\n错误操作指令,请重新输入\n"); goto b;
        }
    }
}


2.2.5 Gitee上传截图与链接

C语言寒假大作战03_第4张图片

C语言寒假大作战03_第5张图片

码云链接:

https://gitee.com/ouyang_yuanyuan/C-20199262

你可能感兴趣的:(C语言寒假大作战03)