文档库 最新最全的文档下载
当前位置:文档库 › Java计算器实验报告

Java计算器实验报告

Java计算器实验报告
Java计算器实验报告

一、目标:

通过Java程序开发实训使学生掌握《面向对象程序设计(Java)》课堂讲授的内容,灵活运用到Java程序的开发与设计中。

二、要求:

按时参加Java程序开发实训训练,不得迟到和早退;独立完成程序设计;按要求撰写实践报告。

三、详细内容:

使用《面向对象程序设计(Java)》课程讲授内容,编写一个简单的计算器,要求实现如下功能:

1.进行图形界面设计

通过图形界面设计,掌握JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法。

2.实现计算器的基本功能

包括加减乘除四则运算、倒数、平方根及清除结果等功能。

3.实现计算器的存储计算功能

包括存储中间结果(MS)、使用中间结果(MR)、累加中间结果(M+)及清除中间结果(MC)的功能。

4.计算器的扩展功能

包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余弦、反正切、反余切及2进制、8进制、16进制、10进制之间的相互转换等功能。

四、源代码

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.text.DecimalFormat;

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.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class jsq implements ActionListener { //导入动作监听接口

//设计面板中的单位

JFrame frame;//窗口

JTextField textAnswer;//文本

JPanel panel, panel1, panel2, panel3;//面版

JMenuBar mainMenu;//菜单

JTextField textMemory;

JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的形状

JButton buttonBk, buttonCe, buttonC;

JButton button[];//按钮数组

JButton buttonMC, buttonMR, buttonMS, buttonMAdd;//清除,使用,储存,添加

JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,

buttonDiv, buttonMod;

JButton buttonSqrt, buttonDao, buttonEqual;

JMenu editMenu, viewMenu, helpMenu;

JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup,

topHelp,

aboutCal;

DecimalFormat df; //设置数据输出精度

boolean clickable; //控制当前能否按键

double memoryd; //使用内存中存储的数字

int memoryi;

double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)

short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算

String copy; //做复制用

JTextArea help; //帮助

JScrollPane scrollHelp;

//构造函数

public jsq() {

clickable = true;

answerd = 0;

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

df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)

textAnswer = new JTextField(15);

textAnswer.setText("");

textAnswer.setEditable(false);

textAnswer.setBackground(new Color(255, 255, 255));

panel = new JPanel();

frame.getContentPane().add(panel);

panel1 = new JPanel();

panel2 = new JPanel();

panel.setLayout(new BorderLayout());

//设计整个面板

mainMenu = new JMenuBar();

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

editMenu .setMnemonic(KeyEvent.VK_E);

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

viewMenu .setMnemonic(KeyEvent.VK_V);

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

helpMenu .setMnemonic(KeyEvent.VK_H);

mainMenu .add(editMenu );

mainMenu .add(viewMenu );

mainMenu .add(helpMenu );

panel.add(mainMenu, BorderLayout.NORTH);

panel.add(textAnswer, BorderLayout.CENTER);

panel.add(panel1, BorderLayout.SOUTH);

panel1.setLayout(new BorderLayout());

textMemory = new JTextField(3);

textMemory.setEditable(false);

textMemory.setBackground(new Color(217, 217, 217));

labelMemSpace = new JLabel(" ");

buttonBk = new JButton("Backspace");

buttonBk.setForeground(new Color(255, 0, 0));

buttonCe = new JButton("CE");

buttonCe.setForeground(new Color(255, 0, 0));

buttonC = new JButton("C");

buttonC.setForeground(new Color(255, 0, 0));

buttonBk.addActionListener(this);

buttonCe.addActionListener(this);

buttonC.addActionListener(this);

panel1.add(panel2, BorderLayout.NORTH);

panel2.setLayout(new FlowLayout(FlowLayout.RIGHT));

panel2.add(textMemory);

panel2.add(labelMemSpace);

panel2.add(buttonBk);

panel2.add(buttonCe);

panel2.add(buttonC);

panel3 = new JPanel();

panel1.add(panel3, BorderLayout.CENTER);

button = new JButton[10];

for (int i = 0; i < button.length; i++) {

button[i] = new JButton(Integer.toString(i));

button[i].setForeground(new Color(0, 0, 255));

}

//构造按钮

buttonMC = new JButton("MC");

buttonMC.setForeground(new Color(255, 0, 0));

buttonMR = new JButton("MR");

buttonMR.setForeground(new Color(255, 0, 0));

buttonMS = new JButton("MS");

buttonMS.setForeground(new Color(255, 0, 0));

buttonMAdd = new JButton("M+");

buttonMAdd.setForeground(new Color(255, 0, 0));

buttonDot = new JButton(".");

buttonDot.setForeground(new Color(0, 0, 255));

buttonAddAndSub = new JButton("+/-");

buttonAddAndSub.setForeground(new Color(0, 0, 255));

buttonAdd = new JButton("+");

buttonAdd.setForeground(new Color(255, 0, 0));

buttonSub = new JButton("-");

buttonSub.setForeground(new Color(255, 0, 0));

buttonMul = new JButton("*");

buttonMul.setForeground(new Color(255, 0, 0)); buttonDiv = new JButton("/");

buttonDiv.setForeground(new Color(255, 0, 0)); buttonMod = new JButton("%");

buttonMod.setForeground(new Color(0, 0, 255)); buttonSqrt = new JButton("sqrt");

buttonSqrt.setForeground(new Color(0, 0, 255)); buttonDao = new JButton("1/x");

buttonDao.setForeground(new Color(0, 0, 255)); buttonEqual = new JButton("=");

buttonEqual.setForeground(new Color(255, 0, 0)); //将所有行为与监听绑定

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

panel3.add(buttonMC);

buttonMC.addActionListener(this);

panel3.add(button[7]);

button[7].addActionListener(this);

panel3.add(button[8]);

button[8].addActionListener(this);

panel3.add(button[9]);

button[9].addActionListener(this);

panel3.add(buttonDiv);

buttonDiv.addActionListener(this);

panel3.add(buttonSqrt);

buttonSqrt.addActionListener(this);

panel3.add(buttonMR);

buttonMR.addActionListener(this);

panel3.add(button[4]);

button[4].addActionListener(this);

panel3.add(button[5]);

button[5].addActionListener(this);

panel3.add(button[6]);

button[6].addActionListener(this);

panel3.add(buttonMul);

buttonMul.addActionListener(this);

panel3.add(buttonMod);

buttonMod.addActionListener(this);

panel3.add(buttonMS);

buttonMS.addActionListener(this);

panel3.add(button[1]);

button[1].addActionListener(this);

panel3.add(button[2]);

button[2].addActionListener(this);

panel3.add(button[3]);

button[3].addActionListener(this);

panel3.add(buttonSub);

buttonSub.addActionListener(this);

panel3.add(buttonDao);

buttonDao.addActionListener(this);

panel3.add(buttonMAdd);

buttonMAdd.addActionListener(this);

panel3.add(button[0]);

button[0].addActionListener(this);

panel3.add(buttonAddAndSub);

buttonAddAndSub.addActionListener(this);

panel3.add(buttonDot);

buttonDot.addActionListener(this);

panel3.add(buttonAdd);

buttonAdd.addActionListener(this);

panel3.add(buttonEqual);

buttonEqual.addActionListener(this);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.show();

}

//设置各个按钮行为

public void actionPerformed(ActionEvent event) {

boolean sign = false; //判断是否是double型数参与运算,是为true,不是为false

Object temp = event.getSource();

try {

//如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后

for (int i = 0; i <= 9; i++)

if (temp == button[i] && clickable == true)

textAnswer.setText(textAnswer.getText() + Integer.toString(i));

//按下"."按钮时,判断当前文本框内字符串中含不含".",如果已含,则不允许再插入"."

if (temp == buttonDot && clickable == true) {

boolean isDot = false;

if (textAnswer.getText().length() == 0) isDot = true;

for(int i = 0; i < textAnswer.getText().length(); i++)

if ('.' == textAnswer.getText().charAt(i)) { isDot = true;

break;

}

if (isDot == false)

textAnswer.setText(textAnswer.getText() + ".");

}

if ((temp == buttonAdd || temp == buttonSub || temp == buttonMul || temp == buttonDiv)

&& clickable == true) {

//"+"操作

if (temp == buttonAdd) {

switch (prekey) {

case 0:

answerd +=

Double.parseDouble(textAnswer.getText());

break;

case 1:

answerd -=

Double.parseDouble(textAnswer.getText());

break;

case 2:

answerd *=

Double.parseDouble(textAnswer.getText());

break;

case 3:

if (Double.parseDouble(textAnswer.getText()) == 0) {

//textAnswer="aa";

textAnswer.setText("除数不能为零");

clickable = false;

} else

answerd /=

Double.parseDouble(textAnswer.getText());

break;

default:

answerd =

Double.parseDouble(textAnswer.getText());

}

textAnswer.setText("");

prekey = key = 0;

}

//"-"操作

if (temp == buttonSub) {

switch (prekey) {

case 0:

answerd +=

Double.parseDouble(textAnswer.getText());

break;

case 1:

answerd -=

Double.parseDouble(textAnswer.getText());

break;

case 2:

answerd *=

Double.parseDouble(textAnswer.getText());

break;

case 3:

if (Double.parseDouble(textAnswer.getText()) == 0) {

textAnswer.setText("除数不能为零");

clickable = false;

} else

answerd /=

Double.parseDouble(textAnswer.getText());

break;

default:

answerd =

Double.parseDouble(textAnswer.getText());

}

textAnswer.setText("");

prekey = key = 1;

}

//"*"操作

if (temp == buttonMul) {

switch (prekey) {

case 0:

answerd +=

Double.parseDouble(textAnswer.getText());

break;

case 1:

answerd -=

Double.parseDouble(textAnswer.getText());

break;

case 2:

answerd *=

Double.parseDouble(textAnswer.getText());

break;

case 3:

if (Double.parseDouble(textAnswer.getText()) == 0) {

textAnswer.setText("除数不能为零");

clickable = false;

} else

answerd /=

Double.parseDouble(textAnswer.getText());

break;

default:

answerd =

Double.parseDouble(textAnswer.getText());

}

//textAnser = "";

textAnswer.setText("");

prekey = key = 2;

}

//"/"操作

if (temp == buttonDiv) {

switch (prekey) {

case 0:

answerd +=

Double.parseDouble(textAnswer.getText());

break;

case 1:

answerd -=

Double.parseDouble(textAnswer.getText());

break;

case 2:

answerd *=

Double.parseDouble(textAnswer.getText());

break;

case 3:

if (Double.parseDouble(textAnswer.getText()) == 0) {

textAnswer.setText("除数不能为零");

clickable = false;

} else

answerd /=

Double.parseDouble(textAnswer.getText());

break;

default:

answerd =

Double.parseDouble(textAnswer.getText());

}

textAnswer.setText("");

prekey = key = 3;

}

}

//"="操作

if (temp == buttonEqual && clickable == true) {

//如果连续按"=",则进行连续运算

if (prekey == 5) {

if (key == 0) {

answerd += vard;

textAnswer.setText(df.format(answerd));

}

if (key == 1) {

answerd -= vard;

textAnswer.setText(df.format(answerd));

}

if (key == 2) {

answerd *= vard;

textAnswer.setText(df.format(answerd));

}

if (key == 3) {

if (Double.parseDouble(textAnswer.getText()) == 0) {

textAnswer.setText("除数不能为零");

clickable = false;

} else {

answerd /= vard;

textAnswer.setText(df.format(answerd));

}

}

} else {

vard = Double.parseDouble(textAnswer.getText());

if (key == 0) {

prekey = -1;

answerd +=

Double.parseDouble(textAnswer.getText());

textAnswer.setText(df.format(answerd));

}

if (key == 1) {

prekey = -1;

answerd -=

Double.parseDouble(textAnswer.getText());

textAnswer.setText(df.format(answerd));

}

if (key == 2) {

prekey = -1;

answerd *=

Double.parseDouble(textAnswer.getText());

textAnswer.setText(df.format(answerd));

}

if (key == 3) {

prekey = -1;

if (Double.parseDouble(textAnswer.getText()) == 0) {

textAnswer.setText("除数不能为零");

clickable = false;

} else {

answerd /=

Double.parseDouble(textAnswer.getText());

textAnswer.setText(df.format(answerd));

}

}

}

prekey = 5;

}

//"%"操作,对第二个操作数除以100

if (temp == buttonMod && clickable == true) {

if (answerd == 0) {

String s = textAnswer.getText();

textAnswer.setText(s);

} else {

boolean isDot = false;

for (int i = 0; i < textAnswer.getText().length(); i++)

if ('.' == textAnswer.getText().charAt(i)) { isDot = true;

break;

}

//如果是double数,除100

if (isDot == true) {

double dtemp =

Double.parseDouble(textAnswer.getText());

dtemp = dtemp / 100.0;

textAnswer.setText(Double.toString(dtemp));

} else {

//如果是int数但能被100整除,则去掉末尾两个零

if (Integer.parseInt(textAnswer.getText()) % 100 == 0) {

int itemp =

Integer.parseInt(textAnswer.getText());

itemp /= 100;

textAnswer.setText(Integer.toString(itemp));

}

//如果是int数,但不能被100整除,则按double数处理

else {

double dtemp = Double.parseDouble(textAnswer .getText());

dtemp = dtemp / 100.0;

textAnswer.setText(Double.toString(dtemp));

}

}

}

}

//开根号运算

if (temp == buttonSqrt && clickable == true) { String s = textAnswer.getText();

if (s.charAt(0) == '-') {

textAnswer.setText("负数不能开根号");

clickable = false;

} else

textAnswer.setText(Double.toString(https://www.wendangku.net/doc/8213220986.html,ng.Math .sqrt(Double.parseDouble(textAnswer.getTex t()))));

}

//倒数运算

if (temp == buttonDao && clickable == true) {

if (textAnswer.getText().charAt(0) == '0' && textAnswer.getText().length() == 1) {

textAnswer.setText("零不能求倒数");

clickable = false;

} else {

boolean isDec = true;

int i, j, k;

String s = Double.toString(1 / Double

.parseDouble(textAnswer.getText()));

for (i = 0; i < s.length(); i++)

if (s.charAt(i) == '.')

break;

for (j = i + 1; j < s.length(); j++)

if (s.charAt(j) != '0') {

isDec = false;

break;

}

if (isDec == true) {

String stemp = "";

for (k = 0; k < i; k++)

stemp += s.charAt(k);

textAnswer.setText(stemp);

} else

textAnswer.setText(s);

}

}

//按下"+/-"按钮时处理

if (temp == buttonAddAndSub && clickable == true) {

boolean isNumber = true;

String s = textAnswer.getText();

for (int i = 0; i < s.length(); i++)

if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.'|| s.charAt(i) == '-')) {

isNumber = false;

break;

}

if (isNumber == true) {

//如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,

则将首符号去掉

if (s.charAt(0) == '-') {

textAnswer.setText("");

for (int i = 1; i < s.length(); i++) {

char a = s.charAt(i);

textAnswer.setText(textAnswer.getText() + a);

}

}

//如果当前字符串第一个字符不是符号,则添加一个符号在首字母处

else

textAnswer.setText('-' + s);

}

}

//计算器有关内存操作

//'MC'的操作,将内存清0

if (temp == buttonMC && clickable == true) {

memoryd = memoryi = 0;

textMemory.setText("");

}

//'MS'的操作,将当前文本框内容保存入内存,显示'M'

if (temp == buttonMS && clickable == true) {

boolean isDot = false;

textMemory.setText(" M");

for(int i = 0; i < textAnswer.getText().length(); i++)

if ('.' == textAnswer.getText().charAt(i)) { isDot = true;

break;

}

//如果是double,则存入memoryd(double存储器)

if (isDot == true) {

memoryd =

Double.parseDouble(textAnswer.getText());

memoryi = 0; //保证存储器中存放最新的值

}

//如果是int,则存入memoryi(int存储器)

else {

memoryi = Integer.parseInt(textAnswer.getText());

memoryd = 0; //保证存储器中存放最新的值

}

}

//'MR'的操作,将存储器中的信息输出

if (temp == buttonMR && clickable == true) {

if (memoryd != 0)

textAnswer.setText(Double.toString(memoryd));

if (memoryi != 0)

textAnswer.setText(Integer.toString(memoryi));

}

//'M+'的功能,将当前文本框里的数据和存储器中数据相加后,再存入存储器

if (temp == buttonMAdd && clickable == true) {

boolean isDot = false;

for(int i = 0; i < textAnswer.getText().length(); i++)

if ('.' == textAnswer.getText().charAt(i)) { isDot = true;

break;

}

if (memoryi != 0) { //存储中是一个int型数

if (isDot == false) //被加数是一个int型数

memoryi +=

Integer.parseInt(textAnswer.getText());

else { //被加数是一个double型数,则将int存储器中数传入double存储器与当前数相加,int存储器清零

memoryd = memoryi

+

Double.parseDouble(textAnswer.getText());

memoryi = 0;

}

} else

memoryd +=

Double.parseDouble(textAnswer.getText());

}

//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除

if (temp == buttonBk && clickable == true) { String s = textAnswer.getText();

textAnswer.setText("");

for (int i = 0; i < s.length() - 1; i++) {

char a = s.charAt(i);

textAnswer.setText(textAnswer.getText() + a);

}

}

//按下'CE'按钮,将当前文本框内数据清除

if (temp == buttonCe) {

textAnswer.setText("");

clickable = true;

}

//按下'C'按钮,文本框内数据清除,同时var,answer清0

if (temp == buttonC) {

vard = answerd = 0;

textAnswer.setText("");

clickable = true;

}

}

//输入中如果有操作非法,比如按下两次'+',捕获异常

catch (Exception e) {

textAnswer.setText("操作非法");

clickable = false;

}

}

//主函数

public static void main(String args[]) {

new jsq();

}

}

五、程序运行结果演示

计算器界面

7+8

清除

9-4

7*8

8/4

储存

使用储存值

清除储存值

2的倒数

5的百分

9的开方

六、总结

通过本次实验让我对JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法,有了进一步的了解。同时在实验过程中也发现了自己的许多不足,但通过查询对其有有了更深刻大大大的了解.

简单计算器JAVA

浙江科技学院 经济管理学院 JAVA语言课程设计报告 选题名称简单计算器 学生学号 专业班级信管101 学生姓名 学生成绩 指导教师朱军 工作时间2013-7-5

目录 第一章选题简介 第二章需求分析 1.系统要实现的目标分析 2.对输入输出数据及流程的分析 3.开发环境及运行环境分析 第三章系统设计 1.系统功能模块设计 2.类设计 3.数据库的设计(如果有) 4.界面设计 第四章测试 1.测试用例及结果 2.程序功能的评价 第五章总结 1.遇到的问题及解决的方法 2.开发体会及自评成绩 参考文献 第一章选题简介:简单计算器

第二章需求分析 1.系统要实现的目标分析:设计一个简单计算器,点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;如果输入有误时可以按Clear撤销后重新输入新数据。 2.对输入输出数据及流程的分析:输入的符号有JiSuanQi、File、Edit、Help、on、off、close、copy、0、1、2、3、4、5、6、7、8、9、+、-、*、/、=、Backspace、CE、C,中文意思依次是计算器、文件夹、项目、帮助、开、关、复制、0、1、2、3、4、5、6、7、8、9、加、减、乘、除、等于、退格; 3.开发环境及运行环境分析:Microsoft Windows2000、jdk1.7.0_25、JCreator Pro; 第三章系统设计 1.系统功能模块设计:加、减、乘、除运算;“等于”符号;复位; 2.类设计:public void disp() 创建无值函数disp(),用来存放界面所需要展示的元素,包 括有面板,按钮,弹出对话框,显示框等。 public void actionPerformed(ActionEvent e) 创建无值函数actionPerformed(ActionEvent e),其允许的输入 值类型为ActionEvent e,在里面编写的是加减乘除等一些算 法。 public void setSum() 创建无值函数setSum(),显示出经过算法计算出的结果, public void windowClosing(WindowEvent e)

java实验报告_计算器_记事本_井字游戏

课程设计报告 实验内容:综合课程设计 相关课程: Java程序设计 学期: 2009-2010学年第2学期 学时学分: 48学时 3学分 专业班级: xxxxxxxx 学号: xxxxxxxxxxx 姓名: xxxxxxx 指导老师: xxx 提交日期: xxxx年 xx月xx日

题目JAVA课程设计 一、实验目的 通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。信科0821班学生的课程设计主要是Java语言程序设计的实现。通过该课程设计,可以将学生课堂上掌握的理论知识与处理数据的业务相结合,以检验我们同学们掌握知识的宽度、深度及对知识的综合运用能力。 二、实验环境 硬件环境CPU:AMD5000+ 双核主板:华硕M2N-X 显示器: 1024x768/256色 操作系统:Windows XP;JDK:jdk-6u18-windows-i586; 运行环境以及调试软件:JCreator Pro 三、实验内容 内容一:设计一个计算器,利用它可以进行简单的四则运算(加、减、乘、除、开方)等,但仅限于十进制下,此外还可以进行(八进制,十进制,十六进制)之间的相互转换。 内容二:设计一个记事本,菜单中要求有文件,编辑,和帮助。文 件中有新建、打开、保存和退出;编辑中有剪切、复制和粘贴;帮助中 显示开发人和版本信息。 内容三:编写tic-tac-toe游戏程序。即 3*3的9个方格子,每人 下一次看谁先连成一行3个 四、算法分析、设计与描述 1.算法分析和设计 内容(1) 算法分析: 首先,设计对输入数字的进行转换,不进行转换操作则默认为十进制,然后进行符号转换操作以及正弦函数等,接着可以进行加减乘除等 运算,添加“C”、“CE”按钮进行退格和清空操作,清空操作显示“0”,最后在帮助中显示开发人信息。 功能及界面设计: 功能1:按下数字键在液晶平上会显示数字,这时计算器最基本的 功能。 功能2:输入数字后,点击进制转换,可转换成二、八进制;按“exp”“log”键,则进行e次幂运算和自然对数运算;按“tan”“cos”“sin”则进行三角函数运算。 功能3:按“+”“-”“*”“/”分别进行四则运算 功能4:在任何时候按下“+/-”键,计算器文本框上的数字置反号。 功能5:第一次按下“运算”键,再按下数字键,将重新输入第二个数字。再次按下“运算”键,将算出前两个数字运算的结果,然后按下数

简易计算器Java实训报告

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

课程实训报告书

目录 1 实训目的 (3) 2 简易计算机的分析与设计 (3) 2.1 系统功能描述 (3) 2.2 系统模块设计 (3) 2.3 数据库结构设计 (4) 3 主要代码清单 (5) 4 程序运行与测试 (9) 5 实训总结 (11)

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

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计算器实验报告

实验:计算器java程序 班级:XXXXXXX 姓名:XXXXX 学号:XXXXXXXX 实验地点:XXXXX 一、实验目的: 通过制作一个计算器让我们了解到组件的运用以及如何制作一个窗口,怎么样使用各种布局管理器,怎么样注册事件的监听,以及怎么样设置按钮或者说组件的监听程序,学会使用java语言的语法规则,掌握接口的使用,了解组建的背景颜色的设置等方法。 二、实验要求: 1.编写一个java计算器程序; 2. 运用组件的方法来布局窗口,运用接口,事件监听程序来完成计算器的功能。 三,实验步骤 1、新建一个类,注册各种组件; 2、获取窗格;设置布局管理器; 3、为各个组件注册监听程序; 4、设置组件的事件监听程序; 5、运行程序,对结果进行截图; 四,设计思路: 1.界面设置布置模块: 使用了awt,swing的类里面的方法来完成界面的布置。其中,容器布置选择了BorderLayout方法来布置面板,选择了GirdLayout方法来布置按钮。 文本区域接收字符从数字按钮的监听中获得。按钮是常规思路添加到面板上。并为按钮注册监听。 2.监听程序思路: 使用tf.getText()+"n"来实现获得文本区域显示按钮字符串,n等于所设置监听的数字按钮。tf.setText()来保存并输出获得的字符串。

使用Double.parseDouble()实现文本区域字符串转换成Double 型数据来完成计算。把ft.setText()中的字符转换成数字。 使用biaozhi==n。的方法来获得启发值。完成运算符按钮的监听。构造方法,运用biaozhi=n,来完成加减乘除小数点的不同运算。 运算后获得结果flag3。ft.setText()获得值显示在文本区域上3.数字按钮输入使用循环会更加简单,减少了十个数字按钮的逐个输入,添加,注册监听 for (int i=0;i<=9;i++){ btn[i]=new Button(String.valueOf(i)); centerPanel.add(btn[i]); btn[i].addActionListener(); } 五,程序实现: package yyy; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.Button; 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;//导入面板 public class jisuanqi8{ //新建对象,在构造函数中进行初始化 JFrame f;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”

JAVA实验报告一

Java语言程序设计实验报告一 班级:姓名:学号: 一、实验教学目的与基本要求 Java程序设计的实验是Java程序设计课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。 本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java 语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。 本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。 (1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。 (2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。 (3)具有分析、寻找和排除程序中常见问题的能力。

二、实验内容与收获 (1)Java的安装与配置。熟悉语言环境及简单程序设计的使用练习,正确配置Java 开发环境(Eclipse 集成开发环境的安装、配置与使用) a)安装JDK Sun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。 可以通过IE或Netscape浏览器浏览网址:https://www.wendangku.net/doc/8213220986.html,/j2se,根据提示可以下载支持Microsoft Windows操作系统的jdk-1_5_0-windows-i586.exe到本地硬盘。 安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到D:\jdk1.5.0目录下,如图1-2。正确安装后,在JDK目录下有bin、demo、lib、jre等子目录,如图1-3,其中bin目录保存了javac、java、appletviewer等命令文件,demo目录保存了许多java的例子,lib目录保存了Java的类库文件,jre目录保存的是Java的运行时环境(JRE)。 图1-2

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计算器实验报告

Java计算器实验报告 计算机032 胡勇健 03095218 2005年5月5日

目录 1.设计名称与要求 2.各模块功能的介绍和实现3.系统的特色和不足4.参考书

一. 实验名称及其要求: A)名称: java计算器的设计 B)要求:1.实验目的:图形界面设计。 熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。 2.题意: 请设计并实现Windows系统中“计算器”的窗口及功能。 3.实验要求: (1)设计图形界面添加菜单:窗口上添加各种组件及菜单,并处理组件及菜单的事件监听程序。 (2)运算:实现多种运算,保证运算正确性。 二.各模块功能的介绍和实现: A)GUI图形界面的组件: a)所用到的Java类库包: java.awt.*; 基本的图形界面组件来源于awt包。 java.awt.event.*; 事件的属性处理来源于awt.event包。 javax.swing.*; swing组件增加了awt包中所不具备的各种优越功能。 java.awt.datatransfer.*; 用于计算器与外部的程序进行复制粘贴。 b)所用的各部分图形组件的定义: Frame mainFrame; //主框架 JTextField answerText; //显示计算结果 JTextField memoryState; //显示计算器内存的使用情况MenuBar menuGroup; //菜单栏 Menu editMenu,viewMenu,helpMenu; //编辑,查看,帮助菜单 MenuItem copyItem,pasteItem; //复制,粘贴 MenuItem standardModel; //标准型 CheckboxMenuItem numGroup; //数字分组 MenuItem aboutCal; //关于计算器 Button buttonBackSpace,buttonCE,buttonC; //退格,清除,清空按钮 Button buttonMC,buttonMR,buttonMS,buttonMADD; //内存操作按钮 Button buttonNum[]; //数字按钮 Button buttonAdd,buttonSub,buttonMul,buttonDiv; //+,-,*,/ Button buttonDot,buttonSign,buttonEqual; //. +/- =

java计算器设计报告

摘要 本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开平方、求余、求倒数,还可以实现二进制与十进制之间的转换。通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。 关键词: java语言,计算器,算法

目录 摘要 (1) 1概述 (3) 1.1设计目的及思路 (3) 1.2功能模块设计 (3) 1.3系统功能图 (3) 2计算器的设计与实现 (4) 2.1程序界面 (4) 2.2程序源代码 (4) 3计算器演示 (10) 4运行调试及讨论分析 (13) 5小结 (14) 参考文献: (14)

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

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编写的加法计算器

/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * @author asus */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator implements ActionListener { JFrame sb; String s1,s2; int T1,T2,T3; JTextField t1,t2,t3; JLabel jl1,jl2; public Calculator() { sb=new JFrame("加法计算器"); sb.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); sb.setSize(260,100); Container a=sb.getContentPane(); a.setLayout(new FlowLayout()); t1=new JTextField(5); t2=new JTextField(5); t3=new JTextField(5); t1.setEditable(true); t2.setEditable(true); t3.setEditable(false); jl1=new JLabel("+"); jl2=new JLabel("="); JButton he=new JButton("求和"); he.addActionListener(this); a.add(t1); a.add(jl1); a.add(t2); a.add(jl2); a.add(t3); a.add(he);

java简单界面计算器

package calculator; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; /** * * @author 某某某 * */ public class Calculator extends JFrame implements ActionListener{ //设计按钮数组1包含数字键和删除键DEL和清屏键,小数点。 JButton[] but1 = {new JButton("1"),new JButton("2"),new JButton("3"),new JButton("4"),new JButton("5"),new JButton("6") ,new JButton("7"),new JButton("8"),new JButton("9"),new JButton("."),new JButton("0"),new JButton("del")}; //设计按钮数组2包含加减乘除,开根号,取余,等于键,平方,三次方。 JButton[] but2 = {new JButton("+"),new JButton("-"),new JButton("*"),new JButton("/"),new JButton("^2"),new JButton("^3"),new JButton("%") ,new JButton("sqrt"),new JButton("exit"),new JButton("="),new JButton("AC")} ; //创建一个单行文本 JTextField text = new JTextField(25); //创建五个面板 JPanel jp1 = new JPanel(); JPanel jp2 = new JPanel(); JPanel jp3 = new JPanel(); JPanel jp4 = new JPanel(); JPanel jp5 = new JPanel();

java计算器实验报告

课程设计论文 设计题目:java计算器学生姓名: 指导教师: 专业名称: 所在院系:

秦皇岛职业技术学院信息工程系 摘要 在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。该程序是一个图形界面的java 计算器,其界面主要采用了swing包,程序实现了: (1)实现简单加、减、乘、除的运算。 (2)实现除了加、减、乘、除按钮外其他按钮功能。 (3)给软件添加一个编辑、查看、帮助的主菜单。 (4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。 (5)科学型计算器与标准计算器之间的菜单切换。 Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。 与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。 I

秦皇岛职业技术学院信息工程系 目录 第1章概要设计 (1) 1.1查找资料 (1) 1.2选题 (1) 1.3标准型计算器界面设计 (1) 1.4本章小节 (3) 第2章程序整体设计说明 (4) 2.1程序中所用到的变量 (4) 2.2程序部分源代码及注释 (4) 2.3本章小节 (15) 第3章程序运行效果 (16) 3.1程序运行主界面 (16) 3.2程序中各按钮运行界面 (16) 3.3本章小节 (20) 第4章设计中遇到的重点及难点 (21) 4.1设计中遇到的重点 (21) 4.2设计中的遇到的难点 (21) 4.3本章小节 (23) 第5章本次设计中存在不足与改良方案 (24) 5.1本次设计中存在的不足 (24) 5.2本次设计的改良方案 (24) 5.3本章小节 (24) 结论 (25) 参考文献 (26) 致谢 (27) 指导教师评语 (28) 答辩委员会评语 (29) II

用JAVA编写的计算器程序的设计报告

目录 目录 (1) 1 需求分析 (1) 1.1 计算器的基本功能: (1) 1.1.1 加法运算:用数字按钮和“+”按钮进行运算; (1) 1.1.2 减法运算:用数字按钮和“-”按钮进行运算; (1) 1.1.3 乘法运算:用数字按钮和“*”按钮进行运算; (1) 1.1.4 除法运算:用数字按钮和“/”按钮进行运算; (1) 1.2 退格键和清零键: 用”Backspace”和”C”按钮实现; (1) 1.3 计算器的科学计算方法: (1) 1.3.1 开方:用数字按钮和“Sqrt”按钮进行运算; (1) 1.3.2 百分比:用数字按钮和“%”按钮进行运算; (1) 1.3.3 求倒数:用数字按钮和“1/x”按钮进行运算; (1) 2 设计 (2) 2.1 用户界面设计 (2) 2.1.1 该计算器程序的设计:用户界面包括Swing组件,不过程序中大都使用的 是AWT组件. import java.awt.*; (2) 2.1.2 在AWT组件, (2) 2.1.3 这个界面设计中包含了两个接口,单击事件监听器接ActionListener口 和键盘事件监听器接口(KeyListener). (4) 2.1.4 程序设计中,使用了布局管理: (4) 2.2 概要设计 (4) 2.2.1 Calculator类中的类名是Calculator.它的功能是使用图形用户来实现 计算器的界面设计和运算功能以及一些科学运算方法. (4) 2.2.2 main主类.中调用了cal.display来实现计算器的功能 . (4) 3 实现 (4) 4 测试 (16) 4.1 实现加法运算:4+12=16 (17) 4.2 实现减法运算:22-11=11 (17) 4.3 实现乘法运算:3*9=27 (18) 4.4 实现除法运算:64/32=2 (18) 4.5 用”C’实现清零功能: (19) 4.6 用”Backspace”实现退格功能: (20) 4.7 求倒数:1/4=0.25 (20) 5 总结和体会............................................... 错误!未定义书签。

简易计算器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计算器综合实验报告

华北科技学院计算机学院综合性实验 实验报告 课程名称JAVA程序设计 实验学期2012至2013学年第1学期学生所在系部计算机学院 任课教师白磊 实验成绩 计算机学院制

《JAVA程序设计》课程综合性实验报告 开课实验室:基础四2012年12月09日 实验题目简单计算器设计 一、实验目的 通过编写Java的应用系统综合实例——简单计算器软件,总结、回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握。 熟悉在集成开发环境下编写Java程序。 二、设备与环境 Eclipse、JDK开发包、集成开发环境 三、实验内容及代码 首先设计的是程序的结构。程序中主要是一计算器公共类(implements ActionListener),包括构造函数(用于计算器的外观设置,布局)。在设计一个界面时先设计Frame容器,在north添加一个TextField,center添加一个Panel容器。再在Panel容器中添加两个panel容器,第一个panel中添加“CE”(西端)、“backspace”(中间)、“C”(东端)三个按钮。第二个panel容器中GridLaout把容器分成四行五列,添加1,2,3,4,5,6,7,8,9,0,+,-,*,/,%,+\-,1/x,sqrt,=,这些按钮。定义各个按钮逐个添加给ActionListener监听器进行注册。界面构造号后接着定义算法。定义加减乘除,倒数,开方等这些基本运算包含于actionPerformed 方法(用于事件的响应),一个public static void main(String arg[])程序运行入口。在main中创建一个计算器类对象,在创建对象的同时,初始化各组件,创建图形用户界面。 代码: import javax.swing.*; import java.awt.*; import java.awt.event.*;

java课程设计报告—计算器

目录 一、课程设计目的 (3) 二、课程设计任务........................................................................ (2) 、设计任务 (3) 、课程设计要求: (3) 、需求分析 (4) 三、开发工具与平台........................................................................ . (3) 、开发工具 (4) 、开发平台 (4) 四、设计思路........................................................................ .. (4)

、界面设计........................................................................ .. (4) 、逻辑设计 (5) 、程序流程图........................................................................ .. (5) 、主要代码展示及说明........................................................................ .. (5) 、程序测试 (10) 五、实验小结 (12) 六、附录 (程序代码) (13)

一、课程设计目的 1、熟练掌握java面向对象编程。 2、选择合适的数据结构实现需求。 3、熟练使用各种控制结构。 4、GUI组件、事件处理技术。 二、课程设计任务 、设计任务 设计一个简易的计算器,可以进行四则运算:加、减、乘、除等(限于十进制下) 程序要求: (1)应具有相应的界面,可参考Windows操作系统自带的计算器界面。 (2)操作符号定为:“+”,“-”,“*”,“/”,“+/-”等。(按国际惯例设计) (3)用户通过点击程序界面上按钮,实现数字、运算符的输入操作。 (4)以上部分为必须完成的内容。 选作部分: (1)具有操作符号“1/x”,“sqrt”(开方),“.”(小数功能)等。、课程设计要求: (1)应用自己所学课程知识完成对计算器的基本任务。 (2)查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。 (3)通过应用java程序编写计算器来提升自己对简单的图形界面有一定的掌握和了解。

java编写简单计算器源代码

import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.wendangku.net/doc/8213220986.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 IO流处理程序设计实验报告(附完整代码)

流处理程序设计 一、课题内容和要求 内容:设计和编写一个程序从键盘读入一行字符串,将其写入一个文本文件中,再编写另一个程序从文本文件中读入字符串并在命令行窗口显示出来。 要求:要求学生能在学习和理解课堂学习内容中JAVA流编程理论的基础上,学习并逐步掌握JAVA流程序的编写和调试,学习根据处理需求对不同流的正确选择使用和组合使用方法。 二、设计思路分析 Write.java: class Write: 将字符串从键盘输入到文件。 Read.java: class Read: 将字符串从文件输出到命令行窗口。 三、概要设计 Write.java: public class Write{ public static void main(String[] args); } Read.java: public class Read{ public static void main(String[] args); } 四、详细设计 Write.java: import java.io.*; import java.util.Scanner; public class Write { public static void main(String[] args) { File file=new File("File.txt"); System.out.print("输入一行字符串:\n"); Scanner reader=new Scanner(System.in);//输入一行字符串

String s=reader.nextLine(); try {// 异常处理 FileWriter toFlie=new FileWriter(file);//通过底层流写入文件 BufferedWriter out=new BufferedWriter(toFlie);//通过缓冲流将字符串写入底层流 out.write(s); out.close(); toFlie.close(); } catch(IOException e){ System.out.println(e); } } } Read.java: import java.io.*; public class Read { public static void main(String[] args) { File file = new File("File.txt"); try {// 异常处理 FileReader fromFile = new FileReader(file);// 通过底层流读取文件 BufferedReader in = new BufferedReader(fromFile);// 通过缓冲流从底层流读取字符串 System.out.print("文件内容:\n"); String s = in.readLine();// 输出一行字符串 System.out.print(s); in.close(); fromFile.close(); } catch (IOException e) { System.out.println(e); } } } 五、测试数据及其结果分析 1正常输入:

相关文档