小学算术运算测试程序JAVA课程设计报告.docx

上传人:b****6 文档编号:7007983 上传时间:2023-01-16 格式:DOCX 页数:8 大小:21.03KB
下载 相关 举报
小学算术运算测试程序JAVA课程设计报告.docx_第1页
第1页 / 共8页
小学算术运算测试程序JAVA课程设计报告.docx_第2页
第2页 / 共8页
小学算术运算测试程序JAVA课程设计报告.docx_第3页
第3页 / 共8页
小学算术运算测试程序JAVA课程设计报告.docx_第4页
第4页 / 共8页
小学算术运算测试程序JAVA课程设计报告.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

小学算术运算测试程序JAVA课程设计报告.docx

《小学算术运算测试程序JAVA课程设计报告.docx》由会员分享,可在线阅读,更多相关《小学算术运算测试程序JAVA课程设计报告.docx(8页珍藏版)》请在冰豆网上搜索。

小学算术运算测试程序JAVA课程设计报告.docx

小学算术运算测试程序JAVA课程设计报告

小学算术运算测试程序JAVA课程设计报告



面向对象程序设计(JAVA)课程设计说明书

学院名称:

计算机与信息工程学院

班级名称:

20XX级计算机科学与技术

目:

小学算术运算测试程序

面向对象程序设计(JAVA)课程设计任务书

院计算机与信息工程学院专

业20XX级计算机科学与技术课程名称面向对象程序设计(JAVA)题

目小学算术运算测试程序

完成期限2021年01月02日至2021年01月08日共1周内容及任务一、项目的目的1.加深学生对面向对象程序设计(Java)课程基本知识的理解,综合应用所学的知识,独立完成一个以面向对象程序设计应用为课题的设计;2.根据问题需要,通过查阅手册和文献资料,培养分析和解决实际问题的能力;3.灵活运用类、对象、输入输出流、GUI、多线程、数据库编程等相关知识编写程序。

二、项目任务的主要内容和要求主要内容:

编写一个可供小学数学运算的程序:

可选择题目难度,并根据选择的难度分配加、减、乘、除法的题目,能根据输入题数并分配分值(总分100),判断做题是否正确,最后计算分数。

要求:

1、编写图形化界面,每组4人,分工独立完成;2、能够按照要求完成系统设计并撰写课程设计报告。

三、项目设计思路题目要求设计一个可以自动出题(算数运算)的测试程序,首先需要明确该系统的功能:

选择题目难度、选择题数、依据题数自动分配分值、自动出题、评卷并给出答对题数和总得分;接着根据功能设计图形化界面:

选择题目难度界面、试卷界面和评分界面;然后结合功能和图形化界面编写代码,进行测试,不断完善代码;最后得到我们所需要的测试程序。

四、具体成果形式和要求

程序和课程设计文档

进度安排起止日期工作内容2021年01月02日至2021年01月02日需求分析2021年01月03日至2021年01月04日系统设计,根据前期的需求分析结果设计各个功能模块2021年01月05日至2021年01月06日编码,调试和测试程序2021年01月07日至2021年01月08日撰写课程设计报告,进行答辩主要参考资料[1]赵生慧.Java面向对象程序设计(第二版)[M].北京:

中国水利水电出版社,2021.[2]毕广吉.Java程序设计实例教程[M].北京:

冶金工业出版社,2021.[3]王保罗.Java面向对象程序设计[M].北京:

清华大学出版社,2021.[4]高林,周海燕.JSP网上书店系统与案例分析[M].北京:

人民邮电出版社,2021.指导教师意见

(签字):

日系(教研室)主任意见

(签字):

录摘要11.引言11.1选题背景11.2选题意义11.3主要内容及分工11.4组织结构22.需求分析22.1系统流程图22.2系统功能图23.系统设计33.1类的设计33.2功能模块设计33.2.1用户选择信息模块33.2.2题目信息模块43.2.3答案信息模块43.2.4成绩信息模块44.编码44.1导入相关包和类44.1.1包44.1.2类44.2各模块代码54.2.1用户选择信息模块54.2.2题目信息模块54.2.3答案信息模块74.2.4成绩信息模块85.测试结果95.1用户选择信息模块95.2题目信息模块105.3答案信息模块105.4成绩信息模块116.结束语12附录12参考文献21致谢22

摘要本文使用了Java面向对象程序设计语言实现了一个小学算数运算的测试程序。

该程序的主要功能是根据用户的需求,自定义试卷的题目难度和题目数量,试卷总分100分,根据题数自动分配每题分值,提交评卷后给出答对题数和总得分。

测试结果表明该程序运行正常。

1.引言1.1选题背景计算是数学知识中的重要内容之一,数学计算能力是一项基本的数学能力,计算能力是学习数学和其他学科的重要基础,因为在小学教材中计算教学所占的比重较大,学生计算能力的高低直接影响着学生学习的质量,因为,数学中有些概念的引入需要通过计算来进行;数学中解决实际问题的解题思路、步骤、结果也要通过计算来落实。

因此,为了提高孩子们的数学计算能力和速度,同时方便家长们能便捷地对孩子们进行准确的数学算术测试,我们设计了这个简单的数学测试程序。

1.2选题意义对于使用者来说,该程序能根据输入题目数出题并分配分值(总分100),可以随机抽取在10以内的有关加、减、乘、除以及开方的数学题。

并且,测试题有三种难度级别,家长可以根据孩子的情况自行选择。

最后能测试出孩子的得分并显示出正确答案。

对于设计者而言,该程序能够让我们全面熟悉、掌握Java程序设计基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及Java程序设计的本领[1]。

熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法[2],进一步提高上机动手能力,增强Java程序设计概念[3],熟悉Java语言编程,养成提供文档资料的习惯和规范编程的思想,为后继课程的实验以及课程设计打下较扎实的基础。

进一步提高上机动手能力,培养使用计算机解决实际问题的能力,为后继课程的实验以及课程设计打下扎实的基础[4]。

1.3主要内容及分工本程序的主要功能:

(1)选择难度等级,分别为初级、中级、高级;

(2)输入题目个数;(3)填写题目答案或选择重新出题;(4)系统评卷,对的题目前打“*”并给出对的题数和总分;(5)退出系统。

成员分工:

(1)XX:

需求分析、测试结果记其他(文档),三种级别、评卷和重新出题的事件监听器(代码);

(2)XX:

结束语、附录、致谢(文档),用户选择信息及其界面(代码);(3)XX:

总体设计、编码(文档),答案的判断及其他(代码);(4)XX:

摘要、引言(文档);三种级别题目的随机产生(代码)。

1.4组织结构第一章:

摘要,主要介绍了该报告的主体内容;第二章:

引言,主要介绍了选题背景和意义,主要内容及成员分工和组织结构;第三章:

需求分析,主要介绍了系统功能图和系统流程图;第四章:

总体设计,主要介绍了类的设计和功能模块设计;第五章:

编码,主要介绍了各个功能模块的具体实现代码;第六章:

测试结果,主要介绍了各个功能模块的测试结果;第七章:

结束语,主要介绍了对所有工作的总体概括。

2.需求分析

2.1系统流程图系统流程如图2.1所示,开始程序,并选择困难等级,输入题目个数,填写答案或重新出题,评卷后结束。

选择难度等级输入题目个数填写题目答案评

卷退

图2.1

小学算术运算测试系统流程图

2.2系统功能图系统功能图如图2.2所示,等级分为初级,中级,高级;输入题目个数;填写答案或重新出题;评卷时对的题目前面标“*”,并给出对的题数和总分;结束系统。

选择难度等级初级中级高级输入题目个数

重新出题填写题目答案评

卷对的题目前面打“*”

给出对的题数和总分退

图2.2小学算术运算测试系统功能图3.系统设计分析题意,把小学算数运算测试系统拆分为四个模块,分别是用户选择信息,题目信息,答题信息和成绩信息这四个功能模块。

根据功能模块编写相应的代码进行测试达到需求的结果。

3.1类的设计定义一个名为Paper的主类,在里面定义构造方法,还有监听器等组件。

其次定义一个计算中间容器JiusuanPanel类继承面板类的内容。

在里面添加容器,定义生成的算数和计算方法,判断方法。

3.2功能模块设计3.2.1用户选择信息模块用户可以选择对应难度的题目,分初级,中级,高级。

因为首先选择题目难度,只能是单选,所以选择单选框按钮JRadioButton,并用Paper方法实现其单选功能。

最后注册监听器ActionListener。

3.2.2题目信息模块主要通过这个模块加上数组的功能实现根据输入题目数给出相应的题目,题目类型和空格。

主要是通过定义计算方法easy,middle,hardt创建各种类型的题目。

用Math.Random()*a生成随机数。

在添加到计算中间容器JisuanPanel。

3.2.3答案信息模块为了实现选题信息的对接,答题信息模块主要包括填写答案,对答案的判断和给出来的答案。

主要与题目信息模块共用一个类,在定义一个布尔类型方法right判断正确。

通过建立一个输入框,将答案输入,将获得的答案与正确的比较,在监听器方法中若结果相同正确题数加1。

3.2.4成绩信息模块在这个监听器接口实现方法进行,用if语句和for循环来实现选择题型答题后正确数的累加,在对话框actionPerformed监听器事件方法中实现不同题目数的分值和总成绩的统计。

4.编码4.1导入相关包和类4.1.1包importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;

importjavax.swing.ButtonGroup;importjavax.swing.JButton;importxxxxe;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JRadioButton;importjavax.swing.JScrollPane;importjavax.swing.JTextField;

4.1.2类ClassPaper//主类ClassJisuanPanel//副类,存放方法体。

JFrame

JPanel//父类

4.2各模块代码

4.2.1用户选择信息模块创建JLabel标签和JRadioButton单选按钮,组件显示出给用户选择的界面框架:

JFramejf=newJFrame(“等级选择“);

JLabellab=newJLabel(“选择等级:

“);

JRadioButtonrb1=newJRadioButton(“初级“);

JRadioButtonrb2=newJRadioButton(“中级“);

JRadioButtonrb3=newJRadioButton(“高级“);

ButtonGroupgrp=newButtonGroup();//创建单选按钮和

protectedJisuanPanel[]panels;在这个主类中创建Paper方法继承JFrame中的功能,这个方法用来排列各个组件在面板中的布局:

publicPaper(){

super(“数学等级计算题“);

Containercp=jf.getContentPane();/********************等级选择界面设计********************/jf.setSize(200,150);

cp.setLayout(null);

lab.setBounds(20,20,140,20);

rb1.setBounds(20,40,140,20);

rb2.setBounds(20,60,140,20);

rb3.setBounds(20,80,140,20);

grp.add(rb1);

grp.add(rb2);

grp.add(rb3);

cp.add(lab);

cp.add(rb1);

cp.add(rb2);

cp.add(rb3);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jf.setVisible(true);

4.2.2题目信息模块/********************选择初级********************/j.rb1.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEventarg0){

//TODOAuto-generatedmethodstub

ints=JOptionPane.showConfirmDialog(null,“确定选择初级?

“,“初级“,JOptionPane.YES_NO_OPTION);

//询问一个确认问题

if(s==0){

StringinputValue=JOptionPane.showInputDialog(“输入题目个数:

“);

try{

Paper.n=Integer.parseInt(inputValue);

}catch(Exceptione){

Paper.n=20;

}//如未输入题数,则自动分配20题

j.panels=newJisuanPanel[Paper.n];

for(inti=0;i

j.panels[i]=newJisuanPanel();//创建数组对象利用for循环,把jisuanPanel的组件全部生成,

Containerc=j.getContentPane();

c.setLayout(newBorderLayout());

JPanelpanel=newJPanel(newGridLayout(Paper.n/2+1,2));

for(inti=0;i

panel.add(j.panels[i]);

c.add(newJScrollPane(panel),BorderLayout.CENTER);

/********************重新出题********************/

panel.add(button);

button=newJButton(“重新出题“);

button.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

for(inti=0;i

j.panels[i].easy();

}

)};调用jisuanPanel类中的方法,初级难度方法代码传递如下:

publicJisuanPanel(){//构造无参方法,讲方法传给数组中去。

super();

label=newJLabel();//创建没有文字的标签

field=newJTextField(4);//创建文本框

add(label);//将标签添加到尾部

add(field);//将文本框添加到尾部

easy();

}publicvoideasy(){//随机生成运算题目的方法

inta,b;

Stringc;

a=(int)(Math.random()*10)+1;//随机产生10以内的整数

b=(int)(Math.random()*10)+1;

switch((int)(Math.random()*2)){

case0:

c=“+“;

label.setText(““+a+c+b+“=“);

result=a+b;

break;//加法

case1:

c=“-“;

label.setText(““+a+c+b+“=“);

result=a-b;

break;//减法

default:

JOptionPane.showMessageDialog(null,“出错!

“);

System.exit(0);

}

field.setText(““);

return;

}

4.2.3答案信息模块创建答题区域的文本框等组件:

将参数回调给组件监听事件中:

publicJisuanPanel(){

super();

label=newJLabel();//创建没有文字的标签

field=newJTextField(4);//创建文本框

add(label);//将标签添加到尾部

add(field);//将文本框添加到尾部

easy();

}

publicJisuanPanel(intn){

super();

label=newJLabel();//创建没有文字的标签

field=newJTextField(4);//创建文本框

add(label);//将标签添加到尾部

add(field);//将文本框添加到尾部

if(n==1){

middle();

}

if(n==2){

hard();

}

}答案比对模块,将文本框的答案与计算机给出的答案比对,代码如下:

publicbooleanright(){

if(field.getText().equals(““))

returnfalse;

doublenum=result+1;

try{

num=Double.parseDouble(field.getText());

}catch(NumberFormatExceptione){

JOptionPane.showMessageDialog(null,“输入错误!

“);

field.setText(““);

}

if(num==result){

if(!

(label.getText()).startsWith(“正确“))

label.setText(“*“+label.getText());//核心步骤,比较

returntrue;

}else

returnfalse;

}}

4.2.4成绩信息模块将回答正确的题目统计,由系统平均分配分值来打分,代码如下:

/********************评卷********************/

panel=newJPanel(newFlowLayout());

JButtonbutton=newJButton(“评卷“);

button.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

intn=0;

for(inti=0;i

if(j.panels[i].right())

n++;

}

JOptionPane.showMessageDialog(null,

“一共“+Paper.n+“题,共做对“+n+“道!

\n得分:

“+(int)((((double)n)/Paper.n)*100));

//Paper.n=0;

}

});5.测试结果5.1用户选择信息模块

图5.1

初级选择

图5.2

确认初级选择

图5.3

中级选择

图5.4

确定中级选择

图5.5

高级选择

图5.6

确定高级选择

图5.7

输入题目个数

5.2题目信息模块

图5.8

出题与做题

图5.9

重新出题

5.3答案信息模块

图5.10

评卷结果

5.4成绩信息模块

图5.11

得分

6.结束语本文通过运用Java语言在计算机中实现了一个对小学计算试卷的模拟,该程序可随机产生计算题目,并对所作出的答案进行比对,核对出测试得分数。

经测试,该程序能够正确运行。

生成等级界面后,通过勾选初级、中级和高级来选择不同等级难度,之后自定义题目数量,生成试卷并对题目进行填写,点击提交后,系统自行对答案进行分析并核对出正确的题目数和总分数。

测试结果表明该程序运行正常。

本次程序的设计,生成的界面有需要美化的地方,在提交之后如果能够给出错误题目的解析,会使程序更加完善。

附录

参考文献[1]赵生慧.Java面向对象程序设计(第二版)[M].北京:

中国水利水电出版社,2021.[2]毕广吉.Java程序设计实例教程[M].北京:

冶金工业出版社,2021.[3]王保罗.Java面向对象程序设计[M].北京:

清华大学出版社,2021.[4]高林.周海燕.JSP网上书店系统与案例分析[M].北京:

人民邮电出版社,2021.[5]张银鹤.JSP+Ajax网站开发典型实例[M].北京:

电子工业出版社,2021年01月.

[6]Weiss,MA.数据结构与算法分析:

Java语言描述[M].北京:

机械工业出版社,2021年01月.

[7]MetskerSJ.Java设计模式[M].北京:

电子工业出版社,2021年09月.

[8]孙卫琴.Tomcat与JavaWeb开发技术详解[M].北京:

电子工业出版社,2021年01月.[9]刘京华等.JavaWeb整合开发王者归来[M].北京:

清华大学出版社,2021年01月.[10]贺松平.基于MVC模式的B/S架构的研究及应用[D].武汉:

华中科技大学出版社,2021年4月

[11]毕建信.基于MVC设计模式的Web应用研究与实现[D].武汉:

武汉理工大学出版社,2021年5月.致谢在本次程序的设计中,要特别感谢我们的指导老师XXX老师的热情关怀和悉心指导,老师在选题以及程序内容的完善方面给了我们不少建议和灵感,给予了我们很大的帮助。

同时感谢XX、XX、XX和XX同学,是他们的认真付出、齐心协力地对程序进行构思设计、编写和调试,通过分工与合作使报告文档和程序能够呈现。

指导教师评语

成绩评定

指导教师签名:

填表日期:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1