课程设计设计一个小学算术运算测试软件.docx

上传人:b****7 文档编号:26256452 上传时间:2023-06-17 格式:DOCX 页数:19 大小:97.07KB
下载 相关 举报
课程设计设计一个小学算术运算测试软件.docx_第1页
第1页 / 共19页
课程设计设计一个小学算术运算测试软件.docx_第2页
第2页 / 共19页
课程设计设计一个小学算术运算测试软件.docx_第3页
第3页 / 共19页
课程设计设计一个小学算术运算测试软件.docx_第4页
第4页 / 共19页
课程设计设计一个小学算术运算测试软件.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

课程设计设计一个小学算术运算测试软件.docx

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

课程设计设计一个小学算术运算测试软件.docx

课程设计设计一个小学算术运算测试软件

课程设计报告书

 

 

课程名称Java程序设计语言

设计题目设计一个小学算术运算测试软件

专业班级软件12-5班

学号

姓名

指导教师

 

2014年6月

1设计时间···········································3

2设计目的···········································3

3设计题目···········································3

4设计任务···········································3

4.1设计界面·········································3

4.2设计时间·········································3

5设计内容···········································4

6功能模块实现·······································4

6.1JComboBOx的事件的实现···························4

6.2Buttonn事件实现·································5

6.3两个Button事件实现选项··························7

6.4复选框事件的实现·································7

7运行与测试··········································8

8总结与展望··········································9

参考文献············································10

成绩评定············································10

附录················································11

1设计时间

6月16日到6月22日

2设计目的

综合运用图形用户界面设计的概念,熟悉使用中间面板组成层次结构复杂的GUI界面,熟悉使用时间驱动编程,熟悉使用内部类。

3设计题目

设计一个小学算术运算测试软件 

软件基本功能:

设计GUI界面,通过选择不同运算符(如加减法、乘除法)及运算数的范围(如10以内、100以内等)后随机产生指定书目(10道,20道等)的运算式子,测试提交后自动评分,根据不同测试结果给出提示(如“你真棒”,”继续努力”等。

4设计任务

4.1设计界面

在纸上设计图纸,然后用Java语言设计基本代码,然后再让其在程序中运行出来,如上图所示。

4.2设计事件

1,关于JComboBOx的事件

2,关于Button的事件设计

3,关于JRadioButton的事件设计

5设计内容

先设计GUI界面,在基础上实现JComboBOx,这个控件主要实现的功能是当在下拉列表中选定选定操作类型之后,在像行的ope位置上将其置为相应的操作符。

Button事件,这个控件主要实现操作数运算结果和文本框中结果的比对,实现label1,label2中显示做对多少题,做了多少题。

两个Button事件实现,这两个按钮主要实现选择了多少道题,按“10道题”的时候,总共选择10道题,按“20道题”的时候,总共选择20道题。

复选框事件的实现,这个控件主要实现选择10以内的题还是100以内的题,设置常数,实现选择。

6功能模块实现

6.1JComboBOx的事件的实现

这个控件主要实现的功能是当在下拉列表中选定选定操作类型之后,在像行的ope位置上将其置为相应的操作符。

代码部分如下:

publicclassitemeventimplementsItemListener{//实现下拉列表框的事件

publicvoiditemStateChanged(ItemEvente){

if(jrbut.getSelectedIndex()==0){//如果下拉列表框中选定的是第一项,即加号

calcuType=1;ope.setText("+");}//将操作符的部分置为“+”号

elseif(jrbut.getSelectedIndex()==1){//如果下拉列表框中选定的是第二项项,即减号

calcuType=2;ope.setText("-");}//将操作符的部分置为“-”号

elseif(jrbut.getSelectedIndex()==2)//如果下拉列表框中选定的是第三项项,即减号

{calcuType=3;ope.setText("*");}//将操作符的部分置为“*”号

else{calcuType=4;ope.setText("/");};//将操作符的部分置为“/”号

}

}

6.2Button事件实现

这个控件主要实现操作数运算结果和文本框中结果的比对,实现label1,label2中显示做对多少题,做了多少题。

代码部分如下:

publicclassitemeventimplementsItemListener{//实现下拉列表框的事件

publicvoiditemStateChanged(ItemEvente){

if(jrbut.getSelectedIndex()==0){//如果下拉列表框中选定的是第一项,即加号

calcuType=1;ope.setText("+");}//将操作符的部分置为“+”号

elseif(jrbut.getSelectedIndex()==1){//如果下拉列表框中选定的是第二项项,即减号

calcuType=2;ope.setText("-");}//将操作符的部分置为“-”号

elseif(jrbut.getSelectedIndex()==2)//如果下拉列表框中选定的是第三项项,即减号

{calcuType=3;ope.setText("*");}//将操作符的部分置为“*”号

else{calcuType=4;ope.setText("/");};//将操作符的部分置为“/”号

}

}

intop=0;

classButtonListenerimplementsActionListener{

publicvoidactionPerformed(ActionEventevent){

intx=0,y=0,z=0,temp=0;

if(answer.getText().length()==0){}//如果是answer中字符创长度为零的话,什么也不做

else{//否则就做以下部分

try{

z=(int)Integer.valueOf(answer.getText());

x=(int)Integer.valueOf(operate1.getText());

y=(int)Integer.valueOf(operate2.getText());

}catch(Exceptione){}

if(calcuType==1){//如果是加法

if(x+y==z)

{

rightnum++;

label3.setText("你真棒!

");//如果做对,输出你真棒

}

else{label3.setText("加油哦!

");}//否则输出加油哦

}

elseif(calcuType==2){//如果是减法

if(x-y==z)

{rightnum++;label3.setText("你真棒!

");}//如果做对,输出你真棒

else{label3.setText("加油哦!

");}//否则输出加油哦

}

elseif(calcuType==3){//如果是乘法

if(x*y==z){rightnum++;label3.setText("你真棒!

");}//如果做对,输出你真棒

else{label3.setText("加油哦!

");}//否则输出加油哦

}

else//或者是除法

{

if(x/y==z){rightnum++;label3.setText("你真棒!

");}//如果做对,输出你真棒

else{label3.setText("加油哦!

");}//否则输出加油哦

}

if(t==9){//判断是10以内的

x=(int)(9*Math.random());

while(x==0){x=(int)(Math.random());};

y=(int)(9*Math.random());

while(y==0){y=(int)(Math.random());};

if(x

operate1.setText(String.valueOf(x));

operate2.setText(String.valueOf(y));//设置操作数

}

else{//当是100以内的数时

x=(int)(99*Math.random());

while(x==0){x=(int)(Math.random());};

y=(int)(99*Math.random());

while(y==0){y=(int)(Math.random());};

if(x

operate1.setText(String.valueOf(x));

operate2.setText(String.valueOf(y));

}

if(x

operate1.setText(String.valueOf(x));

operate2.setText(String.valueOf(y));

totalnum++;

label1.setText("已做"+totalnum+"题");//设置总共做的题数

label2.setText("做对"+rightnum+"题");//设置做对的题数

answer.setText("");//将answer的文本置空

if(totalnum>op){

System.exit(0);

}

}

}

}

6.3两个Button事件实现选项

这两个按钮主要实现选择了多少道题,按“10道题”的时候,总共选择10道题,按“20道题”的时候,总共选择20道题。

代码部分如下

publicclasseventimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==but1){

op=10;

la1.setText("共有"+op+"道题");

}

elseif(e.getSource()==but2){

op=20;

la1.setText("共有"+op+"道题");

}

}

}

6.4复选框事件的实现

这个控件主要实现选择10以内的题还是100以内的题,设置常数,实现选择。

代码部分如下

publicclassactionimplementsActionListener{

@Override

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==myradio1){//如果是复选框1中被选定

t=9;

}

else{

t=90;

}

}

}

7运行与测试

加法

减法

乘法

除法

8总结与展望

在整个设计中也遇到了不少的问题,但通过仔细的检查与研究问题都一一解决了。

在整个实验设计的过程中,我不但加深了对这门课的理解同时也巩固了Java程序的整体结构。

通过实验中发现的问题,使我明白了自己原来的知识都太过理论化了,面对单独的课题时是多么的茫然。

自己要学习的东西还有很多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。

通过实验,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己的知识和综合素质。

总之,单靠书本上的理论知识是无法体现出知识的真正价值的!

很多时候,我们以为我们都会了,但等到用的时候才发现是两回事,所以我们必须通过实际的操作应用去分析理解它!

 

参考文献

[1]屈辉立,陈可明,石武信.JSP网站编程教程[M].第1版,北京:

北京希望电子出版社,2005

[2]白勇.用B/S模式构建在线考试系统[J],重庆电力高等专科学校学报,2003,10(4):

100~130.

[3]JiangGuo,YuehongLiao,BehzadParviz.ASurveyofJ2EEApplicationPerformanceManagementSystems[J],ProceedingsoftheIEEEInternationalConferenceonWebServices(ICWS'04),2004.6(5):

17~32.

[4]VB数据库管理范例:

成绩评定

成绩教师签字

附录:

packagemyjava;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

publicclasscalculate{

JFrameframe=newJFrame();

inttotalnum=0;

intrightnum=0;

intcalcuType=1;

staticintt=9;

JLabeloperate1=newJLabel("");

JLabelope=newJLabel("+");

JLabeloperate2=newJLabel("");

JLabelequl=newJLabel("=");

JTextFieldanswer=newJTextField("",5);

JPanelp1=newJPanel();

JRadioButtonmyradio1,myradio2;

JButtonok=newJButton("确认");

JLabellabel1=newJLabel("已做"+totalnum+"题");

JLabellabel2=newJLabel("做对"+rightnum+"题");

JPanelp2=newJPanel();

JLabellabel3;

String[]str={"加法","减法","乘法","除法"};

JComboBoxjrbut=newJComboBox(str);

JPanelopt=newJPanel();

JButtonbut1,but2;

JLabella1;

publiccalculate(){

opt.add(jrbut);

jrbut.setSelectedIndex(0);

frame.setLocation(400,100);

frame.setLayout(newGridLayout(3,1));

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

p1.add(operate1);

p1.add(ope);

p1.add(operate2);

p1.add(equl);

p1.add(answer);

p1.add(jrbut);

frame.add(p1);

p2.add(ok);

but1=newJButton("10题");

but2=newJButton("20题");

label3=newJLabel();

p2.add(label3);

p2.add(but1);

p2.add(but2);

but1.addActionListener(newevent());

but2.addActionListener(newevent());

frame.add(p2);

JPanelpl=newJPanel();

pl.add(label1);

pl.add(label2);

la1=newJLabel();

pl.add(la1);

frame.add(pl);

myradio1=newJRadioButton("10以内");

myradio2=newJRadioButton("100以内");

ButtonGroupgroup=newButtonGroup();

group.add(myradio1);

group.add(myradio2);

pl.add(myradio1);

pl.add(myradio2);

myradio1.setSelected(true);

frame.add(pl);

myradio1.addActionListener(newaction());

myradio2.addActionListener(newaction());

intx,y,temp;

if(t==9){

x=(int)(9*Math.random());

while(x==0){x=(int)(Math.random());};

y=(int)(9*Math.random());

while(y==0){y=(int)(Math.random());};

if(x

operate1.setText(String.valueOf(x));

operate2.setText(String.valueOf(y));

}

else{

x=(int)(99*Math.random());

while(x==0){x=(int)(Math.random());};

y=(int)(99*Math.random());

while(y==0){y=(int)(Math.random());};

if(x

operate1.setText(String.valueOf(x));

operate2.setText(String.valueOf(y));

}

frame.setVisible(true);

frame.setSize(400,150);

jrbut.addItemListener(newitemevent());

ok.addActionListener(newButtonListener());

label1.setText("已做"+totalnum+"题");

label2.setText("做对"+rightnum+"题");

la1.setText("共有"+op+"道题");

}

publicclassitemeventimplementsItemListener{//实现下拉列表框的事件

publicvoiditemStateChanged(ItemEvente){

if(jrbut.getSelectedIndex()==0){//如果下拉列表框中选定的是第一项,即加号

calcuType=1;ope.setText("+");}//将操作符的部分置为“+”号

elseif(jrbut.getSelectedIndex()==1){//如果下拉列表框中选定的是第二项项,即减号

calcuType=2;ope.setText("-");}//将操作符的部分置为“-”号

elseif(jrbut.getSelectedIndex()==2)//如果下拉列表框中选定的是第三项项,即减号

{calcuType=3;ope.setText("*");}//将操作符的部分置为“*”号

else{calcuType=4;ope.setText("/");};//将操作符的部分置为“/”号

}

}

intop=0;

classButtonListenerimplementsActionListener{

publicvoidactionPerformed(ActionEventevent){

intx=0,y=0,z=0,temp=0;

if(answer.getText().length()==0){}//如果是answer中字符创长度为零的话,什么也不做

else{//否则就做以下部分

try{

z=(int)Integer.valueOf(answer.getText());

x=(int)Integer.valueOf(operate1.getText());

y=(int)Integer.valueOf(operate2.getText());

}catch(Exceptione){}

if(calcuType==1){//如果是加法

if(x+y==z)

{

rightnum++;

label3.setText("你真棒!

");//如果做对,输出你真棒

}

else{label3.setText("加油哦!

");}//否则输出加油哦

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

当前位置:首页 > 农林牧渔 > 林学

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

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