您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Java计算器实验报告
一、目标:通过Java程序开发实训使学生掌握《面向对象程序设计(Java)》课堂讲授的内容,灵活运用到Java程序的开发与设计中。二、要求:按时参加Java程序开发实训训练,不得迟到和早退;独立完成程序设计;按要求撰写实践报告。三、详细内容:使用《面向对象程序设计(Java)》课程讲授内容,编写一个简单的计算器,要求实现如下功能:1.进行图形界面设计通过图形界面设计,掌握JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法。2.实现计算器的基本功能包括加减乘除四则运算、倒数、平方根及清除结果等功能。3.实现计算器的存储计算功能包括存储中间结果(MS)、使用中间结果(MR)、累加中间结果(M+)及清除中间结果(MC)的功能。4.计算器的扩展功能2包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余弦、反正切、反余切及2进制、8进制、16进制、10进制之间的相互转换等功能。四、源代码importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyEvent;importjava.text.DecimalFormat;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTextArea;importjavax.swing.JTextField;publicclassjsqimplementsActionListener{//导入动作监听接口//设计面板中的单位JFrameframe;//窗口JTextFieldtextAnswer;//文本JPanelpanel,panel1,panel2,panel3;//面版JMenuBarmainMenu;//菜单JTextFieldtextMemory;JLabellabelMemSpace;//labelMemSpace单纯做摆设,控制面板的形状JButtonbuttonBk,buttonCe,buttonC;JButtonbutton[];//按钮数组JButtonbuttonMC,buttonMR,buttonMS,buttonMAdd;//清除,使用,储存,添加JButtonbuttonDot,buttonAddAndSub,buttonAdd,buttonSub,buttonMul,buttonDiv,buttonMod;JButtonbuttonSqrt,buttonDao,buttonEqual;JMenueditMenu,viewMenu,helpMenu;JMenuItemcopyItem,pasteItem,tItem,sItem,numberGroup,3topHelp,aboutCal;DecimalFormatdf;//设置数据输出精度booleanclickable;//控制当前能否按键doublememoryd;//使用内存中存储的数字intmemoryi;doublevard,answerd;//用来保存double型数据的中间值(vard)和最后结果(answerd)shortkey=-1,prekey=-1;//key用来保存当前进行何种运算,prekey用来保存前次进行何种运算Stringcopy;//做复制用JTextAreahelp;//帮助JScrollPanescrollHelp;//构造函数publicjsq(){clickable=true;answerd=0;frame=newJFrame(计算器);df=newDecimalFormat(0.##############);//设置数据输出精度(对于double型值)textAnswer=newJTextField(15);textAnswer.setText();textAnswer.setEditable(false);textAnswer.setBackground(newColor(255,255,255));panel=newJPanel();frame.getContentPane().add(panel);panel1=newJPanel();panel2=newJPanel();panel.setLayout(newBorderLayout());//设计整个面板mainMenu=newJMenuBar();editMenu=newJMenu(编辑(E));editMenu.setMnemonic(KeyEvent.VK_E);viewMenu=newJMenu(查看(V));viewMenu.setMnemonic(KeyEvent.VK_V);helpMenu=newJMenu(帮助(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(newBorderLayout());4textMemory=newJTextField(3);textMemory.setEditable(false);textMemory.setBackground(newColor(217,217,217));labelMemSpace=newJLabel();buttonBk=newJButton(Backspace);buttonBk.setForeground(newColor(255,0,0));buttonCe=newJButton(CE);buttonCe.setForeground(newColor(255,0,0));buttonC=newJButton(C);buttonC.setForeground(newColor(255,0,0));buttonBk.addActionListener(this);buttonCe.addActionListener(this);buttonC.addActionListener(this);panel1.add(panel2,BorderLayout.NORTH);panel2.setLayout(newFlowLayout(FlowLayout.RIGHT));panel2.add(textMemory);panel2.add(labelMemSpace);panel2.add(buttonBk);panel2.add(buttonCe);panel2.add(buttonC);panel3=newJPanel();panel1.add(panel3,BorderLayout.CENTER);button=newJButton[10];for(inti=0;ibutton.length;i++){button[i]=newJButton(Integer.toString(i));button[i].setForeground(newColor(0,0,255));}//构造按钮buttonMC=newJButton(MC);buttonMC.setForeground(newColor(255,0,0));buttonMR=newJButton(MR);buttonMR.setForeground(newColor(255,0,0));buttonMS=newJButton(MS);buttonMS.setForeground(newColor(255,0,0));buttonMAdd=newJButton(M+);buttonMAdd.setForeground(newColor(255,0,0));buttonDot=newJButton(.);buttonDot.setForeground(newColor(0,0,255));buttonAddAndSub=newJButton(+/-);buttonAddAndSub.setForeground(newColor(0,0,255));buttonAdd=newJButton(+);buttonAdd.setForeground(newColor(255,0,0));buttonSub=newJButton(-);buttonSub.setForeground(newColor(255,0,0));5buttonMul=newJButton(*);buttonMul.setForeground(newColor(255,0,0));buttonDiv=newJButton(/);buttonDiv.setForeground(newColor(255,0,0));buttonMod=newJButton(%);buttonMod.setForeground(newColor(0,0,255));buttonSqrt=newJButton(sqrt);buttonSqrt.setForeground(newColor(0,0,255));buttonDao=newJButton(1/x);buttonDao.setForeground(newColor(0,0,255));buttonEqual=newJButton(=);buttonEqual.setForeground(newColor(255,0,0));//将所有行为与监听绑定panel3.setLayout(newGridLayout(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.addActionListen
本文标题:Java计算器实验报告
链接地址:https://www.777doc.com/doc-5928848 .html