Practice1小学四则运算(改进)

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void srand(unsigned);//随机生成不同的数
void main()
{
    int n,i,a,b,c,d,e,f,g,h,j;
    printf("****************************欢迎使用!************************\n");
    printf("\n");
    printf("1.加法运算\n");
    printf("2.减法运算\n");
    printf("3.乘法运算\n");
    printf("4.除法运算\n");
    printf("0.退出程序\n");
    printf("***************************************************************\n");
    printf("请选择运算类型:");
    scanf("%d", &n);
    while(n<0||n>4)
    {
        printf("输入错误,请重新输入:\n");
        scanf("%d",&n);
    }
    switch(n)
    {
    case 1:
        {
            printf("***************************************************************\n");
            printf("5.一位数加一位数\n");
            printf("6.一位数加两位数\n");
            printf("7.两位数加两位数\n");
            printf("***************************************************************\n");
            printf("请输入题型:");
            scanf("%d",&i);
            while(i<5||i>7)
            {
                printf("输入错误,请重新输入:\n");
                scanf("%d",&i);
            }
            if(i==5)
            {
                srand((unsigned)time(NULL));
                a=rand()%10+1;
                b=rand()%10+1;
                c=a+b;
                printf("%d+%d=\n",a,b);
                printf("请输入答案:\n");
                scanf("%d",&d);
                while(d!=c)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d+%d=\n",a,b);
                    scanf("%d",&d);
                }
                printf("回答正确!\n");
            }
            if(i==6)
            {
                srand((unsigned)time(NULL));
                a=rand()%10+1;
                b=rand()%100+1;
                c=a+b;
                printf("%d+%d=\n",a,b);
                printf("请输入答案:\n");
                scanf("%d",&d);
                while(d!=c)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d+%d=\n",a,b);
                    scanf("%d",&d);
                }
                printf("回答正确!\n");

            }
            if(i==7)
            {
                srand((unsigned)time(NULL));
                a=rand()%100+1;
                b=rand()%100+1;
                c=a+b;
                printf("%d+%d=\n",a,b);
                printf("请输入答案:\n");
                scanf("%d",&d);
                while(d!=c)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d+%d=\n",a,b);
                    scanf("%d",&d);
                }
                printf("回答正确!\n");
            }

            break;
        }

    case 2:
        {
            printf("***************************************************************\n");
            printf("5.一位数减一位数\n");
            printf("6.两位数减一位数\n");
            printf("7.两位数减两位数\n");
            printf("***************************************************************\n");
            printf("请输入题型:");
            scanf("%d",&i);
            while(i<5||i>7)
            {
                printf("输入错误,请重新输入:\n");
                scanf("%d",&i);
            }
            if(i==5)
            {
                srand((unsigned)time(NULL));
                c=rand()%10+1;
                d=rand()%10+1;
                e=c-d;
                printf("%d-%d=\n",c,d);
                printf("请输入答案:\n");
                scanf("%d",&g);
                while(g!=e)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d-%d=\n",c,d);
                    scanf("%d",&g);
                }
                printf("回答正确!\n");
            }

            if(i==6)
            {
                srand((unsigned)time(NULL));
                c=rand()%100+1;
                d=rand()%10+1;

                e=c-d;
                printf("%d-%d=\n",c,d);
                printf("请输入答案:\n");
                scanf("%d",&g);
                while(g!=e)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d-%d=\n",c,d);
                    scanf("%d",&g);
                }
                printf("回答正确!\n");
            }
            if(i==7)
            {
                srand((unsigned)time(NULL));
                c=rand()%100+1;
                d=rand()%100+1;
                e=c-d;
                printf("%d-%d=\n",c,d);
                printf("请输入答案:\n");
                scanf("%d",&g);
                while(g!=e)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d-%d=\n",c,d);
                    scanf("%d",&g);
                }
                printf("回答正确!\n");
            }
            break;
        }

    case 3:
        {
            printf("***************************************************************\n");
            printf("5.一位数乘一位数\n");
            printf("6.一位数乘两位数\n");
            printf("7.两位数乘两位数\n");
            printf("***************************************************************\n");
            printf("请输入题型:");
            scanf("%d",&i);
            while(i<5||i>7)
            {
                printf("输入错误,请重新输入:\n");
                scanf("%d",&i);
            }
            if(i==5)
            {
                srand((unsigned)time(NULL));
                e=rand()%10+1;
                f=rand()%10+1;
                g=e*f;
                printf("%d*%d=\n",e,f);
                printf("请输入答案:\n");
                scanf("%d",&h);
                while(h!=g)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d*%d=\n",e,f);
                    scanf("%d",&h);
                }
                printf("回答正确!\n");
            }
            if(i==6)
            {
                srand((unsigned)time(NULL));
                e=rand()%10+1;
                f=rand()%100+1;

                g=e*f;
                printf("%d*%d=\n",e,f);
                printf("请输入答案:\n");
                scanf("%d",&h);
                while(h!=g)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d*%d=\n",e,f);
                    scanf("%d",&h);
                }
                printf("回答正确!\n");
            }
            if(i==7)
            {
                srand((unsigned)time(NULL));
                e=rand()%100+1;
                f=rand()%100+1;

                g=e*f;
                printf("%d*%d=\n",e,f);
                printf("请输入答案:\n");
                scanf("%d",&h);
                while(h!=g)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d*%d=\n",e,f);
                    scanf("%d",&h);
                }
                printf("回答正确!\n");
            }
            break;
        }
    case 4:
        {
            printf("***************************************************************\n");
            printf("5.一位数除于一位数\n");
            printf("6.两位数除于一位数\n");
            printf("7.两位数除于两位数\n");
            printf("***************************************************************\n");
            printf("请输入题型:");
            scanf("%d",&i);
            while(i<5||i>7)
            {
                printf("输入错误,请重新输入:\n");
                scanf("%d",&i);
            }
            if(i==5)
            {
                srand((unsigned)time(NULL));
                g=rand()%10+1;
                h=rand()%10+1;
                i=g/h;
                printf("%d/%d=\n",g,h);

                printf("请输入答案:\n");
                scanf("%d",&j);
                while(j!=i)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d/%d=\n",g,h);
                    scanf("%d",&j);
                }
                printf("回答正确!\n");

            }
            if(i==6)
            {
                srand((unsigned)time(NULL));
                g=rand()%100+1;
                h=rand()%10+1;

                i=g/h;
                printf("%d/%d=\n",g,h);

                printf("请输入答案:\n");
                scanf("%d",&j);
                while(j!=i)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d/%d=\n",g,h);
                    scanf("%d",&j);
                }
                printf("回答正确!\n");
            }
            if(i==7)
            {
                srand((unsigned)time(NULL));
                g=rand()%100+1;
                h=rand()%100+1;

                i=g/h;
                printf("%d/%d=\n",g,h);

                printf("请输入答案:\n");
                scanf("%d",&j);
                while(j!=i)
                {
                    printf("回答错误,请重做:\n");
                    printf("%d/%d=\n",g,h);
                    scanf("%d",&j);
                }
                printf("回答正确!\n");

            }
            break;
        }
    case 0:
        {
            printf("谢谢使用!再见!\n");
            break;
        }
 }

}

这次每次生成的题目都不同,也可以进行判断正误,但感觉代码过多重复冗杂0.0,不知如何缩进又不改变原本的功能0.0。

时间: 2024-10-17 11:29:35

Practice1小学四则运算(改进)的相关文章

小学四则运算APP 第一个冲刺 第二天

团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次程序是为了解决上次判断的问题,但是还是出现新的问题页面无法调整,需要进行改进 本次改进代码为: import java.util.Random; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.

小学四则运算

- 题目: 请编写一个能自动生成小学四则运算题目的 “软件”. 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. 一:基本要求 1:题型选择界面设计,选择加.减.乘.除运算. 2:系统随机产生十以内的两个数进行运算. 3:练习时,用户从键盘取结果,正确和错误均有提示,按2,显示错误数.正确数和总数. 二:需求分析 编写小学四则运算测试系统,要求完成两位数的加,减,乘,除四则运算.能根据用户的输入来选择运算种类,用户输入答案后可以判断正误,做完一次测试后,用户可以决定是否继续

个人作业1:小学四则运算——基于控制台

源代码地址:http://git.oschina.net/junge212/25eubiqm170p3nzgj4yrh36.code.git a.需求分析: 自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24 运算符为 +, ?, ×, ÷ 并且要求能处理用户的输入,并判断对错,打分统计正确率. 要求能处理用户输入的真分数, 如 1/2, 5/12 等 使用 -n 参数控制生成题目的个

Individual Project &quot;写一个能自动生成小学四则运算题目的程序&quot;

一.题目简介 写一个能自动生成小学四则运算题目的程序. 初步拟定要实现的功能后,估计一下自己需要花多长时间.编程过程中记录自己实际用了多长时间. 然后和同学们比较一下各自程序的功能.实现方法的异同等等. 二.源码的github链接 https://github.com/gaino1/IndividualProject 三.所设计的模块测试用例.测试结果截图 四.问题及解决方案.心得体会 要想学好C语言,要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自

2016011990小学四则运算练习软件项目报告

 小学四则运算练习软件项目报告 项目克隆地址:https://git.coding.net/chenf640/workhome2_2.git 目录: 一.需求分析 二.功能设计 三.设计实现 四.算法详解 五.测试运行 六.代码展示 七.psp 八.总结 -------------------------------------------------- 一.需求分析 (一)功能需求  基本功能: 程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题. 每个数字

2016012075+小学四则运算练习软件项目报告

2016012075+小学四则运算练习软件项目报告 一.需求分析 二.功能设计 三.设计实现 四.算法详解 五.测试详解 六.代码展示 七.总结 八.PSP展示 coding.net地址:https://git.coding.net/sparkleStar/arithmetic.git,代码在Main.java中 一.需求分析 1.编写目标 使用Java编程语言,独立完成一个3到5个运算符的四则运算练习的命令行软件开发. 2.基本功能需求 (1)程序可接收一个输入参数n,然后随机产生加减乘除(分

2016012045 +小学四则运算联系项目报告

  2016012045 +x小学四则运算联系项目报告 代码仓库地址:https://git.coding.net/Enther/operation.git 一.需求分析. 此项目主要是为面向小学生的小学数学四则运算练习所用,所以归纳出以下几点要求: (1)     对于每个数而言不能过大,且其中不涉及小数与负数,即仅考虑100内整数形式的运算. (2)     题目中最少包含两个运算符且保证不一样,且涉及加减乘除. (3)     程序中需要输入参数n作为随机产生题目数量. 二.功能设计. 此

201571030335/201571030320《小学四则运算练习软件》结对项目报告

源码链接地址:  https://github.com/woaichimangguo(我的201571030335) https://github.com/mashifang(小伙伴的201571030320) 一. 需求分析: (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分. (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下: (3)程序为用户提供三种进阶四

201571030120/201571030119《小学四则运算练习软件软件需求说明》结对项目报告

任务一:以小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动 1.需求获取方式 (1)老师:搭档父亲是一名小学老师,由她提前和他通了电话,他答应帮她把电子版的调查问卷发放给他的同事.然后让他对我们的原型进行了分析. (2)家长和学生:亲戚中有小孩上小学,我们将包含我们软件原型和博客的调查问卷发给他们,同时获取了小学生和家长的意见,考虑小学生的理解能力有限,我们提前和家长进行了沟通,帮助孩子理解题目并作答. 2.调查问卷设计(https://www.wjx.cn/m/22531