【精品文档】java课程设计 计算器的制作
科信学院 计算机科学与技术专业 java课设
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
书
JAVA课程设计说明书
——————计算器的设计
专业班级 班
课设题目
学生姓名
学生学号
指导教师
提交日期 2
- 1 -
科信学院 计算机科学与技术专业 java课设报告书 一、内容摘要:
运用本学期所学知识设计一个能够完成简单四则运算的计算器;以Myeclipse作
为开发环境,结合之前所学的Java基础知识共同完成。该计算器的计算结果保留了
两位小数;这里简单介绍设计思想:构造出一个界面,然后往面板上粘贴各个组件,
包括按钮、标签、文本框等。
二、设计目的:
通过课程设计加深对Java程序设计的理解,掌握Java程序开发的基本
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
,把课堂上所学到的多个单元串到一起,提高解决问题和
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
问题的能力,具体体现在以下几个方面:
1、 了解Java开发一般应用程序的方法和步骤;
进一步强化类的定义,掌握类的继承、接口; 2、
3、 熟练掌握变量、数组的应用;
4、 熟悉图形用户界面中常用组件的使用,掌握事件处理机制;
5、 了解数据库连接技术JDBC、网络编程和多线程机制。
三、设计内容:
3.1 需求分析
3.1.1 计算器的基本功能:
加法运算:用“+”按钮进行运算;
减法运算:用“-”按钮进行运算;
乘法运算:用 “*”按钮进行运算;
除法运算:用 “/”按钮进行运算;
清零键: 用”清空”按钮实现;
- 2 -
科信学院 计算机科学与技术专业 java课设报告书
3.2 用户界面设计
该计算器程序的设计:用户界面包括Swing组件,不过程序中大都使用的是AWT组件.
import java.awt.*;
在AWT组件中:
(1)、使用了面板和按钮:
mianban 1,2,3;
private JPanel mianBan1 = new JPanel(); //面板1存放,窗口、和清空按钮
chuangKou.add(mianBan1,BorderLayout.NORTH); //面板1,存放窗口的北边private JPanel mianBan2 = new JPanel();
//存放其他按钮
mianBan2.add(s7);
mianBan2.add(s8);
mianBan2.add(s9);
mianBan2.add(jia);
mianBan2.add(s4);
mianBan2.add(s5);
mianBan2.add(s6);
mianBan2.add(jian);
mianBan2.add(s1);
mianBan2.add(s2);
mianBan2.add(s3);
mianBan2.add(cheng);
mianBan2.add(s0);
mianBan2.add(dian);
mianBan2.add(deng);
mianBan2.add(chu);
mianBan2.setLayout(new GridLayout(4,4)); //面板2的布局模式
Button s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;
- 3 -
科信学院 计算机科学与技术专业 java课设报告书
Button jia,jian,cheng,chu;
Button 清空, = , . ;
private JPanel mianBan3 = new JPanel(); //存放标签
JLabel biaoQian0 = new JLabel("----------------------- 屠式计算器------------------------"); //标签
mianBan3.add(biaoQian0);
chuangKou.add(mianBan3,BorderLayout.SOUTH); //位于窗口南边
(2)、界面属性:
chuangKou.setVisible(true);
//可见
chuangKou.pack(); //把容器包起来
chuangKou.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //直接退出
shuRuKuang.setHorizontalAlignment(JTextField.RIGHT ); //编辑框文字右对齐
//chuangKou.setResizable(false); //不能调大小
chuangKou.setLocation(500,300); //坐标
chuangKou.setSize(330,250); //大小
(3)、给按钮添加背景颜色:
jia.setBackground(new Color(255,50,50));
jian.setBackground(new Color(255,50,50));
cheng.setBackground(new Color(255,50,50));
chu.setBackground(new Color(255,50,50));
dian.setBackground(new Color(60,200,50));
deng.setBackground(new Color(60,200,50));
s0.setBackground(new Color(60,200,50));
s1.setBackground(new Color(60,200,50));
s2.setBackground(new Color(60,200,50));
s3.setBackground(new Color(60,200,50));
s4.setBackground(new Color(60,200,50));
s5.setBackground(new Color(60,200,50));
- 4 -
科信学院 计算机科学与技术专业 java课设报告书
s6.setBackground(new Color(60,200,50));
s7.setBackground(new Color(60,200,50));
s8.setBackground(new Color(60,200,50));
s9.setBackground(new Color(60,200,50));
qingKong.setBackground(new Color(200,250,100)); //清除按钮颜色
mianBan1.setBackground(new Color(200,200,255)); //mianBan1颜色
mianBan3.setBackground(new Color(200,200,255)); //mianBan2颜色
(4)、事件监听:
dian.addMouseListener(new OperationMouseListener());
deng.addMouseListener(new OperationMouseListener());
a、注册四则运算监听
jia.addMouseListener(new YunSuanJianTing());
jian.addMouseListener(new YunSuanJianTing());
cheng.addMouseListener(new YunSuanJianTing());
chu.addMouseListener(new YunSuanJianTing());
b、注册数字监听事件
s0.addMouseListener(new ShuZiJianTing());
s1.addMouseListener(new ShuZiJianTing());
s2.addMouseListener(new ShuZiJianTing());
s3.addMouseListener(new ShuZiJianTing());
s4.addMouseListener(new ShuZiJianTing());
s5.addMouseListener(new ShuZiJianTing());
s6.addMouseListener(new ShuZiJianTing());
s7.addMouseListener(new ShuZiJianTing());
s8.addMouseListener(new ShuZiJianTing());
s9.addMouseListener(new ShuZiJianTing());
c、清空监听器:
qingKong.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
shuRuKuang.setText(""); //清空编辑框
d、数字按钮监听器:
- 5 -
科信学院 计算机科学与技术专业 java课设报告书
private class ShuZiJianTing implements MouseListener
public void mouseClicked(MouseEvent e)
if(shuRuKuang.getText().trim().equals("0")) //如果文本框已经是
0,结果还是0
shuRuKuang.setText(((JButton)e.getSource()).getText().trim());
shuRuKuang.setText(shuRuKuang.getText().concat(((JButton)e.getSource
()).getText().trim()));
public void mouseEntered(MouseEvent e)
public void mouseExited(MouseEvent e)
public void mousePressed(MouseEvent e)
public void mouseReleased(MouseEvent e) e、运算按钮监听器:
private class YunSuanJianTing implements MouseListener
//如果输入的是运算符号,保存第一个结果和运算符号
public void mouseClicked(MouseEvent e)
num1 = shuRuKuang.getText().trim();
shuRuKuang.setText("");
operator = ((JButton)e.getSource()).getText().trim();
public void mouseEntered(MouseEvent e)
public void mouseExited(MouseEvent e)
public void mousePressed(MouseEvent e)
public void mouseReleased(MouseEvent e) f、小数点、等号监听器:
private class OperationMouseListener implements MouseListener
public void mouseClicked(MouseEvent e)
if(e.getSource() == dian)
String text = shuRuKuang.getText().trim();
//如果按了小数点,如果文本框已经有小数点,不做任何操作,否则在结果后面加
上小数点
if(text.indexOf(".") == -1){
- 6 -
科信学院 计算机科学与技术专业 java课设报告书
shuRuKuang.setText(text.concat("."));
}
else if(e.getSource() == deng){
//如果是等号
if(!operator.trim().equals("")){
if(!shuRuKuang.getText().trim().equals("")){
double result = 0D;
if(operator.equals("+")){//执行加法运算
result = Double.parseDouble(num1) + Double.parseDouble(shuRuKuang.getText().trim());
}else if(operator.equals("-")){//减法运算
result = Double.parseDouble(num1) - Double.parseDouble(shuRuKuang.getText().trim());
}else if(operator.equals("*")){//乘法运算
result = Double.parseDouble(num1) * Double.parseDouble(shuRuKuang.getText().trim());
}else if(operator.equals("/")){//除法运算
result = Double.parseDouble(num1) / Double.parseDouble(shuRuKuang.getText().trim());
} //格式化最终结果,保留两位小数点
shuRuKuang.setText(new DecimalFormat("0.00").format(result));
四、测试
4.1加法运算(实现49+57=106):
4.2减法运算(实现48-79= -31):
- 7 -
科信学院 计算机科学与技术专业 java课设报告书
4.3乘法运算(684*211=144324):
4.4除法运算(251/51=4.92):
4.5清空:任何情况下鼠标点击清空按钮都可以进行清空操作
4.6计算器整界面运行效果:
五、设计缺陷:
5.1该计算器只能进行简单的加、减、乘、除四则运算,不能进行科学计算比如:幂运算、对数运算、三角函数运算等。
5.2 在进行运算的过程中,输入数值以后当按下加减乘除任意一个按钮时数值会自
- 8 -
科信学院 计算机科学与技术专业 java课设报告书
动清空,这带来的不便之处在于有时候会忘记输入的值。
5.3 在不用鼠标的情况下不能对该计算器进行操作,把键盘上小键盘各个按键与界
面各个按钮相对应起来操作会更加方便。
六、
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
体会:
做完这次程序设计,我学到了很多知识,我选的是计算机程序,大家都说计算机程序比较简单。可我觉得虽然简单,但也有许多不清楚的地方。尤其是刚开始编写程序的时候,好多地方都出错,做着总是比想象的难。学习JAVA半年了,没学习前只是听说过,现在对JAVA也有了一些更深入的了解。比起C语言,JAVA语言的确先进了许多。
计算器的设计,首先就是考虑图形界面怎么分布。在头脑里大概有了思路。我想设计一个计算器除了可以进行基本的加减乘除外还具备求平方、倒数和其他之类的一些功能。可到最后我也只是弄出了加减乘除。
我们用了十天的时间做程序设计,十天虽然不长,但我的收获挺大。把以前好多不清晰的知识在老师的指导下,我慢慢懂了许多。用了好七天的时间勉强的做了一个程序出来。
通过这次课程设计,我体会了JAVA广泛的运用性。由于时间仓促还有很多有待完善的地方,在今后的学习中,我会加倍努力去做好。
附:程序全部代码
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.text.DecimalFormat;
public class JiSuanQi {
public JFrame chuangKou = new JFrame("计算器");
private JPanel mianBan1 = new JPanel();
private JPanel mianBan2 = new JPanel();
private JPanel mianBan3 = new JPanel();
private JTextField shuRuKuang = new JTextField(20);
private JButton qingKong = new JButton("清 空");
private JButton jia = new JButton("+");
private JButton jian = new JButton("-");
private JButton cheng = new JButton("*");
private JButton chu = new JButton("/");
- 9 -
科信学院 计算机科学与技术专业 java课设报告书
private JButton dian = new JButton(".");
private JButton deng = new JButton("=");
private JButton s0 = new JButton("0");
private JButton s1 = new JButton("1");
private JButton s2 = new JButton("2");
private JButton s3 = new JButton("3");
private JButton s4 = new JButton("4");
private JButton s5 = new JButton("5");
private JButton s6 = new JButton("6");
private JButton s7 = new JButton("7");
private JButton s8 = new JButton("8");
private JButton s9 = new JButton("9");
private String num1 = "";
private String operator = "";
public static void main(String[] args) {
new JiSuanQi();
}
public JiSuanQi(){
mianBan1.add(shuRuKuang);
mianBan1.add(qingKong);
chuangKou.add(mianBan1,BorderLayout.NORTH);
mianBan2.add(s7);
mianBan2.add(s8);
mianBan2.add(s9);
mianBan2.add(jia);
mianBan2.add(s4);
mianBan2.add(s5);
mianBan2.add(s6);
mianBan2.add(jian);
mianBan2.add(s1);
- 10 -
科信学院 计算机科学与技术专业 java课设报告书
mianBan2.add(s2);
mianBan2.add(s3);
mianBan2.add(cheng);
mianBan2.add(s0);
mianBan2.add(dian);
mianBan2.add(deng);
mianBan2.add(chu);
mianBan2.setLayout(new GridLayout(4,4));
chuangKou.add(mianBan2,BorderLayout.CENTER);
JLabel biaoQian0 = new JLabel("-----------屠式计算器----------");
mianBan3.add(biaoQian0);
chuangKou.add(mianBan3,BorderLayout.SOUTH);
chuangKou.setVisible(true);
chuangKou.pack();
chuangKou.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
shuRuKuang.setHorizontalAlignment(JTextField.RIGHT );
chuangKou.setLocation(500,300);
chuangKou.setSize(330,250);
jia.setBackground(new Color(255,50,50));
jian.setBackground(new Color(255,50,50));
cheng.setBackground(new Color(255,50,50));
chu.setBackground(new Color(255,50,50));
dian.setBackground(new Color(60,200,50));
deng.setBackground(new Color(60,200,50));
s0.setBackground(new Color(60,200,50));
s1.setBackground(new Color(60,200,50));
s2.setBackground(new Color(60,200,50));
s3.setBackground(new Color(60,200,50));
s4.setBackground(new Color(60,200,50));
s5.setBackground(new Color(60,200,50));
- 11 -
科信学院 计算机科学与技术专业 java课设报告书
s6.setBackground(new Color(60,200,50));
s7.setBackground(new Color(60,200,50));
s8.setBackground(new Color(60,200,50));
s9.setBackground(new Color(60,200,50));
qingKong.setBackground(new Color(200,250,100));
mianBan1.setBackground(new Color(200,200,255));
mianBan3.setBackground(new Color(200,200,255));
dian.addMouseListener(new OperationMouseListener());
deng.addMouseListener(new OperationMouseListener());
jia.addMouseListener(new YunSuanJianTing());
jian.addMouseListener(new YunSuanJianTing());
cheng.addMouseListener(new YunSuanJianTing());
chu.addMouseListener(new YunSuanJianTing());
s0.addMouseListener(new ShuZiJianTing());
s1.addMouseListener(new ShuZiJianTing());
s2.addMouseListener(new ShuZiJianTing());
s3.addMouseListener(new ShuZiJianTing());
s4.addMouseListener(new ShuZiJianTing());
s5.addMouseListener(new ShuZiJianTing());
s6.addMouseListener(new ShuZiJianTing());
s7.addMouseListener(new ShuZiJianTing());
s8.addMouseListener(new ShuZiJianTing());
s9.addMouseListener(new ShuZiJianTing());
qingKong.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
shuRuKuang.setText("");
});
}
private class ShuZiJianTing implements MouseListener{
public void mouseClicked(MouseEvent e) {
- 12 -
科信学院 计算机科学与技术专业 java课设报告书
if(shuRuKuang.getText().trim().equals("0")){
shuRuKuang.setText(((JButton)e.getSource()).getText().trim());
}else{
shuRuKuang.setText(shuRuKuang.getText().concat(((JButton)e.getSource()).
getText().trim()));
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
private class YunSuanJianTing implements MouseListener{
public void mouseClicked(MouseEvent e) {
num1 = shuRuKuang.getText().trim();
shuRuKuang.setText("");
operator = ((JButton)e.getSource()).getText().trim();
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
private class OperationMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e) {
if(e.getSource() == dian){
String text = shuRuKuang.getText().trim();
if(text.indexOf(".") == -1){
shuRuKuang.setText(text.concat("."));
}
- 13 -
科信学院 计算机科学与技术专业 java课设报告书
}else if(e.getSource() == deng){
if(!operator.trim().equals("")){
if(!shuRuKuang.getText().trim().equals("")){
double result = 0D;
if(operator.equals("+")){
result = Double.parseDouble(num1) + Double.parseDouble(shuRuKuang.getText().trim());
}else if(operator.equals("-")){
result = Double.parseDouble(num1) - Double.parseDouble(shuRuKuang.getText().trim());
}else if(operator.equals("*")){
result = Double.parseDouble(num1) * Double.parseDouble(shuRuKuang.getText().trim());
}else if(operator.equals("/")){
result = Double.parseDouble(num1) / Double.parseDouble(shuRuKuang.getText().trim());
}
shuRuKuang.setText(new
DecimalFormat("0.00").format(result));
}
}
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
}
- 14 -