博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
作业1---四则运算
阅读量:6250 次
发布时间:2019-06-22

本文共 3232 字,大约阅读时间需要 10 分钟。

   一.需求分析:

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

运算符为 +, −, ×, ÷

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

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

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

 

 二.功能设计:

根据所写的代码,随机生成数字以及运算符号,并且组合成式子。

能生成分数,并且是最简分数。

输入计算结果后,如正确,输出正确,错误,则输出正确答案,并且能统计出错的题目个数。

   

三.设计实现:

此次实验,设置了4个class,主类--Main用来调用其他类,负责输入输出,判定结果以及统计错误个数

                                    类--result 计算

                                    类--fenshu 求最大公约数

                                    类--qqq用来生成的式子

 

四.代码说明:

主要的是main和qqq两个类

main类:用循环语句来计算错误的个数,当number=0时,则跳出循环错误个数加1.

import java.util.Scanner;public class Main {    static randomqqq rand = new randomqqq();    static result end = new result();    public static void main(String[] args) {        int number = 0;        int falseNum = 0;        String userresult, trueresult, fenzi, fenmu;        Scanner in = new Scanner(System.in);        System.out.print("输入随机生成的式子个数:");        number = in.nextInt();        for (; number != 0; number--) {            rand.randTest();            System.out.println("你输入的答案是:");            Scanner result = new Scanner(System.in);            userresult = result.nextLine();            trueresult = Integer.toString(rand.result);            if (rand.m == 0 && rand.randNum != 3) {                trueresult = Integer.toString(rand.result);            } else {                trueresult = Integer.toString(rand.fenzi) + "/" + Integer.toString(rand.fenmu);            }            if (userresult.equals(trueresult)) {                System.out.println("答案正确!");            } else {                falseNum++;                System.out.println("答案错误!  正确的答案:" + trueresult);            }        }        System.out.println("错误的个数:" + falseNum);    }}

 

类qqq:选择参数,计算出式子

int temp1 = yuefen.getnumber(a, c);        int temp2 = yuefen.getnumber(b, d);        int temp4 = yuefen.getnumber(a, b);                int fz = end.up(a, b, c, d, randNum);        int fm = end.fenmu(a, b, c, d, randNum);        int temp3 =yuefen.getnumber(fz,fm) ;        switch (m) {        case 0:            if (b == 0 && randNum == 3)                System.out.println(b + " " + ch[randNum] + " " + a + " " + "=");            else                System.out.println(a + " " + ch[randNum] + " " + b + " " + "=");            break;        case 1:            System.out.println(                    a / temp1 + "/" + c / temp1 + " " + ch[randNum] + " " + b / temp2 + "/" + d / temp2 + " " + "=");            break;        }        if (m == 0 && randNum != 3)            result = end.result1(a, b, randNum);        else if (m == 0 && randNum == 3) {            fenzi = a / temp4;            fenmu = b / temp4;        } else {            fenzi = fz/ temp3;            fenmu = fm / temp3;        }

 

 

五.测试运行:

PSP:

PSP2.1

Personal Software Process Stages

Time (%) Senior Student

Time (%)

Planning

计划

8

5

· Estimate

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

20

5

Development

开发

25

20

· Analysis

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

5

5

· Design Spec

生成设计文档

5

5

· Design Review

设计复审

0

0

· Coding Standard

代码规范

3

3

· Design

具体设计

10

15

· Coding

具体编码

50

40

· Code Review

代码复审

5

5

· Test

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

10

15

Reporting

报告

5

5

·

测试报告

1

1

·

计算工作量

2

5

·

并提出过程改进计划

3

2

 

实验总结:

 在编程之前,需要思考好可能忽略的问题以及可能出现的问题,比如此次实验,分数需要最简化,分数中,分母不为0的情况。计算错误的题数时,如何设计循环语句使其能够正确计算个数,生成式子时可能会出现错误的式子,式子的格式要规范等问题。有问题自己积极思考,思考不出来呢就问百度,找同学。 编程需要一步一步训练,才能有所进步。

 

转载于:https://www.cnblogs.com/lasolitude/p/6514118.html

你可能感兴趣的文章
OpenCart之侧边浮动联系我们表单(Side Contact Us Form)
查看>>
PureWhite OpenCart 商城自适应主题模板 ABC-0009
查看>>
zabbix安装配置
查看>>
CentOS 配置***客户端
查看>>
线上应用故障排查之二:高内存占用
查看>>
老毛桃 win7
查看>>
第四次作业
查看>>
4196. [NOI2015]软件包管理器【树链剖分】
查看>>
Apache Spark源码走读之20 -- ShuffleMapTask计算结果的保存与读取
查看>>
Ext 4.2.1 教大家如何去规避ext-all和动态加载机制的优缺点
查看>>
异常处理汇总 ~ 修正果带着你的Code飞奔吧!
查看>>
jdbc
查看>>
百度地图需要的效果-有感
查看>>
查看 NPM、Yarn 全局安装的包
查看>>
[BZOJ 2140]稳定婚姻(强连通分量)
查看>>
人工智能工程师学习路线
查看>>
Nginx入门(2)反向代理和负载均衡
查看>>
MySQL库表状态查询
查看>>
【鲁班学院】干货分享!《面试必备之Mysql索引底层原理分析》
查看>>
第十一周项目0-是春哥啊
查看>>