2024年1月9日发(作者:)
.
河北工程大学科信学院
JAVA课程设计说明书
——————计算器的设计
专业班级 班
课设题目
学生姓名
学生**
指导教师
提交日期 2
一、内容摘要:
运用本学期所学知识设计一个能够完成简单四则运算的计算器;以Myeclipse作为开发环境,结合之前所学的Java根底知识共同完成。该计算器的计算结果保存了两位小数;这里简单介绍设计思想:构造出一个界面,然后往面板上粘贴各个组件,包括按钮、标签、文本框等。
二、设计目的:
通过课程设计加深对Java程序设计的理解,掌握Java程序开发的根本方法,把课堂上所学到的多个单元串到一起,提高解决问题和分析问题的能力,具体表达在以下几个方面:
1、
了解Java开发一般应用程序的方法和步骤;
2、
进一步强化类的定义,掌握类的继承、接口;
3、
熟练掌握变量、数组的应用;
4、
熟悉图形用户界面中常用组件的使用,掌握事件处理机制;
5、
了解数据库连接技术JDBC、网络编程和多线程机制。
. >
.
三、设计内容:
计算器的根本功能:
加法运算:用"+〞按钮进展运算;
减法运算:用"-〞按钮进展运算;
乘法运算:用 "*〞按钮进展运算;
除法运算:用 "/〞按钮进展运算;
清零键: 用〞清空〞按钮实现;
用户界面设计
该计算器程序的设计:用户界面包括Swing组件,不过程序中大都使用的是AWT组件.
import .*;
在AWT组件中:
(1)、使用了面板和按钮:
mianban 1,2,3;
private JPanel mianBan1 = new JPanel();
口、和清空按钮
(mianBan1,);
窗口的北边private JPanel mianBan2 = new JPanel();
//存放其他按钮
(s7);
(s8);
(s9);
(jia);
(s4);
(s5);
(s6);
(jian);
(s1);
(s2);
(s3);
(cheng);
(s0);
(dian);
(deng);
(chu);
out(new GridLayout(4,4));
板2的布局模式
Button s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;
Button jia,jian,cheng,chu;
//面板1存放,窗
//面板1,存放
//面. >
.
Button 清空, = , . ;
private JPanel mianBan3 = new JPanel(); //存放标签
JLabel biaoQian0 = new JLabel("----------------------- 屠式计算器------------------------"); //标签
(biaoQian0);
(mianBan3,); //位于窗口南边
〔2〕、界面属性:
ible(true);
//可见
(); //把容器包起来
aultCloseOperation(JFrame.E*IT_ON_CLOSE); //直接退出
izontalAlignment(JTe* ); //编辑框文字右对齐
//izable(false); //不能调大小
ation(500,300); //坐标
e(330,250); //大小
〔3〕、给按钮添加背景颜色:
kground(new Color(255,50,50));
kground(new Color(255,50,50));
kground(new Color(255,50,50));
kground(new Color(255,50,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(200,250,100)); //去除按钮颜色
kground(new Color(200,200,255)); //mianBan1颜色
kground(new Color(200,200,255)); //mianBan2颜色
〔4〕、事件监听:
seListener(new OperationMouseListener());
seListener(new OperationMouseListener());
a、注册四则运算监听
. >
.
seListener(new YunSuanJianTing());
seListener(new YunSuanJianTing());
seListener(new YunSuanJianTing());
seListener(new YunSuanJianTing());
b、注册数字监听事件
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
c、清空监听器:
ionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
*t(""); //清空编辑框
d、数字按钮监听器:
private class ShuZiJianTing implements MouseListener
public void mouseClicked(MouseEvent e)
if(*t().trim().equals("0"))
0,结果还是0
*t(((JButton)rce()).getTe*t().trim());
*t(*t().concat(((JButton)rce()).getTe*t().trim()));
public void mouseEntered(MouseEvent e)
public void mouseE*ited(MouseEvent e)
public void mousePressed(MouseEvent e)
. >
//如果文本框已经是
.
public void mouseReleased(MouseEvent e)
e、运算按钮监听器:
private class YunSuanJianTing implements MouseListener
//如果输入的是运算符号,保存第一个结果和运算符号
public void mouseClicked(MouseEvent e)
num1 = *t().trim();
*t("");
operator = ((JButton)rce()).getTe*t().trim();
public void mouseEntered(MouseEvent e)
public void mouseE*ited(MouseEvent e)
public void mousePressed(MouseEvent e)
public void mouseReleased(MouseEvent e)
f、小数点、等号监听器:
private class OperationMouseListener implements MouseListener
public void mouseClicked(MouseEvent e)
if(rce() == dian)
String te*t = *t().trim();
//如果按了小数点,如果文本框已经有小数点,不做任何操作,否则在结果后面加上小数点
if(te**Of(".") == -1){
}
*t(te*("."));
else if(rce() == deng){
//如果是等号
if(!().equals("")){
if(!*t().trim().equals("")){
double result = 0D;
if(("+")){//执行加法运算
= ouble(num1) + result
ouble(*t().trim());
. >
.
}else if(("-")){//减法运算
result = ouble(num1) -
ouble(*t().trim());
}else if(("*")){//乘法运算
result = ouble(num1) *
ouble(*t().trim());
}else if(("/")){//除法运算
result = ouble(num1) /
ouble(*t().trim());
} //格式化最终结果,保存两位小数点
*t(new DecimalFormat("0.00").format(result));
四、测试
4.1加法运算〔实现49+57=106〕:
4.2减法运算〔实现48-79= -31〕:
4.3乘法运算〔684*211=144324〕:
4.4除法运算〔251/51=4.92〕:
4.5清空:任何情况下鼠标点击清空按钮都可以进展清空操作
4.6计算器整界面运行效果:
五、设计缺陷:
5.1该计算器只能进展简单的加、减、乘、除四则运算,不能进展科学计算比方:幂运算、对数运算、三角函数运算等。
5.2 在进展运算的过程中,输入数值以后当按下加减乘除任意一个按钮时数值会自动清空,这带来的不便之处在于有时候会忘记输入的值。
5.3 在不用鼠标的情况下不能对该计算器进展操作,把键盘上小键盘各个按键与界面各个按钮相对应起来操作会更加方便。
六、总结体会:
做完这次程序设计,我学到了很多知识,我选的是计算机程序,大家都说计算机程序比较简单。可我觉得虽然简单,但也有许多不清楚的地方。尤其是刚开场编写程序的时候,好多地方都出错,做着总是比想象的难。学习JAVA半年了,没学习前只是听说过,现在对JAVA也有了一些更深入的了解。比起C语言,JAVA语言确实先进了许多。
. >
.
计算器的设计,首先就是考虑图形界面怎么分布。在头脑里大概有了思路。我想设计一个计算器除了可以进展根本的加减乘除外还具备求平方、倒数和其他之类的一些功能。可到最后我也只是弄出了加减乘除。
我们用了十天的时间做程序设计,十天虽然不长,但我的收获挺大。把以前好多不清晰的知识在教师的指导下,我慢慢懂了许多。用了好七天的时间勉强的做了一个程序出来。
通过这次课程设计,我体会了JAVA广泛的运用性。由于时间仓促还有很多有待完善的地方,在今后的学习中,我会加倍努力去做好。
附:程序全部代码
import .*;
import java*.swing.*;
import .*;
import *lFormat;
public class JiSuanQi {
public JFrame chuangKou = new JFrame("计算器");
private JPanel mianBan1 = new JPanel();
private JPanel mianBan2 = new JPanel();
private JPanel mianBan3 = new JPanel();
private JTe*tField shuRuKuang = new JTe*tField(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("/");
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(){
(shuRuKuang);
(qingKong);
(mianBan1,);
(s7);
(s8);
(s9);
(jia);
(s4);
(s5);
(s6);
(jian);
(s1);
(s2);
(s3);
(cheng);
(s0);
(dian);
(deng);
(chu);
. >
.
out(new GridLayout(4,4));
(mianBan2,);
JLabel biaoQian0 = new JLabel("-----------屠式计算器----------");
(biaoQian0);
(mianBan3,);
ible(true);
();
aultCloseOperation(JFrame.E*IT_ON_CLOSE);
izontalAlignment(JTe* );
ation(500,300);
e(330,250);
kground(new Color(255,50,50));
kground(new Color(255,50,50));
kground(new Color(255,50,50));
kground(new Color(255,50,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(60,200,50));
kground(new Color(200,250,100));
kground(new Color(200,200,255));
kground(new Color(200,200,255));
. >
.
seListener(new OperationMouseListener());
seListener(new OperationMouseListener());
seListener(new YunSuanJianTing());
seListener(new YunSuanJianTing());
seListener(new YunSuanJianTing());
seListener(new YunSuanJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
seListener(new ShuZiJianTing());
ionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
*t("");
}
});
private class ShuZiJianTing implements MouseListener{
public void mouseClicked(MouseEvent e) {
if(*t().trim().equals("0")){
*t(((JButton)rce()).getTe*t().trim());
}else{
*t(*t().concat(((JButton)rce()).getTe*t().trim()));
}
. >
}
.
public void mouseEntered(MouseEvent e) {}
public void mouseE*ited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
private class YunSuanJianTing implements MouseListener{
public void mouseClicked(MouseEvent e) {
num1 = *t().trim();
*t("");
operator = ((JButton)rce()).getTe*t().trim();
}
public void mouseEntered(MouseEvent e) {}
public void mouseE*ited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
private class OperationMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e) {
if(rce() == dian){
String te*t = *t().trim();
if(te**Of(".") == -1){
*t(te*("."));
}
}else if(rce() == deng){
if(!().equals("")){
if(!*t().trim().equals("")){
double result = 0D;
if(("+")){
result = ouble(num1)
ouble(*t().trim());
. >
+
.
}else if(("-")){
result = ouble(num1)
ouble(*t().trim());
}else if(("*")){
result = ouble(num1)
ouble(*t().trim());
}else if(("/")){
result = ouble(num1)
ouble(*t().trim());
}
*t(new
DecimalFormat("0.00").format(result));
}
}
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseE*ited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
}
. >
-
*
/
发布者:admin,转转请注明出处:http://www.yc00.com/web/1704798476a1372742.html
评论列表(0条)