作业1---四则运算

   一.需求分析:

除了整数以外,还要支持真分数的四则运算,真分数的运算,例如: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 + " " + "=");elseSystem.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python有序数组中删除元素_python刷LeetCode:26. 删除排序数组中的重复项

题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组…

mysql数据库修改数据库名称_MySQL数据库之MySQL 修改数据库名称的一个新奇方法...

本文主要向大家介绍了MySQL数据库之MySQL 修改数据库名称的一个新奇方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。MySQL在5.1引入了一个rename database操作,但在MySQL5.1.23后又不支持这个命令。可以说是一个实验性的…

Lesson 001 —— 数据

Lesson 001 —— 数据 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。数据是信息的表现形式和载体,可以使符号、文字、数字、语音、图像、视频等。 进制 进制也就是进…

工作记录四-etcd与flanneld

######################### etcd用来做flannld的数据中心,记录flannld各主机子网的配置## flannld使各容器实例处于同一子网内,可以相互访问####################### ### 一、etcd安装及使用## 1. 下载编译二进制包git clone https://github.com/coreos…

C#获取刚插入的数据的id

在开发程序中我们经常会遇到两个表或多个表关联同时插入数据的需求。 那么我们刚给主表插入一条数据,接着给副表插入数据时其中一个字段要存储与主表关联的id,那么我们该怎么获取刚插入的那条数据的id呢? insert infor values(,) ;SELECT Ide…

感谢您的提问_感谢您的反馈,我们正在改进的5种方法

感谢您的提问by freeCodeCamp通过freeCodeCamp 感谢您的反馈,我们正在改进的5种方法 (5 Ways We’re Improving Thanks to Your Feedback) This was originally published on our now-defunct blog on September 17, 2015.该文章最初于2015年9月17日发布在我们现已…

sql三个表join_「数据蒋堂」第 31 期:JOIN 简化 – 维度对齐

【数据蒋堂】第 31 期:JOIN 简化 – 维度对齐我们先把上一期中双子表对齐例子的 SQL 写出来:SELECT Orders.id, Orders.customer, A.x, B.y FROM Orders LEFT JOIN (SELECT id,SUM(price) x FROM OrderDetail GROUP BY id ) A ON Orders.idA.id LEFT J…

radius

radius协议使用的是UDP传输协议,UDP协议相对于TCP更快速,无连接的不可靠。radius协议的包格式:0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1-----------…

apt-get常用命令及工作原理

https://blog.csdn.net/mosquito_zm/article/details/63684608转载于:https://www.cnblogs.com/diyunpeng/p/9772866.html

day10_控制文件

---------------------验证互为镜像功能---------------------窗口1cd /oracle/app/oradata/ecomrm control03.ctl 窗口2SQL> startup force;ORACLE instance started.Total System Global Area 285212672 bytesFixed Size 1218992 bytesVariable Size …

堆叠自编码器中的微调解释_25种深刻漫画中的编码解释

堆叠自编码器中的微调解释by freeCodeCamp通过freeCodeCamp 25种深刻漫画中的编码解释 (Coding Explained in 25 Profound Comics) We asked our open source community to share the comics they found most profoundly described coding, via our news site. Here are their…

linux和mysql重点哪个_重要的MySQL 文档存储知识点扫盲

MySQL 文档存储 可以跳过底层数据结构创建、数据规范化和其它使用传统数据库时需要做的工作,直接存储数据。MySQL 可以提供 NoSQL JSON 文档存储Document Store 了,这样开发者保存数据前无需 规范化normalize 数据、创建数据库,也无需在开发之…

python端口扫描工具_Python实现的多线程端口扫描工具分享

# -*- coding: utf-8 -*-__author__ Phtih0nimport threading, socket, sys, cmd, os, Queue#扫描常用端口PortList [21, 22, 23, 25, 80, 135, 137, 139, 445, 1433, 1502, 3306, 3389, 8080, 9015]#得到一个队列def GetQueue(list):PortQueue Queue.Queue(65535)for p in …

Linux系统启动全过程

分为两部分,第一部分是硬件本身需要加载的信息,之后才是加载Linux相关信息,因为有装有双系统的机器嘛 1.计算机加电 2.BIOS开始运行,检测硬件:cpu、内存、硬盘等 3.BIOS读取CMOS存储器中的参数,选择启动设备…

day09_读写分离_Atlas小记

GRANT ALL PRIVILEGES ON *.* TO root% identified by mysql;FLUSH PRIVILEGES;主从库上全做--------------------------------------------------------------------yum install -y gcc*rpm -ivh Atlas-2.2.1.el5.x86_64.rpm 【rpm包直接安装】rpm -ql Atlas 【查看安装路径…

Free Code Camp现在有本地组

by freeCodeCamp通过freeCodeCamp Free Code Camp现在有本地组 (Free Code Camp now has Local Groups) Our open source community was born online. And our campers are adept at using the internet to communicate. Most of this communication is just short text messa…

二十四点游戏python_[求助]关于二十四点游戏python

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼24点纸牌游戏的开发24点是一种老少咸宜的游戏,它的具体玩法如下:给玩家4张牌,每张牌的面值在1~13之间,允许其中有数值相同的牌。采用加、减、乘、除四则运算,允…

python-3.6.2安装

1、下载python-3.6.2-amd64.exe安装包 官网下载地址:https://www.python.org/ 2、Python安装,双击傻瓜式安装(用英文路径,不要有空格), 特别要注意勾上Add Python 3.6 to PATH(勾选后&#xff0…

Siege压力工具

Siege官方:http://www.joedog.org/ Siege下载:http://www.joedog.org/pub/siege/siege-latest.tar.gz Siege解压并安装:# tar -zxvf siege-latest.tar.gz # cd siege-latest/ #./configure #make #make installSiege使用:# siege -h 查看相关…

递归javascript_JavaScript中的递归

递归javascriptby Kevin Ennis凯文恩尼斯(Kevin Ennis) JavaScript中的递归 (Recursion in JavaScript) I’m just gonna get this out of the way right up front, because people get really angry otherwise:我只是直接解决这个问题,因为否则人们会非常生气&…