源码在Github的仓库主页链接地址:https://github.com/cy0325/Problem-software.git
小伙伴的博客链接地址:http://www.cnblogs.com/rucr/p/8710014.html
我的学号:201571030101
小伙伴的学号:201571030125
1. 需求分析:
(1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分;
(2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下:
(3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做)、带括号算式、真分数算式练习;
(4)程序允许用户进行多轮测试,提供用户多轮测试分数柱状图,示例如下:
(5)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次测试的结果,并询问用户可否进行新一轮的测试;
(6)测试有计时功能,测试时动态显示用户开始答题后的消耗时间。
(7)程序人机交互界面是GUI界面(WEB页面、APP页面都可),界面支持中文简体(必做)/中文繁体/英语,用户可以进行语种选择。
2. 软件设计:使用类图。
MyDBConnection用于连接数据库,连接数据可成功之后,用login类调用DBOperation类,对数据库中的user表进行操作,增加用户信息。TestMysql用于连接数据库,
并对数据数据库进行操作,在Myframe中,调用数据库中questionbank表,用于随机出题,之后取出数据库中答案,和用户的答案进行比较,然后给出用户的得分情况,将
每一轮的得分放入柱状图中,其中Chart用户绘柱状图,在Myframe中进行调用。
3. 核心功能代码展示:展示核心功能代码。
(1)数据库test连接代码,用于存放questinbank表和user表。
1 public class TestMysql { 2 3 4 //登陆本地数据库 5 private static final String url = "jdbc:mysql://123.206.7.198:3307/test"; 6 private static final String user = "qinxh"; 7 private static final String password = "031578"; 8 9 private static ResultSet ret = null; 10 private static final String name = "com.mysql.jdbc.Driver"; 11 public Connection conn = null; 12 public PreparedStatement pst = null; 13 public TestMysql() { 14 try { 15 Class.forName(name);//指定连接类型 16 conn = DriverManager.getConnection(url, user, password);//获取连接 17 18 } catch (Exception e) { 19 e.printStackTrace(); 20 } 21 }