《数学题自动生成系统》由会员分享,可在线阅读,更多相关《数学题自动生成系统(30页珍藏版)》请在金锄头文库上搜索。
1、.目录一、需求分析2二、概要设计3三、详细设计4 3.1 系统E-R图.4 3.2 关系模式. 43.3系统数据流图.53.4基本数据类型操作.5四、调试分析13五、用户手册13六、测试数据14七、附录17一、 需求分析小学生数学练习题目自动生成系统要求:编写一个能够自动生成小学生数学练习题目的程序。设计一个程序,能够根据用户的选择生成“10以内加法”、“10以内减法”、“20以内加法”、“20以内减法”、“100以内加法”、“100以内减法”、“100以内乘法”、“100以内除法”8种类型的题目,要求每个题目能够随机生成。此外,用户还能输入答题的数量。答完题后,即可查看统计答题情况,对于答错
2、的题,可显示正确答案。答题数据要求保存到文件中,并可调出查看。 1.1将该系统分割为五个大致模块,主要是由用户信息,题目信息和历史成绩信息相互连接而成,用数据库的方式对其进行记录。 1.2.通过分析可以依次实现,选择题型-设置题目数量-产生随机题目-用户答题-显示答题结果-查询历史答题结果等一系列具体操作。 可简约为: 1.2.1 用户打开系统成功后,则可以开始进行对所具有不同类题目的选择,实现学生自主选题 1.2.3 在选择题目后,便可自主的对其进行填写答题数目 1.2.4 在点击按键“设置”之后,点击“下一题”系统会自动生成显示所选题型的题目 1.3 通过对Java语言的运用,将其与数据库
3、进行对接,则可以完成对系统的实现。而且可以直接在运行成功的界面上进行一系列的具体操作。二、概要设计小学生数学练习题目自动生成系统主要包括用户信息、题目信息、选题情况信息、答题信息、历史成绩信息五个功能模块。2.1 用户信息模板 用户信息模块主要包括用户的信息以及用户的实施操作。 用户信息模块包括:用户姓名,用户编号,所属班级,用户性别,联系电话,家庭住址等相关信息。用户的实施操作:用户可以通过其包含的相关信息,与其他模块进行连接,可以在此系统中依次的进行题型选择,用户答题,显示正确答案以及记录历史答题信息等功能。2.2 题目信息模块 题目信息模块主要实现对数学练习题目信息的管理记录。 题目信息
4、模块主要包括:题目编号,甲空,题目题型,乙空,正确结果等相关信息。2.3 选题情况信息模块 选题情况信息模块主要实现对所具有的题目项目进行管理记录,根据对用户的基础信息和题目信息的相应连接可以实现不同用户对题型的选择,从而可以形成不同的题型,生成相对应的试卷。 选题情况信息模块主要包括:用户编号,题目题型,题目编号等相关信息。2.4 答题信息模块 答题信息模块主要是为了实现与选题情况信息进行对接,根据实现后的答题信息可以直接录入到系统中进行记录。 答题信息模块主要包括:用户编号,题目题型,题目编号,所填答案等相关信息。2.5 历史成绩信息模块 历史成绩信息模块主要是通过与选题情况信息模块相连接
5、,实现小学生对数学练习习题答题历史成绩的记录。 历史成绩信息模块主要包括:用户编号,答题时间,正确数目,错误数目等相关信息。三、详细设计3.1 系统E-R图在系统功能作了详细分析后,可以从中抽象出系统E-R模型,如图:答题内容3.2关系模式将E-R图转化为关系模型:User(user_id,user_nam,user_class,user_tel) Timu(timu_id,timu_one,timu_two,timu_true) History(user_id,answer_time,true_no,flase_no)3.3系统数据流图3.4基本数据类型操作界面设计(设置不同按钮、文本大小以
6、及字体类型大小等):area=new JTextArea(42,100);teacherZhang=new Teacher(this);teacherZhang.setMaxInteger(100);setLayout(new FlowLayout();setSize(1300,500);menubar=new JMenuBar();menu1=new JMenu(难度设置);menu2=new JMenu(历史档案);grade1=new JMenuItem(10以内加法);grade2=new JMenuItem(10以内减法);grade3=new JMenuItem(20以内加法);g
7、rade4=new JMenuItem(20以内减法);grade5=new JMenuItem(100以内加法);grade6=new JMenuItem(100以内减法);grade7=new JMenuItem(100以内乘法);grade8=new JMenuItem(100以内除法);message=new JLabel(你还没有回答呢);Start=new JButton(下一题);giveAnswer=new JButton(提交答案);item=new JMenuItem(答题记录);Qcount=new JLabel(题目数量);set=new JButton(设置);Tex
8、t1=new JTextField(5);Text1.setText(0);textOne=new JTextField(5);textTwo=new JTextField(5);textResult=new JTextField(5);operatorLabel=new JLabel( );final FileDialog filedialog_load=new FileDialog(this,打开文件对话框,FileDialog.LOAD);add(Qcount);add(Text1);add(set);operatorLabel.setFont(new Font(Arial,Font.B
9、OLD,20);menu1.add(grade1);menu1.add(grade2);menu1.add(grade3);menu1.add(grade4);menu1.add(grade5);menu1.add(grade6);menu1.add(grade7);menu1.add(grade8);menu2.add(item);menubar.add(menu1);menubar.add(menu2);setJMenuBar(menubar);add(textOne);add(operatorLabel);add(textTwo);add(new JLabel(=);add(textRe
10、sult);add(giveAnswer);add(message);add(Start);add(area);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);对不同按钮设置不同监视器: Start.setActionCommand(getProblem); textResult.setActionCommand(answer); giveAnswer.setActionCommand(answer); teacherZhang.setJTextField(textOne,textT
11、wo,textResult); teacherZhang.setJLabel(operatorLabel,message); Start.addActionListener(teacherZhang); giveAnswer.addActionListener(teacherZhang); textResult.addActionListener(teacherZhang); setVisible(true); validate(); setDefaultCloseOperation(DISPOSE_ON_CLOSE);对不同情况下的选择设置不同符号及能产生的最大随机数: grade1.add
12、ActionListener(new ActionListener() public void actionPerformed(ActionEvent e) teacherZhang.setOperator(+); teacherZhang.setMaxInteger(10); );grade2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) teacherZhang.setOperator(-); teacherZhang.setMaxInteger(10); );grade3
13、.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) teacherZhang.setOperator(+); teacherZhang.setMaxInteger(20); );grade4.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) teacherZhang.setOperator(-); teacherZhang.setMaxInteger(20); );grade5.addActionListener(new ActionListener() public void actionPerformed(ActionEvent