软件工程个人作业01

像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。(有能力者改编成网页版)

撰写一篇博文要求将程序的设计思想,源程序代码、运行结果截图以及分析一下个人上课未按时完成的原因,博客标题:软件工程个人作业01

【程序设计思想】

此次是我编写的四则运算的第一版,只是实现最基本的出题、判断答案对错和对大队的题和答错的题的数量的统计

定义一个字符串为“+-*/”,通过从0-3中随机出数,对应“+-*/”字符。同时从0-100随机出数,进行二元运算

用判断具体是哪个运算符号来计算正确答案

将答题人手动输入的答案正确答案进行判等,若相等,答对题目数量+1,若不相等,答错题目数量+1,并显示正确答案

最后显示共答对题目的数量和答错题目的数量

通过System.currentTimeMillis()函数实现答题的记时。

【源程序代码】

 1 package pkg;
 2 
 3 import java.util.Scanner;
 4 
 5 public class YunSuan
 6 {
 7     public static void main(String[] args) 
 8     {
 9         // TODO Auto-generated method stub
10         long timeStart = System.currentTimeMillis();
11         int num1,num2,result=0;
12         int fu;
13         int tcount=0;
14         int fcount=0;
15         String str="+-*/";
16         System.out.println("请输入出题数量");
17         Scanner input=new Scanner(System.in);
18         int number=input.nextInt();//手动输入题目数量
19         for(int i = 0 ; i < number ; i ++)
20         {
21             int intVal = (int)(Math.random() * 100 );
22             num1=intVal;
23             fu =(int)(Math.random() *3 ); 
24             char ysf=str.charAt(fu);
25             num2=(int)(Math.random() * 100 );
26             System.out.println(num1 +""+ysf+""+num2+"=");
27             System.out.println("请输入本题的答案:");
28             int outcome=input.nextInt();
29             if(ysf=='+')
30             {
31                 result=num1+num2;
32             }
33             else if(ysf=='-')
34             {
35                 result=num1-num2;
36             }
37             else if(ysf=='*')
38             {
39                 result=num1*num2;
40             }
41             else if(ysf=='/')
42             {
43                 result=num1/num2;
44             }
45             
46             if(outcome==result)
47             {
48                 System.out.println("结果正确!");
49                 tcount++;
50             }
51             else
52             {
53                 System.out.println("回答错误,正确答案为:"+result);
54                 fcount++;
55             }
56         } 
57         System.out.println("题目数量共为"+number+"条,大队题目数量为:"+tcount+",答错题目数量为:"+fcount);  
58         long timeEnd=System.currentTimeMillis();
59         System.out.println("总共花费:"+(timeEnd-timeStart)+"ms");
60     }
61 
62 }
View Code

【未完成部分】

支持真分数的四则运算、题目避免重复、没有控制所有题目的答案在0-100内、没有做成网页版

posted @ 2017-12-02 17:04  DaisyYuan  阅读(120)  评论(0编辑  收藏  举报