个人作业1——四则运算题目生成程序(基于java)

项目代码:

https://git.coding.net/YJh_/11.git

题目要求:

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

 

程序设计:

  主要功能:

  1. 真分数的四则运算
  2. 按照用户输入的题数出题
  3. 能得出用户的正确率

  设计的主要函数以及属性:

  主要算法代码:

public static int commonDivisor(int x, int y) // 计算2个数的最大公约数。按绝对值计算。
        {
            if (x == 0 || y == 0) {
                return 1;
            }
            int x1;
            int y1;

            x1 = (Math.abs(x) > Math.abs(y)) ? Math.abs(x) : Math.abs(y); // 使x1>y1.
            y1 = (Math.abs(x) > Math.abs(y)) ? Math.abs(y) : Math.abs(x);
            int z = 1;
            while (z != 0) {
                z = x1 % y1;
                x1 = y1;
                y1 = z;
            }
            return x1;
        }

   主要四则运算方法:

    Calculator add(Calculator r) { // 加法运算
        int a = r.getNumerator();
        int b = r.getDenominator();
        int newNumerator = numerator * b + denominator * a;
        int newDenominator = denominator * b;
        
        int maxCommon = commonDivisor(newNumerator, newDenominator);
        Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
        return result;
    }

    Calculator sub(Calculator r) { // 减法运算
        int a = r.getNumerator();
        int b = r.getDenominator();
        int newNumerator = numerator * b - denominator * a;
        int newDenominator = denominator * b;
        
        int maxCommon = commonDivisor(newNumerator, newDenominator);
        Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
        return result;
    }

    Calculator muti(Calculator r) { // 乘法运算
        int a = r.getNumerator();
        int b = r.getDenominator();
        int newNumerator = numerator * a;
        int newDenominator = denominator * b;
        
        int maxCommon = commonDivisor(newNumerator, newDenominator);
        Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
        return result;
    }

    Calculator div(Calculator r) { // 除法运算
        int a = r.getNumerator();
        int b = r.getDenominator();
        int newNumerator = numerator * b;
        int newDenominator = denominator * a;
        
        int maxCommon = commonDivisor(newNumerator, newDenominator);
        Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
        return result;
    }

 

程序测试:

 

项目总结:

   由于java学得并不好,重新回去看了java笔记学习,也上网查了一些资料,包括如何提交代码到码市,装egit的时候,因为下载的eclipse是中文版的,都不大懂,安装了一直出差错,所以前前后后花费了挺多的时间了,请教了班级里的一些比较厉害的同学,做出了这个程序。从中深刻了解到,平时要多多实践,熟能生巧。纸上得来终觉浅,绝知此事要躬行。

PSP表格

PSP2.1Personal Software Process StagesTime (%) Senior StudentTime (%)
Planning计划815
· Estimate估计这个任务需要多少时间815
Development开发2015
· Analysis需求分析 (包括学习新技术)11
· Design Spec生成设计文档11
· Design Review设计复审00
· Coding Standard代码规范107
· Design具体设计89
· Coding具体编码66
· Code Review代码复审11
· Test测试(自我测试,修改代码,提交修改)33
Reporting报告1010
·Test Report测试报告87
· Size Measurement计算工作量22
·Postmortem & Process Improvement Plan并提出过程改进计划00

转载于:https://www.cnblogs.com/1yhq/p/6513629.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值