我的java实验报告.doc_第1页
我的java实验报告.doc_第2页
我的java实验报告.doc_第3页
我的java实验报告.doc_第4页
我的java实验报告.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北电力大学实 验 报 告| 实验名称 基于Java的软件系统实现 课程名称 面向对象程序设计(Java) | 专业班级: 学生姓名 学 号: 成 绩:指导教师: 实验日期:2013/4/21 实验一:带下拉列表计算器的设计1、 实验目的及要求 编写简易计算器,能够进行小数的加减乘除。在出错时,如输入的不是有效值,设计弹出对话框给出相应提示。2、 所用仪器、设备 计算机(安装有Eclipse系统)3、 实验内容import java.awt.*;import javax.swing.*;import java.awt.event.*;class JComboBoxText extends JFrameprivate JComboBox cmb=new JComboBox(new String+,-,*,/);private JTextField tf1= new JTextField(5);private JTextArea ta=new JTextArea();private JTextField tf2= new JTextField(5);private JTextField tf3= new JTextField(5);private JButton button=new JButton(=);private JPanel panelNorth=new JPanel();public JComboBoxText (String title)super(计算器);Container contentPane=this.getContentPane();panelNorth.add(ta);panelNorth.add(tf1);panelNorth.add(cmb);panelNorth.add(tf2);panelNorth.add(button);panelNorth.add(tf3);contentPane.add(panelNorth,BorderLayout.NORTH);contentPane.add(ta,BorderLayout.SOUTH);button.addActionListener(new MyActionListener();pack();setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);private class MyActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e)String str =(String)cmb.getSelectedItem();tryString a1,a2;a1=tf1.getText();a2=tf2.getText();double b1=Integer.parseInt(a1);double b2=Double.parseDouble(a2);/以上两种方法都可以进行强制转换if(str.equals(+)tf3.setText(String.valueOf(b1+b2);if(str.equals(-)tf3.setText(String.valueOf(b1-b2);if(str.equals(*)tf3.setText(String.valueOf(b1*b2);if(str.equals(/)double p=b1/b2;tf3.setText(String.valueOf(p);catch(NumberFormatException g)String a1=tf1.getText();char aa=a1.toCharArray();/将字符串赋值给数组char bb=0,1,2,3,4,5,6,7,8,9,;for(int i=0;iaa.length;i+)for(int j=0;j9;j+)if(aai!=bbj)System.out.println(输入错误!);break; public class Text101 public static void main(String args)new JComboBoxText(计算器);4、 实验结果五、讨论与结论此部分知识需要自学,陌生的内容比较多,因此首先要克服畏惧心理。静下心看书握好基础知识的基础上仿照书上例题编写即可。整个程序的大致框架参考了书中的带下拉框的例题,但还是有许多细节需要独立思考。实验二:简单计算器的设计一、 实验目的及要求 编写简易计算器,能够进行小数的加减乘除。在出错时,如输入的不是有效值,设计弹出对话框给出相应提示。二、 所用仪器、设备 计算机(安装有Eclipse系统)三、 实验内容 import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Calculate extends JFrame /private static final Color = null;private String front = , behind = ; /分别用于记录加减乘除运算符之前,之后输入的内容 private String op; /用于记录运算符 private String re;/用于存储运算结果的字符串格式 private boolean flag = false; /用于记录是否按下了运算符 private boolean flagpoint = false;/用于判断是否输入了点运算符 private double result;/用于存储运算结果 private boolean flagnumber = false;/用于判断是否输入了数字 private boolean flagequal = false;/用于判断是否按下了等号运算符 JPanel contentPane; JTextField txtResult = new JTextField(0); JButton btnNull = new JButton(sqrt); JButton btnFour = new JButton(4); JButton btnFive = new JButton(5); JButton btnSix = new JButton(6); JButton btnDecrease = new JButton(-); JButton btnBegin = new JButton(C); JButton btnOne = new JButton(1); JButton btnTwo = new JButton(2); JButton btnThree = new JButton(3); JButton btnMultiply = new JButton(*); JButton btnCancel = new JButton(back); JButton btnZero = new JButton(0); JButton btnMinus = new JButton(+/-); JButton btnPoint = new JButton(.); JButton btnDivide = new JButton(/); JButton btnEqual = new JButton(=); JButton btnIncrease = new JButton(+); JButton btnSeven = new JButton(7); JButton btnEight = new JButton(8); JButton btnNine = new JButton(9);public Calculate() try setDefaultCloseOperation(EXIT_ON_CLOSE); jbInit(); catch (Exception exception) exception.printStackTrace(); private void jbInit() throws Exception contentPane = (JPanel) getContentPane(); contentPane.setLayout(null); this.setResizable(false); setSize(new Dimension(400, 300); setTitle(计算器); txtResult.setEnabled(false); txtResult.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); txtResult.setEditable(false); txtResult.setHorizontalAlignment(SwingConstants.RIGHT); txtResult.setBounds(new Rectangle(33, 19, 310, 34); btnBegin.setBounds(new Rectangle(298, 70, 46, 37); btnBegin.setFont(new java.awt.Font(Dialog, Font.PLAIN, 12); btnSeven.setBounds(new Rectangle(33, 70, 46, 37); btnSeven.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnEight.setBounds(new Rectangle(101, 70, 46, 37); btnEight.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnNine.setBounds(new Rectangle(167, 70, 46, 37); btnNine.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnFour.setBounds(new Rectangle(33, 120, 46, 37); btnFour.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnFive.setBounds(new Rectangle(101, 120, 46, 37); btnFive.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnSix.setBounds(new Rectangle(167, 119, 46, 37); btnSix.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnDecrease.setBounds(new Rectangle(234, 120, 46, 37); btnDecrease.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnCancel.setBounds(new Rectangle(298, 121, 46, 37); btnCancel.setFont(new java.awt.Font(Dialog, Font.PLAIN, 15); btnOne.setBounds(new Rectangle(33, 172, 46, 37); btnOne.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnTwo.setBounds(new Rectangle(101, 172, 46, 37); btnTwo.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnThree.setBounds(new Rectangle(167, 172, 46, 37); btnThree.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnMultiply.setBounds(new Rectangle(234, 172, 46, 37); btnMultiply.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnZero.setBounds(new Rectangle(33, 222, 46, 37); btnZero.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnMinus.setBounds(new Rectangle(101, 222, 46, 37); btnMinus.setFont(new java.awt.Font(Dialog, Font.PLAIN, 10); btnPoint.setBounds(new Rectangle(167, 222, 46, 37); btnPoint.setFont(new java.awt.Font(Dialog, Font.PLAIN, 30); btnPoint.setHorizontalTextPosition(SwingConstants.CENTER); btnDivide.setBounds(new Rectangle(234, 222, 46, 37); btnDivide.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnEqual.setBackground(Color.RED); btnEqual.setBounds(new Rectangle(298, 172, 46, 86); btnEqual.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); btnIncrease.setBounds(new Rectangle(234, 70, 46, 37); btnIncrease.setFont(new java.awt.Font(Dialog, Font.PLAIN, 20); /加载监听事件 btnZero.addActionListener(new Calculate_btnZero_actionAdapter(this); btnOne.addActionListener(new Calculate_btnZero_actionAdapter(this); btnTwo.addActionListener(new Calculate_btnZero_actionAdapter(this); btnThree.addActionListener(new Calculate_btnZero_actionAdapter(this); btnFour.addActionListener(new Calculate_btnZero_actionAdapter(this); btnFive.addActionListener(new Calculate_btnZero_actionAdapter(this); btnSix.addActionListener(new Calculate_btnZero_actionAdapter(this); btnSeven.addActionListener(new Calculate_btnZero_actionAdapter(this); btnEight.addActionListener(new Calculate_btnZero_actionAdapter(this); btnNine.addActionListener(new Calculate_btnZero_actionAdapter(this); btnCancel.addActionListener(new Calculate_btnCancel_actionAdapter(this); btnMinus.addActionListener(new Calculate_btnMinus_actionAdapter(this); btnPoint.addActionListener(new Calculate_btnPoint_actionAdapter(this); btnEqual.addActionListener(new Calculate_btnEqual_actionAdapter(this); btnBegin.addActionListener(new Calculate_btnBegin_actionAdapter(this); btnIncrease.addActionListener(new Calculate_btnIncrease_actionAdapter(this); btnDecrease.addActionListener(new Calculate_btnIncrease_actionAdapter(this); btnMultiply.addActionListener(new Calculate_btnIncrease_actionAdapter(this); btnDivide.addActionListener(new Calculate_btnIncrease_actionAdapter(this); contentPane.add(btnFive); contentPane.add(btnSix); contentPane.add(btnDecrease); contentPane.add(btnBegin); contentPane.add(btnOne); contentPane.add(btnTwo); contentPane.add(btnThree); contentPane.add(btnMultiply); contentPane.add(btnCancel); contentPane.add(btnMinus); contentPane.add(btnPoint); contentPane.add(btnDivide); contentPane.add(btnEqual); contentPane.add(btnEight); contentPane.add(btnNine); contentPane.add(btnFour); contentPane.add(btnSeven); contentPane.add(btnIncrease); contentPane.add(btnNull); contentPane.add(txtResult); contentPane.add(btnZero); public void btnZero_actionPerformed(ActionEvent e) if (flag) /如果刚刚按下了运算符 txtResult.setText(); if (flagpoint) /判断之前是否输入了点运算符 txtResult.setText(0. + e.getActionCommand(); flagpoint = false; else txtResult.setText(e.getActionCommand(); flagnumber = true; else int num = txtResult.getText().indexOf(.); if (num 0 & !txtResult.getText().equals(0) txtResult.setText(txtResult.getText() + e.getActionCommand(); else if (num = 0 & txtResult.getText().equals(0) txtResult.setText(0. + e.getActionCommand(); else if (num = 0 & !txtResult.getText().equals(0) txtResult.setText(txtResult.getText() + e.getActionCommand(); flag = false; flagequal=false; public void btnIncrease_actionPerformed(ActionEvent e) if(flagequal) txtResult.setText(txtResult.getText(); op = e.getActionCommand(); /得到刚刚按下的运算符 front = txtResult.getText(); /记录加减乘除运算符之前输入的内容 else if (flagnumber) ActionEvent ee = new ActionEvent(qq, 1, pp); btnEqual_actionPerformed(ee); op = e.getActionCommand(); /得到刚刚按下的运算符 front = re; flagnumber = false; else front = txtResult.getText(); /记录加减乘除运算符之前输入的内容 op = e.getActionCommand(); /得到刚刚按下的运算符 flagequal=false; flag = true; /记录已经按下了加减乘除运算符的其中一个 public void btnEqual_actionPerformed(ActionEvent e) if(!flagequal)/未曾按下等于运算符 behind = txtResult.getText(); else front = re; try double a1 = Double.parseDouble(front); double b1 = Double.parseDouble(behind); if (op = +) result = a1 + b1; else if (op = -) result = a1 - b1; else if (op = *) result = a1 * b1; else result = a1 / b1; Double r = new Double(result); re = r.toString(result); txtResult.setText(re); catch (ArithmeticException ce) txtResult.setText(除数不能为零); catch (Exception ee) if (!flagequal) flagequal = true; public void btnPoint_actionPerformed(ActionEvent e) int num=txtResult.getText().indexOf(.); if(num=0)/若文本框中含有负号 String a=txtResult.getText().replaceAll(-,); txtResult.setText(a); else if(flag) txtResult.setText(0); else txtResult.setText(-+txtResult.getText(); public void btnCancel_actionPerformed(ActionEvent e) /退格事件处理方法 String str=txtResult.getText(); if(str.length() = 1)/如文本框中只剩下最后一个字符,将文本框内容置为0 txtResult.setText(0); if(str.length()1) str=str.substring(0,str.length()-1); txtResult.setText(str); public static void main(String args) Calculate fc = new Calculate(); fc.setSize(400,310); fc.setLocation(200,150); fc.setVisible(true); class Calculate_btnCancel_actionAdapter implements ActionListener private Calculate adaptee; Calculate_btnCancel_actionAdapter(Calculate adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.btnCancel_actionPerformed(e); class Calculate_btnMinus_actionAdapter implements ActionListener private Calculate adaptee; Calculate_btnMinus_actionAdapter(Calculate adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.btnMinus_actionPerformed(e); class Calculate_btnBegin_actionAdapter implements ActionListener private Calculate adaptee; Calculate_btnBegin_actionAdapter(Calculate adaptee) this.ad

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论