《软件工程》第二次作业:编写小学生四则运算测试软件

一、题目:

  • 请编写一个能自动生成小学四则运算题目的 “软件”。
  • 让程序能接受用户输入答案,并判定对错。
  • 最后给出总共以及 对/错      的数量。

二、基本要求:

  • 所编写出来的“软件”选择界面设计,选择加、减、乘、除运算。
  • 系统随机产生一百以内的两个数进行运算。
  • 使用该软件时,用户从键盘输入结果,回答正确和回答错误都有提示,结束后系统会自动给出相应的总题数和 对/错 的数量。

三、需求分析:

  • 程序能实现0~100以内的加法、减法、乘法以及除法的运算。
  • 用户能在java控制窗口输入自己的答案,该程序能够判断用户所输入答案的对错。
  • 测试结束后,程序能给出所做题目的数量以及所做题目对/错的数量。

四、设计:

  • 定义五个变量分别是:e, r, a, b, c,其中e表示答错的题数,表示r表示答对的题数,a, b分别表示0~100之间随机产生的两个整数
  • 使用Scanner类创建了多个对象并对不同的运算类型调用相应的方法。
  • 加、减、乘、除用一个switch控制语句来实现,整个程序的实现在主函数中体现。

五、代码实现:

 1 import java.util.Random;
 2 import java.util.Scanner;
 3
 4 public class qq {
 5     public static void main(String[] args) {
 6         int e = 0, r = 0;
 7         System.out.println("欢迎来到四则运算测试软件!");
 8         System.out.println("做题前请认真读题,祝您考试愉快!");
 9         Random r1 = new Random();
10         for (int i = 0; i < 7; i++) {
11             int m, n;
12             int a, b, c;
13             m = r1.nextInt() % 10;
14             n = m % 4;
15
16             switch (n) {
17             case 0:
18                 a = new Random().nextInt((int) Math.pow(10, 2)) + 1;
19                 b = new Random().nextInt((int) Math.pow(10, 2)) + 1;
20                 System.out.println(a + "+" + "" + b + "=?");
21                 Scanner x1 = new Scanner(System.in);
22                 c = x1.nextInt();
23                 if (c != a + b) {
24                     e++;
25                     System.out.println("回答错误!!");
26                 } else {
27                     r++;
28                     System.out.println("回答正确!!");
29                 }
30
31                 break;
32
33             case 1:
34                 a = new Random().nextInt((int) Math.pow(10, 2)) + 1;
35                 b = new Random().nextInt((int) Math.pow(10, 2)) + 1;
36                 System.out.println(a + "-" + " " + b + " =?");
37                 Scanner x2 = new Scanner(System.in);
38                 c = x2.nextInt();
39                 if (c != a - b) {
40                     e++;
41                     System.out.println("回答错误!!");
42                 } else {
43                     r++;
44                     System.out.println("回答正确!!");
45                 }
46
47                 break;
48
49             case 2:
50                 a = new Random().nextInt((int) Math.pow(10, 2)) + 1;
51                 b = new Random().nextInt((int) Math.pow(10, 2)) + 1;
52                 System.out.println(a + "*" + " " + b + " " + "=?");
53                 Scanner y1 = new Scanner(System.in);
54                 c = y1.nextInt();
55                 if (c != a * b) {
56                     e++;
57                     System.out.println("回答错误!!");
58                 } else {
59                     r++;
60                     System.out.println("回答正确!!");
61                 }
62
63                 break;
64
65             case 3:
66                 double d;
67                 a = new Random().nextInt((int) Math.pow(10, 2)) + 1;
68                 b = new Random().nextInt((int) Math.pow(10, 2)) + 1;
69                 if (b == 0)
70                     b++;
71                 System.out.println(a + "/" + " " + b + " " + "=?");
72                 Scanner y2 = new Scanner(System.in);
73                 d = y2.nextDouble();
74                 if (d != (a / b) / 1.00) {
75                     e++;
76                     System.out.println("回答错误!!");
77                 } else {
78                     r++;
79                     System.out.println("回答正确!!");
80
81                 }
82
83                 break;
84
85             }
86         }
87         System.out.println("考试结束!!");
88         System.out.println("您一共做了:" + (r + e) + "道题目,其中正确的有" + r + "道,错误的有" + e + "道!");
90     }
91 }

六、程序效果图:

七、PSP耗时:

总结:老师刚开始布置作业的时候还没有明白是怎么回事,后来在第二次上机课的时候,老师再次的说明我才理解题目的意思。之前学过的相关计算机课程大部分都忘记了,例如c语言程序中的switch控制语句的用法以及java中类的用法也不怎么记得了,在写程序的过程中还好及时的查阅课本和资料、寻求同学和老师帮助才算完成。其中的不足之处还希望老师指出,以后继续努力!

时间: 2024-10-14 16:03:44

《软件工程》第二次作业:编写小学生四则运算测试软件的相关文章

软件工程 第二周作业

##软件工程第二周作业 提出问题 1. 一般来说,想要自己的程序跑得又快又好,就要减少函数的反复调用,但有所得则必有所失,效能提高就有可能伴随着程序的稳定性的降低,这两者应该如何权衡呢? 2. 关于5.3.5 老板驱动的流程,这种开发流程模式存在着一些问题,那要如何解决这些问题呢? 这种模式当然也有它的问题. 领导对许多技术细节是外行. 领导未必懂得软件项目的管理,领导的权威影响了自由的交流和创造. 领导最擅长的管理方式是行政命令,这未必能管好软件团队或任何需要创造力的团队. 领导的精力有限,领

第二次作业电梯编程题测试结果

第二次作业电梯编程题测试结果 电梯作业中出现的问题 最终需要输出的是乘客等待时间和(不是电梯运行时间) 部分同学的代码对非按序排序的时间无法处理 代码文件的命名最好不要有中文.空格 不要在代码末尾加 system("pause") 完整代码要求上传到github,博客中若需要贴代码只贴关键代码即可 表格中测试结果负分的含义 仓库无代码文件 No Source Code File -1 对输入的测试用例不能运行 Runtime Error -2 能运行但无法输出结果 No Output

201571030316/201571030314《小学生四则运算练习软件》结对项目报告

github代码地址:https://github.com/mqqgd/Experiment2 小伙伴儿的博客地址链接:http://www.cnblogs.com/mjuan/p/8715700.html 我的学号:201571030316                  小伴儿的学号:201571030314 一.需求分析    本次实验采用结对编程方式,设计开发一个小学生四则运算练习软件,使之具有以下功能: 由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答

201571030134/201571030139《小学生四则运算练习软件需求说明》结对项目报告

任务一 首先,我们进行了用户体验,把我们已经完成的小学生四则运算软件发给我们要调研的人,他们体验了我们的程序后再填写需求分析调查问卷,这样可以更好的得到一个反馈,让我们的需求分析更加清楚. 其次,我们主要采取了精准的调查问卷来进行需求分析,调查对象主要为西北师大附属小学的二至六年级的小学生.师大附小的一些有经验的老师以及我们学院的一些孩子正在上小学的老师.这一点我们是主要考虑到: 大范围的发放调查问卷,填写人员职业和经验都有不确定性,所以不能作为有效的需求分析,所以我们采用了精准问卷调查,让我们

201571030314《小学生四则运算练习软件》结对项目

结对编程实现小学生四则运算练习软件 前言:按照结对编程的原则,我和邻宿舍的小伙伴进行了两人结对编程,我们开发的结对项目的是小学生四则运算练习软件,具体就是随机生成n道题,供学生答题并返回正误记录答题结果,进行多轮.具体需求分析以及功能设计与实现如下. github代码地址:https://github.com/mqqgd/Experiment2 一.需求分析 本次实验采用结对编程方式,设计开发一个小学生四则运算练习软件,使之具有以下功能: 由计算机从题库文件中随机选择20道加减乘除混合算式,用户

2017秋-软件工程第二次作业

本周因为个人缘故,参加社团活动作业没能及时完成.对此我表示,做过就不后悔,至少我觉得生活是丰富多彩的,错过的时间就应该努力赶上!夜深人静的时候总是可以让人反省自己.本次作业我只实现了第一个功能和第二个功能的部分.对此我表示很不满,但是时间紧迫.个人能力有限,以至于自己没能让自己的软件看起来完美. 第二次作业的内容非常有趣,这也是我一直想做的一件事情,统计一篇文章里的字词.我知道自己的编程能力较差.距离完成提交时间很近,自己手写全部是不能及时按照约定提交的,于是就尝试借鉴前人的代码.第一晚的努力各

2018软件工程第二次作业

在Eclipse中使用Junit进行单元 一.选择开发工具 在这里我选择使用Eclipse作为开发工具.由于之前已经安装过Eclipse,所以在这里不多介绍.详细安装.使用过程请参考 二.练习自动单元测试技术 按照老师的实例一步步来 1.编写需要被测试的Java类 2.导入Junit 3.编写测试类 4.运行测试类 5.测试结果分析 注意:(1). Runs:表示总共有几个测试方法,已经运行了几个: (2). Errors:表示抛出异常的测试方法的个数: (3). Failures:表示失败的测

软件工程第一次作业,小学生四则运算的出题程序

一.背景 阿超有个儿子上小学二年级,老师每天让家长给孩子出30道加减法题,虽然不多,但是每天都做也算是个负担,阿超作为一个老牌程序员当然想用计算机来解决这个小问题,目前对于这个问题对于任何语言都不是问题,比如: C/C++.C#.Java.Python.VB.JavaScript.Perl…… 具体要求如下: 能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!) 除了整数外,还要支持真分数的四则运算 请大家用任何一种自己擅长的语言来编写这段程序,并把程序的介绍和自

第二次作业:编写一个四则运算的&quot;软件&quot;

- 题目: 请编写一个能自动生成小学四则运算题目的 “软件”. 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. 需求分析: ●基本功能 ●实现100以内的加法 ●实现100以内的减法 ●实现100以内的乘法 ●实现100以内的除法 ●设计: ●程序由主函数和子函数构成 ●首先选择要进行测试的题目种类,让运用者进入开始做题,题目随机产生(1表示加法运算,2表示减法,3表示乘法,4表示除法运算,5表示退出系统) ●int question_get() 用于系统计算四种运算的值