java课程设计运算测试Word格式.docx

上传人:b****6 文档编号:19954295 上传时间:2023-01-12 格式:DOCX 页数:11 大小:85KB
下载 相关 举报
java课程设计运算测试Word格式.docx_第1页
第1页 / 共11页
java课程设计运算测试Word格式.docx_第2页
第2页 / 共11页
java课程设计运算测试Word格式.docx_第3页
第3页 / 共11页
java课程设计运算测试Word格式.docx_第4页
第4页 / 共11页
java课程设计运算测试Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

java课程设计运算测试Word格式.docx

《java课程设计运算测试Word格式.docx》由会员分享,可在线阅读,更多相关《java课程设计运算测试Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

java课程设计运算测试Word格式.docx

该程序实现的功能是产生一个100以内的加减法算术题,在程序后台将此算术式结果保存到一个参数中,通过和用户从图形界面输入的答案对比,判断答案是否正确,并弹出对话框提示信息。

界面部分,主窗体包含的控件主要有:

JLabel,用于显示提示语句;

JTextField,用于用户输入答案;

JButton,用于处理操作。

界面初始化时,将一些按键,例如完成测试、提交答案等按键设置成不可用,这样可以防止误操作,每次按钮按下时,都有相应的按钮属性被更改。

后台部分,核心就是产生随机算术式。

用一个字符串数组存放加和减的操作符,产生一个大等于于0小于2的随机数,即为0或1,通过此随机数对应操作符数组中的字符,决定产生的算术式为加法或者减法,后产生两个100以内的随机数,然后通过以上判断求出结果,保存在私有变量中,同时对应的产生一个通过连接完成的字符串,作为界面题目输出的内容,以上便完成了随机算术式的生成。

程序结构

程序主要流程图如下:

函数的结构如下:

publicclassYunSuanQiextendsJFrameimplementsActionListener{

publicyunSuanQi(){//构造函数}

publicvoidcreatQuestion(){//新建题目}

publicvoidtest(){//检测是否做到10道题}

publicvoidshowMe(){//窗体显示函数}

publicvoidactionPerformed(ActionEvente){//事件处理}

publicstaticvoidmain(String[]args){//主函数}

}

各模块功能及程序说明

publicyunSuanQi(){}

该函数主要是窗体的初始化,包括添加窗体、设置控件位置等,还包括对一些参数的初始化。

publicvoidcreatQuestion(){}

该函数是程序的核心,目的是创建一道新的算术题,程序开始先产生三个随机数,其中两个为100以内的整数,用于运算,另外一个为0或1,用作随机选择减法操作,根据选择好的运算,给一个字符变量值为对应的操作符,完成对应运算,将结果保存到成员变量中,等待比较,同时产生一个字符串,内容为:

m+"

"

+fl[0]+n+"

=?

或者m+"

+fl[l]+n+"

,将此字符串利用setText方法输出到JLabel中,即为题目。

publicvoidtest(){}

该函数目的是在每次新建题目前检测是否已经做够十道题,如果够,则设置对应按钮的可用性并初始化各个控件的内容,同时弹出对话框提示测试分数,如果不够,则不进行任何操作。

publicvoidshowMe(){}

该函数是对主窗体的基本初始化,this.setLocationRelativeTo(null)设置窗体在屏幕中央打开,this.setSize(300,200)设置窗体大小,this.setVisible(true)设置窗体可见,this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)设置窗体关闭方式。

在主函数中调用此函数以使主界面显示。

publicvoidactionPerformed(ActionEvente){}

该函数目的是处理所有按钮单击事件,通过对按钮的监听,分辨哪个按钮被单击,然后运行对应按钮事件的代码。

事件代码中包括对异常的处理,如输入有误等,以保证程序顺利运行,异常均会以对话框形式弹出并显示误操作类型。

在对应按钮的代码中包含了对题目及答案的处理和计数功能。

源程序

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

privateJLabeljlQuestion1;

//题目标题

privateJLabeljlQuestion2;

//题目内容

privateJLabeljlAnswer;

//答案标题

privateJLabeljlW;

//题号

privateJLabeljlT;

//正确数

privateJButtonjbTest;

//提交答案

privateJButtonjbStart;

//开始游戏

privateJButtonjbEnd;

//停止游戏

privateJButtonjbExit;

//退出游戏

privateJTextFieldjtfAnswer;

//输入答案

privateintm,n,l,answer,trueAnswer,x;

//随机数m、n,计数参数

privatechar[]fl={'

+'

'

-'

};

//运算符数组

publicyunSuanQi(){//构造函数

this.x=0;

//参数初始化

this.trueAnswer=0;

this.setTitle("

益智游戏"

);

//控件初始化

this.setLayout(newGridLayout(6,2));

//6行2列布局

this.jlQuestion1=newJLabel();

jlQuestion1.setText("

题目:

this.jlQuestion2=newJLabel();

this.jlAnswer=newJLabel();

jlAnswer.setText("

答案:

this.jbStart=newJButton("

开始游戏"

jbStart.addActionListener(this);

//添加事件监听器

this.jbEnd=newJButton("

完成测试"

jbEnd.setEnabled(false);

//开始时不可用

jbEnd.addActionListener(this);

this.jbTest=newJButton("

提交答案"

jbTest.setEnabled(false);

jbTest.addActionListener(this);

this.jbExit=newJButton("

退出游戏"

jbExit.addActionListener(this);

this.jtfAnswer=newJTextField();

jlW=newJLabel();

jlW.setText("

题号:

+x);

jlT=newJLabel();

jlT.setText("

正确提交:

+trueAnswer);

this.add(jlW);

//添加控件

this.add(jlT);

this.add(jlQuestion1);

this.add(jlQuestion2);

this.add(jlAnswer);

this.add(jtfAnswer);

this.add(newJLabel());

//添加空占位label

this.add(jbStart);

this.add(jbTest);

this.add(jbEnd);

this.add(jbExit);

}

publicvoidcreatQuestion(){//新建题目

this.m=(int)(Math.random()*100);

//随机运算数

this.n=(int)(Math.random()*100);

this.l=(int)(Math.random()*1);

//随机数0或1,匹配随机运算符

if(fl[l]=='

){//l为0时加法

answer=m+n;

//加法结果

this.jlQuestion2.setText(m+"

//使label显示题目内容

}elseif(fl[l]=='

){//l为1时减法

answer=m-n;

//减法结果

}

publicvoidtest(){//检测函数,检测是否做到10道题

if(this.x==11){//如果做够数目

jlW.setText("

0"

//界面初始化

jlT.setText("

jbStart.setText("

this.jtfAnswer.setText("

this.jlQuestion2.setText("

JOptionPane.showMessageDialog(null,"

题目数:

10,测试得分:

+(10*trueAnswer),"

JOptionPane.INFORMATION_MESSAGE);

//弹出统计对话框

x=0;

//数据初始化

trueAnswer=0;

jbStart.setEnabled(true);

//设置对应按钮是否可用

jbEnd.setEnabled(false);

jbTest.setEnabled(false);

publicvoidshowMe(){//窗体显示函数

this.setLocationRelativeTo(null);

//窗体在屏幕中央打开

this.setSize(300,200);

//窗体大小

this.setVisible(true);

//窗体可见

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//窗体关闭方式

publicvoidactionPerformed(ActionEvente){//事件处理

//TODOAuto-generatedmethodstub

if(e.getSource()==jbStart){//开始游戏或下一题按钮

if(jbStart.getText()=="

){//按钮为开始游戏

x++;

//题目增一

jbStart.setText("

下一题"

jbEnd.setEnabled(true);

//设置按钮可用

jbTest.setEnabled(true);

creatQuestion();

//新建题目

jlW.setText("

jlT.setText("

}elseif(jbStart.getText()=="

){//按钮为下一题

test();

//测试题目总数是否够10

}

}elseif(e.getSource()==jbTest){//提交答案按钮

try{

intq=Integer.parseInt(jtfAnswer.getText());

if(q==answer){//答案正确

JOptionPane.showMessageDialog(null,"

正确!

"

//提示正确

trueAnswer++;

//正确回答数增一

creatQuestion();

x++;

jlW.setText("

jlT.setText("

test();

//判断题目总数

this.jtfAnswer.setText("

//答案输入框置空

}else{//答案错误

错误!

//提示错误

}

}catch(NumberFormatExceptionnfe){//转换异常处理

JOptionPane.showMessageDialog(null,"

输入有误!

JOptionPane.ERROR_MESSAGE);

//提示有误

}elseif(e.getSource()==jbEnd){//中途结束游戏按钮

+x+"

,测试得分:

//统计信息对话框

}elseif(e.getSource()==jbExit){//退出游戏按钮

System.exit(0);

publicstaticvoidmain(String[]args){

yunSuanQiy=newyunSuanQi();

y.showMe();

操作方法

运行程序,按下“开始”按钮就可进入算数计算测试状态,然后在文本框输入你算出的答案,点击“提交”按钮,就可知道自己所填答案是否正确。

若正确,则提示正确,并在正确的题目上累计正确个数,进行下一题;

若错误,则提示错误,但不进行下一题,单击“完成测试”按钮,可以直接完成测试,分数将对应当前题目总数计算,当做够10道题时,程序自动停止测试,弹出对话框显示所得分数,此时可以单击“开始”重新测试。

运行结果

开始:

测试状态:

正确:

错误:

输入有误:

中途停止:

完成测试:

设计体会

通过此次课程设计,我更加深刻的理解了JAVA程序设计语言的魅力。

算法当然是各种程序设计语言的基础,但只有算法我们还有很多解决不了的实际问题。

而JAVA的核心是面向对象,面向对象就可以解决我们生活中的很多例子,而引进窗体、用户界面的内容就更加丰富了JAVA程序设计语言的强大功能。

JAVA程序设计语言最吸引我的是它的跨平台操作,这也是它不同于且强大于其他程序设计语言之处,相同的程序,但可以在不同的操作系统下执行,这也是让我最终选择走向JAVA学习的原因。

虽然在暑假的时候参加了一个月的JAVA培训,学到的东西也很多,这学期也学习了不少JAVA,但自己总觉得在程序设计语言方面还缺少很多,尤其是自己选定的方向。

所以,自己还需要更多的学习来丰富自己的大脑,为明年的就业做好准备。

而这次的课程设计其实没有什么难度,但对于大多数没有认真学习JAVA的已经足够了。

我之所以选这个题目也是因为自己以前就做过,而且最近课程设计太多,忙不过来,所以直接改改符合了要求就完成了。

这次是这样,但以后自己一定要做些更加有挑战性的题目来增强自己的实力,希望自己能在毕业设计中做出功能更加强大的,更实际的题目来。

最后,感谢孙老师这年来给我们辛苦的代课!

谢谢老师!

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

当前位置:首页 > 法律文书 > 起诉状

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

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