Java课程设计_计算器.doc_第1页
Java课程设计_计算器.doc_第2页
Java课程设计_计算器.doc_第3页
Java课程设计_计算器.doc_第4页
Java课程设计_计算器.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

2011 2012学年第1学期Java课程设计项目报告项目名称: 计算器 班 级: 08软件工程教育 姓 名: 王雪 哈尔滨商业大学 计算机与信息工程系2011年10月一、 项目基本情况介绍说明:1. 这是个简单的GUI界面的计算器2. 用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、除等混合运算。 3. 该计算器还加入了进制转换和菜单功能。二、 项目总体设计说明:仿照教材划给出总体设计图及主要类的简单说明,要突出新增功能部分的说明。Calculator(主类)actionPerformed(计算)objConversion(转换) 1,Calculator.java生成的类中Calculator()函数主要负责创建计算器的“主窗口”。该类含有main方法,整个程序从该类开始执行。2,actionPerformed函数主要负责十进制数字的算术运算。3,objConversion函数主要负责二进制、八进制、十进制、十六进制之间的转换。运行结果如下:三,项目详细设计1、设置主窗口在calculator类中设置主窗口的颜色,大小,布局。相应代码如下:import java.awt.event.*;import javax.swing.*;import java.awt.*;SuppressWarnings(serial)public class Calculator extends JFrame implements ActionListener Boolean f=false; Double shu=0.0; String s=; Double result=0.0,jieguo=0.0; JPanel p; JMenu bianji,chakan,bangzhu; JMenuBar cdtiao; JMenuItem fuzhi,zhantie,biaozhun,kexue,bzzhuti; JTextField t1; Button butt1,butt2,butt3,butt4,butt5,butt6,butt7,butt8,butt9,butt0,buttdian,buttfu; Button buttjia,buttjian,buttcheng,buttchu,buttsqrt,buttb,buttce,buttc,buttbai,buttdao,buttdeng; Button buttaa,buttbb,buttcc,buttdd,buttee,buttff; String copycontent=; JRadioButton sixteen,ten,eight,two; int jin=10;private objConversion convert=new objConversion(); Calculator() p=new JPanel(); p.setLayout(null); cdtiao=new JMenuBar(); bianji=new JMenu(编辑(E); chakan=new JMenu(查看(V); bangzhu=new JMenu(帮助(H); fuzhi=new JMenuItem(复制(C); zhantie=new JMenuItem(粘贴(V); KeyStroke fuzhiks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK); fuzhi.setAccelerator(fuzhiks);/设置编辑菜单选项加上快捷键 KeyStroke zhantieks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK); zhantie.setAccelerator(zhantieks);/设置编辑菜单选项加上快捷键 biaozhun=new JMenuItem(标准型(T); kexue=new JMenuItem(科学型(S); bzzhuti=new JMenuItem(帮助主题(H); bianji.add(fuzhi); bianji.add(zhantie); chakan.add(biaozhun); chakan.add(kexue); bangzhu.add(bzzhuti); cdtiao.add(bianji); cdtiao.add(chakan); cdtiao.add(bangzhu); cdtiao.setBounds(0, 3, 330, 20); /(x,y,wide,high) t1=new JTextField(0,20); t1.setBounds(13, 30, 300, 25); sixteen=new JRadioButton(十六进制); sixteen.setVisible(false); sixteen.setBounds(13,70,70,30); ten=new JRadioButton(十进制,true); ten.setVisible(false); ten.setBounds(13,110,70,30); eight=new JRadioButton(八进制); eight.setVisible(false); eight.setBounds(13,150,70,30); two=new JRadioButton(二进制); two.setVisible(false); two.setBounds(13,190,70,30); sixteen.addActionListener(this); ten.addActionListener(this); eight.addActionListener(this); two.addActionListener(this); ButtonGroup btg=new ButtonGroup(); btg.add(sixteen); btg.add(ten); btg.add(eight); btg.add(two); buttb=new Button(Backspace); buttb.setBounds(90, 70, 90, 30); buttb.setForeground(Color.red); buttce=new Button(C E); buttce.setBounds(190, 70, 60, 30); buttce.setForeground(Color.red); buttc=new Button(C); buttc.setBounds(260, 70, 50, 30); buttc.setForeground(Color.red); t1.setEnabled(false); butt7=new Button(7); butt7.setBounds(90, 110, 40, 30); butt7.setForeground(Color.BLUE); butt8=new Button(8); butt8.setBounds(135, 110, 40, 30); butt8.setForeground(Color.BLUE); butt9=new Button(9); butt9.setBounds(180, 110, 40, 30); butt9.setForeground(Color.BLUE); buttchu=new Button(/); buttchu.setBounds(225, 110, 40, 30); buttchu.setForeground(Color.red); buttsqrt=new Button(sqrt); buttsqrt.setBounds(270, 110, 40, 30); buttsqrt.setForeground(Color.BLUE); butt4=new Button(4); butt4.setBounds(90, 150, 40, 30); butt4.setForeground(Color.BLUE); butt5=new Button(5); butt5.setBounds(135, 150, 40, 30); butt5.setForeground(Color.BLUE); butt6=new Button(6); butt6.setBounds(180, 150, 40, 30); butt6.setForeground(Color.BLUE); buttcheng=new Button(*); buttcheng.setBounds(225, 150,40, 30); buttcheng.setForeground(Color.red); buttbai=new Button(%); buttbai.setBounds(270, 150,40, 30); buttbai.setForeground(Color.BLUE); butt1=new Button(1); butt1.setBounds(90, 190, 40, 30); butt1.setForeground(Color.BLUE); butt2=new Button(2); butt2.setBounds(135, 190, 40, 30); butt2.setForeground(Color.BLUE); butt3=new Button(3); butt3.setBounds(180, 190, 40, 30); butt3.setForeground(Color.BLUE); buttjian=new Button(-); buttjian.setBounds(225, 190,40, 30); buttjian.setForeground(Color.red); buttdao=new Button(1/x); buttdao.setBounds(270, 190,40, 30); buttdao.setForeground(Color.BLUE); butt0=new Button(0); butt0.setBounds(90, 230, 40, 30); butt0.setForeground(Color.BLUE); buttfu=new Button(+/-); buttfu.setBounds(135, 230, 40, 30); buttfu.setForeground(Color.BLUE); buttdian=new Button(.); buttdian.setBounds(180, 230, 40, 30); buttdian.setForeground(Color.BLUE); buttjia=new Button(+); buttjia.setBounds(225, 230, 40, 30); buttjia.setForeground(Color.red); buttdeng=new Button(=); buttdeng.setBounds(270, 230, 40, 30); buttdeng.setForeground(Color.red);buttaa=new Button(A); buttaa.setBounds(90,270,35,30);buttaa.setForeground(Color.BLUE);buttbb=new Button(B); buttbb.setBounds(127,270,35,30);buttbb.setForeground(Color.BLUE);buttcc=new Button(C); buttcc.setBounds(164,270,35,30);buttcc.setForeground(Color.BLUE);buttdd=new Button(D); buttdd.setBounds(201,270,35,30);buttdd.setForeground(Color.BLUE);buttee=new Button(E); buttee.setBounds(238,270,35,30);buttee.setForeground(Color.BLUE);buttff=new Button(F); buttff.setBounds(275,270,35,30);buttff.setForeground(Color.BLUE);p.add(t1); p.add(cdtiao); p.add(buttb); p.add(buttce); p.add(buttc); p.add(butt7); p.add(butt8); p.add(butt9); p.add(buttchu); p.add(buttsqrt);p.add(butt4);p.add(butt5);p.add(butt6); p.add(buttcheng); p.add(buttbai);p.add(butt1); p.add(butt2); p.add(butt3); p.add(buttjian); p.add(buttdao);p.add(butt0);p.add(buttfu);p.add(buttdian);p.add(buttjia);p.add(buttdeng); p.add(buttaa);p.add(buttbb); p.add(buttcc); p.add(buttdd);p.add(buttee); p.add(buttff);p.add(sixteen); p.add(ten);p.add(eight);p.add(two);add(p); /给按钮添加、菜单添加监听butt1.addActionListener(this); butt2.addActionListener(this);butt3.addActionListener(this); butt4.addActionListener(this);butt5.addActionListener(this); butt6.addActionListener(this);butt7.addActionListener(this); butt8.addActionListener(this);butt9.addActionListener(this); butt0.addActionListener(this);buttdian.addActionListener(this); buttfu.addActionListener(this);buttjia.addActionListener(this); buttjian.addActionListener(this);buttcheng.addActionListener(this); buttchu.addActionListener(this);buttsqrt.addActionListener(this); buttb.addActionListener(this);buttce.addActionListener(this); buttc.addActionListener(this);buttbai.addActionListener(this); buttdao.addActionListener(this);buttdeng.addActionListener(this); buttaa.addActionListener(this);buttbb.addActionListener(this);buttcc.addActionListener(this);buttdd.addActionListener(this);buttee.addActionListener(this);buttff.addActionListener(this);fuzhi.addActionListener(this); zhantie.addActionListener(this);biaozhun.addActionListener(this); kexue.addActionListener(this);bzzhuti.addActionListener(this); buttaa.setVisible(false); buttbb.setVisible(false); buttcc.setVisible(false); buttdd.setVisible(false); buttee.setVisible(false); buttff.setVisible(false); /设置面板的背景色 p.setBackground(Color.WHITE); setSize(330, 350); /设置文本框的内容居右 t1.setHorizontalAlignment(JTextField.RIGHT); /获取屏幕的长宽 int width=Toolkit.getDefaultToolkit().getScreenSize().width; int heigth=Toolkit.getDefaultToolkit().getScreenSize().height; /获取窗口的长宽 int wc=getWidth(); int hc=getHeight(); /设置窗体显示的位置 setLocation(width-wc)/2, (heigth-hc)/2); setVisible(true); setTitle(计算器-王雪); /设置窗口不可改变大小 setResizable(false); /设置窗口的关闭 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);2、进行运算的主要方法actionPerformed()函数主要用于响应用户触发的字符来进行何种操作。具体代码如下:public void actionPerformed(ActionEvent e) if(f) t1.setText(0);f=false; Object temp = e.getSource(); if(temp=fuzhi) copycontent = t1.getText(); if(temp=zhantie) t1.setText(t1.getText()+copycontent); if(temp=biaozhun) /标准 sixteen.setVisible(false); ten.setVisible(false); eight.setVisible(false); two.setVisible(false); biaozhun.setText(标准型); kexue.setText( 科学型); buttaa.setVisible(false); buttbb.setVisible(false); buttcc.setVisible(false); buttdd.setVisible(false); buttee.setVisible(false); buttff.setVisible(false); if(temp=kexue) /科学 sixteen.setVisible(true); ten.setVisible(true); eight.setVisible(true); two.setVisible(true); biaozhun.setText( 标准型); kexue.setText(科学型); buttaa.setVisible(true); buttbb.setVisible(true); buttcc.setVisible(true); buttdd.setVisible(true); buttee.setVisible(true); buttff.setVisible(true); buttaa.setEnabled(false); buttbb.setEnabled(false); buttcc.setEnabled(false); buttdd.setEnabled(false); buttee.setEnabled(false); buttff.setEnabled(false);try if(temp=sixteen) String hex=t1.getText(); int inthex=Integer.parseInt(hex,jin);/先把数变为10进制 t1.setText(convert.decHex(inthex) ; jin=16; buttaa.setEnabled(true); buttbb.setEnabled(true); buttcc.setEnabled(true); buttdd.setEnabled(true); buttee.setEnabled(true); buttff.setEnabled(true); butt2.setEnabled(true); butt3.setEnabled(true); butt4.setEnabled(true); butt5.setEnabled(true); butt6.setEnabled(true); butt7.setEnabled(true); butt8.setEnabled(true); butt9.setEnabled(true); if(temp=eight) String oct =t1.getText(); int intoct=Integer.parseInt(oct,jin); t1.setText(convert.decOct(intoct) ; jin=8; buttaa.setEnabled(false); buttbb.setEnabled(false); buttcc.setEnabled(false); buttdd.setEnabled(false); buttee.setEnabled(false); buttff.setEnabled(false); butt2.setEnabled(true); butt3.setEnabled(true); butt4.setEnabled(true); butt5.setEnabled(true); butt6.setEnabled(true); butt7.setEnabled(true); butt8.setEnabled(false); butt9.setEnabled(false); if(temp=two) String bin=t1.getText(); int intbin=Integer.parseInt(bin,jin); t1.setText(convert.decBin(intbin); jin=2; buttaa.setEnabled(false); buttbb.setEnabled(false); buttcc.setEnabled(false); buttdd.setEnabled(false); buttee.setEnabled(false); buttff.setEnabled(false); butt2.setEnabled(false); butt3.setEnabled(false); butt4.setEnabled(false); butt5.setEnabled(false); butt6.setEnabled(false); butt7.setEnabled(false); butt8.setEnabled(false); butt9.setEnabled(false); if(temp=ten) String dec=t1.getText(); int intdec=Integer.parseInt(dec,jin); t1.setText(intdec+); jin=10; buttaa.setEnabled(false); buttbb.setEnabled(false); buttcc.setEnabled(false); buttdd.setEnabled(false); buttee.setEnabled(false); buttff.setEnabled(false); butt2.setEnabled(true); butt3.setEnabled(true); butt4.setEnabled(true); butt5.setEnabled(true); butt6.setEnabled(true); butt7.setEnabled(true); butt8.setEnabled(true); butt9.setEnabled(true); catch(Exception ee) System.out.println(转换出错,可能你没有输入任何字符); t1.setText(转换出错);/单击数值1 if(e.getSource()=butt1) String a=t1.getText(); if(a.equals(0)t1.setText(1); elset1.setText(a+1);/单击数值2 if(e.getSource()=butt2) String a=t1.getText(); if(a.equals(0)t1.setText(2); elset1.setText(a+2);/单击数值3 if(e.getSource()=butt3) String a=t1.getText(); if(a.equals(0)t1.setText(3); elset1.setText(a+3);/单击数值4 if(e.getSource()=butt4) String a=t1.getText(); if(a.equals(0)t1.setText(4); elset1.setText(a+4);/单击数值5 if(e.getSource()=butt5) String a=t1.getText(); if(a.equals(0)t1.setText(5);elset1.setText(a+5);/单击数值6 if(e.getSource()=butt6) String a=t1.getText(); if(a.equals(0)t1.setText(6); elset1.setText(a+6);/单击数值7 if(e.getSource()=butt7) String a=t1.getText(); if(a.equals(0)t1.setText(7); elset1.setText(a+7);/单击数值8 if(e.getSource()=butt8) String a=t1.getText(); if(a.equals(0)t1.setText(8); elset1.setText(a+8);/单击数值9 if(e.getSource()=butt9) String a=t1.getText(); if(a.equals(0)t1.setText(9); elset1.setText(a+9);/单击数值0 if(e.getSource()=butt0) String a=t1.getText(); if(a.equals(0)t1.setText(0);elset1.setText(a+0); this.result=0.0; /单击Aif(e.getSource()=buttaa)String a=t1.getText();if(a.equals(0)t1.setText(A); else t1.setText(a+A);/单击B if(e.getSource()=buttbb) String a=t1.getText(); if(a.equals(0)t1.setText(B); elset1.setText(a+B);/单击C if(e.getSource()=buttcc) String a=t1.getText(); if(a.equals(0)t1.setText(C); elset1.setText(a+C);/单击D if(e.getSource()=buttdd) String a=t1.getText(); if(a.equals(0)t1.setText(D); elset1.setText(a+D); /单击E if(e.getSource()=buttee) String a=t1.getText(); if(a.equals(0)t1.setText(E); elset1.setText(a+E);/单击F if(e.getSource()=buttff) String a=t1.getText(); if(a.equals(0)t1.setText(F); elset1.setText(a+F);/单击. if(e.getSource()=buttdian) String a=t1.getText();int m=a.indexOf(.); if(m=-1) t1.setText(a+.);/单击+/-键 if(e.getSource()=buttfu) String a=t1.getText();String b=a.substring(0,1); if(b.equals(-) String z=a.substring(1); t1.setText(z); else t1.setText(-+a); /单击1/x键 if(e.getSource()=buttdao) String a=t1.getText(); /字符型转换为浮点型 Double s=1/Double.valueOf(a).doubleValue(); String b=String.valueOf(s); t1.setText(b); /单击sqrt键 if(e.getSource()=buttsqrt) f=true; String a=t1.getText(); Double s=Double.valueOf(a).doubleValue(); if(s0) double z=Math.sqrt(s); String b=String.valueOf(z); t1.setText(b); /点击 % if(e.getSource()=buttbai) String a=t1.getText(); Double s=Double.valueOf(a).doubleValue()/100; String t=String.valueOf(s); t1.setText(t); System.out.println(shu); /单击CE键 if(e.getSource()=buttce) t1.setText(0);/单击 C 键 if(e.getSource()=buttc) t1.setText(0);this.s=; this.shu=0.0; /单击Backspace键 if(e.getSource()=buttb) String a=t1.getText();int n=a.length(); if(n=1) t1.setText(0); else String z=a.substring(0, n-1); t1.setText(z); System.out.println(n); /点击+ if(e.getSource()=buttjia) f=true; String a=t1.getText(); if(this.s.equals()&this.shu=0.0) shu(a); yunsuan(+); else Double b=Double.valueOf(a).doubleValue(); Double z=0.0; if(this.s.en

温馨提示

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

评论

0/150

提交评论