• 作业二:四则运算


    题目:自动生成四则运算题目

    主要功能:通过界面选择,可选择生成n道整数或是真分数的四则运算题目。

    设计思想:由简到繁,逐步完成功能。

    1.  随机生成一个100以内随机整数加法四则运算。用到rand()函数。

    2. 完善随机符号功能,用到switch()函数,通过0,1,2,3四个数字进行分支+-*/符号。

    3. 完善减法和除法功能:在减法中,由于是小学生四则运算,所以结果避免出现负数;在除法中,除数不能为0。

    4. 完善循环功能,最初设置为10道题目。使用for()。

          到此,整数的四则运算的基本程序已经完成。接下来是在整数程序的基础上编写真分数四则运算。真分数四则运算的程序与整数的程序基本相同,由于真分数需要由两个随机数组成一个随机数,所以增加了两个随机数,但是基本思路和整数的程序相同,此处不再介绍。下面是两个程序整合的思路:

    1. 整合整数与真分数四则运算的程序。用if语句判断生成四则运算的种类(1为整数,2为真分数)。

    2. 完善生成题目个数功能,由原来的10道变成由用户自选。 

    源代码:

    #include<stdio.h>
    #include <stdlib.h> 
    #include <time.h> 
    int main()
    {
        int n,j;//n生成四则运算题目个数;j选择四则运算种类 
        printf("请输入要生成四则运算题目的个数:");
        scanf("%d",&j);
        printf("请输入要生成的四则运算种类(1为整数,2为真分数):");
        scanf("%d",&n);    
        if(n==1)//生成整数四则运算 
        {
            int a,b,i,t;//a第一个数;b第二个数; 
            char c;//符号 
            srand((unsigned)time(NULL));
            for(i=0;i<j;i++){
                a=rand()%100;
                b=rand()%100;
                c=rand()%4;
                switch(c){
                    case 0:c='+';break;
                    case 1:if(a<b){t=a;a=b;b=t;};c='-';break; 
                    case 2:c='*';break;
                    case 3:if(b!=0){c='/';}else{i=i+1;};break;
                }
            printf("%d%c%d=
    ",a,c,b);
            }
        }        
        else{
            int a,b,a1,b1,i;//a,b第一个分数; a1,b1第二个分数 
            char c;//符号 
            srand((unsigned)time(NULL));
            for(i=0;i<j;i++){
                a=(int)rand()%100;
                b=(int)rand()%100;
                while(a==0||a>=b){
                    a=(int)rand()%100;
                    b=(int)rand()%100;
                }
                a1=(int)rand()%100;
                b1=(int)rand()%100;
                while(a1==0||a1>=b1){
                    a1=(int)rand()%100;
                    b1=(int)rand()%100;
                }
                c=rand()%4;
                switch(c){
                    case 0:c='+';break;
                    case 1:c='-';break;
                    case 2:c='*';break;
                    case 3:c='/';break;    
                }
            printf("%d/%d%c%d/%d=
    ",a,b,c,a1,b1);
            }
        }
    }
      

    程序运行截图:

    总结:

          这次编写的程序对我来说是个挑战,我在编程这方面并不擅长基础也不是十分扎实,所以我选择了我掌握比较好的c语言来编写,虽然这项作业仍旧花费了我许多时间和精力,但是,在编写的过程中我也收获满满。刚开始看到题目时,我毫无头绪不知从何下手,老师就提出“由简到繁 ”这个概念,先完成一个最基础的程序再逐步完善功能。按照老师的方法,当我逐步去做的时候发现,其实编程没有我想象中的那么难,但是一定要有编写的思路和流程,很多东西到后来就水到渠成。虽然在过程我依旧遇到很多困难(基础的知识掌握不牢的问题),但是在编写的过程中通过看书和网上查阅边学边写,很多问题都迎刃而解,自己在过程中也巩固了之前的知识并学习了新知识。

  • 相关阅读:
    springboot mybatis-plus 多数据源
    怎样建网站?
    哪些软件外包公司为什么不赚钱?
    初高中英语 牛津书虫全套系列 英汉双语读物系列1-6级 音频+文本网盘下载【收藏】
    英语零基础直达六级水平-英语学习全能套装视频完整版【收藏】
    重构:改善既有代码的设计(第2版)(pdf,epub,azw3,mobi)[收藏]
    彻底关闭浏览器的弹出广告或通知(Chrome+Firefox )
    《读者》杂志38年合集 (1981-2018)电子版【收藏】
    怎样在知乎赚钱?(知乎好物)
    《故事会》(2010-2019)全年合集pdf版 [收藏]
  • 原文地址:https://www.cnblogs.com/heyue/p/5278206.html
Copyright © 2020-2023  润新知