结对伙伴博客地址:http://www.cnblogs.com/zhangcunhui/

Github仓库主页链接地址:https://github.com/huicunzhang/Sizeyunsuan2

  • 需求分析

1. 由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分;

2. 题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下:

小学生四则运算练习软件

 

 

 

 

 

 

 

 

 

 

 

(3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做)、带括号算式、真分数算式练习;

(4)程序允许用户进行多轮测试,提供用户多轮测试分数柱状图,示例如下:

小学生四则运算练习软件

(5)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次测试的结果,并询问用户可否进行新一轮的测试;

(6)测试有计时功能,测试时动态显示用户开始答题后的消耗时间。

(7)程序人机交互界面是GUI界面(WEB页面、APP页面都可),界面支持中文简体(必做)/中文繁体/英语,用户可以进行语种选择。

  • 设计类图:

小学生四则运算练习软件

 

Start类:用来创建进入系统的界面;

SimpleFrame类:做题界面、随机出题、调用shishi3类中的计时功能;

Sort类:成绩汇总界面,以柱状图的形式展现,用数组记录每次测试的结果。

  • 程序流程图:

小学生四则运算练习软件

  • 核心代码:

 判断结果对错的代码:

 1 if( Expressions.get(0).equals(answers.get(0)) )
 2                     {answer1.setText("正确 "); sum++;}
 3                 else
 4                     answer1.setText("错误");
 5                 
 6                 if( Expressions.get(1).equals(answers.get(1)) )
 7                     {answer2.setText("正确 "); sum++;}
 8                 else
 9                     answer2.setText("错误");
10                 
11                 if( Expressions.get(2).equals(answers.get(2)) )
12                     {answer3.setText("正确 "); sum++;}
13                 else
14                     answer3.setText("错误");
15                 
16                 if( Expressions.get(3).equals(answers.get(3)) )
17                     {answer4.setText("正确 "); sum++;}
18                 else
19                     answer4.setText("错误"); 
20 
21 
22 
23                                 num.add(sum*5+"");
24                 //num.add(sum+"");
25                                 //将判断结果存入文件
26                 try {
27                        File f = new File("result.txt"); 
28                     FileWriter fw = new FileWriter(f,true);
29                     PrintWriter pw = new PrintWriter(fw);
30                     for(String con:num)
31                      {
32                           pw.println(con);               
33                      }
34                             
35                     fw.close();
36                             
37                     } catch (IOException e) {
38                     // TODO Auto-generated catch block
39                         e.printStackTrace();
40                     }
View Code

相关文章: