作业二:四则运算

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

主要功能:通过界面选择,可选择生成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=\n",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=\n",a,b,c,a1,b1);
        }
    }
}
  

 

程序运行截图:

 

总结:

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

posted @ 2016-03-15 09:57  hyue  阅读(364)  评论(2编辑  收藏  举报