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


    a.需求分析:

      自动生成小学四则运算题目的命令行 “软件”,满足以下需求:   

      1. 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
      2. 运算符为 +, −, ×, ÷
      3. 并且要求能处理用户的输入,并判断对错,打分统计正确率。
      4. 要求能处理用户输入的真分数, 如 1/2, 5/12 等
      5. 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
        Myapp.exe -n 10

    b.功能设计:

      生成整数四则运算和分数四则运算,并判断对错,打分统计正确率

    c.设计实现:

      分函数zs()主要负责整数四则运算,随机产生两个随机数和随机运算符并计算;分函数gys是求最大公约数函数;分函数fs()主要负责分数四则运算随机产生两个随机数和随机运算符并调用第三个分函数gys()进行计算;主函数main()主要实现随机调用两个分函数zs()和fs()并统计正确率

    d.代码说明:

    #include "stdio.h"

    #include "stdlib.h"

    #include "time.h"
    #include "string.h"
     
    int gcd(int x,int y)
    {
        int r;
        r=x%y;
        while(r!=0)
        {
            x=y;
            y=r;
            r=x%y;
        }
        return y;
    }
    int zhengshu(){
        int left,mid,right,result,int_number;
        srand((unsigned)time(NULL));
        left=rand()%10;
        mid=rand()%4;
        right=rand()%10;
        printf("%d",left);
        switch(mid)
        {
            case(0):result=left+right;
            printf(" + ");break;
            case(1):result=left-right; 
            printf(" - ");break;
            case(2):result=left*right;
            printf(" ×");break;
            case(3):result=left/right;
            printf(" ÷");break;
        }
        printf("%d =",right);
        scanf("%d",&int_number);
        if(int_number == result)
            {
                printf("回答正确!    下一题: ");
                score=score+1; 
            }
        else{
                printf("回答错误!    下一题: ");
            }
    }
     
    int fenshu(){
        int left_x,left_y,mid,right_x,right_y,x,y,GYS,int_number1,int_number2;
        srand((unsigned)time(NULL));
        do{
        left_x=rand()%10+1;
        left_y=rand()%10+1;
        mid=rand()%4;
        right_x=rand()%10+1;
        right_y=rand()%10+1;
        }while(!(left_x<left_y&&right_x<right_y));
        printf("%d/%d",left_x,left_y);
            switch(mid)
            {
                case(0):x=left_x*right_y+left_y*right_x;
                        y=left_y*right_y;
                printf(" + ");break;
                case(1):x=left_x*right_y-left_y*right_x;
                        y=left_y*right_y;  
                printf(" - ");break;
                case(2):x=left_x*right_x;
                        y=left_y*right_y;
                printf(" ×");break;
                case(3):x=left_x*right_y;
                        y=left_y*right_x;
                printf(" ÷");break;
            }
            printf("%d/%d =",right_x,right_y);
        GYS=gcd(x,y);
        x=x/GYS;
        y=y/GYS;
        scanf("%d/%d",&int_number1,&int_number2);
        if(int_number1==x&&int_number2==y)
        {
            printf("回答正确!    下一题: ");
            score=score+1; 
        }
        else{
            printf("回答错误!    下一题: ");
        }
    }
    int main(){
        int h,count;
          int score=0;
        printf("请输入题目数?");
        scanf("%d",&count);
        for(int i=0;i<count;i++)
        {
            h=rand()%2;
            if(h==0)
            {zs();}
            else
            {fs();}
        }
        printf("正确率为:%lf",score*1.0/count);
    }
  • 相关阅读:
    nginx安装
    Mybatis使用generator自动生成映射配置文件信息
    Mysql报错Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
    JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
    js获取select标签选中的值
    linux下使用ffmpeg将amr转成mp3
    String与InputStream互转的几种方法
    javascript,检测对象中是否存在某个属性
    SQL语句在查询分析器中可以执行,代码中不能执行
    shell实现SSH自动登陆
  • 原文地址:https://www.cnblogs.com/Xshopping/p/6516924.html
Copyright © 2020-2023  润新知