zoukankan      html  css  js  c++  java
  • 个人作业1——四则运算题目生成程序(基于控制台)

    No.1 四则运算题目生成程序(基于控制台)

    程序代码

    需求分析:

    能够根据用户自身对题目数量的需求自动生成一定数量的包含分数的四则运算题目的命令行程序。

    功能设计:

    • 除了整数以外,还要支持真分数的四则运算,真分数的运算
    • 并且要求能处理用户的输入,并判断对错,打分统计正确率
    • 要求能处理用户输入的真分数
    • 使用 -n 参数控制生成题目的个数

    设计实现:

    程序是用c++实现的,主要有四个函数,主函数随机生成整数或者分数算法,divisor(int i, int j)计算最大公约数,zs为计算整数算法,fs为计算分数算法。

    代码说明:

    随机数为0是整数四则运算,随机数为1是分数四则运算

    int main() {
        int n, c;
        float d;
        cout<<"请输入要生成的题目数量-n:";
        cin >> n;
        for (int i = 0; i < n; i++) {
            c = rand() % 2;
            switch (c) {
            case 0:zs(); break;
            case 1:fs(); break;
            default:
                cout << "wrong" << endl;
                break;
            }
        }
        d=count/(float)n;
        cout<<"本次共"<<n<<"道题,"<<"答对"<<count<<"道题"<<endl;
        cout << "正确率为:" <<setprecision(2)<< d<<endl;
        system("pause");
        return 0;
    }

    求分数分子与分母最大公约数以便化简

    int divisor(int i, int j)//最大公约数
    {
        int k=1,s;
        for(s=1;s<=i&&s<=j;s++){
        if(i%s==0&&j%s==0)
            k=s;
        }
        return k;
    }

      

    分数随机生成分子分母及四则运算主要代码如下:

    int fs() {//分数算法
        int fz1, fm1, fh, t, fz, fm, c, r1, r2, fz2, fm2;//fz:约分后分子,fm:约分后分母,c:分式最大公约数
        char r3[10], r4[10];
        srand(time(NULL));
        fz1 = rand() % 99;
        fm1 = rand() % 100;
        fz2 = rand() % 99;
        fm2= rand() % 100;
        fh = rand() % 4;
        r1 = 0;
        r2 = 0;
        while (fz1 == 0)
            fz1 = rand() % 99;
        while(fz2== 0)
            fz2= rand() % 99;
        while (fm1 == 0 || fm1 == 1|| fm1<=fz1)
            fm1 = rand() % 100;
        while(fm2== 0 || fm2== 1||fm2<=fz2)
            fm2= rand() % 100;
    
       ```
    }

      

    测试如下

    PSP:

    PSP2.1

    Personal Software Process Stages

    Time (min) Senior Student

    Time (%)

    Planning

    计划

    15

    25

    · Estimate

    估计这个任务需要多少时间

    30

    40

    Development

    开发

    40

    60

    · Analysis

    需求分析 (包括学习新技术)

    10

    25

    · Design Spec

    生成设计文档

    10

    15

    · Design Review

    设计复审

    5

    3

    · Coding Standard

    代码规范

    20

    20

    · Design

    具体设计

    20

    15

    · Coding

    具体编码

    60

    120

    · Code Review

    代码复审

    5

    5

    · Test

    测试(自我测试,修改代码,提交修改)

    10

    10

    Reporting

    报告

    10

    15

    ·

    测试报告

    3

    5

    ·

    计算工作量

    3

    5

    ·

    并提出过程改进计划

    5

    0

     小结:由于平时编码较少,出现了许多错误,比如对随机数的生成并不熟悉,最后查阅了资料才得以解决,这也导致了效率比较低。

  • 相关阅读:
    MFC Windows 程序设计>WinMain 简单Windows程序 命令行编译
    AT3949 [AGC022D] Shopping 题解
    CF643D Bearish Fanpages 题解
    CF643C Levels and Regions 题解
    CF241E Flights 题解
    CF671C Ultimate Weirdness of an Array 题解
    CF1592F Alice and Recoloring 题解
    GYM 102452E 题解
    CF494C Helping People 题解
    P5556 圣剑护符
  • 原文地址:https://www.cnblogs.com/hy16/p/6507210.html
Copyright © 2011-2022 走看看