JAVA课程设计简单的计算器(含代码)

JAVA课程设计简单的计算器(含代码)
JAVA课程设计简单的计算器(含代码)

Java程序课程设计任务书

一、主要任务与目标

1. 掌握java语言

2. 创建一个简单的计算器,具有简单人机交互界面,易于操作,便于进行数据之

间的简单运算。

二、具体要求(包括技术要求等):

1)能够实现基本的加、减、乘、除四则运算及开方,乘方运算;

2)如输入数据时,出现错误,可以修改;

3)运算结果能正确显示;可以清零;

4)拥有登陆注册功能;

5)可以查看历史记录;

学习并掌握以下技术:Java、awt,swing等

熟练使用以下开发工具:Jdk,JCreate 等

实现计算器的上述的功能。

三、计划进度

1.12月28日—12月29日:搜集资料、查阅文献,确定选题

2.12月30日--12月31日:需求分析,系统设计,系统功能模块完善

3.1月1日--1月3日:编程实现系统、系统测试与修改

4.1月4日-- 1月6日:课程设计报告撰写

5.1月7日-- 1月8日:课程设计报告答辩

四、主要参考文献

[1] 耿祥义,张跃平.java大学实用教程(第二版).电子工业出版社.2008年5月

目录

JA V A程序课程设计任务书........................................................................................................................ I 目录 .......................................................................................................................................................... II 第1章引言 .. (1)

1.1课程设计内容 (1)

1.2任务分工 (1)

第2章计算器定义 (2)

2.1计算器登陆注册界面概述 (2)

2.1.1 计算器功能概述 (2)

2.1.2 计算结果的储存与查看功能概述 (2)

2.2本章小结 (2)

第3章计算器的具体实现 (3)

3.1界面设计 (3)

3.1.1用户登陆界面图 (3)

3.1.3 计算器主界面 (8)

3.2计算功能实现 (9)

3.4本章小结 (14)

第4章结束语 (14)

致谢 (15)

参考文献 (15)

附录源代码 (15)

/****************引用数据包里的类与方法******************************/ (15)

第1章引言

1.1 课程设计内容

这是我组设计的计算器会有一些独特的功能,本项目用到了Java中的GUI界

面和swing组件以及awt布局,所以简单易用,它能完成如下的几个功能:

(1)数据计算处理功能

点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除四则运算及三角函数,开方,乘方运算;如果输入有误时可以按C撤销后重新输入新数据,有储存修改键;

(2)查询功能

查询功能可以迅速方便地查找到相应时段的执行的操作及结果。

(3)计算器使用权限功能

对个人的操作实现口令。用户在使用计算器前需通过登录界面登录,以保护计算器的数据安全。未有登录资料的先进行注册。

(4)时间显示功能

在计算器上显示现在的时间,便于把握时间;

1.2 任务分工

第2章计算器定义

2.1 计算器登陆注册界面概述

这是对计算器使用权限功能的添加,这是以后软件开发的一个重点发展方向。用户在使用计算器前需通过登录界面登录,以保护计算器的数据安全和使用权限的设定。未有登录资料的必须先进行注册;

2.1.1 计算器功能概述

一个计算器如果只有数据计算处理功能,或者是点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除四则运算是远远不够的,这太普通了,因此加入三角函数,开方,乘方运算,并且如果输入有误时可以按C撤销后重新输入新数据,有储存修改键;最主要是加入了查询功能:查询功能可以迅速方便地查找到相应时段的执行的操作及结果。还有就是计算器使用权限的设定,即登陆注册界面,用户在使用计算器前需通过登录界面登录,以保护计算器的数据安全。未有登录资料的先进行注册。

2.1.2 计算结果的储存与查看功能概述

计算结果有了,但是一般的计算器不能查询之前进行的操作和结果,不得不重新计算,这就带来了不少麻烦,我组设计制作的计算器拥有直接查看历史记录的功能,还附有各个操作的时间,便于确认;

2.2 本章小结

这一章介绍了当前进销存管理系统应该具备的功能模块,并提供了市面上比较流行的进销存管理系统作为参考。在这一章中,我们可以了解什么是进销存管理系统,当前进销存管理系统的市场需求,还有一个进销存管理系统应该的开发目标。

第3章计算器的具体实现

界面是系统之间最直接的交互界面,界面的友好性体现了软件设计的质量, 并在很大程度上决定了软件是否成功。

3.1界面设计

1.界面设计

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

3.1.1用户登陆界面图

如图3.1.1和3.1.2所示

图3.1.1 用户登录模块框图

图3.1.2 用户登录界面

loginDialog与compareUserData函数的作用是用户登录界面创建和检测用户登的合法性,并确认用户输入了合法的登录名和口令。

部分代码:

private void loginDialog() {

login = new JDialog();

login.setTitle("登录");

login.setLayout(new FlowLayout());

login.add(new JLabel("用户名:"));

final JTextField name = new JTextField(10);

login.add(name);

login.add(new JLabel("密码:"));

final JPasswordField password = new JPasswordField(10);

password.setEchoChar('*');

login.add(password);

JButton confirm = new JButton("登录");

confirm.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if (compareUserData(name.getText().trim(), new

String(password.getPassword()))) {

login.setVisible(false);

f.setVisible(true);

} else {

JOptionPane.showMessageDialog(login, "用户名或密码错误!", "错误提示", JOptionPane.ERROR_MESSAGE);

}

}

});

login.add(confirm);

final JDialog regDialog = new JDialog(login, "注册", true);

registerDialog(regDialog);

JButton register = new JButton("注册");

register.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

regDialog.setVisible(true);

}

});

login.add(register);

login.setSize(200, 130);

login.setResizable(false);

login.setLocationRelativeTo(null);

login.setVisible(true);

}

private boolean compareUserData(String name, String password) { try {

RandomAccessFile out = new RandomAccessFile("user.dat", "rw");

String fname, fpassword = null;

while (out.getFilePointer() < out.length()) {

fname = out.readUTF();

out.readUTF();

fpassword = out.readUTF();

if (fname.equals(name) && fpassword.equals(password)) return true;

}

out.close();

} catch (IOException e) {

e.printStackTrace();

}

return false;

}

3.1.2 用户注册界面

如图3.1.3所示

图3.1.3 用户注册界面

此registerDialog函数的作用就是注册界面的创建及信息的填写;部分代码:

private void registerDialog(final JDialog regDialog) {

Box box1 = Box.createVerticalBox();

box1.add(new JLabel("用户名:", JLabel.RIGHT));

box1.add(Box.createVerticalStrut(10));

box1.add(new JLabel("性别:", JLabel.RIGHT));

box1.add(Box.createVerticalStrut(10));

box1.add(new JLabel("密码:", JLabel.RIGHT), -1);

box1.add(Box.createVerticalStrut(10));

box1.add(new JLabel("确认密码:", JLabel.RIGHT));

Box box2 = Box.createVerticalBox();

final JTextField nameTextField = new JTextField(10);

box2.add(nameTextField);

box2.add(Box.createVerticalStrut(8));

final CheckboxGroup cbg = new CheckboxGroup(); Box box21 = Box.createHorizontalBox();

final Checkbox cb1 = new Checkbox("男", cbg, true); box21.add(cb1);

box21.add(new Checkbox("女", cbg, false));

box2.add(box21);

box2.add(Box.createVerticalStrut(8));

final JPasswordField pass1 = new JPasswordField(10); box2.add(pass1);

box2.add(Box.createVerticalStrut(8));

final JPasswordField pass2 = new JPasswordField(10); box2.add(pass2);

Box baseBox = Box.createHorizontalBox(); baseBox.add(box1);

baseBox.add(box2);

regDialog.setLayout(new FlowLayout()); regDialog.add(baseBox);

JButton confirm = new JButton("确定");

JButton cancel = new JButton("取消"); regDialog.add(confirm);

regDialog.add(cancel);

regDialog.setSize(200, 200);

regDialog.setResizable(false);

regDialog.setLocationRelativeTo(null);

confirm.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String sex = null;

if (cbg.getSelectedCheckbox() == cb1) sex = "男";

else sex = "女";

if (saveUserData(nameTextField.getText().trim(), sex,

new String(pass1.getPassword()), new String(pass2.getPassword())))

regDialog.setVisible(false);

else

JOptionPane.showMessageDialog(regDialog, "输入有误,请检查", "错误提示",JOptionPane.ERROR_MESSAGE);

}

});

cancel.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

regDialog.setVisible(false);

}

});

}

3.1.3 计算器主界面

图5.2 计算器主界面

为了能够在同一页面中管理多个页面,本系统的主界面采用了框架技术。

3.2计算功能实现

通过ActionEvent事件的处理进行计算功能的实现;

部分代码:

public void actionPerformed(ActionEvent e) {

String s = e.getActionCommand();

………………………………(省略)

} else if (s.equals("CE")) {

//如果是CE则清除文本框

tResult.setText("0");

} else if (s.equals("BackSpace")) {

if(!tResult.getText().trim().equals("0")) {

//如果文本框中有内容

StringBuffer temp = new StringBuffer(tResult.getText().trim());

if(temp.length() > 1) {

tResult.setText(temp.delete(temp.length()-1, temp.length()).toString());

} else {

tResult.setText("0");

}

}

} else if (s.equals("C")) {

//如果是C删除当前计算

tResult.setText("0");

tf.setText("");

num1.replace(0, num1.length(), "0");

num2.replace(0, num2.length(), "0");

isExist = false;

operate = ' ';

} else if (s.equals("π")) {

tResult.setText("" + Math.PI);

} else if (s.equals("sin")) {

String temp = tResult.getText().trim();

double dtemp = Math.PI / 180.0 * Double.parseDouble(temp);

tResult.setText(""+Math.sin(dtemp));

save("sin" + "(" + temp + ") = " + Math.sin(dtemp));

} else if (s.equals("cos")) {

String temp = tResult.getText().trim();

double dtemp = Math.PI / 180.0 * Double.parseDouble(temp);

tResult.setText(""+Math.cos(dtemp));

save("cos" + "(" + temp + ") = " + Math.cos(dtemp));

} else if (s.equals("tan")) {

String temp = tResult.getText().trim();

double dtemp = Math.PI / 180.0 * Double.parseDouble(temp);

tResult.setText(""+Math.tan(dtemp));

save("tan" + "(" + temp + ") = " + Math.tan(dtemp));

} else if (s.equals("log")) {

String temp = tResult.getText().trim();

double dtemp = Double.parseDouble(temp);

tResult.setText(""+Math.log10(dtemp));

save("log" + "(" + temp + ") = " + Math.log(dtemp));

} else if (s.equals("MC")) {

//如果是MC则清除缓冲区

String temp = "0";

memory.replace(0, memory.length(), temp);

bM.setText(" ");

} else if (s.equals("MR")) {

//如果按键为MR则恢复缓冲区的数到文本框

tResult.setText(memory.toString());

} else if (s.equals("MS")) {

//如果按键为MS则将文本框的数存入缓冲区

String s1 = tResult.getText().trim();

memory.replace(0, memory.length(), s1);

bM.setText("M");

} else if (s.equals("M+")) {

//如果按键为MS则将文本框值与缓冲区的数相加但不显示结果

String temp1 = tResult.getText().trim();

double dtemp = Double.parseDouble(temp1);

String temp2 = memory.toString();

if (temp2.length() == 0) temp2 = "0";

dtemp += Double.parseDouble(temp2);

temp1 = String.valueOf(dtemp);

memory.replace(0, memory.length(), temp1);

bM.setText("M");

} else if (s.equals("1/x")) {

//如果按键为1/x则将文本框中的数据为它的倒数

String temp = tResult.getText().trim();

double dtemp = Double.parseDouble(temp);

tResult.setText(""+1/dtemp);

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

//如果按键为sqrt则将文本框中的内容求平方根

String temp = tResult.getText().trim();

double dtemp = Double.parseDouble(temp);

tResult.setText(""+Math.sqrt(dtemp));

save("sqrt" + "(" + temp + ") = " + Math.sqrt(dtemp));

} else if (s.equals("x^2")) {

//如果按键为x^2则将文本框中的内容求平方

String temp = tResult.getText().trim();

double dtemp = Double.parseDouble(temp) * Double.parseDouble(temp);

tResult.setText(""+dtemp);

save(temp + "^2 = " + Math.sin(dtemp));

} else if (s.equals("+/-")) {

String temp = tResult.getText().trim();

double dtemp = -Double.parseDouble(temp);

if (dtemp != 0) tResult.setText(""+dtemp);

} else if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) { //加减乘除按键求结果

if (operate == ' ') {

num1 = num1.replace(0, num1.length(), tResult.getText().trim());

isClear = true;

tf.setText(num1.toString() + s);

} else if (!isExist) {

num2 = num2.replace(0, num2.length(), tResult.getText().trim());

String rlt = null;

double a = Double.parseDouble(num1.toString().trim());

double b = Double.parseDouble(num2.toString().trim());

switch(operate) {

case '+': rlt = "" + (a + b); break;

case '-': rlt = "" + (a - b); break;

case '*': rlt = "" + (a * b); break;

case '/': rlt = "" + (a / b); break;

}

tResult.setText(rlt);

tf.setText("" + num1.toString() + operate + num2.toString());

num1.replace(0, num1.length(), rlt);

isClear = true;

}

operate = s.charAt(0);

} else if (s.equals("=")) {

//按键=显示结果

if (!isExist)

num2 = num2.replace(0, num2.length(), tResult.getText().trim());

isExist = true;

if (operate != ' ') {

String rlt = null;

double a = Double.parseDouble(num1.toString().trim());

double b = Double.parseDouble(num2.toString().trim());

switch(operate) {

case '+': rlt = "" + (a + b); break;

case '-': rlt = "" + (a - b); break;

case '*': rlt = "" + (a * b); break;

case '/': rlt = "" + (a / b); break;

}

tResult.setText(rlt);

//存入文件

save(" " + a + " " + operate + " " + b + " = " + rlt);

tf.setText("" + num1.toString() + operate + num2.toString());

num1.replace(0, num1.length(), rlt);

isClear = true;

}

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

//单击“小数点”的处理

//当前结果中不存在"."

if(tResult.getText().trim().indexOf('.') == -1) {

StringBuffer tmp = new StringBuffer(tResult.getText().trim());

tResult.setText(tmp.append(s).toString());

}

} else {

//数字键的处理

if (!Character.isDigit(tResult.getText().charAt(0)))

tResult.setText("");

if (isClear) {

isClear = false;

tResult.setText("");

}

if (isExist) {

isExist = false;

tf.setText("");

operate = ' ';

tResult.setText("");

}

StringBuffer tmp = new StringBuffer(tResult.getText().trim());

if (tmp.toString().equals("0")) tmp.setLength(0);

tResult.setText(tmp.append(s).toString());

}

}//end actionPerformed

3.3 计算结果的储存功能与查看功能

1.通过save函数来实现结果的储存功能;

部分代码:

private void save(String s) {

final SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss :");

String time = sdf.format(new Date(System.currentTimeMillis()));

try {

File file = new File("data.txt");

if (!file.exists()) file.createNewFile();

char[] ch = new char[(int)file.length()];

FileReader in = new FileReader(file);

in.read(ch);

in.close();

FileWriter out = new FileWriter(file);

String tmp = new String(ch);

out.write(tmp.trim() + System.getProperty("line.separator"));

out.write((time + s).trim() + System.getProperty("line.separator"));

out.close();

} catch(IOException e) {

e.printStackTrace();

}

}

2.通过“查看”选项中的“历史记录”来查看历史结果,此showRecord函数的作用就是把储存在data.txt中的历史记录显示在一面板中;

部分代码如下:

private void showRecord() {

JDialog dialog = new JDialog(f, "历史记录", true);

JTextArea area = new JTextArea();

area.setEditable(false);

dialog.add(new JScrollPane(area));

dialog.setSize(640, 480);

dialog.setLocationRelativeTo(null);

try {

File file = new File("data.txt");

if (!file.exists()) file.createNewFile();

char[] ch = new char[(int)file.length()];

FileReader in = new FileReader(file);

in.read(ch);

in.close();

area.setText(new String(ch));

} catch(IOException e) {

e.printStackTrace();

}

dialog.setVisible(true);

}

3.4 本章小结

本章介绍了计算器的具体实现和部分关键代码,其中包括用户登录界面创建和检测用户登的合法性所要用到的loginDialog与compareUserData函数,注册界面的设计与储存,主界面的框架设计和计算功能,储存与查看历史记录功能的具体实现。

第4章结束语

在做本项目是时候,会遇到很多小问题,比如说:如何保存输入的数字和下一个数进行加、减、乘、除运算。如何保存结果与如何进行登陆注册页面的添加及用户信息的储存,经过不断地尝试与调整,

此次课程设计让我们更了解熟悉了Java中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我们对所学知识能够融会贯通,又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。

致谢

参考文献

[1] 耿祥义,张跃平.java大学实用教程(第二版).电子工业出版社.2008年5月

附录源代码

/****************引用数据包里的类与方法******************************/

import java.awt.BorderLayout;

import java.awt.Checkbox;

import java.awt.CheckboxGroup;

import java.awt.Color;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.Toolkit;

import java.awt.datatransfer.Clipboard;

import java.awt.datatransfer.DataFlavor;

import java.awt.datatransfer.StringSelection;

import java.awt.datatransfer.Transferable;

import java.awt.datatransfer.UnsupportedFlavorException;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.InputEvent;

import java.awt.event.KeyEvent;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.RandomAccessFile;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.swing.Box;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

import javax.swing.KeyStroke;

import javax.swing.Timer;

/**********************Java计算器主类*********************/ public class Calculator implements ActionListener {

JFrame f;

JDialog login, addUser;

JMenu mView;

JMenu mEdit;

JMenu mHelp;

JMenuItem mRecord;

JMenuItem mCopy;

JMenuItem mPaste;

JMenuItem about;

JTextField tResult, tf;

JButton bNumber;

JButton bOperator;

JButton bOther;

JButton bM;

JButton Pi;

JButton sin, cos, tan;

JButton log;

char operate = ' ';

//操作数

StringBuffer num1 = new StringBuffer("0"), num2 = new StringBuffer("0");

boolean isExist = false, isClear = false;

//M系列

StringBuffer memory = new StringBuffer(20);

//系统剪切板

Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();

//Java计算器构造器

public Calculator() {

f = new JFrame("计算器");

Container contentPane = f.getContentPane();

final SimpleDateFormat sdf = new SimpleDateFormat("当前时间HH:mm:ss");

Timer time = new Timer(1000, new ActionListener() {

public void actionPerformed(ActionEvent e) {

f.setTitle("计算器" + sdf.format(new Date(System.currentTimeMillis())));

}

});

time.start();

/************************Java计算器菜单的创建*****************************/ JMenuBar mBar = new JMenuBar();

mBar.setOpaque(true);

mView = new JMenu("查看(V)");

mView.setMnemonic(KeyEvent.VK_V);

mRecord = new JMenuItem("历史纪录(H)");

mRecord.setMnemonic(KeyEvent.VK_H);

mRecord.addActionListener(this);

mView.add(mRecord);

mEdit = new JMenu("编辑(E)");

mEdit.setMnemonic(KeyEvent.VK_E);

mCopy = new JMenuItem("复制(C)");

mCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,

InputEvent.CTRL_MASK));

mCopy.addActionListener(this);

mEdit.add(mCopy);

mPaste = new JMenuItem("粘贴(P)");

mPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,

InputEvent.CTRL_MASK));

mPaste.addActionListener(this);

mEdit.add(mPaste);

mHelp = new JMenu("帮助(H)");

mHelp.setMnemonic(KeyEvent.VK_H);

about = new JMenuItem("关于计算器");

about.addActionListener(this);

mHelp.add(about);

mBar.add(mView);

mBar.add(mEdit);

mBar.add(mHelp);

f.setJMenuBar(mBar);

contentPane.setLayout(new BorderLayout());

JPanel pTop = new JPanel();

pTop.setLayout(new BorderLayout());

tf = new JTextField();

tf.setHorizontalAlignment(JTextField.RIGHT);

tf.setEditable(false);

pTop.add(tf, BorderLayout.NORTH);

tResult = new JTextField("0", 20);

tResult.setFont(new Font("黑体", Font.BOLD, 28));

tResult.setHorizontalAlignment(JTextField.RIGHT);

tResult.setEditable(false);

pTop.add(tResult, BorderLayout.CENTER);

contentPane.add(pTop,BorderLayout.NORTH);

JPanel pBottom = new JPanel();

pBottom.setLayout(new BorderLayout());

JPanel pLeft = new JPanel();

pLeft.setLayout(new GridLayout(5,2,3,3));

bM = new JButton(" ");

bM.setEnabled(false);

pLeft.add(bM);

/*************************Java计算器功能键定义***************************/ Pi = new JButton("π");

Pi.addActionListener(this);

Pi.setForeground(Color.red);

pLeft.add(Pi);

bOther = new JButton("MC");

bOther.addActionListener(this);

bOther.setForeground(Color.red);

pLeft.add(bOther);

sin = new JButton("sin");

sin.addActionListener(this);

sin.setForeground(Color.red);

计算器java课程设计(完整版)

《面向对象程序设计》课程设计报告 课程设计题目:计算器 学生姓名:李婉如 专业:信息管理与信息系统 班级:1424603 指导教师:司红伟 2016年 5 月 25 日

一、课设任务及要求 1)课设任务: ⑴设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运 算(可以进行浮点数和负数的运算)。 ⑵有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、设计思路 ⑴本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); b.addActionListener(事件监听器); ⑵事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”求倒”)、退格按钮事件(”退格”)、清除按钮事件(“C”) 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数(pow)、对e的指数(exp)、对数运算(log)。 ⑶在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的话就将负号“-”、数字、小数点“.”分别写入文本框并存放在sum中,然后判断是或是“退格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放在preOperater中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 ⑷计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。 ⑸利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。 ⑹利用文本框显示操作数和运算结果。

java编写的简单的计算器程序

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化 参考代码: import .*;

import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

java编写的简单计算器代码

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.Vector; public class Tuo { String str1="0"; //运算数1 初值一定为0 为了程序的安全 String str2="0"; //运算数2 String fh="+"; //运算符 String jg="";//结果 //状态开关重要 int k1=1;//开关1 用于选择输入方向将要写入str2或 str2 int k2=1;//开关2 符号键次数 k2>1说明进行的是2+3-9+8 这样的多符号运算 int k3=1;//开关3 str1 是否可以被清0 ==1时可以 !=1时不能被清0 int k4=1;//开关4 str2 同上 int k5=1;//开关5 控制小数点可否被录入 ==1时可以 !=1 输入的小数点被丢掉 JButton jicunqi; //寄存器记录是否连续按下符号键 Vector vt=new Vector(20,10); JFrame frame=new JFrame("sunshine---计算器"); JTextField jg_TextField=new JTextField(jg,20);//20列 JButton clear_Button=new JButton("清除"); JButton button0=new JButton("0"); JButton button1=new JButton("1"); JButton button2=new JButton("2"); JButton button3=new JButton("3"); JButton button4=new JButton("4"); JButton button5=new JButton("5"); JButton button6=new JButton("6"); JButton button7=new JButton("7"); JButton button8=new JButton("8"); JButton button9=new JButton("9"); JButton button_Dian=new JButton("."); JButton button_jia=new JButton("+"); JButton button_jian=new JButton("-"); JButton button_cheng=new JButton("*"); JButton button_chu=new JButton("/"); JButton button_dy=new JButton("="); //////////////////////////////////////////////////////////////////////// public static void main(String[] args) {

java课程设计 计算器[1]解析

JA V A程序设计期末结课大作业 姓名张可新 学号(20123259) 班级信工1202 题目 java课程设计++计算器 成绩汇总 考核内容成绩 程序实现的功能(10分) 程序类图结构(10分) 方法间调用关系(10分) 程序代码(40分) 程序代码注释(10分) 运行结果(10分) 总结体会(10分) 总成绩 阅卷人

目录 一、课程设计任务及要求 (3) 二、需求分析 (3) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (9) 六、设计体会与小结 (11) 七、参考文献 (12) 八、附录 (13)

1. 一、课程设计任务及要求 设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算。通过对计算器的编辑来检测和提升自己的java编程能力,并最终完成课程设计报告! 二、需求分析 2.设计的计算器可以完成加法、减法、乘法、除法的简单运算。 3.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。 4.添加小数点功能,用以实现浮点型数据的计算。 5.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算 三、设计思路 1.界面设计:(如图3-1) 图3-1 2.设计思路: (1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个

文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在 最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel 中,完成界面设计。 (2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之 前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到 点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量 中,然后重置文本框内容,将运算符号显示到文本框中,随后输入 第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运 算符先将字符串数据转化成双精度类型,然后计算出结果并显示到 文本框当中。 (3)基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格等功能的实现,清零直接重置文本框内容,退格功能则 采用substring函数截取字符串长度。 四、详细设计 1.程序流程图: 2.主要代码展示及说明:

JAVA实现计算器课程设计

JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)

1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................

科学计算器程序Java代码

科学计算器程序Java代码

MC:清除独立内存里的数字 MR:读出独立内存数字 MS:将显示数字保存到独立内存,并取代内存中原有数字 M+:将显示数字向独立内存累加 (独立内存是一个临时寄放数字的存储器,方便计算) CE:纠错键(CLEAR ERROR).输入数字有错,按它可以重新输入 C:表示清零,将计算器恢复到开机状态 功能举例: 源程序如下: import java.awt.BorderLayout;

import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField; public class Calucator extends JFrame { private JTextField tf; private JPanel panel1, panel2, panel3, panel4; private JMenuBar myBar; private JMenu menu1, menu2, menu3; private JMenuItem editItem1, editItem2, help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;//单选框 private JCheckBoxMenuItem seeItem3;//复选框 private ButtonGroup bgb; private String back; private boolean IfResult = true, flag = false;

Java带计算过程的计算器课程设计报告

保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录1 源程序清单...................................... 错误!未定义书签。

java编写简单计算器源代码

import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.360docs.net/doc/b67698460.html,ng.Math; class ring extends JFrame implements ActionListener { //定义成员变量: //JFrame frame;//定义一个窗口类; JTextField text;//定义一个文本框类; JLabel label;//定义一个标签类; JPanel p1,p2,p3,p4,p5,p6;//定义面板类; String s1,s,s2;//定义三个字符串变量; int count=0; JButton a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6,c1,c2,c3,c4,c5,c6,d1,d2,d3,d4 ,d5,d6; //ring的构造函数; ring() { this.setTitle("计算器"); // super("计算器"); JMenuBar menubar1=new JMenuBar();//新建菜单条; this.setJMenuBar(menubar1); JMenu menu1=new JMenu("编辑(E)"); JMenu menu2=new JMenu("查看(V)"); JMenu menu3=new JMenu("帮助(H)"); menubar1.add(menu1); menubar1.add(menu2); menubar1.add(menu3); JMenuItem item1=new JMenuItem("复制(c) ctrl+c"); JMenuItem item2=new JMenuItem("粘贴(p) ctrl+v"); JMenuItem item3=new JMenuItem("标准型(T)"); JMenuItem item4=new JMenuItem("科学型(s)"); JMenuItem item5=new JMenuItem("数字分组(I)"); JMenuItem item6=new JMenuItem("帮助主题(H)"); JMenuItem item7=new JMenuItem("关于计算机(A)"); menu1.add(item1); menu1.add(item2); menu2.add(item3); menu2.add(item4); menu2.add(item5); menu3.add(item6);

java简单计算器源代码

简单计算器代码 package calcultorthree; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.GridLayout;//导入网格布局管理器类 import java.awt.TextField;//导入文本区域类 import java.awt.event.ActionEvent;//导入事件类 import java.awt.event.ActionListener;//导入事件监听者类 import javax.swing.JButton;//导入按钮类 import javax.swing.JFrame;//导入窗体 import javax.swing.JPanel;//导入面板 /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { //新建对象,在构造函数中进行初始化 JFrame frame;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮“0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanel panelwest,panelcenter,paneleast;//新建三个面板 TextField tf;//新建文本区域对象 public CalcultorThree(){ //初始化对象 tf=new TextField(30);//构造空文本字段,字符宽度为30 frame =new JFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

java课程设计计算器3科学计算器

import javax.swing.*;// 把 javax包里面的swing包里面的所有东西引进来 import java.awt.*;// 导入awt包里的所有java类 import java.awt.event.*;//导入包event import java.text.DecimalFormat;// 处理文本、日期、数字和消息的类和接口 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; public class biaozhunjisuanqi extends JFrame implements ActionListener {// public代表该类公有 //class声明一个类 // biaozhunjisuanqi为类名 // extends 是继承类 //implements代表实现接口 //窗体名称biaozhunjisuanqi继承JFrame类和ActionListener接口,并实现public void actionPerformed(ActionEvent e){}方法 private static final long serialVersionUID = 1L;// serialVersionUID相当于java类的身份证, 默认为1L, serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性 private JPanel jContentPane = null; // 创建面板对象, null代表为这些变量赋初值为空,即不分配内存空间,变量不指向任何地址。private是访问控制符,代表这些变量的访问级别为私有,私有级别只能在当前类中进行访问, 这些(JPanel 、JTextArea 、JPanel、 JButton )是java中AWT(包)中的类,用能进行桌面级应用程序的开发,就像平时用的word,上面有各种文本框,菜单栏,工具栏按钮等等,这些都是对象 private JPanel jPanel= null; //JPanel 作为一个容器,可以包容一些组件,然后将这个 JPanel

JAVA编写的计算器源代码

package jsq; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.UIManager; public class Test implements ActionListener { /** * */ JFrame f = new JFrame(); JTextField tf = new JTextField("0."); JMenuBar bar=new JMenuBar(); JMenu menuEdit=new JMenu("编辑(E)"); JMenu menuView=new JMenu("查看(V)"); JMenu menuHelp=new JMenu("帮助(H)"); JMenuItem menuEditCopy=new JMenuItem("复制(C)"); JMenuItem menuEditPaste=new JMenuItem("粘贴(V)"); JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)"); JPanel panel0 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel = new JPanel(); JPanel panel3 = new JPanel(); JPanel panel4 = new JPanel(); JPanel panel5 = new JPanel();

java课程设计 计算器实际与实现

《面向对象程序设计》 课程设计报告 题目: 计算器设计与实现 专业: 班级: 姓名: 指导教师: 成绩: xx 201x 年 x 月xx 日 xxxxxx

目录 1 设计内容及要求 (1) 1.1设计内容 (1) 1.2设计任务及具体要求 (1) 2 概要设计 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 设计过程 (2) 3.2系统功能模块 (3) 4 设计结果与分析 (4) 4.1功能模块的划分 (4) 4.2功能模块的实现 (4) 小结 (10) 5 参考文献 (11)

1 设计内容及要求 1.1设计内容 该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等) 1.2设计任务及具体要求 计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。 2 概要设计 2.1 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

java计算器源代码(仿win7)

java计算器源代码(仿win7) import java.awt.*; import javax.swing.*; import java.awt.event.*; class Cal extends JFrame implements ActionListener,MouseListener{ JMenuBar menubar; JMenu menu_check,menu_edit,menu_help; JMenuItem menuitem_science,menuitem_check,menuitem_exit,menuitem_copy, menuitem_paste,menuitem1_copy,menuitem1_paste,menuitem_chelp,menuitem_about; JCheckBoxMenuItem menuitem_standard; JTextField ta1; int x,result2; double op1,op2,opall; private boolean end=false,flag=false,add=false,sub=false,cheng=false,chu=false,flagop2=false; JButton b_mc,b_mr,b_ms,b_mjia,b_mjian,b_tui,b_ce,b_c,b_jj, b_dui,b_7,b_8,b_9,b_chu,b_baifenhao,b_4,b_5,b_6,b_cheng, b_daoshu,b_1,b_2,b_3,b_jian,b_0,b_dian,b_jia,b_dengyu; JPanel p_all,p_button1,p_button2,p_txt,p1,p2,p3,p4,p5; private String str,resultstr;

简易计算器Java实训报告

实训名称: Java程序设计实训 系(部):信息工程系 专业班级:计算机科学与技术学生姓名: 学号: 指导教师:张民 完成日期:

山东科技大学泰山科技学院

目录 1 实训目的 (2) 2 简易计算机的分析与设计 (2) 系统功能描述 (2) 系统模块设计 (2) 数据库结构设计 (3) 3 主要代码清单 (4)

4 程序运行与测试 (8) 5 实训总结 (10)

简易计算机的设计与实现 1 实训目的 通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。 给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。 除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。 至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。 当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现! 2 简易计算机的分析与设计 系统功能描述 1)可进行“+”、“-”、“*”、“/”以及混合运算。 2)支持()改变运算的优先级 3)可进行二、十六和十进制数的相互转换 4)支持复制和粘贴操作

计算器java课程设计(完整版)

目录 一、课设任务及要求 (1) 二、需求分析 (2) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (14) 六、设计体会与小结 (18) 七、参考文献 (19)

一、课设任务及要求 1)课设任务: ⑴、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); ⑵、有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、需求分析 ⑴、开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 ⑵设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 ⑶设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed 事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图1 计算器运行界面

java简单计算器源代码

j a v a简单计算器源代码集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

简单计算器代码packagecalcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 *@authorFjsh */ publicclassCalcultorThree{ //新建对象,在构造函数中进行初始化 JFrameframe;//新建窗体对象 JButtonbuttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”JButtonbuttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButtonbuttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanelpanelwest,panelcenter,paneleast;//新建三个面板 TextFieldtf;//新建文本区域对象 publicCalcultorThree(){ //初始化对象 tf=newTextField(30);//构造空文本字段,字符宽度为30 frame=newJFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

java课设计算器

java课设计算器 华东交通大学理工学院 课程设计报告书 所属课程名称Java语言程序设计题目简单计算器设计 分院电信分院 专业班级12通信工程1班学号212 学生姓名 指导教师 2014 年6 月20日

java课设计算器 目录 第1章计算器机要求及内 容 (3) 第2章计算器设计............................................................. 4 第3章计算器程序代码 (14) 第4章计算器测试............................................................. 49 第5章课程设计心 得 (53) 第6章参考文献.............................................................. ....54第1章计算器内容及要求 一设计内容: 1. 实现基本的加减乘除法的运算; 2 实现常用的函数计算功能;

3. 实现将系统时间在界面上显示; 4. 实现菜单对计算器的关闭、开启及设置运算法则的操作。 二设计要求 1.使用菜单控制计算器界面的显示,关闭; 2.使用菜单控制运算的法则; 3.使用菜单显示函数运算窗口及运算; 4.数据采用手工输入方式; 5.对异常的数据进行异常处理,比如1/0的情况。

第2章计算器设计 一.设计模式 采用MVC设计模式,将模型,视图,控制分别单独完成。在模型中将视图,控制添加到其中,再分别完成视图的,控制的程序。 二.结构设计 在界面中分为四个视图的组件,控制分为按钮事件,菜单选择事件,以及键盘输入控制事件。如图1 图1

JAVA课程设计计算器

《JAVA程序设计》课程设计任务书 一、课程设计的目的 1、培养学生面向对象编程的思想; 2、使学生熟悉JAVA语言的使用; 3、培养学生JAVA编程的思想和方法; 4、使学生掌握JAVA编程调试的基本技能; 5、培养学生分析、解决问题的能力。 二、课程设计内容与要求 1、内容一: 1简单计算器 [题目描述] 使用Java的GUI图形用户界面编程设计并编写一个计算器程序,用户可以通过鼠标或者键盘操作输入参加运算的数值和运算符,要求能进行加、减、乘、除等混合运算。 [基本要求] 实现加、减、乘、除的双目单类别的基础运算; [实现提示] GUI编程Component的事件响应。 参考界面 《JAVA程序设计》课程设计

一、系统中所使用的数据对象及说明 1、Calculator类 属性 属性名称类型描述 Jmb JMenuBar 菜单栏Jm1 jm2 jm3 JMenu 菜单Jmi JMenuItem 菜单项 f JFrame 实例化对象Panel1 1 JPanel 输入面板CommandsPanel JPanel 运算符面板calckeysPanel JPanel 数字面板showline JT extField 数据输出框backspace JButton 退格键CE JButton 清空 C JButton 删除 1/X JButton 取余 dao JButton 取倒数 add JButton 数字相加 jian JButton 数字相减cheng JButton 数字相乘quzheng JButton 数字相除dian JButton 点符号

deng JButton 等于号 zero JButton 一 one JButton 二 two JButton 三 three JButton 四 four JButton 五 five JButton 六 six JButton 七 seven JButton 八 eight JButton 九 num1 String 保存第一个运算数字operator String 保存运算符号 方法 方法名称功能 Calculator 计算器布局 Add 添加组件、面板addMouseListener 添加鼠标监听事件setJMenuBar 设置菜单 二、系统功能结构及相关算法描述 1、系统功能结构

相关文档
最新文档