zoukankan      html  css  js  c++  java
  • 软件工程第一次作业 四则运算程序编写

    2016年3月10日  晴 沈阳

    一、程序制作初衷以及功能介绍

    制作初衷:本次四则运算程序我使用的是C语言,考虑到考研报考学校专业课考的是C语言所以打算借此好好复习C语言语法。

    本程序主要功能是:1、自动生成30道题和其答案

                             2、支持整数四则运算

                             3、支持分数四则运算

    二、程序演示

    1、初始界面

    2、输入1后按回车键进入出题与答案界面

    3、按任意键位进入下一界面

    4、按任意键位进入下一界面

    三、编写代码想法与过程

    首先,我先在草稿质上把四则运算的数学方法整理清楚,然后确定下来把整数运算和真分数运算分开进行编写,

    于是便诞生了两个子函数Simple和Real。接着先书写主函数,主函数主要通过if语句对输入的数字进行判断从

    而选择是否进入子函数Shengcheng中。由于要生成30道题所以在Shengcheng函数中利用for循环实现30次

    循环产生30道题,并利用随机函数使整数m要么值为1要么值为2以此来判断使用Simple函数还是Real函数,

    因此生成整数运算和真分数运算的几率是对半开的。

    Simlpe函数中利用随机函数来实现使整数四种运算出现的几率相同,在四则运算中特别的是 1.减法运算需要

    判断下随机产生的两个数大小,查看其是否需要交换,因为所得到的值必须是正数;2.除法运算则是利用乘法

    运算来完成,为了不让出现小数,例如先随机产生2个整数a、b相乘得到整数c,再将c的值与a的值交换则能实

    现a/b=c,c一定是整数。

    Real函数中同样利用随机函数来实现使整数四种运算出现的几率相同,在四则运算中与整数不同的是:1.加减

    法运算需要先通过分数运算,合成一个真分数,再上下同除通过MaxGYS函数得出最大公约数最终得到答案。

    2.除法则需要将被除数分子与分母交换值后根据乘法运算编写。

    完成30次运算后,我考虑到是给小学2年级学生使用,所以建立了一个友好的鼓励界面,如果推出程序则还会提

    示用户如果有意见发送至邮箱。

    四、代码附录

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #include<math.h>
    void Shengcheng();
    void Simple();
    void real();
    int MaxGYS(int a,int b);
    int system(const char *string);

    int main(void)
    {
    int n;
    Loop1: printf(" *欢迎来到朴宝英的每日练习* [1] 生成小学数学四则运算30题练习 [2] 退出程序 请输入相应的选项,按回车键确定:");
    scanf("%d",&n);
    system("cls");
    if (n==1)
    Shengcheng();
    else
    if (n==2)
    {
    printf(" 感谢您对朴宝英软件公司的支持 如果您对软件有意见请把意见以邮件形式发至 295793858@qq.com 我们将会尽快给您答复! ");
    return 0;
    }
    else
    printf("输入错误请重新输入");
    goto Loop1;
    return 0;
    }

    void Shengcheng()
    {
    int m,i;
    for(i=0;i<30;i++)
    {
    m=rand()%2+1;
    if (m==1)
    Simple();
    else
    real();
    }
    system("pause");
    system("cls");
    printf(" 宝英欧尼:宝宝今天全做对了吗? 宝英欧尼:全对摸摸头哦~ 宝英欧尼:做错也没关系,按任意键回到主页再来一次!Fighting~-0- ");
    system("pause");
    system("cls");
    return ;
    }

    void Simple()
    {
    int m,b,c,d,t;
    m=rand()%3+1;
    b=rand()%20+1;
    c=rand()%20+1;
    switch(m)
    {
    case 1:{
    d=b+c;
    printf("%d+%d= %d ",b,c,d);
    }break;
    case 2:{
    if(b>c)
    {
    t=b;
    b=c;
    c=t;
    }
    d=b-c;
    printf("%d-%d= %d ",b,c,d);
    }break;
    case 3:{
    d=b*c;
    m= rand()%2+1;
    if(m==1)
    printf("%d*%d= %d ",b,c,d);
    else
    printf("%d/%d= %d ",d,b,c);
    } break;
    }
    return ;
    }

    void real()
    {
    int a,b,c,d,e,f,g,h,t;
    a=rand()%4+1;
    b=rand()%9+1;//第一个数字分子
    c=rand()%9+1;//第一个数字分母
    d=rand()%9+1;//第二个数字分子
    e=rand()%9+1;//第二个数字分母
    if(b>c)
    {
    t=b;
    b=c;
    c=t;
    }
    if(d>e)
    {
    t=d;
    d=e;
    e=t;
    }

    switch(a)
    {
    case 1:{
    f=c*e;
    g=b*e+d*c;
    h=MaxGYS(g,f);
    f=f/h;
    g=g/h;
    printf("(%d/%d)+(%d/%d)= (%d/%d) ",b,c,d,e,g,f);
    }break;
    case 2:{
    f=c*e;
    g=b*e-d*c;
    if(g>0)
    {
    h=MaxGYS(g,f);
    f=f/h;
    g=g/h;
    printf("(%d/%d)-(%d/%d)= (%d/%d) ",b,c,d,e,g,f);
    }
    else
    {
    g=abs(g);
    h=MaxGYS(g,f);
    f=f/h;
    g=g/h;
    printf("(%d/%d)-(%d/%d)= (%d/%d) ",d,e,b,c,g,f);
    }
    }break;
    case 3:{
    f=c*e;
    g=b*d;
    h=MaxGYS(g,f);
    f=f/h;
    g=g/h;
    printf("(%d/%d)*(%d/%d)= (%d/%d) ",b,c,d,e,g,f);
    }break;
    case 4:{
    f=b*e;
    g=c*d;
    h=MaxGYS(g,f);
    f=f/h;
    g=g/h;
    printf("(%d/%d)/(%d/%d)= (%d/%d) ",b,c,d,e,g,f);
    }
    default:break;
    }
    return ;
    }


    int MaxGYS(int a,int b)
    {
    int c,t;
    if(a<b)
    {
    t=a;
    a=b;
    b=t;
    }
    while(b!=0)
    {
    c=a%b;
    a=b;
    b=c;
    }
    return a;
    }

  • 相关阅读:
    Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法输入日志标题
    Linux下安装oracle数据库提示DISPLAY not set. Please set the DISPLAY and try again。
    redhat 关机注销命令详解
    VirtualBox的四种网络连接方式
    修改RedHat的系统显示时间
    insufficient memory to configure kdump(没有足够的内存)解决方法(待验证、待解决)
    xen坑随笔 heartbeat dpkg垃圾数据库清除
    tomcat 监控脚本
    负载均衡随笔
    GIT命令介绍
  • 原文地址:https://www.cnblogs.com/bigchicken/p/5263732.html
Copyright © 2011-2022 走看看