JAVA课程设计简单计算器.docx
《JAVA课程设计简单计算器.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计简单计算器.docx(14页珍藏版)》请在冰点文库上搜索。
JAVA课程设计简单计算器
JAVA课程设计
简单计算器设计
系别
专业
班级学号
姓名
✧课程设计题目……………………………………P3
✧课程设计简介……………………………………P3
✧课程设计源代码……………………………………P3
✧课程设计运行举例……………………………………P9
✧课程设计心得体会……………………………………P11
课程设计题目:
简单计算器设计
课程设计程序简介:
能够进行最基本的加、减、乘、除运算,是运用三个面板的叠加做出的界面。
通过按钮来进行简易计算器的各种运算,并正确实现运算功能。
如果输入错误会,程序会自动提示你的输入错误。
整个程序对话框可实现最小化,最大化,关闭。
课程设计源代码:
:
importjavax.swing.*;
importjava.io.*;
importjava.awt.*;
importjava.awt.event.*;
publicclasscounterextendsJFrameimplementsActionListener
{
JPaneltxtpanel,btnpanel,southpanel;//定义三个面板
JTextFieldtxtinput;//定义文本框
JButtonb1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,divide,add,subtract,clearbtn,equalbtn;//aboutbtn;
GridLayoutgl;//创建布局
doublesimpan,hasil;
Stringoperasi;
publiccounter()
{
super("CalculatorCabe");//设置窗体标题
txtpanel=newJPanel();//创建面板
btnpanel=newJPanel();
southpanel=newJPanel();
txtinput=newJTextField(25);//创建文本框
txtinput.setEditable(false);//设置文本框不可编辑
txtinput.setHorizontalAlignment(JTextField.RIGHT);
txtinput.setText("");//设置起始文本框内容为空
b1=newJButton("1");//创建按钮
b2=newJButton("2");
b3=newJButton("3");
b4=newJButton("4");
b5=newJButton("5");
b6=newJButton("6");
b7=newJButton("7");
b8=newJButton("8");
b9=newJButton("9");
b0=newJButton("0");
bdes=newJButton(".");
multiply=newJButton("x");
multiply.setFont(newFont("Gothic",Font.BOLD,20));//设置画笔属性
multiply.setBackground(Color.black);//设置按钮边框颜色
multiply.setForeground(Color.blue);//设置画笔颜色
divide=newJButton("/");
divide.setFont(newFont("Gothic",Font.BOLD,20));
divide.setBackground(Color.black);
divide.setForeground(Color.blue);
add=newJButton("+");
add.setFont(newFont("Gothic",Font.BOLD,20));
add.setBackground(Color.black);
add.setForeground(Color.blue);
subtract=newJButton("-");
subtract.setFont(newFont("Gothic",Font.BOLD,20));
subtract.setBackground(Color.black);
subtract.setForeground(Color.blue);
clearbtn=newJButton("C");
clearbtn.setFont(newFont("Arial",Font.ITALIC,16));
clearbtn.setBackground(Color.black);
clearbtn.setForeground(Color.green);
clearbtn.addActionListener(newActionListener()//实现清空操作
{
publicvoidactionPerformed(ActionEventargh)
{
btnCancelActionPerformed();
}
});
equalbtn=newJButton("=");
equalbtn.setFont(newFont("Arial",Font.ITALIC,20));
equalbtn.setBackground(Color.black);
equalbtn.setForeground(Color.red);
b1.addActionListener(this);//添加监视器
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b0.addActionListener(this);
bdes.addActionListener(this);
multiply.addActionListener(this);
divide.addActionListener(this);
add.addActionListener(this);
subtract.addActionListener(this);
equalbtn.addActionListener(this);
getContentPane().add(txtpanel,BorderLayout.NORTH);//设置面板位置
txtpanel.add(txtinput);//添加文本框到txtpanel面板中
gl=newGridLayout(4,4,5,5);//设置面板布局
btnpanel.setLayout(gl);
getContentPane().add(btnpanel);//窗体中加入第二个面板
//把下列按钮加入到btnpanel面板中
btnpanel.add(b7);
btnpanel.add(b8);
btnpanel.add(b9);
btnpanel.add(multiply);
btnpanel.add(b4);
btnpanel.add(b5);
btnpanel.add(b6);
btnpanel.add(divide);
btnpanel.add(b1);
btnpanel.add(b2);
btnpanel.add(b3);
btnpanel.add(add);
btnpanel.add(b0);
btnpanel.add(bdes);
btnpanel.add(equalbtn);
btnpanel.add(subtract);
getContentPane().add(southpanel,BorderLayout.SOUTH);//设置面板位置
southpanel.add(clearbtn);//把clearbtn加入到southpanel面板中
setSize(250,300);//设置窗体初始大小
setVisible(true);//设置窗体可见
setLocation(300,200);//设置初始窗体在屏幕上的位置
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置程序的关闭方式(关闭窗体时,程序自动结束)
}
publicvoidbtnCancelActionPerformed()//清空文本框内容
{
txtinput.setText("");
}
publicvoidactionPerformed(ActionEvente)
{
try
{
Objectobjkcal=e.getSource();//取得按键
if(objkcal==b1)//如果按下b1,则把文本框中的内容置为1
txtinput.setText(txtinput.getText()+"1");
else
if(objkcal==b2)
txtinput.setText(txtinput.getText()+"2");
else
if(objkcal==b3)
txtinput.setText(txtinput.getText()+"3");
else
if(objkcal==b4)
txtinput.setText(txtinput.getText()+"4");
else
if(objkcal==b5)
txtinput.setText(txtinput.getText()+"5");
else
if(objkcal==b6)
txtinput.setText(txtinput.getText()+"6");
else
if(objkcal==b7)
txtinput.setText(txtinput.getText()+"7");
else
if(objkcal==b8)
txtinput.setText(txtinput.getText()+"8");
else
if(objkcal==b9)
txtinput.setText(txtinput.getText()+"9");
else
if(objkcal==b0)
txtinput.setText(txtinput.getText()+"0");
else
if(objkcal==bdes)
txtinput.setText(txtinput.getText()+".");
else//如果按下的是“+”号键,就是保存原来文本框内容并且清空
if(objkcal==add)
{
simpan=Double.parseDouble(txtinput.getText());
operasi="plus";
txtinput.setText("");
}
else
if(objkcal==subtract)
{
simpan=Double.parseDouble(txtinput.getText());
operasi="minus";
txtinput.setText("");
}
else
if(objkcal==divide)
{
simpan=Double.parseDouble(txtinput.getText());
operasi="bagi";
txtinput.setText("");
}
else
if(objkcal==multiply)
{
simpan=Double.parseDouble(txtinput.getText());
operasi="kali";
txtinput.setText("");
}
else//如果按下“=”号,执行以下操作
if(objkcal==equalbtn)
{
if(operasi=="plus")
{
hasil=simpan+Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
else
if(operasi=="minus")
{
hasil=simpan-Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
else
if(txtinput.equals(txtinput.getText())&&objkcal==subtract)
{
hasil=simpan-Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
else
if(operasi=="bagi")
{
if(Double.parseDouble(txtinput.getText())==0)
JOptionPane.showMessageDialog(this,"被除数不能为0");
hasil=simpan/Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
else
if(operasi=="kali")
{
hasil=simpan*Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
}
}
catch(Exceptionouch)
{
JOptionPane.showMessageDialog(null,"错误输入","error",JOptionPane.ERROR_MESSAGE);
}//异常处理
}
publicstaticvoidmain(Stringargs[])
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch(Exceptione)
{}//异常处理
newcounter();//创建窗体
}
}
课程设计运行举例:
运行结果截图:
◆乘法截图例如90*80=7200
◆除法截图
1.当被除数为零的时候程序会自动提示,被除数不能为零。
例如:
6/0
⏹加法截图例如5+4=9如下:
减法截图:
100-90=10.0如下:
课程设计心得体会:
在此次的课程设计实践中,我学到了教科书上没有的东西。
这次课程设计,我按照课程设计的要求,分块实现程序的功能。
在实践中我遇到许多的问题,通过网上的BBS的交流,和同学的帮助,最后都克服,最终我成功的完成了这次课程设计。
从中我充分理解了Java面对对象的特性,并体会到Java与C语言的不同之处
在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础。
总结:
(1)通过编写这个相对复杂的程序,让我认识解决实际问题前应现建立模型,再通过建立的模型使问题简单化,从而解决问题。
(2)这次编写的程序大部分是通过调用各包中的方法来实现的,这也让我充分理解了包和类调用的关系。
(3)由于这次编写的程序相对比较复杂,所以不能一次性编写、调试,也由此让我学会把程序分块,逐个编写、调试。