基于控制台的四则运算

Coding地址:https://coding.net/u/ttoyy/p/java-sizeyunsuan/git


 

一、题目简介

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

二、需求分析

  编写一段程序,能够输出小学四则运算的题目,并且支持真分数的操作,同时能够对用户输入的答案判定正确与否,给出成绩,最后统计正确率。


 

三、功能设计

  ①用户能自定义此次题目的数量;

  ②能够输出四则运算题目,并支持真分数的运算;

  ③能对答案进行判定,给出分数与正确率。


 

四、设计实现

  为实现功能,编写了一个java程序,采用循环算法和随机数实现。


 

五、代码说明[view code]

 System.out.printf("请输入本次测试的题目数:");

Scanner sc = new Scanner(System.in);

int N = sc.nextInt();                //获取用户所需的题目数

System.out.printf("本次测试的题目数为:"+ N +"\n");

for(int i=0;i<N;i++){                  //根据获取的题目数循环

int x=(int)(Math.random()*7);//获取随机数

switch(x){                    //根据随机数调用某种运算 如0是加法

case 0:                      //整数的加法运算

int a1=(int)(Math.random()*100);

int b1=(int)(Math.random()*100);

System.out.print(a1+"+"+b1+"=");

Scanner sc1 = new Scanner(System.in);

int c1=sc1.nextInt();

if(c1!=a1+b1)System.out.printf("回答错误"+"\n");  //验证输入答案的准确性

else System.out.printf("回答正确"+"\n");sum =sum+1;break;

System.out.printf("测试结束,最后得分为:"+sum+"分"+"\n");//给出本次测试的分数

System.out.printf("正确率为:"+sum+"/"+N);    //给出本次测试的正确率

 调试情况:


 

 

PSP2.1

Personal Software Process Stages

Estimated time(min)

actual time(min)

Planning

计划

10

10

· Estimate

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

180

180

Development

开发

80

90

· Analysis

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

10

10

· Design Spec

生成设计文档

10

10

· Design Review

设计复审

5

5

· Coding Standard

代码规范

5

5

· Design

具体设计

30

40

· Coding

具体编码

60

60

· Code Review

代码复审

10

15

· Test

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

15

15

Reporting

报告

30

35

·

测试报告

5

5

·

计算工作量

5

7

·

并提出过程改进计划

5

10


总结:

     1、编程中,真分数的算法耗费了大量时间,并且还存在问题,不知如何解决。真分数的算法存在问题,是用字符串解决的,不能用小数输入并且无法约分;

     2、整数除法的算法尚有漏洞,只能输入小数,遇到除不尽的无法运算;

     3、编程过程不够仔细,其中少了一个break,导致调试出现问题,检查好久才发现;

     4、经过本次编程,深知自己编程能力实在差,需要继续加强。

 

posted on 2017-03-06 19:26  ii装糊涂  阅读(414)  评论(2编辑  收藏  举报