Java课程研发设计方案研究报告.docx
- 文档编号:9294570
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:13
- 大小:38.63KB
Java课程研发设计方案研究报告.docx
《Java课程研发设计方案研究报告.docx》由会员分享,可在线阅读,更多相关《Java课程研发设计方案研究报告.docx(13页珍藏版)》请在冰豆网上搜索。
Java课程研发设计方案研究报告
Java程序设计
课程设计报告
院别:
计算机系
班级:
XXXX
学号:
141124XXXXX
姓名:
XXX
指导教师:
XXX
日期:
2013-5-24
1概述
1.1设计目的及思路
通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
利用JavaApplet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。
给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。
除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。
当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!
1.2功能模块设计
以下为标准计算器的基本功能:
(1)加法
两个数据进行加操作,可以为小数。
(2)减法
两个数据进行减操作,可以为负数相减。
(3)乘法两个数相乘操作。
(4)除法
两个数相除操作
(5)清零
将运算框清除
(6)返回
退回一格
2计算器的设计与实现
2.1程序界面
2.2程序源代码
importjava.awt.*。
importjava.awt.event.*。
importjavax.swing.*。
importjavax.swing.event.*。
publicclassCalculatorextendsJFrameimplementsActionListener
{
JPanelvv1,vv2,vv3,vv4。
JTextFieldkk1。
//添加数字框和符号框
JButton[]r={newJButton("7"),newJButton("8"),newJButton("9"),newJButton("/"),newJButton("4"),newJButton("5"),newJButton("6"),newJButton("*"),newJButton("1"),newJButton("2"),newJButton("3"),newJButton("-"),newJButton("0"),newJButton("."),newJButton("+"),newJButton("="),newJButton("←"),newJButton("清空")}。
doublea=0,b=0,c=0,fuhao=5。
Booleanhas=false。
Booleanhav=true。
Booleanhaw=true。
Calculator(StringS)
{
setTitle(S)。
kk1=newJTextField("0",20)。
kk1.setEditable(false)。
kk1.setFont(newFont("宋体",Font.BOLD,25))。
kk1.setBackground(Color.YELLOW)。
for(inti=16。
i<18。
i++){
r[i].setFont(newFont("黑体",Font.BOLD,15))。
r[i].setForeground(Color.blue)。
}
vv1=newJPanel(newGridLayout(4,5,5,5))。
vv2=newJPanel(newGridLayout(1,2,1,1))。
vv3=newJPanel(newFlowLayout())。
vv4=newJPanel(newBorderLayout())。
vv3.add(kk1)。
vv4.add(vv2,BorderLayout.NORTH)。
vv4.add(vv1,BorderLayout.CENTER)。
for(inti=0。
i<16。
i++)
r[i].setForeground(Color.black)。
this.add(vv3,BorderLayout.NORTH)。
this.add(vv4,BorderLayout.CENTER)。
for(inti=16。
i<18。
i++)
vv2.add(r[i])。
for(inti=0。
i<16。
i++)
vv1.add(r[i])。
for(inti=0。
i<18。
i++)
r[i].addActionListener(this)。
for(inti=16。
i<18。
i++){
setSize(350,300)。
setLocation(210,205)。
setResizable(false)。
setVisible(true)。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。
}}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==r[12])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"0")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"0")。
hav=true。
haw=true。
}
}
elseif(e.getSource()==r[8])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"1")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"1")。
hav=true。
haw=true。
}
}
elseif(e.getSource()==r[9])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"2")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"2")。
hav=true。
haw=true。
}
}
elseif(e.getSource()==r[10])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"3")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"3")。
hav=true。
haw=true。
}
}
elseif(e.getSource()==r[4])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"4")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"4")。
hav=true。
haw=true。
}
}
elseif(e.getSource()==r[5])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"5")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"5")。
hav=true。
haw=true。
}
}
elseif(e.getSource()==r[6])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"6")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"6")。
hav=true。
haw=true。
}
}
elseif(e.getSource()==r[0])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"7")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"7")。
hav=true。
haw=true。
}
}
elseif(e.getSource()==r[1])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"8")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"8")。
hav=true。
haw=true。
}
}
elseif(e.getSource()==r[2])
{if(hav&&haw&&!
kk1.getText().equals("0"))
kk1.setText(kk1.getText()+"9")。
else{kk1.setText("")。
kk1.setText(kk1.getText()+"9")。
hav=true。
haw=true。
}
}//数字键
elseif(e.getSource()==r[14])
{
if(kk1.getText().trim().length()>0)
{a=Double.valueOf(kk1.getText())。
kk1.setText("")。
fuhao=0。
has=true。
hav=true。
haw=false。
}elseif(!
haw)
{fuhao=0。
}
}
//+
elseif(e.getSource()==r[11])
{
if(kk1.getText().trim().length()>0)
{a=Double.valueOf(kk1.getText())。
kk1.setText("")。
fuhao=1。
has=true。
hav=true。
haw=false。
}elseif(!
haw)
{fuhao=1。
}
}
//-
elseif(e.getSource()==r[7])
{
if(kk1.getText().trim().length()>0)
{a=Double.valueOf(kk1.getText())。
kk1.setText("")。
fuhao=2。
has=true。
hav=true。
haw=false。
}elseif(!
haw)
{fuhao=2。
}
}
//*
elseif(e.getSource()==r[3])
{
if(kk1.getText().trim().length()>0)
{a=Double.valueOf(kk1.getText())。
kk1.setText("")。
fuhao=3。
has=true。
hav=true。
haw=false。
}elseif(!
haw)
{fuhao=3。
}
}
//运算符号/
elseif(e.getSource()==r[15])
{
if(kk1.getText().length()>0&&has)
{
b=Double.valueOf(kk1.getText())。
//=
if(fuhao==0)
{
c=a+b。
kk1.setText(String.valueOf(c))。
has=false。
hav=false。
}
elseif(fuhao==1)
{
c=a-b。
kk1.setText(String.valueOf(c))。
has=false。
hav=false。
}
elseif(fuhao==2)
{
c=a*b。
kk1.setText(String.valueOf(c))。
has=false。
hav=false。
}
elseif(fuhao==3)
{if(b!
=0)
{c=a/b。
kk1.setText(String.valueOf(c))。
}
elseJOptionPane.showMessageDialog(null,"除数不能为0")。
has=false。
hav=false。
}
}
}//计算
elseif(e.getSource()==r[13])
{
if(kk1.getText().indexOf(".")==-1&&kk1.getText().length()>0)
kk1.setText(kk1.getText()+".")。
}//添加小数点
elseif(e.getSource()==r[16]){
if(kk1.getText().length()>1)kk1.setText(kk1.getText().substring(0,kk1.getText().length()-1))。
elsekk1.setText("0")。
hav=true。
}//Backspace
elseif(e.getSource()==r[17])
{
kk1.setText("0")。
has=false。
hav=true。
}
}
//CE
publicstaticvoidmain(String[]args){
newCalculator("计算器")。
}
}
3运行调试及讨论分析
将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运行将会出现一个JavaApplet计算器界面。
在调试过程中可能会出现有界面但是不能运行小程序,那是因为没有初始化小程序,那时我们应该在主函数中将小程序进行初始化,这样小程序才能运行!
在调试和运行完全正确后,我们就对小程序进行简单测试,例如输入一些简单数据分别运行各个按钮结果正确后可以初步确定程序师正确的。
有时候我们还要输入不同范围的值进行测试,可能会发现更多的错误,因为有时候我们定义数据的范围可能会过小或输入数据会越界,到时我们就可以改正以适应更多更大的运算。
有时候我们可能会到书上或网上找到一些满足我们要求的程序代码,在此我们应该取其优秀的简单易理解代码作为我们设计程序的代码,作为初学者参考和借用部分外部程序是不可避免,但是我认为前提我们应该看懂那些程序代码,要知其所以然,那样才达到我们学程序的目的,但不主张完全照搬,否则就会没意义了!
4小结
通过这个星期每天通宵达旦的做课设,虽然最后是完成了任务。
但是做起来很费力,有些地方还是没怎么搞懂,时间又不允许总在一个问题上纠结。
所以只是很表面的学习了一下东西,通过这次课设使我明白,要脚踏实地学习,快餐式的学习不可取。
在编写代码的时候出现了很多错误,都是一些平时不怎么关注的,所以,平时还是要多实践。
还有最重要的一点就是不到万不得已才去请教别人要知道独立思考的能力对你很重要。
要知道程序员的时间是很宝贵的。
另外我这次课设部分程序是通过外部资料得到的,这使得我认识到查阅资料和开外多看书籍的重要性。
但不主张照搬,因为那不是我们自己成果,那是不光彩的。
总之通过此次课设我学到了好多,也掌握了好多关于JavaApplet的事件管理和按钮功能实现方法,这次课设给我的感受就是:
只要你有心,不怕你完成不了课设。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程 研发 设计方案 研究 报告