Java计算器实验报告1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过图形界面设计,掌握 JFrame 类、JPanel 类、5 种布局 管理器、文本框、标签及按钮的使用方法。 2. 实现计算器的基本功能
包括加减乘除四则运算、倒数、平方根及清除结果等功能。 3. 实现计算器的存储计算功能
包括存储中间结果(MS)、使用中间结果(MR)、累加中间结 果(M+)及清除中间结果(MC)的功能。 4. 计算器的扩展功能
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());
buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup,
3
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++) {
一、目标: 通 过 Java 程 序开 发 实 训使 学 生 掌握 《 面 向对 象 程 序设 计
(Java)》课堂讲授的内容,灵活运用到 Java 程序的开发与设计 中。 二、要求:
按时参加 Java 程序开发实训训练,不得迟到和早退;独立 完成程序设计;按要求撰写实践报告。 三、详细内容:
使用《面向对象程序设计(Java)》课程讲授内容,编写一个 简单的计算器,要求实现如下功能: 1. 进行图形界面设计
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));
包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余
弦、反正切、反余切及 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,
4
wk.baidu.com
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);
2
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() {
包括加减乘除四则运算、倒数、平方根及清除结果等功能。 3. 实现计算器的存储计算功能
包括存储中间结果(MS)、使用中间结果(MR)、累加中间结 果(M+)及清除中间结果(MC)的功能。 4. 计算器的扩展功能
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());
buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup,
3
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++) {
一、目标: 通 过 Java 程 序开 发 实 训使 学 生 掌握 《 面 向对 象 程 序设 计
(Java)》课堂讲授的内容,灵活运用到 Java 程序的开发与设计 中。 二、要求:
按时参加 Java 程序开发实训训练,不得迟到和早退;独立 完成程序设计;按要求撰写实践报告。 三、详细内容:
使用《面向对象程序设计(Java)》课程讲授内容,编写一个 简单的计算器,要求实现如下功能: 1. 进行图形界面设计
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));
包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余
弦、反正切、反余切及 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,
4
wk.baidu.com
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);
2
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() {