求一java程序,一个界面c 计算器 源代码源代码,跪求大神,有注释最好。。

计算器源代码[ ] 一个非常有趣的JAVA小程序 Home Personal application 家庭/个人应用 240万源代码下载-
&文件名称: 计算器源代码[原创]
& & & & &&]
&&所属分类:
&&开发工具: JavaScript
&&文件大小: 2 KB
&&上传时间:
&&下载次数: 126
&&提 供 者:
&详细说明:一个非常有趣的JAVA小程序-A very interesting JAVA applet
文件列表(日期:)(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&计算器源代码[原创].htm
&[]:不是完整代码&[]:很好,推荐下载
&相关搜索:
&&&&&&&&&&
&输入关键字,在本站240万海量源码库中尽情搜索:
&[] - snmp agent
&[] - 模拟储蓄所
&[] - RealTek 2323系列芯片的使用(PC的LCD液晶显示器的主控程序,主要使用芯片为 MYSON MTV512 单片机、RealTek 2323
Scare 芯片。)
&[] - RealTek 2523v系列芯片的使用(PC显示器的主控程序,LCD显示器的主控程序,主要使用芯片为 MYSON MTV512 单片机、RealTek 2523v
Scare 芯片。)
&[] - 一个相当不错的多功能记事薄
&[] - 一个javascript的俄罗斯方块源码,已经加做成htm文件,双击可看效果,拖到记事本中即可查看源码。
&[] - 极简单的计算器.有6种功能.是我们课程设计的一个小实验.非常简单.
&[] - 该计算器既有经典的GUI按钮模式,也有类似于Matlab的命令行解释执行模式,并且解释模式基于XML配置构建,利用了java语言强大的的反射机制,使得用户根据需要添加自己的专用函数非常简单和方便。
/projectDetail.do?id=3Java程序设计计算器(含代码)毕业设计(论文)(已处理),java计算器源代码..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Java程序设计计算器(含代码)毕业设计(论文)(已处理)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口: 系统的功能要求: 用界面上的按钮输入数字和相应的运算 1. 可以使用计算器进行简单的四则运算: 符,即可算出相应的式子的答案,并且确保答案符合一定的精度要求; 2. 可以使用计算器进行一定的科学运算, 比如在输入数字后, 计算器可以将相应 的数字进行进制转化,实现功能的同时确保一定的精度要求; 3. 可以进行简单的函数运算,比如求一个数的三角函数等; 4. 具有一定的错误提示功能,比如输入一个数除以 0,我们将输出错误的信息。 学习并掌握以下技术:Javax.swing,AWT,事件处理 学习并掌握以下技术:Javax.swing,AWT,事件处理等 熟练使用以下开发工具: 熟练使用以下开发工具:Eclipse 实现系统上述的功能。 实现系统上述的功能。 进度安排: 3、 进度安排: 12 月 28 日 12 月 30 日 1月1日 ~ 1月6日 ~ 1月7日 ~ 四、主要参考文献 [1] 耿祥义. JAVA 课程设计[M]. 北京:清华大学出版社,2008 年 11 月. [2] 张广彬, 孟红蕊, 张永宝. Java 课程设计案例精编[M]. 北京: 清华大学出版社, 2007 年. [3] 杨树林,胡洁萍. JAVA 语言最新实用案例教程[M]. 北京:清华大学出版社, 2006 年 1 月. 45-170I~ 12 月 29 日:课程设计选题,查找参考资料 ~ 12 月 31 日:完成需求分析 1 月 5 日: 完成系统设计,完成程序代码的编写 1 月 6 日:系统测试与完善 1 月 8 日:完成课程设计报告,准备答辩 [4] 刘新 Java 开发技术大全北京[M].清华大学出版社 2009 年 11 月. [5] 黄明, 梁旭, 周绍斌编著. Java 课程设计[M] 北京:电子工业出版社, 2006 年II 目 录JAVA 程序课程设计任务书 .............................................................................................I 目 录 ............................................................................................................................. III 第 1 章 引言 .................................................................................................................... 1 1.1 背景 ........................................................................................................................ 1 1.2 课程设计内容 ........................................................................................................ 1 1.3 任务分工 ................................................................................................................ 2 第 2 章 实用型计算器的设计 ........................................................................................ 3 2.1 需求分析 ................................................................................................................ 3 2.2 开发及运行环境 .................................................................................................... 3 2.3 主要功能要求 ........................................................................................................ 4 2.4 系统模块化分析 .................................................................................................... 4 2.4.1 计算器主界面布局 ................................................................................ 4 2.4.2 实用型计算器各模块介绍 ..................................................................... 7 2.5 本章小结 ................................................................................................................ 7 第 3 章 计算器的具体实现 ............................................................................................ 8 3.1 界面设计 ................................................................................................................ 8 3.1.1 用户登陆界面图 ..................................................................................... 8 3.1.2 注册用户界面 ....................................................................................... 10 3.1.3 系统主界面 .......................................................................................... 12 3.1.4 历史记录界面 ....................................................................................... 14 3.1.5 用户信息界面 ...................................................................................... 15 3.2 程序设计及调试运行 .......................................................................................... 15 3.3 本章小结 .............................................................................................................. 32 第 4 章 结束语 .............................................................................................................. 33 致谢 ................................................................................................................................ 33 参考文献 ........................................................................................................................ 34III 附录 源代码 .................................................................................................................. 34IV 第 1 章 引言1.1 背景Java 不依赖平台的特点使它受到广泛的关注, Java 已成为网络时代最重要的 语言之一。Java 具有平台无关性,面向对象,多线程,安全,动态等特点。Java 语言和其他语言相比,最大的优势在于能够在所有的计算机上运行,这也是 Java 风靡全球的主要原因。Java 的面向对象编程是一种先进的编程思想,可以更容易 的解决复杂的问题。面向对象编程主要体现在以下三个方面:封装,继承,多态。 因此 Java 不仅可以用来开发大型的桌面应用程序,而且特别适用于 Internet 的 应用开发。目前,Java 语言不仅是一门被广泛使用的编程语言,而且成为软件设 计开发者应当掌握的一门基础语言。Java 语言面向对象编程,并涉及网络,多线 程等重要的基础知识。 因为很多新的技术领域都涉及到 Java 语言, 国内外许多大 学已经将 Java 语言列入了本科教学计划, IT 行业对 Java 人才的需求也不断的 而 增长。在 IT 行业发达的国家,有将近 60%的软件开发人员使用 Java 的基础培训 工作。一些软件公司对其开发人员周期性的进行 Java 的基础培训工作。因此,学 习和掌握 Java 已经成为共识。 在学完了 Java 程序设计基础课程后, 我们这小组进行 Java 课程设计的教程, 在熟练运用 Eclipse 环境下,来完成这个实用性计算器。课程设计内容 1.2 课程设计内容实用型计算器的特点是通过用户注册,登录并实用计算器,计算过程对数据 有自动保存。通过集中式的信息数据库,将用户信息与使用情况都存储起来,达 到数据共享,降低成本,提高效率,改进服务的目的,进而实现该计算器实用性 的优势。实用性计算器包含以下内容: (1)计算功能 该功能用于计算各种四则运算、三角函数、进制转换、求余数、求对数等日 常实用频率较高的功能。 (2)统计汇总的功能 该功能对计算器运行数据进行存储,提供用户对数据查询。 (3)查询功能 该计算器的存储功能提供给用户对历史信息的查询,可以按照时间查询。1 1.3 任务分工2 实用型计算器的 第 2 章 实用型计算器的设计这一章是实用型计算器的设计,从系统需求分析开始,介绍开发环境和用到 的开发工具,系统主要的功能设计,系统的数据流程图。2.1 需求分析任务阐述: 如今社会中, 各行各业都需要一些数据的计算并存储, 计算器的普及速度可想 而知。但是,现阶段市场上有的计算器要么是价格昂贵,计算能力强,按键多, 操作繁琐的型号,要么是价格便宜,计算功能过于简单,按键少,操作十分简单 的计算器。而对于我们在校大学生,平时用于学习生活方面的计算,这两种都不 太适合。因此,我们开发了这个实用型计算器,它能更加便捷的服务于大众。 我们的计算器需求分析如下: 1) 本计算器提供快捷运算功能,具有计算,查询等功能。 2) 本计算器通过注册用户并登录后才能使用。 3) 用户使用的每次运算都给予存储,便于查询历史记录。记录运算时间,运 算式,运算结果。 基于上述需求分析,概括出系统需求具备的基本功能如下: 用户登入 注册 计算 查询历史记录 查询个人信息2.2 开发及运行环境硬件平台: CPU:P41.8GHz。 内存:256MB 以上。 软件平台:3 操作系统:Windows XP。 开发工具包:JDK Version1.6.2。 开发平台:eclipse2.3 主要功能要求本计算器针对在校大学生对计算的要求及市场上计算器现状,做出更实用便 捷的计算器。本计算器主要实现如下功能: 系统采用人机对话方式,界面美观友好,信息查询灵活、方便、 快捷、准确,数据存储安全可靠。 通过注册账号并登录实现用户个人实用信息的存储并查询。 系统操作简单,界面简洁明了。 数据计算自动完成,提高计算效率。 用户信息存储清晰明了,便于查询。 以时间为数据存储开头,存储用户计算的数据。 系统最大限度地实现了易维护性和易操作性。系统运行稳定、安全可靠。系统模块化分析 2.4 系统模块化分析2.4.1 计算器主界面布局计算器主界面主要用了 Flowlayout 布局和 Gridlayout 布局的结合, 更加简洁明 了。1)界面布局模块4 2-1-1 界面布局 2)注册模块流程图用户在登陆界面中注 册账号单击注册按钮添加注册 面板填写个人信息判断两次密码 输入是否一直否 输出错误信息是 完成注册, 返回登入界2-1-2 用户注册模块图5 3)查询模块流程图 用户在主窗口 左边的菜单上 点查看显示参看选项显示查询数据 选择查询选项关闭查询界 面,显示计算2-1-3 查询模块图4) 计算模块流程图 输入计算数字 输入计算符号进行计算在计算器文本 框中显示计算将计算结果存到历 史记录文件中2-1-4 计算模块图6 2.4.2 实用型计算器各模块介绍 实用型计算器各模块介绍各功能模块实现的功能为: 登录模块:对登录用户进行判断是否合法, 方便对用户查询计算历史记录查询 的管理。合法情况下,用户才能进入并实用计算器。 注册模块:对新用户进行简单的注册,方便使用计算器和历史记录查询。 计算模块:对数据进行相应的计算处理, 得出计算结果并将计算结果以系统时 间为数据开头存储到历史记录文件中。 信息查询模块:对用户使用计算器计算的历史记录保存,方便用户查询。表 3-1 各模块名称功能汇总表序号 1 2 2 3模块名 登录模块 注册模块 计算模块 信息查询 登录用户 提供新用户注册服务基本功能对数据进行计算,并将结果保存到历史记录文件中 对用户使用计算器计算的历史记录进行查询和用户信息 查询2.5 本章小结本章是实用型计算器的具体设计过程,有具体的需求分析、系统功能模块。 这里我们开始接触实用型计算器开发的最初步骤,也是很重要的一步。7 计算器的具体实现 第 3 章 计算器的具体实现界面是系统之间最直接的交互界面,界面的友好性体现了软件设计的质量, 并在很大程度上决定了软件是否成功。3.1 界面设计3.1.1 用户登陆界面图如图5.1.1和图5.1.2所示图5.1.1 用户登录模块框图8 图5.1 用户登陆界面此JavaScript函数的作用是检测用户登陆的合法性,并确认用户输入了合法的登 录名和口令。 部分代码:void loginDialog() { login = new JDialog(); login.setTitle(&登录&); login.setLayout(new FlowLayout()); ImageIcon image=new ImageIcon(&logo.jpg&); //设置显示图片的绝对路径 login.add(new JLabel(image));//添加图片标签 login.add(new JLabel(&用户名:&)); final JTextField name = new JTextField(15); login.add(name); login.add(new JLabel(&密 码:&)); final JPasswordField password = new JPasswordField(15); password.setEchoChar('*'); login.add(password); JButton confirm = new JButton(&登录&); 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); } } }); login.add(confirm); //添加登入按钮9 final JDialog regDialog = new JDialog(login, &注册&, true); registerDialog(regDialog); JButton register = new JButton(&注册&); register.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { { login.setVisible(false); regDialog.setVisible(true); } } }); login.add(register); login.setSize(350, 150); login.setResizable(false); login.setLocationRelativeTo(null); login.setVisible(true); }3.1.2 注册用户界面简单的用户信息注册,为用户节约不必要的时间。 部分代码:void loginDialog() { login = new JDialog(); login.setTitle(&登录&); login.setLayout(new FlowLayout()); ImageIcon image=new ImageIcon(&logo.jpg&); //设置显示图片的绝对路径 login.add(new JLabel(image));//添加图片标签 login.add(new JLabel(&用户名:&)); final JTextField name = new JTextField(15); login.add(name); login.add(new JLabel(&密 码:&)); final JPasswordField password = new JPasswordField(15);10 password.setEchoChar('*'); login.add(password); JButton confirm = new JButton(&登录&); 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); } } }); 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) { { login.setVisible(false); regDialog.setVisible(true); } } }); login.add(register); login.setSize(350, 150); login.setResizable(false); login.setLocationRelativeTo(null); login.setVisible(true); }11 3.1.3 系统主界面图5.2 系统主界面为了操作的简单明了,我们采用了Flowlayout布局和Gridlayout布局,简洁明了。 关键代码:f.setLayout(new BorderLayout(12, 2));// 边界布局 f.add(p, BorderLayout.NORTH); f.add(p1, BorderLayout.WEST); f.add(p2); mView.add(mRecord); mView.add(uInform); mBar.add(mView); //在查看菜单里面添加历史记录菜单项 //在查看菜单里面添加用户信息菜单项 //在菜单条上添加查看菜单f.setJMenuBar(mBar); //在窗体上添加菜单条 p.setLayout(new FlowLayout()); p2.setLayout(new GridLayout(5, 1, 10, 10));// 网格布局参数依次为(行 数,列数,宽度,高度) p2.add(p3); p2.add(p4); p2.add(p5); p2.add(p6); p2.add(p7); p3.setLayout(new GridLayout(1, 3, 10, 10)); p3.add(bt4);12 p3.add(bt5); p3.add(bt6); p4.setLayout(new GridLayout(1, 5, 10, 10)); p4.add(bt7); p4.add(bt8); p4.add(bt9); p4.add(bt0); p4.add(bt11); p5.setLayout(new GridLayout(1, 5, 10, 10)); p5.add(bt12); p5.add(bt13); p5.add(bt14); p5.add(bt15); p5.add(bt16); p6.setLayout(new GridLayout(1, 5, 10, 10)); p6.add(bt17); p6.add(bt18); p6.add(bt19); p6.add(bt10); p6.add(bt21); p7.setLayout(new GridLayout(1, 5, 10, 10)); p7.add(bt22); p7.add(bt23); p7.add(bt24); p7.add(bt25); p7.add(bt26); p.add(txt); p1.setLayout(new GridLayout(5, 1, 10, 10)); p1.add(bt00); p1.add(bt); p1.add(bt1); p1.add(bt2); p1.add(bt3);13 3.1.4 历史记录界面 历史记录界面图5.3.1 历史记录界面以系统时间为数据头存储,方便查询。14 3.1.5 用户信息界面3.2 程序设计及调试运行利用JSP“一次编写,各处运行”的编程优点,按功能模块结构设计菜单,布置 各明细模块工作界面,编写各个模块的程序代码,进行编译连接运行,经过反复 调试修改,以达到系统功能要求。这个过程具有大量的工作量,应仔细对每个程 序细节进行分析思考、编写程序并调试,做到程序简洁清楚,尽量避免可能潜在 的程序错误,并在必要的地方加以注释,以便于程序阅读和修改。 运行结果演示: 初始登入界面15 登入界面用于可以用来登入,或进行进入注册界面注册界面,用来实现新用户的注册功能 登入以后的计算界面Back 是退回键,相当于把输入数的尾数去掉16 C 键是清空键,按下 C 键之后把数返回到空值17 输入一个数字,然后按下二进制就把数自动转化为二进制数18 使用三角函数转换角度,输入一个角度,按下所需的三角函数19 1)使用 sin 转换,按下 sin 键2)使用 cos 转换,按下 cos 键20 3)使用 tan 转换,按下 tan 键使用以 10 为底数的对数函数转换,输入一个数,按下 log 键21 注:不能输入一个负数,不然出现无结果显示22 使用以 e 为底数的对数函数转换,输入一个数,按下 len 键23 注:不能输入一个负数,不然出现无结果显示24 使用开方计算,输入一个数,按下 sqrt 键25 注:不能输入一个负数,不然出现无结果显示26 使用倒数转换,输入一个数,按下 1/x 键27 注:不能输入 0 值转换倒数,不然无法显示出结果28 使用求余数转换,输入一个数,然后按下 mod 键,再输入一个除数,最后按“=”29 历史记录查询界面:30 用户信息查看界面:31 3.3 本章小结本章介绍了系统的具体实现和部分关键代码,界面的设计,文件的存储,各 个按钮的功能实现。32 第 4 章 结束语针对大学生学习生活中对数据的计算需求的特点,及结合市场上现有计算器 的不足之处,我们小组结合现状研究出了更实用的计算器,为了方便日常生活。 经过两个礼拜的奋斗,我们小组终于将这个实用型计算器做了出来,但是由 于能力有限及时间非常短暂,我们的产品还有以下不足之处: 1) 界面过于朴素,美观程度不够 2) 在一些较复杂计算按钮不能生动地在文件域内显示 3) 有些复杂的计算方式没有加进去 4) 计算器过于普通,不够生动致谢33 参考文献[1] 耿祥义. JAVA 课程设计[M]. 北京:清华大学出版社,2008 年 11 月. 清华大学出版社, [2] 张广彬, 孟红蕊, 张永宝. Java 课程设计案例精编[M]. 北京: 2007 年. [3] 杨树林,胡洁萍. JAVA 语言最新实用案例教程[M]. 北京:清华大学出版社, 2006 年 1 月. 45-170 [4] 刘新 Java 开发技术大全北京[M].清华大学出版社 2009 年 11 月. [5] 黄明, 梁旭, 周绍斌编著. Java 课程设计[M] 北京:电子工业出版社, 2006 年附录 源代码import java.awt.*; import java.util.*; import java.awt.event.ActionE import java.awt.event.ActionL import javax.swing.*; import java.io.*; import java.text.*; public class Calculator implements ActionListener { static JTextF static JF //声明文本框对象 //登入和注册对话框static JDialog login, addU static int fh = 5; static S public Calculator(){ try{static double yi, jieg, //声明中间变量和结果变量 //选择计算模式,用于选择双目运算UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) {34 System.out.println }( &无法设置界面风格 &);f = new JFrame(&计算器&); //创建一个标题名为计算器的窗口 f.setSize(420, 350); //设置窗口的大小(宽度和高度) f.setLocation(300, 300); //设置在屏幕出现的默认位置 /**************************Java计算器 菜单的创建 *****************************/ JMenuBar mBar = new JMenuBar(); //创建菜单条对象 JMenu mView= new JMenu(&查看(V)&); //创建查看菜单 JMenuItem mRecord=new JMenuItem(&历史纪录(H)&); //创建历史记录菜单项 JMenuItem uInform=new JMenuItem(&用户信息(U)&); //创建用户信息菜单项 JPanel p = new JPanel(); //创建JPanel面板(中间容器) JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); JPanel p4 = new JPanel(); JPanel p5 = new JPanel(); JPanel p6 = new JPanel(); JPanel p7 = new JPanel(); txt = new JTextField(30);// 创建文本框 txt.setHorizontalAlignment(JTextField.RIGHT);//设置文本框的属性为右 对齐 JButton bt00=new JButton(&Sin&); 行sin函数计算 JButton bt = new JButton(&Cos&); JButton bt1 = new JButton(&Tan&); JButton bt2 = new JButton(&Log&); 行底为10的对数计算函数计算 JButton bt3 = new JButton(&Len&); 行底为e的对数计算函数计算 JButton bt4 = new JButton(&二进制&); JButton bt5 = new JButton(&Back&); 出的数字进行退格 JButton bt6 = new JButton(&C&); JButton bt7 = new JButton(&7&); JButton bt8 = new JButton(&8&); JButton bt9 = new JButton(&9&); JButton bt0 = new JButton(&/&); JButton bt11 = new JButton(&Sqrt&); //求数字的平方根按钮 JButton bt12 = new JButton(&4&); JButton bt13 = new JButton(&5&);35//创建标题名为Sin的按钮组件,进//创建标题名为Log的按钮组件,进 //创建标题名为Len的按钮组件,进//创建标题名为Back的按钮,对于输 //初始化计算器按钮,进行复位功能 JButton bt14 = new JButton(&6&); JButton bt15 = new JButton(&*&); JButton bt16 = new JButton(&Mod&); JButton bt17 = new JButton(&1&); JButton bt18 = new JButton(&2&); JButton bt19 = new JButton(&3&); JButton bt10 = new JButton(&-&); JButton bt21 = new JButton(&1/x&); JButton bt22 = new JButton(&0&); JButton bt23 = new JButton(&+/-&); JButton bt24 = new JButton(&.&); JButton bt25 = new JButton(&+&); JButton bt26 = new JButton(&=&); mRecord.addActionListener(this); uInform.addActionListener(this); bt00.addActionListener(this);//为各个按钮添加监视器 bt.addActionListener(this); bt1.addActionListener(this); bt2.addActionListener(this); bt3.addActionListener(this); bt4.addActionListener(this); bt5.addActionListener(this); bt6.addActionListener(this); bt7.addActionListener(this); bt8.addActionListener(this); bt9.addActionListener(this); bt0.addActionListener(this); bt11.addActionListener(this); bt12.addActionListener(this); bt13.addActionListener(this); bt14.addActionListener(this); bt15.addActionListener(this); bt16.addActionListener(this); bt17.addActionListener(this); bt18.addActionListener(this); bt19.addActionListener(this); bt10.addActionListener(this); bt21.addActionListener(this); bt22.addActionListener(this); bt23.addActionListener(this); bt24.addActionListener(this);36//求余数计算按钮//求倒数计算按钮 bt25.addActionListener(this); bt26.addActionListener(this); /******************计算器界面布局*****************/ f.setLayout(new BorderLayout(12, 2));// 边界布局 f.add(p, BorderLayout.NORTH); f.add(p1, BorderLayout.WEST); f.add(p2); mView.add(mRecord); mView.add(uInform); mBar.add(mView); //在查看菜单里面添加历史记录菜单项 //在查看菜单里面添加用户信息菜单项 //在菜单条上添加查看菜单f.setJMenuBar(mBar); //在窗体上添加菜单条 p.setLayout(new FlowLayout()); p2.setLayout(new GridLayout(5, 1, 10, 10));// 网格布局参数依次为(行 数,列数,宽度,高度) p2.add(p3); p2.add(p4); p2.add(p5); p2.add(p6); p2.add(p7); p3.setLayout(new GridLayout(1, 3, 10, 10)); p3.add(bt4); p3.add(bt5); p3.add(bt6); p4.setLayout(new GridLayout(1, 5, 10, 10)); p4.add(bt7); p4.add(bt8); p4.add(bt9); p4.add(bt0); p4.add(bt11); p5.setLayout(new GridLayout(1, 5, 10, 10)); p5.add(bt12); p5.add(bt13); p5.add(bt14); p5.add(bt15); p5.add(bt16); p6.setLayout(new GridLayout(1, 5, 10, 10)); p6.add(bt17); p6.add(bt18); p6.add(bt19);37 p6.add(bt10); p6.add(bt21); p7.setLayout(new GridLayout(1, 5, 10, 10)); p7.add(bt22); p7.add(bt23); p7.add(bt24); p7.add(bt25); p7.add(bt26); p.add(txt); p1.setLayout(new GridLayout(5, 1, 10, 10)); p1.add(bt00); p1.add(bt); p1.add(bt1); p1.add(bt2); p1.add(bt3); loginDialog(); } public void actionPerformed(ActionEvent arg0) { if (arg0.getActionCommand().equals(&历史纪录(H)&)) { showRecord(); } if (arg0.getActionCommand().equals(&用户信息(U)&)) { showUseInform(); } if (arg0.getActionCommand().equals(&1&)) { if (txt.getText().equals(&0&)) txt.setText(&1&); else txt.setText(txt.getText() + &1&); } if (arg0.getActionCommand().equals(&2&)) { if (txt.getText().equals(&0&)) txt.setText(&2&); else txt.setText(txt.getText() + &2&); } if (arg0.getActionCommand().equals(&3&)) { if (txt.getText().equals(&0&)) txt.setText(&3&);38//启动登入界面 else txt.setText(txt.getText() + &3&); } if (arg0.getActionCommand().equals(&4&)) { if (txt.getText().equals(&0&)) txt.setText(&4&); else txt.setText(txt.getText() + &4&); } if (arg0.getActionCommand().equals(&5&)) { if (txt.getText().equals(&0&)) txt.setText(&5&); else txt.setText(txt.getText() + &5&); } if (arg0.getActionCommand().equals(&6&)) { if (txt.getText().equals(&0&)) txt.setText(&6&); else txt.setText(txt.getText() + &6&); } if (arg0.getActionCommand().equals(&7&)) { if (txt.getText().equals(&0&)) txt.setText(&7&); else txt.setText(txt.getText() + &7&); } if (arg0.getActionCommand().equals(&8&)) { if (txt.getText().equals(&0&)) txt.setText(&8&); else txt.setText(txt.getText() + &8&); } if (arg0.getActionCommand().equals(&9&)) { if (txt.getText().equals(&0&)) txt.setText(&9&); else txt.setText(txt.getText() + &9&); } if (arg0.getActionCommand().equals(&0&)) { if (txt.getText().equals(&0&)) txt.setText(&0&); else txt.setText(txt.getText() + &0&);39 } if (arg0.getActionCommand().equals(&.&)) { if (txt.getText().indexOf(&.&) != -1) txt.setText(txt.getText()); else txt.setText(txt.getText() + &.&); } if (arg0.getActionCommand().equals(&Sin&)) {//先输入数字后按三角函数 键 yi = Double.valueOf(txt.getText()); temp= double jie = Math.sin(yi/180*Math.PI); txt.setText(String.valueOf(jie)); s=&sin(&+String.valueOf(temp)+&)=&+String.valueOf(jie); save(s); s= } if (arg0.getActionCommand().equals(&Cos&)) { yi = Double.valueOf(txt.getText()); temp= double jie = Math.cos(yi/180*Math.PI); txt.setText(String.valueOf(jie)); s=&cos(&+String.valueOf(temp)+&)=&+String.valueOf(jie); save(s); s= } if (arg0.getActionCommand().equals(&Tan&)) { yi = Double.valueOf(txt.getText()); temp= double jie = Math.tan(yi/180*Math.PI); txt.setText(String.valueOf(jie)); s=&tan(&+String.valueOf(temp)+&)=&+String.valueOf(jie); save(s); s= } if (arg0.getActionCommand().equals(&Log&)) {//求10为底数对数 yi = Double.valueOf(txt.getText()); temp= double jie = Math.log(yi)/Math.log(10.0); txt.setText(String.valueOf(jie)); s=&log(&+String.valueOf(temp)+&)=&+String.valueOf(jie); save(s); s= }40 if (arg0.getActionCommand().equals(&Len&)) {//求e为底数的对数 yi = Double.valueOf(txt.getText()); temp= double jie = Math.log(yi); txt.setText(String.valueOf(jie)); s=&cos(&+String.valueOf(temp)+&)=&+String.valueOf(jie); save(s); s= } if (arg0.getActionCommand().equals(&+/-&)) {//正负转换 if (!(txt.getText().equals(&0&))) { yi = Double.valueOf(txt.getText()); yi=- txt.setText(String.valueOf(yi)); } } if (arg0.getActionCommand().equals(&Back&))// 退格 { int i = txt.getText().length(); txt.setText(txt.getText().substring(0, i - 1)); } if (arg0.getActionCommand().equals(&二进制&)) {//去二进制数 yi = Double.valueOf(txt.getText()); long a=(long)(yi); txt.setText(String.valueOf(Long.toBinaryString(a))); s=&二进制转化 (&+String.valueOf(yi)+&)=&+String.valueOf(Long.toBinaryString(a)); save(s); s= } if (arg0.getActionCommand().equals(&C&))// 清空 { txt.setText(&&); yi = 0; fh =5; } if (arg0.getActionCommand().equals(&/&)) {//除法 yi = Double.valueOf(txt.getText()); fh = 3; txt.setText(&&); }41 if (arg0.getActionCommand().equals(&*&)) {//乘法 yi = Double.valueOf(txt.getText()); fh = 2; txt.setText(&&); } if (arg0.getActionCommand().equals(&+&)) {//加法 yi = Double.valueOf(txt.getText()); fh = 0; txt.setText(&&); } if (arg0.getActionCommand().equals(&-&)) {//p法 yi = Double.valueOf(txt.getText()); fh = 1; txt.setText(&&); } if (arg0.getActionCommand().equals(&Mod&)) {//取余 yi = Double.valueOf(txt.getText()); fh = 4; txt.setText(&&); } if (arg0.getActionCommand().equals(&Sqrt&))// 平方根 { yi = Double.valueOf(txt.getText()); temp= double jie = Math.sqrt(yi); txt.setText(String.valueOf(jie)); s=&Sqrt(&+String.valueOf(temp)+&)=&+String.valueOf(jie); save(s); s= } if (arg0.getActionCommand().equals(&1/x&)) {//求倒数 double dou = Double.valueOf(txt.getText()); txt.setText(String.valueOf(1.0 / dou)); } if (arg0.getActionCommand().equals(&=&)) {//等号 double er = Double.valueOf(txt.getText());42 switch (fh) { case 0: jieg = (yi + er); s=String.valueOf(yi)+&+&+String.valueOf(er)+&=&+String.valueOf(jieg); save(s); s= case 1: jieg = (yi - er); s=String.valueOf(yi)+&-&+String.valueOf(er)+&=&+String.valueOf(jieg ); save(s); s= case 2: jieg = (yi * er); s=String.valueOf(yi)+&*&+String.valueOf(er)+&=&+String.valueOf(jieg ); save(s); s= case 3: jieg = (yi / er); s=String.valueOf(yi)+&/&+String.valueOf(er)+&=&+String.valueOf(jieg ); save(s); s= case 4: jieg=(yi % er); s=String.valueOf(yi)+&%&+String.valueOf(er)+&=&+String.valueOf(jieg ); save(s); s= } fh=5; txt.setText(String.valueOf(jieg)); }43 } /**************************登陆注册界面 *****************************************/ void loginDialog() { login = new JDialog(); login.setTitle(&登录&); login.setLayout(new FlowLayout()); ImageIcon image=new ImageIcon(&logo.jpg&); //设置显示图片的绝对路径 login.add(new JLabel(image));//添加图片标签 login.add(new JLabel(&用户名:&)); final JTextField name = new JTextField(15); login.add(name); login.add(new JLabel(&密 码:&)); final JPasswordField password = new JPasswordField(15); password.setEchoChar('*'); login.add(password); JButton confirm = new JButton(&登录&); 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); } } }); 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) { { login.setVisible(false); regDialog.setVisible(true); } } }); login.add(register); login.setSize(350, 150);44 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 = while (out.getFilePointer() & out.length()) { fname = out.readUTF(); out.readUTF(); fpassword = out.readUTF(); if (fname.equals(name)&&fpassword.equals(password)) } out.close(); } catch (IOException e) { e.printStackTrace(); } } /**************************注册用户的信息 ************************************/ private void registerDialog(final JDialog regDialog) { Box box1 = Box.createVerticalBox(); box1.add(new JLabel(&用户名:&, JLabel.RIGHT)); box1.add(Box.createVerticalStrut(10)); box1.add(new JLabel(&性别:&, JLabel.RIGHT)); box1.add(Box.createVerticalStrut(10)); box1.add(new JLabel(&密码:&, JLabel.RIGHT), -1); box1.add(Box.createVerticalStrut(10)); box1.add(new JLabel(&确认密码:&, JLabel.RIGHT)); Box box2 = Box.createVerticalBox(); final JTextField nameTextField = new JTextField(10); box2.add(nameTextField); box2.add(Box.createVerticalStrut(8)); final CheckboxGroup cbg = new CheckboxGroup(); Box box21 = Box.createHorizontalBox(); final Checkbox cb1 = new Checkbox(&男&, cbg, true); box21.add(cb1);45 box21.add(new Checkbox(&女&, cbg, false)); box2.add(box21); box2.add(Box.createVerticalStrut(8)); final JPasswordField pass1 = new JPasswordField(10); box2.add(pass1); box2.add(Box.createVerticalStrut(8)); final JPasswordField pass2 = new JPasswordField(10); box2.add(pass2); Box baseBox = Box.createHorizontalBox(); baseBox.add(box1); baseBox.add(box2); regDialog.setLayout(new FlowLayout()); regDialog.add(baseBox); JButton confirm = new JButton(&确定&); JButton cancel = new JButton(&取消&); regDialog.add(confirm); regDialog.add(cancel); regDialog.setSize(150, 200); regDialog.setResizable(false); regDialog.setLocationRelativeTo(null); confirm.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String sex = if (cbg.getSelectedCheckbox() == cb1) sex = &Sex:Boy&; else sex = &Sex:Girl&; if (saveUserData(nameTextField.getText().trim(), sex, new String(pass1.getPassword()), new String(pass2.getPassword()))) { regDialog.setVisible(false); login.setVisible(true); } else JOptionPane.showMessageDialog(regDialog, &输入有误,请检 查&, &错误提示&,JOptionPane.ERROR_MESSAGE); } }); cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { { regDialog.setVisible(false);46 login.setVisible(true); } } }); } /********************************用户信息的储存 ***************************/ private boolean saveUserData(String name, String sex, String password1, String password2) { if (!password1.equals(password2)) try { RandomAccessFile out = new RandomAccessFile(&user.dat&, &rw&); out.seek(out.length()); out.writeUTF(name); out.writeUTF(sex); out.writeUTF(password1); out.close(); } catch (IOException e) { e.printStackTrace(); } } private void showUseInform(){ JDialog dialog = new JDialog(f, &用户信息&, true); JTextArea area = new JTextArea(); area.setEditable(false); dialog.add(new JScrollPane(area)); dialog.setSize(640, 480); dialog.setLocationRelativeTo(null); try { File file = new File(&user.dat&); 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.setVisible(true);47 } private void showRecord() { JDialog dialog = new JDialog(f, &历史记录&, true); JTextArea area = new JTextArea(); area.setEditable(false); dialog.add(new JScrollPane(area)); dialog.setSize(640, 480); 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.setVisible(true); } /*******************将时间与结果保存到文件中***************************/ 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()]; FileReader in = new FileReader(file); in.read(ch); in.close(); FileWriter out = new FileWriter(file); String tmp = new String(ch); out.write(tmp.trim() + System.getProperty(&line.separator&)); out.write((time + s).trim() + System.getProperty(&line.separator&)); out.close(); }catch(IOException e) {48 e.printStackTrace(); } } public static void main(String agrs[]) { new Calculator(); } }49
Java程序设计计算器(含代码)―汇集和整理大量word文档,专业文献,应用文书,考试资料,教学教材,办公文档,教程攻略,文档搜索下载下载,拥有海量中文文档库,关注高价值的实用信息,我们一直在努力,争取提供更多下载资源。

我要回帖

更多关于 大神威武 跪求勾搭 的文章

 

随机推荐