首页 > 代码库 > 软件工程概论作业三
软件工程概论作业三
设计思想:
构造如下几个类:
试题类(class ShiTi):
属性:运算式、运算式结果、运算式逻辑运算顺序和运算数个数
公共方法:各个属性的set/get方法,
setTiMu方法中在设置了题目属性后立即设置运算数的个数并执行计算运算式结果的函数
在计算运算式结果的函数中,利用堆栈将运算式转换为后缀表达式进行计算,
每计算一个子表达式就将该表达式的运算数加上产生该运算数的子表达式的序号用‘s’分隔(例如运算式为1 + 2 + 4 则第一个子表达式的运算数为1s0,2s0,第二个子表达式为3s1,4s0)、运算符用‘,’隔开添加到运算顺序属性中。
试题操作类(class ShiTiOperator):
公共方法:随机生成一个试题、判断两个试题是否逻辑相同
判断两个试题是否相同设计思想:
先比较两个运算式的运算数的个数,如果运算数个数不相同则运算式肯定不同,否则继续判断
获取两个试题的逻辑运算顺序字符串,并用‘,’对该字符串分割为一个字符串数组
将逻辑运算顺序字符串分隔成的字符串数组构建成二叉树,判断两个二叉树是否相同
分数类(class FenShu):
属性:分子、分母、该分数是否成立(如果分母是0就不成立)
公共方法:参数为分子分母的构造函数,参数为字符串的构造函数,分数乘除加减的函数
数据库单元类(class DBUtil):
公共方法:获取数据库的连接、释放资源
获取数据库连接的方法是将注册数据库驱动,获得一个数据库的连接进行封装,返回一个数据库连接对象
释放资源的方法是将释放查询数据库结果集对象、数据库操作对象和数据库连接对象进行封装
试题数据库操作类(ShiTiDAO):
公共方法:将一个试题对象集合插入到数据库
将一个试题对象集合插入到数据库的详细过程为:调用数据库单元类的获取数据库连接方法获取一个数据库连接对象,
构建一个sql语句为插入的数据库操作对象,
循环执行----(从试题对象中获取题目和答案等信息对参数进行设置,数据库操作对象执行)即可将多条试题信息插入到数据库
调用数据库单元类的释放资源方法释放资源
四则运算主类(class SiZe3):
公共方法:菜单、生成试题、验证统计文件中的试题
菜单方法:提供两种选项可以生成试题,可以对验证统计文件中的试题的正确性
生成试题方法:
调用试题操作类的生成试题的方法生成一个试题,并调用试题类的验证试题是否重复的方法进行重复校验,不重复则将该题目对象添加到题目list中
调用试题数据库操作类的插入数据的方法将生成的试题插入到数据库
验证统计文件中的试题方法:
从试题文件中读取试题题目,构建成试题对象,从试题对象中获取正确答案与答案文件中读取的答案进行比较,如果相同则该题目答案正确,将题号记录到一个整型的list中,否则该题目答案错误,将答案记录到另一个整型的list中。
最后将两个记录正确题号和记录错误题号的list信息写入到grade.txt文件中
软件工程概论作业三