一.需求分析:

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

作业1---四则运算相关推荐

  1. 【2017下集美大学软工1412班_助教博客】个人作业1——四则运算题目生成程序 成绩公示...

    作业要求 个人作业1--四则运算题目生成程序(基于控制台) 使用 -n 参数控制生成题目的个数 使用 -r 参数控制题目中数值 生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数 ...

  2. 第五次作业:四则运算之升级

    本次作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232 我的github地址:https://github.com/ ...

  3. 个人作业1 四则运算题目生成程序

    项目地址:https://gitee.com/wenguixin/javascript_four_algorithms.git 1.题目描述: 生成定量小学四则运算的题目. 2.需求分析: 在现今的时 ...

  4. 2017年软件工程第四次作业-3四则运算

    one 要求1 参考<构建之法>第4章两人合作,结对编程上述功能,要求每人发布随笔1篇 (代码是共同完成的,博客是分别完成的). (1) 给出每个功能的重点.难点.编程收获.(2)给出结对 ...

  5. 5.1作业5 四则运算 测试与封装

    这次作业是我们小组成员我(21林庆光)和同伴(13卢盛添)的结伴作业,按照老师的要求我们换了同伴组队来完成这次的作业.这次的作业是在上次作业四则运算的基础上完成的,实现了对其计算功能类的封装,完成代码 ...

  6. 作业 20180925-6 四则运算试题生成

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2148 此作业代码地址:https://git.coding.net/ti ...

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

    需求分析: 1.控制运算表达式的题目数量,根据键盘输入数字提供对应数量表达式 2.运算符个数不能超过三个 3.能够自动生成四则运算 4.随机生成分数运算或整数运算 5.程序判断对错并给出正确答案 6. ...

  8. 软件工程随堂小作业——随机四则运算Ⅱ(C++)

    一.设计思路 设计思路已给出,此处不再赘述. 二.源代码 (1)四则运算2.cpp(源文件) 1 // 四则运算2.cpp : Defines the entry point for the cons ...

  9. 个人作业1——四则运算题目生成程序(基于控制台)

    题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除 ...

  10. 软件工程第四周作业之四则运算-C#实现

    拿到题目的时候,快放假了,也没心思做.十月七号的一下午大概从两点做到八点半,加上十月八号的十二点半到两点半,做了一共八个半小时,去掉吃饭半个小时那么一共做了八个小时. 逆波兰表达式我是扒的别人代码,没 ...

最新文章

  1. C++ Error: no appropriate default constructor available
  2. 同软件多个线程设置不同ip_5-13网络编程(附带多线程死锁,线程通信)
  3. 4-spark学习笔记-spark运行模式与原理
  4. pwn学习总结(一) —— 常用命令
  5. [HAOI2008]玩具取名
  6. 学会这个BBC,你的图也可以上新闻啦!
  7. java word模板替换多行_Java动态替换word模板的最佳实践
  8. 推荐系统-Task05推荐系统流程构建
  9. asp.net获取ip地址的方法
  10. vscode settings.json配置
  11. 二本学院计算机专业的考研er如何顺利上岸?
  12. 电脑录屏软件哪个最好用?都是高效高清!
  13. oracle 定时任务 每天执行,Oracle定时任务(定时执行某个SQL语句)
  14. java 生成 rtf_java itext生成rtf文档
  15. 台式机配置网站服务器,台式机搭建服务器的配置
  16. 【STM32H7的DSP教程】第16章 DSP功能函数-数据拷贝,数据填充和浮点转定点
  17. 【GitHub上传文件夹:bug】 ! [rejected] master - master (non-fast-forward)
  18. js将网页保存成图片
  19. win10 下 caffe 的第一个测试程序(附带详细讲解)
  20. linux系统读取plc状态,Linux系统下上位机通讯协议及PLC冗余系统组态-工业支持中心-西门子中国...

热门文章

  1. 【Web开发】级联查询(Ajax/ jQuery/ Servlet)
  2. centos修改磁盘uuid_Centos更换损坏硬盘UUID改变导致系统不能正常启动处理
  3. 2014_anshan_onsite
  4. Redis运维和开发学习笔记(1) Redis简介
  5. mysql gtid基础_MySQL 基础知识梳理学习(四)----GTID
  6. 1040 有几个PAT (25 分
  7. linux僵尸进程产生的原因以及如何避免产生僵尸进程defunct
  8. 定时器timerfd
  9. 覆盖所有面试知识点,送大厂面经一份!
  10. 爆赞!Jetpack-MVVM-高频提问和解答,满满干货指导