课程设计设计一个小学算术运算测试软件.docx
- 文档编号:5055895
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:18
- 大小:96.81KB
课程设计设计一个小学算术运算测试软件.docx
《课程设计设计一个小学算术运算测试软件.docx》由会员分享,可在线阅读,更多相关《课程设计设计一个小学算术运算测试软件.docx(18页珍藏版)》请在冰豆网上搜索。
课程设计设计一个小学算术运算测试软件
课程设计报告书
课程名称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("加油哦! ");}//否则输出加油哦
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 设计 一个 小学 算术 运算 测试 软件