• 个人作业1——四则运算题目生成程序


    源代码详见:https://coding.net/u/hmhhh/p/hmh_homework1/git/tree/master/

    a.需求分析:

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

    1. 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24

    2. 运算符为 +, −, ×, ÷

    3. 并且要求能处理用户的输入,并判断对错,打分统计正确率。

    4. 要求能处理用户输入的真分数, 如 1/2, 5/12 等

    5. 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
    Myapp.exe -n 10

    b.功能设计:

    1. 自动生成题目
    2. 除了整数,还要支持真分数运算
    3. 判断答案正确与否(可以识别真分数答案),如果错误显示正确答案,并显示正确率
    4. 可以控制生成题目数量

    c.设计实现:

    1. 根据输入的n,生成相应的题目。
    2. 获取答案并检验对错
    3. 返回结果并显示正确率

    d.代码说明:

    使用辗转相除法,求最大公约数

    int GCD(int k,int l) //求最大公约数
         
    {
         
             int  temp;          /*定义整型变量*/  
         
              if(k<l)             /*通过比较求出两个数中的最大值和最小值*/  
        
              {   
    
                temp=k;  
         
                  k=l;  
         
                  l=temp;  
         
               } /*设置中间变量进行两数交换*/  
         
               while(l!=0)           /*通过循环求两数的余数,直到余数为0*/  
         
               {  
         
                 temp=k%l;  
     
                 k=l;              /*变量数值交换*/  
         
                 l=temp;  
         
                }  
         
              return k;      
         
    }
    int LCM(int k, int l)
         
    {
                 int temp;  
         
              temp=GCD(k,l);  /*调用自定义函数,求出最大公约数*/  
         
              return  (k*l/temp);             //最大公约数*最小公倍数=两数乘积 求最小公倍数   
         
    }

     分数要求生成真分数,所以多了个判断和转换。

    if(num3>num4)
         
                    {
         
                        num5=num3;
         
                        num3=num4;
         
                        num4=num5;
                        }
         
                    printf("(%d/%d)=",num3,num4);

    e.测试运行:

    PSP表:

    PSP2.1

    Personal Software Process Stages

    Estimated time(min)

    actual time(min)

    Planning

    计划

    30

    25

    · Estimate

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

    240

    310

    Development

    开发

    120

    160

    · Analysis

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

    20

    15

    · Design Spec

    生成设计文档

    20

    24

    · Design Review

    设计复审

    10

    15

    · Coding Standard

    代码规范

    10

    15

    · Design

    具体设计

    30

    40

    · Coding

    具体编码

    100

    150

    · Code Review

    代码复审

    15

    20

    · Test

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

    30

    25

    Reporting

    报告

    40

    45

    ·

    测试报告

    5

    5

    ·

    计算工作量

    5

    8

    ·

    并提出过程改进计划

    10

    15

     

    实验小结:

           这个实验我是用c写的,因为用的是循环,不能一次性全部生成题目,只能做完一题后生成一题。后来查阅了资料也看了其他同学用Java写成的,用的是栈,功能实现好很多。还是自己编程语言能力不足,要继续学习。而且写到分数的四则运算,几乎是借助于资料查阅才完成。编写代码的时间非常长。同样也是长时间下才完成这次作业。总而言之是练习不够、积累不够,要勤加练习了。

  • 相关阅读:
    设计模式之-工厂方法模式
    设计模式之-简单工厂模式
    设计模式之-单例模式
    Ubuntu-18.04 下使用Nginx搭建高可用,高并发的asp.net core集群
    Ubuntu-18.04 下修改root用户密码,安装SSH服务,允许root用户远程登录,安装vsftp服务器
    ASP.NET Core 系列[1]:ASP.NET Core 初识
    .net core系列之《将.net core应用部署到Ubuntu》
    动态内存分配函数
    C++ sort()对结构体排序
    STL
  • 原文地址:https://www.cnblogs.com/aidabai/p/6513716.html
Copyright © 2020-2023  润新知