结对伙伴博客地址: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 }