文档库

最新最全的文档下载
当前位置:文档库 > Java课程设计报告

Java课程设计报告

实验一:计算器应用程序实验报告

目录

一概述......................................... 错误!未定义书签。二总体方案设计 . (3)

三详细设计 (11)

五课程设计体会和总结 (12)

六附录.................................................... (13)

一概述

1.程序具备的功能:

(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、

除运算符;“小数点”和“等于”符号;复位按钮;清空按钮;开方和平方以及求倒按钮;

(2)完成整数、实数的四则运算(加、减、乘、除);

(3)通过按钮点击实现数据的复位(清空);

(4)通过按钮点击实现数据的删除;

(5)通过按钮点击实现对数据的开方或平方。

2.课程设计的主要设计思想

对于此计算器程序,首先要设计其GUI界面,总体界面有一个文本框,22个按钮,总体界面用BorderLayout布局。

文本框放置在最上端,然后0到9以及+,-,*,/,sqrt,平方,求倒的按钮放置到一个面板Panel中,添加到整体布局的中,界面设计完成。

布局设计好后再添加按钮事件。对于此程序要考虑到点击加、

减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮

或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮

的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按

钮的数值设置到文本框中。

在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之

前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数

值加、减、乘、除。

二总体方案设计

1.界面设计

界面设计要求用GUI,界面设计中有用到swing组件的TextField 和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如下:

Java课程设计报告

2.功能介绍

这是一种简单的计算器中,本项目用到了Java中的GUI界面和swing组件以及awt布局,简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;

还能通过按钮键进行开方和平方及求倒运算;

如果输入有误时可以清空按钮撤销后重新输入新数据;

还可以后退按钮来向后退一位数字而不必全部删除。

三详细设计

程序流程图如下:

Java课程设计报告

部分代码展示及说明:

(1)这段代码主要是对程序的主框架进行相应的设置。

class JSQFrame extends JFrame

{

public JSQFrame()

{

setTitle("计算器");

setSize(WIDTH,HEIGHT);

JSQPanel panel=new JSQPanel();

panel.setBackground(Color.blue);//设置背景颜色为蓝色

Border border=BorderFactory.createLoweredBevelBorder();

Border bj=BorderFactory.createTitledBorder(border,"计算器");

panel.setBorder(bj);

Container contentPane=getContentPane();

contentPane.add(panel);

l = new JLabel(TP);

l.setBounds(3, 0,333, 375);

contentPane.add(l);//在面板上增加图片

contentPane.add(panel);

}

public static final int WIDTH=333;

public static final int HEIGHT=375;//设置大小

protected JLabel l;

protected ImageIcon TP;

}

(2)这段代码是在框架上加按钮及背景外观的设置:public JSQPanel()

{

i = new ImageIcon("1.jpg");

lab = new JLabel(i);

add(lab);//显示图片

display=new JTextField("",30);

display.setBounds(0, 15,15, 25);

add(display)

JPanel Buttons=new JPanel();

Buttons.setLayout(new GridLayout(4,6,6,6));

addButton(this," ←");

addButton(this," 清空");

String buttons="123=a456+-789*/.0";

for(int i=0;i

addButton(Buttons,buttons.substring(i,i+1));

addButton(Buttons,"sqrt");

addButton(Buttons,"求倒");

addButton(Buttons,"平方");

add(Buttons); //在框架上加按钮

}

(3)这段代码是对不同按钮颜色的设置:private void addButton(Container c,String s)

{ JButton b=new JButton(s);

if(s.charAt(0)>='0'&&s.charAt(0)<='9')

b.setBackground(Color.green);

else b.setBackground(Color.orange);

c.add(b);

b.addActionListener(this);

}

(4)这段代码是对程序如何进行运算的设计

public void actionPerformed(ActionEvent event)

{

String s=event.getActionCommand();

if(s.charAt(0)>='0'&&s.charAt(0)<='9'||s.equals("."))

{

if(start) display.setText(s);

else display.setText(display.getText()+s);

start=false;//判断是不是数字或小数点

}

else

{

if(start)

{

if(s.equals("-"))

{

display.setText(s);

start=false;

}

else op=s;

}

if(s.equals(" 清空"))

{ arg=0;

op="=";

display.setText("");}//清空按钮作用设置

else if(s.equals(" ←")) {

String a=display.getText();

String s1=a.substring(0,a.length()-1);

arg=Double.parseDouble(s1);

display.setText(s1+"");//退后按钮作用设置}

else if(s.equals("sqrt"))

{

double x=Double.parseDouble(display.getText());

arg=jc(x);//调用函数

display.setText(""+arg);

tart=true;

}

else if(s.equals("平方"))

{

double x=Double.parseDouble(display.getText());

arg=x*x;//平方算法

display.setText(""+arg);

start=true; }

else if(s.equals("求倒"))

{

double x=Double.parseDouble(display.getText());

arg=1/x;//求倒算法

display.setText(""+arg);

start=true;

}

else

{

double x=Double.parseDouble(display.getText());

calculate(x);

op=s;

start=true;

}

}

}

public void calculate(double n)

{

if(op.equals("+")) arg+=n ; //加法算法

else if(op.equals("-")) arg-=n;//减法算法

else if(op.equals("/")) arg/=n;//除法算法

else if(op.equals("*")) arg*=n;//乘法算法

else if(op.equals("=")) arg=n;

display.setText(""+arg);

start=true;

}

public double jc(double x)

{

double t;

t=Math.sqrt(x);

return(t);//开方的算法

}

private JTextField display;

private double arg=0;

private String op="=";

private boolean start=true; private ImageIcon i;

private JLabel lab;

}

四程序的调试与运行结果说明事例1:45+87 预计结果132 实际结果

Java课程设计报告

事例2:29-87 预计结果-58 实际结果:

Java课程设计报告

事例2:45/5 预计结果9 实际结果

Java课程设计报告

事例3 9的平方及开方预计结果81和3 实际结果

Java课程设计报告

Java课程设计报告

五课程设计体会和总结

六附录

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.awt.color.*;

import javax.swing.border.*;

import java.util.*;

import http://www.wendangku.net/doc/df495ed576eeaeaad1f330bf.htmlng.*;

public class JSQ

{

public static void main(String[] args)

{

JSQFrame frame=new JSQFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

class JSQFrame extends JFrame

{

public JSQFrame()

{

setTitle("计算器");

setSize(WIDTH,HEIGHT);

JSQPanel panel=new JSQPanel();

panel.setBackground(Color.blue);

Border border=BorderFactory.createLoweredBevelBorder();

Border bj=BorderFactory.createTitledBorder(border,"计算器");

panel.setBorder(bj);

Container contentPane=getContentPane()

contentPane.add(panel);

l = new JLabel(TP);

l.setBounds(3, 0,333, 375);

contentPane.add(l);

contentPane.add(panel);

}

public static final int WIDTH=333;

public static final int HEIGHT=375;

protected JLabel l;

protected ImageIcon TP;

}

class JSQPanel extends JPanel implements ActionListener

{

public JSQPanel()

{

i = new ImageIcon("1.jpg");

lab = new JLabel(i);

add(lab);

display=new JTextField("",30);

display.setBounds(0, 15,15, 25);

add(display);

JPanel Buttons=new JPanel();

Buttons.setLayout(new GridLayout(4,6,6,6));

addButton(this," ←");

addButton(this," 清空");

String buttons="123=a456+-789*/.0";

for(int i=0;i

addButton(Buttons,buttons.substring(i,i+1));

addButton(Buttons,"sqrt");

addButton(Buttons,"求倒");

addButton(Buttons,"平方");

add(Buttons);

}

private void addButton(Container c,String s)

{

if(s.charAt(0)>='0'&&s.charAt(0)<='9')

b.setBackground(Color.green);

else b.setBackground(Color.orange);

c.add(b);

b.addActionListener(this);

}

public void actionPerformed(ActionEvent event)

{

String s=event.getActionCommand();

if(s.charAt(0)>='0'&&s.charAt(0)<='9'||s.equals("."))

{

if(start) display.setText(s);

else display.setText(display.getText()+s);

start=false;

}

else

{

if(start)

{

if( s.equals("-"))

{

display.setText(s);

start=false;

}

else op=s;

}

if(s.equals(" 清空"))

{

arg=0;

op="=";

display.setText("");

}

else if(s.equals(" ←"))

{

String a=display.getText();

String s1=a.substring(0,a.length()-1);

arg=Double.parseDouble(s1);

display.setText(s1+"");

}

else if(s.equals("sqrt"))

{

double x=Double.parseDouble(display.getText());

arg=jc(x);

display.setText(""+arg);

start=true;

}

else if(s.equals("平方"))

{

double x=Double.parseDouble(display.getText());

arg=x*x;

display.setText(""+arg);

start=true; }

else if(s.equals("求倒"))

{

double x=Double.parseDouble(display.getText());

arg=1/x;

display.setText(""+arg);

start=true;

}

else

{

double x=Double.parseDouble(display.getText());

calculate(x);

op=s;

start=true;

}

}

}

public void calculate(double n)

{

if(op.equals("+")) arg+=n ;

else if(op.equals("-")) arg-=n;

else if(op.equals("/")) arg/=n;

else if(op.equals("*")) arg*=n;

else if(op.equals("=")) arg=n;

display.setText(""+arg);

start=true;

}

public double jc(double x)

{

double t;

t=Math.sqrt(x);

return(t);

}

private JTextField display;

private double arg=0;

private String op="=";

private boolean start=true;

private ImageIcon i;

private JLabel lab;

}

JAVA_课程设计报告
JAVA 程序设计》 课程设计报告 设计题目: 学院名称: 专业班级: 姓学名...
Java课程设计报告-计算器
java编程计算器课程设计报告(内含代码),主要内容: 1.Windows自带计...
java课程设计报告分析
JAVA 课程设计报告学 院 :国际教育学院专业 :电子商务 姓名:马冲 陈月月...
java课程设计报告
java课程设计报告_计算机软件及应用_IT/计算机_专业资料。淮海工学院 计算...
java课程设计报告完整版样本
java课程设计报告完整版样本_调查/报告_表格/模板_实用文档。资料内容仅供您...
java课程设计报告
C++课程设计 南京晓庄学院《JAVA 程序设计》 课程设计报告 题目: 姓名:...
java课程设计报告_其它_职业教育_教育专区。淮海工学院 计算机工程学院课程设...
java课程设计报告
计算机与信息工程系《Java 课程设计报告专业 班级 学号 姓名 报告完成日期...
JAVA-课程设计报告
JAVA 程序设计》 课程设计报告 设计题目: 学院名称: 专业班级: 姓学名...
Java课程设计报告
JAVA 网络编程课程设计报告 局域网内的多功能聊天室的设计与实现 院系: 计算...
Java课程设计报告模板
Java 课程设计报告 模板 1 2020 年 4 月 19 日 文档仅供参考浙...
Java课程设计报告
Java 语言程序设计课程 综合性实验报告 项目名称: 班级: 中英文电子词典 小组成员 指导教师: 总体评价:评定项目界面美观,布局合理 操作熟练 《Java 语言程序......
java课程设计报告-java课程设计
java课程设计报告-java课程设计_IT/计算机_专业资料。java课程设计报告 文本编辑器 记事本 Java 课程设计报告 题班学姓成 目: 级: 号: 名: 绩: 文本编辑器 ......
JAVA课程设计报告模板
JAVA课程设计报告模板_设计/艺术_人文社科_专业资料。一、设计分析题目:日历...
java课程设计报告
(); } } 面向对象课程设计报告 第 10 页,共 24 页 三、详细设计加上代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; ......
java课程设计报告模板
java课程设计报告模板_工学_高等教育_教育专区。潍坊科技学院 2017-20...
(完整版)Java课程设计报告27652265
(完整版)Java课程设计报告27652265_管理学_高等教育_教育专区。研究...
JAVA课程设计报告书模板
JAVA课程设计报告书模板_电子/电路_工程科技_专业资料 暂无评价|0人阅读|0次下载 | 举报文档 JAVA课程设计报告书模板_电子/电路_工程科技_专业资料。呼伦贝尔学院......
Java课程设计报告
Java课程设计报告_工学_高等教育_教育专区。武汉长江工商学院 电子信息与计算...
java课程设计报告
山东交通学院 JAVA 课程设计报告 题目:简单微信程序 院(系、部) 专班学姓...