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

一、题目:

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

二、基本要求:

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

三、需求分析:

  • 程序能实现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中类的用法也不怎么记得了,在写程序的过程中还好及时的查阅课本和资料、寻求同学和老师帮助才算完成。其中的不足之处还希望老师指出,以后继续努力!

 

 

    

     

 

 

 

 

 

转载于:https://www.cnblogs.com/songguangneng/p/4415350.html

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值