Java程序课程设计报告基于Java的计算器的设计与开发

上传人:仙*** 文档编号:32109334 上传时间:2021-10-13 格式:DOC 页数:35 大小:256.04KB
收藏 版权申诉 举报 下载
Java程序课程设计报告基于Java的计算器的设计与开发_第1页
第1页 / 共35页
Java程序课程设计报告基于Java的计算器的设计与开发_第2页
第2页 / 共35页
Java程序课程设计报告基于Java的计算器的设计与开发_第3页
第3页 / 共35页
资源描述:

《Java程序课程设计报告基于Java的计算器的设计与开发》由会员分享,可在线阅读,更多相关《Java程序课程设计报告基于Java的计算器的设计与开发(35页珍藏版)》请在装配图网上搜索。

1、浙江科技学院信息与电子工程学院2009级Java程序课程设计报告I 2009级级Java程序课程设计报告程序课程设计报告学学 院院 : 专专 业业 : 计算机科学与技术计算机科学与技术 班班 级级 : 学学 号号 : 学学生生姓姓名名 : 指指导导教教师师 : 二二一一年一一年 一一 月月报告题目报告题目:基于基于Java的计算器的计算器的设计与开发的设计与开发浙江科技学院信息与电子工程学院2009级Java程序课程设计报告IIJava程序课程设计任务书程序课程设计任务书一、主要任务与目标 1. 掌握java语言2. 创建一个简单的计算器,具有简单人机交互界面,易于操作,便于进行数据之间的简单

2、运算。 二、具体要求(包括技术要求等):1)能够实现基本的加、减、乘、除四则运算及开方,乘方运算;2)如输入数据时,出现错误,可以修改; 3)运算结果能正确显示;可以清零;4)拥有登陆注册功能;5)可以查看历史记录;学习并掌握以下技术:Java、awt,swing等熟练使用以下开发工具:Jdk,JCreate 等实现计算器的上述的功能。三、计划进度112月28日12月29日:搜集资料、查阅文献,确定选题212月30日-12月31日:需求分析,系统设计,系统功能模块完善31月1日-1月3日:编程实现系统、系统测试与修改41月4日- 1月6日:课程设计报告撰写51月 7日- 1月 8日:课程设计报

3、告答辩四、主要参考文献1 耿祥义,张跃平.java大学实用教程(第二版).电子工业出版社.2008年5月学生(签字)2010年12月 28日 指导教师 2010年12月28 日浙江科技学院信息与电子工程学院2009级Java程序课程设计报告III目目 录录JAVA程序课程设计任务书程序课程设计任务书.II目目 录录.III第第1章章 引言引言 .11.1 课程设计内容.11.3 任务分工.1第第2章章 计算器定义计算器定义 .22.1 计算器登陆注册界面概述.22.1.1 计算器功能概述.22.1.2 计算结果的储存与查看功能概述.22.2 本章小结.2第第3章章 计算器的具体实现计算器的具体

4、实现 .33.1界面设计.33.1.1用户登陆界面图.33.1.3 计算器主界面.83.2计算功能实现.93.4 本章小结.14第第4章章 结束语结束语 .14致谢致谢 .15参考文献参考文献 .15附录附录 源代码源代码 .15浙江科技学院信息与电子工程学院2009级Java程序课程设计报告1第第1章章 引言引言1.11.1 课程设计内容课程设计内容这是我组设计的计算器会有一些独特的功能,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个功能:(1)数据计算处理功能 点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除四则运算及三角函数,开

5、方,乘方运算 ;如果输入有误时可以按C撤销后重新输入新数据,有储存修改键;(2)查询功能 查询功能可以迅速方便地查找到相应时段的执行的操作及结果。(3)计算器使用权限功能对个人的操作实现口令。用户在使用计算器前需通过登录界面登录,以保护计算器的数据安全。未有登录资料的先进行注册。(4)时间显示功能 在计算器上显示现在的时间,便于把握时间;1.31.3 任务分工任务分工:职位组长,总监整个计算器设计制作过程,制定相应计划与分布任务,负责撰写任务书,报告书,登陆注册界面的设计,整体编码框架的设定;:负责报告书的排版,创建计算器主界面的编码,计算器;:负责数据计算功能的编码,实现,计算器主界面的设计

6、;:负责注册登录界面的功能的编码,储存与查看功能的编码,计算器整体功能的编码的完善与调试;浙江科技学院信息与电子工程学院2009级Java程序课程设计报告2第第2章章 计算器定义计算器定义2.12.1 计算器登陆注册界面概述计算器登陆注册界面概述这是对计算器使用权限功能的添加,这是以后软件开发的一个重点发展方向。用户在使用计算器前需通过登录界面登录,以保护计算器的数据安全和使用权限的设定。未有登录资料的必须先进行注册;2.1.1 计算器功能概述计算器功能概述一个计算器如果只有数据计算处理功能,或者是点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除四则运算是远远不够的,这太普通了,因此加

7、入三角函数,开方,乘方运算 ,并且如果输入有误时可以按C撤销后重新输入新数据,有储存修改键;最主要是加入了查询功能:查询功能可以迅速方便地查找到相应时段的执行的操作及结果。还有就是计算器使用权限的设定,即登陆注册界面,用户在使用计算器前需通过登录界面登录,以保护计算器的数据安全。未有登录资料的先进行注册。2.1.2 计算结果的储存与查看功能概述计算结果的储存与查看功能概述计算结果有了,但是一般的计算器不能查询之前进行的操作和结果,不得不重新计算,这就带来了不少麻烦,我组设计制作的计算器拥有直接查看历史记录的功能,还附有各个操作的时间,便于确认;2.22.2 本章小结本章小结这一章介绍了当前进销

8、存管理系统应该具备的功能模块,并提供了市面上比较流行的进销存管理系统作为参考。在这一章中,我们可以了解什么是进销存管浙江科技学院信息与电子工程学院2009级Java程序课程设计报告3理系统,当前进销存管理系统的市场需求,还有一个进销存管理系统应该的开发目标。第第3章章 计算器的具体实现计算器的具体实现界面是系统之间最直接的交互界面,界面的友好性体现了软件设计的质量, 并在很大程度上决定了软件是否成功。3.13.1界面设计界面设计1.界面设计界面设计界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout

9、布局管理方式。3.1.1用户登陆界面图用户登陆界面图如图3.1.1和3.1.2所示浙江科技学院信息与电子工程学院2009级Java程序课程设计报告4图图3.1.1 用户登录模块框图用户登录模块框图图图3.1.23.1.2 用户登录界面用户登录界面loginDialog与compareUserData函数的作用是用户登录界面创建和检测用户登的合法性,并确认用户输入了合法的登录名和口令。部分代码:private void loginDialog() login = new JDialog(); login.setTitle(登录); login.setLayout(new FlowLayout()

10、; login.add(new JLabel(用户名:); final JTextField name = new JTextField(10); login.add(name); login.add(new JLabel(密 码:); final JPasswordField password = new JPasswordField(10); password.setEchoChar(*); login.add(password); JButton confirm = new JButton(登录); confirm.addActionListener(new ActionListener

11、() public void actionPerformed(ActionEvent e) if (compareUserData(name.getText().trim(), new String(password.getPassword() login.setVisible(false); f.setVisible(true); else 浙江科技学院信息与电子工程学院2009级Java程序课程设计报告5 JOptionPane.showMessageDialog(login, 用户名或密码错误!, 错误提示, JOptionPane.ERROR_MESSAGE); ); login.ad

12、d(confirm); final JDialog regDialog = new JDialog(login, 注册, true); registerDialog(regDialog); JButton register = new JButton(注册); register.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) regDialog.setVisible(true); ); login.add(register); login.setSize(200, 130); l

13、ogin.setResizable(false); login.setLocationRelativeTo(null); login.setVisible(true);private boolean compareUserData(String name, String password) try RandomAccessFile out = new RandomAccessFile(user.dat, rw);String fname, fpassword = null;while (out.getFilePointer() 1) tResult.setText(temp.delete(te

14、mp.length()-1, temp.length().toString(); else tResult.setText(0); 浙江科技学院信息与电子工程学院2009级Java程序课程设计报告10 else if (s.equals(C) /如果是C删除当前计算 tResult.setText(0); tf.setText(); num1.replace(0, num1.length(), 0); num2.replace(0, num2.length(), 0); isExist = false; operate = ; else if (s.equals() tResult.setTe

15、xt( + Math.PI); else if (s.equals(sin) String temp = tResult.getText().trim(); double dtemp = Math.PI / 180.0 * Double.parseDouble(temp); tResult.setText(+Math.sin(dtemp); save(sin + ( + temp + ) = + Math.sin(dtemp); else if (s.equals(cos) String temp = tResult.getText().trim(); double dtemp = Math.

16、PI / 180.0 * Double.parseDouble(temp); tResult.setText(+Math.cos(dtemp); save(cos + ( + temp + ) = + Math.cos(dtemp); else if (s.equals(tan) String temp = tResult.getText().trim(); double dtemp = Math.PI / 180.0 * Double.parseDouble(temp); tResult.setText(+Math.tan(dtemp); save(tan + ( + temp + ) =

17、+ Math.tan(dtemp); else if (s.equals(log) String temp = tResult.getText().trim(); double dtemp = Double.parseDouble(temp); tResult.setText(+Math.log10(dtemp); save(log + ( + temp + ) = + Math.log(dtemp); else if (s.equals(MC) /如果是MC则清除缓冲区 String temp = 0; memory.replace(0, memory.length(), temp); bM

18、.setText( ); else if (s.equals(MR) /如果按键为MR则恢复缓冲区的数到文本框浙江科技学院信息与电子工程学院2009级Java程序课程设计报告11 tResult.setText(memory.toString(); else if (s.equals(MS) /如果按键为MS则将文本框的数存入缓冲区 String s1 = tResult.getText().trim(); memory.replace(0, memory.length(), s1); bM.setText(M); else if (s.equals(M+) /如果按键为MS则将文本框值与缓冲

19、区的数相加但不显示结果 String temp1 = tResult.getText().trim(); double dtemp = Double.parseDouble(temp1); String temp2 = memory.toString(); if (temp2.length() = 0) temp2 = 0; dtemp += Double.parseDouble(temp2); temp1 = String.valueOf(dtemp); memory.replace(0, memory.length(), temp1); bM.setText(M); else if (s.

20、equals(1/x) /如果按键为1/x则将文本框中的数据为它的倒数 String temp = tResult.getText().trim(); double dtemp = Double.parseDouble(temp); tResult.setText(+1/dtemp); else if (s.equals(sqrt) /如果按键为sqrt则将文本框中的内容求平方根 String temp = tResult.getText().trim(); double dtemp = Double.parseDouble(temp); tResult.setText(+Math.sqrt(

21、dtemp); save(sqrt + ( + temp + ) = + Math.sqrt(dtemp); else if (s.equals(x2) /如果按键为x2则将文本框中的内容求平方 String temp = tResult.getText().trim(); double dtemp = Double.parseDouble(temp) * Double.parseDouble(temp); tResult.setText(+dtemp); save(temp + 2 = + Math.sin(dtemp); else if (s.equals(+/-) String temp

22、 = tResult.getText().trim(); double dtemp = -Double.parseDouble(temp); if (dtemp != 0) tResult.setText(+dtemp); else if (s.equals(+) | s.equals(-) | s.equals(*) | s.equals(/) 浙江科技学院信息与电子工程学院2009级Java程序课程设计报告12 /加减乘除按键求结果 if (operate = ) num1 = num1.replace(0, num1.length(), tResult.getText().trim();

23、 isClear = true; tf.setText(num1.toString() + s); else if (!isExist) num2 = num2.replace(0, num2.length(), tResult.getText().trim(); String rlt = null; double a = Double.parseDouble(num1.toString().trim(); double b = Double.parseDouble(num2.toString().trim(); switch(operate) case +: rlt = + (a + b);

24、 break; case -: rlt = + (a - b); break; case *: rlt = + (a * b); break; case /: rlt = + (a / b); break; tResult.setText(rlt); tf.setText( + num1.toString() + operate + num2.toString(); num1.replace(0, num1.length(), rlt); isClear = true; operate = s.charAt(0); else if (s.equals(=) /按键=显示结果 if (!isEx

25、ist) num2 = num2.replace(0, num2.length(), tResult.getText().trim(); isExist = true; if (operate != ) String rlt = null; double a = Double.parseDouble(num1.toString().trim(); double b = Double.parseDouble(num2.toString().trim(); switch(operate) case +: rlt = + (a + b); break; case -: rlt = + (a - b)

26、; break; case *: rlt = + (a * b); break; case /: rlt = + (a / b); break; tResult.setText(rlt); /存入文件 save( + a + + operate + + b + = + rlt); tf.setText( + num1.toString() + operate + num2.toString(); num1.replace(0, num1.length(), rlt); isClear = true; 浙江科技学院信息与电子工程学院2009级Java程序课程设计报告13 else if(s.eq

27、uals(.) /单击“小数点”的处理 /当前结果中不存在. if(tResult.getText().trim().indexOf(.) = -1) StringBuffer tmp = new StringBuffer(tResult.getText().trim(); tResult.setText(tmp.append(s).toString(); else /数字键的处理 if (!Character.isDigit(tResult.getText().charAt(0) tResult.setText(); if (isClear) isClear = false; tResult

28、.setText(); if (isExist) isExist = false; tf.setText(); operate = ; tResult.setText(); StringBuffer tmp = new StringBuffer(tResult.getText().trim(); if (tmp.toString().equals(0) tmp.setLength(0); tResult.setText(tmp.append(s).toString(); /end actionPerformed3.3 计算结果的储存功能与查看功能计算结果的储存功能与查看功能1通过save函数来

29、实现结果的储存功能;部分代码:private void save(String s) final SimpleDateFormat sdf = new SimpleDateFormat(yyyy年MM月dd日 HH:mm:ss :);String time = sdf.format(new Date(System.currentTimeMillis(); try File file = new File(data.txt); if (!file.exists() file.createNewFile(); char ch = new char(int)file.length(); FileRe

30、ader in = new FileReader(file); in.read(ch); in.close(); FileWriter out = new FileWriter(file); String tmp = new String(ch);浙江科技学院信息与电子工程学院2009级Java程序课程设计报告14 out.write(tmp.trim() + System.getProperty(line.separator); out.write(time + s).trim() + System.getProperty(line.separator); out.close(); catc

31、h(IOException e) e.printStackTrace(); 2通过“查看”选项中的“历史记录”来查看历史结果,此showRecord函数的作用就是把储存在data.txt中的历史记录显示在一面板中;部分代码如下: private void showRecord() JDialog dialog = new JDialog(f, 历史记录, true); JTextArea area = new JTextArea(); area.setEditable(false); dialog.add(new JScrollPane(area); dialog.setSize(640, 4

32、80); dialog.setLocationRelativeTo(null); try File file = new File(data.txt); if (!file.exists() file.createNewFile(); char ch = new char(int)file.length(); FileReader in = new FileReader(file); in.read(ch); in.close(); area.setText(new String(ch); catch(IOException e) e.printStackTrace(); dialog.set

33、Visible(true); 3.43.4 本章小结本章小结本章介绍了计算器的具体实现和部分关键代码,其中包括用户登录界面创建和检测用户登的合法性所要用到的loginDialog与compareUserData函数,注册界面的设计与储存,主界面的框架设计和计算功能,储存与查看历史记录功能的具体实现。浙江科技学院信息与电子工程学院2009级Java程序课程设计报告15第第4章章 结束语结束语在做本项目是时候,会遇到很多小问题,比如说:如何保存输入的数字和下一个数进行加、减、乘、除运算。如何保存结果与如何进行登陆注册页面的添加及用户信息的储存,经过不断地尝试与调整,此次课程设计让我们更了解熟悉了J

34、ava中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我们对所学知识能够融会贯通,又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。致谢致谢首先我们要感谢指导老师xx老师,在我们学习Java程序设计与完成Java程序课程设计的过程中所给予的热情教导、精心指导与大力支持。在许老师的教导和指导下,我们的Java程序设计知识和能力从无到有、由弱渐强,理论和实践水平有了长足的进步和显著的提高,不断开阔了思路与视野,总结出了

35、许多有意义的设计与开发经验。这些对我们来说是无比珍贵的知识和经验财富。在此,向许老师致以最诚挚的谢意。还要感谢组员之间的团结与帮助。参考文献参考文献1 耿祥义,张跃平.java大学实用教程(第二版).电子工业出版社.2008年5月附录附录 源代码源代码/*/*引用数据包里的类与方法引用数据包里的类与方法*/*/浙江科技学院信息与电子工程学院2009级Java程序课程设计报告16import java.awt.BorderLayout;import java.awt.Checkbox;import java.awt.CheckboxGroup;import java.awt.Color;impo

36、rt java.awt.Container;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection;import java.awt.datatransfer.Transferable;import java.a

37、wt.datatransfer.UnsupportedFlavorException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.RandomAc

38、cessFile;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOpti

39、onPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.KeyStroke;import javax.swing.Timer;/*Java计算器 主类*/浙江科技学院信息与电子工程学院2009级Java程序课程设计报告17public class Calculator implements Action

40、Listener JFrame f; JDialog login, addUser; JMenu mView; JMenu mEdit; JMenu mHelp; JMenuItem mRecord; JMenuItem mCopy; JMenuItem mPaste; JMenuItem about; JTextField tResult, tf; JButton bNumber; JButton bOperator; JButton bOther; JButton bM; JButton Pi; JButton sin, cos, tan; JButton log; char operat

41、e = ; /操作数 StringBuffer num1 = new StringBuffer(0), num2 = new StringBuffer(0); boolean isExist = false, isClear = false; /M系列 StringBuffer memory = new StringBuffer(20); /系统剪切板 Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard(); /Java计算器 构造器 public Calculator() f = new JFrame(计算器); C

42、ontainer contentPane = f.getContentPane(); final SimpleDateFormat sdf = new SimpleDateFormat(当前时间 HH:mm:ss); Timer time = new Timer(1000, new ActionListener() public void actionPerformed(ActionEvent e) f.setTitle(计算器 + sdf.format(new Date(System.currentTimeMillis();); time.start();/*Java计算器 菜单的创建*/

43、JMenuBar mBar = new JMenuBar(); mBar.setOpaque(true); mView = new JMenu(查看(V);浙江科技学院信息与电子工程学院2009级Java程序课程设计报告18 mView.setMnemonic(KeyEvent.VK_V); mRecord = new JMenuItem(历史纪录(H); mRecord.setMnemonic(KeyEvent.VK_H); mRecord.addActionListener(this); mView.add(mRecord); mEdit = new JMenu(编辑(E); mEdit.

44、setMnemonic(KeyEvent.VK_E); mCopy = new JMenuItem(复制(C);mCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK); mCopy.addActionListener(this); mEdit.add(mCopy); mPaste = new JMenuItem(粘贴(P);mPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK); m

45、Paste.addActionListener(this); mEdit.add(mPaste); mHelp = new JMenu(帮助(H); mHelp.setMnemonic(KeyEvent.VK_H); about = new JMenuItem(关于计算器); about.addActionListener(this); mHelp.add(about); mBar.add(mView); mBar.add(mEdit); mBar.add(mHelp); f.setJMenuBar(mBar); contentPane.setLayout(new BorderLayout()

46、; JPanel pTop = new JPanel(); pTop.setLayout(new BorderLayout(); tf = new JTextField(); tf.setHorizontalAlignment(JTextField.RIGHT); tf.setEditable(false); pTop.add(tf, BorderLayout.NORTH); tResult = new JTextField(0, 20); tResult.setFont(new Font(黑体, Font.BOLD, 28); tResult.setHorizontalAlignment(J

47、TextField.RIGHT); tResult.setEditable(false); pTop.add(tResult, BorderLayout.CENTER); contentPane.add(pTop,BorderLayout.NORTH);浙江科技学院信息与电子工程学院2009级Java程序课程设计报告19 JPanel pBottom = new JPanel(); pBottom.setLayout(new BorderLayout(); JPanel pLeft = new JPanel(); pLeft.setLayout(new GridLayout(5,2,3,3);

48、 bM = new JButton( ); bM.setEnabled(false); pLeft.add(bM);/*Java计算器 功能键定义*/ Pi = new JButton(); Pi.addActionListener(this); Pi.setForeground(Color.red); pLeft.add(Pi); bOther = new JButton(MC); bOther.addActionListener(this); bOther.setForeground(Color.red); pLeft.add(bOther); sin = new JButton(sin)

49、; sin.addActionListener(this); sin.setForeground(Color.red); pLeft.add(sin); bOther = new JButton(MR); bOther.addActionListener(this); bOther.setForeground(Color.red); pLeft.add(bOther); cos = new JButton(cos); cos.addActionListener(this); cos.setForeground(Color.red); pLeft.add(cos); bOther = new J

50、Button(MS); bOther.addActionListener(this); bOther.setForeground(Color.red); pLeft.add(bOther); tan = new JButton(tan); tan.addActionListener(this); tan.setForeground(Color.red);浙江科技学院信息与电子工程学院2009级Java程序课程设计报告20 pLeft.add(tan); bOther = new JButton(M+); bOther.addActionListener(this); bOther.setFor

51、eground(Color.red); pLeft.add(bOther); log = new JButton(log); log.addActionListener(this); log.setForeground(Color.red); pLeft.add(log); pBottom.add(pLeft,BorderLayout.WEST); JPanel pRight = new JPanel(); pRight.setLayout(new BorderLayout(); JPanel pUp = new JPanel(); pUp.setLayout(new GridLayout(1

52、,3,3,0); bOther = new JButton(BackSpace); bOther.addActionListener(this); bOther.setForeground(Color.red); pUp.add(bOther); bOther = new JButton(CE); bOther.addActionListener(this); bOther.setForeground(Color.red); pUp.add(bOther); bOther = new JButton(C); bOther.addActionListener(this); bOther.setF

53、oreground(Color.red); pUp.add(bOther);/*Java计算器 数字键盘区定义*/ JPanel pDown = new JPanel(); pDown.setLayout(new GridLayout(4,5,3,2); bNumber = new JButton(7); bNumber.setMnemonic(KeyEvent.VK_7); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pDown.add(bNumber);浙江科技学院信息与电子工程学院2009级Jav

54、a程序课程设计报告21 bNumber = new JButton(8); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pDown.add(bNumber); bNumber = new JButton(9); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pDown.add(bNumber); bOperator = new JButton(/); bOperator.setForeground(Color.re

55、d); bOperator.addActionListener(this); pDown.add(bOperator); bOperator = new JButton(sqrt); bOperator.addActionListener(this); bOperator.setForeground(Color.red); pDown.add(bOperator); bNumber = new JButton(4); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pDown.add(bNumber); b

56、Number = new JButton(5); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pDown.add(bNumber); bNumber = new JButton(6); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pDown.add(bNumber); bOperator = new JButton(*); bOperator.setForeground(Color.red); bOperator

57、.addActionListener(this); pDown.add(bOperator); bOperator = new JButton(x2); bOperator.setForeground(Color.red);浙江科技学院信息与电子工程学院2009级Java程序课程设计报告22 bOperator.addActionListener(this); pDown.add(bOperator); bNumber = new JButton(1); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pD

58、own.add(bNumber); bNumber = new JButton(2); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pDown.add(bNumber); bNumber = new JButton(3); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pDown.add(bNumber); bOperator = new JButton(-); bOperator.setForeground(Co

59、lor.red); bOperator.addActionListener(this); pDown.add(bOperator); bOperator = new JButton(1/x); bOperator.setForeground(Color.red); bOperator.addActionListener(this); pDown.add(bOperator); bNumber = new JButton(0); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); pDown.add(bNumbe

60、r); bOperator = new JButton(+/-); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); pDown.add(bOperator); bOperator = new JButton(.); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); pDown.add(bOperator); bOperator = new JButton(+);浙江科技学院信息与电子工程学院2009级Jav

61、a程序课程设计报告23 bOperator.setForeground(Color.red); bOperator.addActionListener(this); pDown.add(bOperator); bOperator = new JButton(=); bOperator.setForeground(Color.red); bOperator.addActionListener(this); pDown.add(bOperator); pRight.add(pUp,BorderLayout.NORTH); pRight.add(pDown,BorderLayout.SOUTH);

62、pBottom.add(pRight,BorderLayout.EAST); contentPane.add(pBottom,BorderLayout.SOUTH); f.pack(); f.setResizable(false); f.setLocationRelativeTo(null); /f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); loginDialog(); /*登陆注册界*/ private void loginDialog() login = new JDialog(); login.

63、setTitle(登录); login.setLayout(new FlowLayout(); login.add(new JLabel(用户名:); final JTextField name = new JTextField(10); login.add(name); login.add(new JLabel(密 码:); final JPasswordField password = new JPasswordField(10); password.setEchoChar(*); login.add(password); JButton confirm = new JButton(登录)

64、; confirm.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (compareUserData(name.getText().trim(), new String(password.getPassword() login.setVisible(false); f.setVisible(true); else JOptionPane.showMessageDialog(login, 用户名或密码错误!, 错误提示, JOptionPane.ERROR_MESSAGE);

65、 浙江科技学院信息与电子工程学院2009级Java程序课程设计报告24 ); login.add(confirm); final JDialog regDialog = new JDialog(login, 注册, true); registerDialog(regDialog); JButton register = new JButton(注册); register.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) regDialog.setVisible(true); );

66、login.add(register); login.setSize(200, 130); login.setResizable(false); login.setLocationRelativeTo(null); login.setVisible(true); /*用户名密码的确认*/ private boolean compareUserData(String name, String password) try RandomAccessFile out = new RandomAccessFile(user.dat, rw);String fname, fpassword = null;while (out.getFilePointer() 1) tResult.setText(temp.delete(temp.length()-1, temp.length().toString(); else tResult.setText(0); else if (s.equals(C) /如果是C删除当前计算 tResult.setText(0); tf.setText(); num1.r

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!