【精品文档】Java程序设计计算器_第1页
【精品文档】Java程序设计计算器_第2页
【精品文档】Java程序设计计算器_第3页
【精品文档】Java程序设计计算器_第4页
【精品文档】Java程序设计计算器_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、I Java程序课程设计任务书程序课程设计任务书 实用性计算器的设计与开发实用性计算器的设计与开发 1 1、主要内容:、主要内容: 开发一个实用型的计算器程序,实现基本的计算功能同时并进行相应的 功能拓展,使其具更加人性化的功能。我们可以用其进行相应的计算功能来 方便我们的学习,代替我们进行一些简单的脑力劳动。 2 2、具体要求(包括技术要求等):具体要求(包括技术要求等): 系统的功能要求:系统的功能要求: 1. 可以使用计算器进行简单的四则运算:用界面上的按钮输入数字和相应的运 算符,即可算出相应的式子的答案,并且确保答案符合一定的精度要求; 2. 可以使用计算器进行一定的科学运算,比如在

2、输入数字后,计算器可以将相 应的数字进行进制转化,实现功能的同时确保一定的精度要求; 3. 可以进行简单的函数运算,比如求一个数的三角函数等; 4. 具有一定的错误提示功能,比如输入一个数除以0,我们将输出错误的信息。 学习并掌握以下技术:学习并掌握以下技术:Javax.swing,AWTJavax.swing,AWT,事件处理,事件处理等 熟练使用以下开发工具:熟练使用以下开发工具:Eclipse 实现系统上述的功能。实现系统上述的功能。 3 3、进度安排:进度安排: 12月28日 12月 29日:课程设计选题,查找参考资料 12月30日 12月 31日:完成需求分析 1月1日 1月5日:

3、完成系统设计,完成程序代码的编写 1月6日 1月6日:系统测试与完善 1月7日 1月8日:完成课程设计报告,准备答辩 四、主要参考文献 1 耿祥义. JAVA课程设计M. 北京:清华大学出版社,2008年11月. 2 张广彬, 孟红蕊, 张永宝. Java课程设计案例精编M. 北京:清华大学出版社,2007年. 3 杨树林,胡洁萍. JAVA语言最新实用案例教程M. 北京:清华大学出版社,2006年1月. 45-170 II 目目 录录 JAVA程序课程设计任务书程序课程设计任务书.II 目目 录录.IV 第第1章章 引言引言.1 1.1 背景背景.1 1.2 课程设计内容课程设计内容.1 1

4、.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历史记录界面历史记录

5、界面.14 3.1.5 用户信息界面用户信息界面.15 3.2程序设计及调试运行程序设计及调试运行.15 3.3 本章小结本章小结.32 第第4章章 结束语结束语.33 致谢致谢.33 参考文献参考文献.34 1 第第1章章 引言引言 1.11.1 背景背景 Java不依赖平台的特点使它受到广泛的关注,Java已成为网络时代最重要的 语言之一。Java具有平台无关性,面向对象,多线程,安全,动态等特点。Java 语言和其他语言相比,最大的优势在于能够在所有的计算机上运行,这也是Java 风靡全球的主要原因。Java的面向对象编程是一种先进的编程思想,可以更容易 的解决复杂的问题。面向对象编程主

6、要体现在以下三个方面:封装,继承,多态 。因此Java不仅可以用来开发大型的桌面应用程序,而且特别适用于Internet的 应用开发。目前,Java语言不仅是一门被广泛使用的编程语言,而且成为软件设 计开发者应当掌握的一门基础语言。Java语言面向对象编程,并涉及网络,多线 程等重要的基础知识。因为很多新的技术领域都涉及到Java语言,国内外许多大 学已经将Java语言列入了本科教学计划,而IT行业对Java人才的需求也不断的增 长。在IT行业发达的国家,有将近60%的软件开发人员使用Java的基础培训工作 。一些软件公司对其开发人员周期性的进行Java的基础培训工作。因此,学习和 掌握Jav

7、a已经成为共识。 在学完了Java程序设计基础课程后,我们这小组进行Java课程设计的教程, 在熟练运用Eclipse环境下,来完成这个实用性计算器。 1.21.2 课程设计内容课程设计内容 实用型计算器的特点是通过用户注册,登录并实用计算器,计算过程对数据 有自动保存。通过集中式的信息数据库,将用户信息与使用情况都存储起来,达 到数据共享,降低成本,提高效率,改进服务的目的,进而实现该计算器实用性 的优势。实用性计算器包含以下内容: (1)计算功能 该功能用于计算各种四则运算、三角函数、进制转换、求余数、求对数等日 常实用频率较高的功能。 (2)统计汇总的功能 该功能对计算器运行数据进行存储

8、,提供用户对数据查询。 (3)查询功能 该计算器的存储功能提供给用户对历史信息的查询,可以按照时间查询。 2 第第2章章 实用型计算器的设计实用型计算器的设计 这一章是实用型计算器的设计,从系统需求分析开始,介绍开发环境和用到 的开发工具,系统主要的功能设计,系统的数据流程图。 2.12.1需求分析需求分析 任务阐述: 如今社会中,各行各业都需要一些数据的计算并存储,计算器的普及速度可 想而知。但是,现阶段市场上有的计算器要么是价格昂贵,计算能力强,按键多 ,操作繁琐的型号,要么是价格便宜,计算功能过于简单,按键少,操作十分简 单的计算器。而对于我们在校大学生,平时用于学习生活方面的计算,这两

9、种都 不太适合。因此,我们开发了这个实用型计算器,它能更加便捷的服务于大众。 我们的计算器需求分析如下: 1) 本计算器提供快捷运算功能,具有计算,查询等功能。 2) 本计算器通过注册用户并登录后才能使用。 3) 用户使用的每次运算都给予存储,便于查询历史记录。记录运算时间, 运算式,运算结果。 基于上述需求分析,概括出系统需求具备的基本功能如下: 用户登入 注册 计算 查询历史记录 查询个人信息 2.22.2开发及运行环境开发及运行环境 硬件平台: CPU:P41.8GHz。 内存:256MB以上。 软件平台: 3 操作系统:Windows XP。 开发工具包:JDK Version1.6.

10、2。 开发平台:eclipse 2.32.3主要功能要求主要功能要求 本计算器针对在校大学生对计算的要求及市场上计算器现状,做出更实用便 捷的计算器。本计算器主要实现如下功能: 系统采用人机对话方式,界面美观友好,信息查询灵活、方便、 快捷、准确,数据存储安全可靠。 通过注册账号并登录实现用户个人实用信息的存储并查询。 系统操作简单,界面简洁明了。 数据计算自动完成,提高计算效率。 用户信息存储清晰明了,便于查询。 以时间为数据存储开头,存储用户计算的数据。 系统最大限度地实现了易维护性和易操作性。 系统运行稳定、安全可靠。 2.42.4 系统模块化分析系统模块化分析 2.4.1 计算器主界面

11、布局计算器主界面布局 计算器主界面主要用了Flowlayout布局和Gridlayout布局的结合,更加简洁明了 。 1)界面布局模块 4 Jframe(计算器窗口) Jpanel_0(中间容器)Jpanel_1(中间容器)Jpanel_2(中间容器) JTextFieldJbutton_00Jbutton_3Jpanel_3Jpanel_4Jpanel_5Jpanel_6Jpanel_7 Jbutton_4.Jbutton_6 Jbutton_7.Jbutton_11 Jbutton_12.Jbutton_16 Jbutton_17.Jbutton_21 Jbutton_22.Jbutton

12、_26 菜单条mBar查看菜单 历史记录菜单项 用户信息菜单项 2-1-1界面布局 2)注册模块流程图 添加注册 面板 用户在登陆界面中注册 账号 单击注册按钮填写个人信息 判断两次密码输 入是否一直 输出错误信息 完成注册, 返回登入界 面 否是 2-1-2用户注册模块图 5 3)查询模块流程图 用户在主窗口左 边的菜单上点查 看 显示参看选项 选择查询选项 显示查询数据 关闭查询界面 ,显示计算器 主界面 2-1-3查询模块图 4) 计算模块流程图 输入计算数字 输入计算符号 进行计算 在计算器文本框 中显示计算结果 将计算结果存到历 史记录文件中 2-1-4计算模块图 6 2.4.2实用

13、型计算器各模块介绍实用型计算器各模块介绍 各功能模块实现的功能为: 登录模块:对登录用户进行判断是否合法,方便对用户查询计算历史记录查 询的管理。合法情况下,用户才能进入并实用计算器。 注册模块:对新用户进行简单的注册,方便使用计算器和历史记录查询。 计算模块:对数据进行相应的计算处理,得出计算结果并将计算结果以系统 时间为数据开头存储到历史记录文件中。 信息查询模块:对用户使用计算器计算的历史记录保存,方便用户查询。 表表3-1 各模块名称功能汇总表各模块名称功能汇总表 序号模块名基本功能 1 登录模块登录用户 2 注册模块提供新用户注册服务 2 计算模块对数据进行计算,并将结果保存到历史记

14、录文件中 3 信息查询对用户使用计算器计算的历史记录进行查询和用户信息 查询 2.52.5本章小结本章小结 本章是实用型计算器的具体设计过程,有具体的需求分析、系统功能模块。 这里我们开始接触实用型计算器开发的最初步骤,也是很重要的一步。 7 第第3章章 计算器的具体实现计算器的具体实现 界面是系统之间最直接的交互界面,界面的友好性体现了软件设计的质量, 并在很大程度上决定了软件是否成功。 3.13.1界面设计界面设计 3.1.1用户登陆界面图用户登陆界面图 如图5.1.1和图5.1.2所示 用户信息 输入信息是否 合法 用户登录到主界面 是 弹出错误信息 否 输入 登录界面 自 动 跳 转

15、验 证 图图5.1.1 用户登录模块框图用户登录模块框图 8 图图5.15.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.a

16、dd(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

17、 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

18、 = new JDialog(login, 注册, true); registerDialog(regDialog); JButton register = new JButton(注册); register.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) 9 login.setVisible(false); regDialog.setVisible(true); ); login.add(register); login.setSize(350, 150); login.set

19、Resizable(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

20、);/添加图片标签 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 Action

21、Listener() public void actionPerformed(ActionEvent e) if (compareUserData(name.getText().trim(), new 10 String(password.getPassword() login.setVisible(false); f.setVisible(true); else JOptionPane.showMessageDialog(login, 用户名或密码错误!, 错误提示, JOptionPane.ERROR_MESSAGE); ); login.add(confirm); /添加登入按钮 fin

22、al 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(35

23、0, 150); login.setResizable(false); login.setLocationRelativeTo(null); login.setVisible(true); 11 3.1.3 系统主界面系统主界面 图图5.25.2 系统主界面系统主界面 为了操作的简单明了,我们采用了Flowlayout布局和Gridlayout布局,简洁明了 。 关键代码: f.setLayout(new BorderLayout(12, 2);/ 边界布局 f.add(p, BorderLayout.NORTH); f.add(p1, BorderLayout.WEST); f.add(p2

24、); 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); 12

25、 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(bt

26、16); 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);

27、p1.add(bt); p1.add(bt1); p1.add(bt2); p1.add(bt3); 13 3.23.2程序设计及调试运行程序设计及调试运行 利用JSP“一次编写,各处运行”的编程优点,按功能模块结构设计菜单,布置各 明细模块工作界面,编写各个模块的程序代码,进行编译连接运行,经过反复调 试修改,以达到系统功能要求。这个过程具有大量的工作量,应仔细对每个程序 细节进行分析思考、编写程序并调试,做到程序简洁清楚,尽量避免可能潜在的 程序错误,并在必要的地方加以注释,以便于程序阅读和修改。 运行结果演示: 初始登入界面 登入界面用于可以用来登入,或进行进入注册界面 注册界面,用来实

28、现新用户的注册功能 登入以后的计算界面 14 Back是退回键,相当于把输入数的尾数去掉 15 C键是清空键,按下C键之后把数返回到空值 16 输入一个数字,然后按下二进制就把数自动转化为二进制数 17 使用三角函数转换角度,输入一个角度,按下所需的三角函数 1)使用sin转换,按下sin键 18 2)使用cos转换,按下cos键 3)使用tan转换,按下tan键 19 使用以10为底数的对数函数转换,输入一个数,按下log键 20 注:不能输入一个负数,不然出现无结果显示 21 使用以e为底数的对数函数转换,输入一个数,按下len键 22 注:不能输入一个负数,不然出现无结果显示 23 使用

29、开方计算,输入一个数,按下sqrt键 24 注:不能输入一个负数,不然出现无结果显示 25 使用倒数转换,输入一个数,按下1/x键 26 注:不能输入0值转换倒数,不然无法显示出结果 使用求余数转换,输入一个数,然后按下mod键,再输入一个除数,最后按“=” 27 28 历史记录查询界面: 用户信息查看界面: 29 3.33.3 本章小结本章小结 本章介绍了系统的具体实现和部分关键代码,界面的设计,文件的存储,各 个按钮的功能实现。 30 第第4章章 结束语结束语 针对大学生学习生活中对数据的计算需求的特点,及结合市场上现有计算器 的不足之处,我们小组结合现状研究出了更实用的计算器,为了方便日

30、常生活。 经过两个礼拜的奋斗,我们小组终于将这个实用型计算器做了出来,但是由 于能力有限及时间非常短暂,我们的产品还有以下不足之处: 1)界面过于朴素,美观程度不够 2)在一些较复杂计算按钮不能生动地在文件域内显示 3)有些复杂的计算方式没有加进去 4)计算器过于普通,不够生动 致谢致谢 31 源代码源代码 import java.awt.*; import java.util.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import java

31、.io.*; import java.text.*; public class Calculator implements ActionListener static JTextField txt; /声明文本框对象 static JFrame f; static JDialog login, addUser; /登入和注册对话框 static double yi, jieg,temp; /声明中间变量和结果变量 static int fh = 5; /选择计算模式,用于选择双目运算 static String s; public Calculator() try UIManager.setL

32、ookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch (Exception e) System.out.println ( 无法设置界面风格 ); f = new JFrame(计算器); /创建一个标题名为计算器的窗口 f.setSize(420, 350); /设置窗口的大小(宽度和高度) f.setLocation(300, 300); /设置在屏幕出现的默认位置 /*Java计算器 菜单的创建*/ JMenuBar mBar = new JMenuBar(); /创建菜单条对象 JMenu mView= new JMen

33、u(查看(V); /创建查看菜单 JMenuItem mRecord=new JMenuItem(历史纪录(H); /创建历史记录菜单项 JMenuItem uInform=new JMenuItem(用户信息(U); /创建用户信息菜单项 32 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(); JPa

34、nel p6 = new JPanel(); JPanel p7 = new JPanel(); txt = new JTextField(30);/ 创建文本框 txt.setHorizontalAlignment(JTextField.RIGHT);/设置文本框的属性为右对齐 JButton bt00=new JButton(Sin); /创建标题名为Sin的按钮组件,进行sin函数计算 JButton bt = new JButton(Cos); JButton bt1 = new JButton(Tan); JButton bt2 = new JButton(Log); /创建标题名为

35、Log的按钮组件,进行底为10的对数计算函数计算 JButton bt3 = new JButton(Len); /创建标题名为Len的按钮组件,进行底为e的对数计算函数计算 JButton bt4 = new JButton(二进制); JButton bt5 = new JButton(Back); /创建标题名为Back的按钮,对于输出的数字进行退格 JButton bt6 = new JButton(C); /初始化计算器按钮,进行复位功能 JButton bt7 = new JButton(7); JButton bt8 = new JButton(8); JButton bt9 =

36、 new JButton(9); JButton bt0 = new JButton(/); JButton bt11 = new JButton(Sqrt); /求数字的平方根按钮 JButton bt12 = new JButton(4); JButton bt13 = new JButton(5); JButton bt14 = new JButton(6); JButton bt15 = new JButton(*); JButton bt16 = new JButton(Mod); /求余数计算按钮 JButton bt17 = new JButton(1); JButton bt1

37、8 = new JButton(2); JButton bt19 = new JButton(3); JButton bt10 = new JButton(-); JButton bt21 = new JButton(1/x); /求倒数计算按钮 33 JButton bt22 = new JButton(0); JButton bt23 = new JButton(+/-); JButton bt24 = new JButton(.); JButton bt25 = new JButton(+); JButton bt26 = new JButton(=); mRecord.addActio

38、nListener(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.add

39、ActionListener(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.addAct

40、ionListener(this); bt18.addActionListener(this); bt19.addActionListener(this); bt10.addActionListener(this); bt21.addActionListener(this); bt22.addActionListener(this); bt23.addActionListener(this); bt24.addActionListener(this); bt25.addActionListener(this); bt26.addActionListener(this); /*计算器界面布局*/

41、 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); /在查看菜单里面添加用户信息菜单项 34 mBar.add(mView); /在菜单条上添加查看菜单 f.setJMenuBar(mBar); /在窗体上添加菜单条 p.setLayout(new FlowLayout(); p2.setLayout(n

42、ew 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(bt1

43、1); 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);

44、 p7.add(bt24); p7.add(bt25); p7.add(bt26); 35 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

45、.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.g

46、etActionCommand().equals(3) if (txt.getText().equals(0) txt.setText(3); 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) 36 if (txt.getText().equals(0) txt

47、.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.get

48、ActionCommand().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.setT

49、ext(0); else txt.setText(txt.getText() + 0); 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(); 37 temp=yi; double jie = Mat

50、h.sin(yi/180*Math.PI); txt.setText(String.valueOf(jie); s=sin(+String.valueOf(temp)+)=+String.valueOf(jie); save(s); s=null; if (arg0.getActionCommand().equals(Cos) yi = Double.valueOf(txt.getText(); temp=yi; double jie = Math.cos(yi/180*Math.PI); txt.setText(String.valueOf(jie); s=cos(+String.value

51、Of(temp)+)=+String.valueOf(jie); save(s); s=null; if (arg0.getActionCommand().equals(Tan) yi = Double.valueOf(txt.getText(); temp=yi; double jie = Math.tan(yi/180*Math.PI); txt.setText(String.valueOf(jie); s=tan(+String.valueOf(temp)+)=+String.valueOf(jie); save(s); s=null; if (arg0.getActionCommand

52、().equals(Log) /求10为底数对数 yi = Double.valueOf(txt.getText(); temp=yi; 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=null; if (arg0.getActionCommand().equals(Len) /求e为底数的对数 yi = Double.valueOf(txt.getText(); te

53、mp=yi; double jie = Math.log(yi); txt.setText(String.valueOf(jie); s=cos(+String.valueOf(temp)+)=+String.valueOf(jie); save(s); s=null; if (arg0.getActionCommand().equals(+/-) /正负转换 38 if (!(txt.getText().equals(0) yi = Double.valueOf(txt.getText(); yi=-yi; txt.setText(String.valueOf(yi); if (arg0.g

54、etActionCommand().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)+)=+Str

55、ing.valueOf(Long.toBinaryS tring(a); save(s); s=null; if (arg0.getActionCommand().equals(C)/ 清空 txt.setText(); yi = 0; fh =5; if (arg0.getActionCommand().equals(/) /除法 yi = Double.valueOf(txt.getText(); fh = 3; txt.setText(); if (arg0.getActionCommand().equals(*) /乘法 yi = Double.valueOf(txt.getText(

56、); fh = 2; txt.setText(); if (arg0.getActionCommand().equals(+) /加法 yi = Double.valueOf(txt.getText(); 39 fh = 0; txt.setText(); if (arg0.getActionCommand().equals(-) /減法 yi = Double.valueOf(txt.getText(); fh = 1; txt.setText(); if (arg0.getActionCommand().equals(Mod) /取余 yi = Double.valueOf(txt.get

57、Text(); fh = 4; txt.setText(); if (arg0.getActionCommand().equals(Sqrt)/ 平方根 yi = Double.valueOf(txt.getText(); temp=yi; double jie = Math.sqrt(yi); txt.setText(String.valueOf(jie); s=Sqrt(+String.valueOf(temp)+)=+String.valueOf(jie); save(s); s=null; if (arg0.getActionCommand().equals(1/x) /求倒数 dou

58、ble dou = Double.valueOf(txt.getText(); txt.setText(String.valueOf(1.0 / dou); if (arg0.getActionCommand().equals(=) /等号 double er = Double.valueOf(txt.getText(); switch (fh) case 0: jieg = (yi + er); s=String.valueOf(yi)+String.valueOf(er)+=+String.valueOf(jieg); save(s); s=null; break; case 1: 40

59、jieg = (yi - er); s=String.valueOf(yi)+- +String.valueOf(er)+=+String.valueOf(jieg); save(s); s=null; break; case 2: jieg = (yi * er); s=String.valueOf(yi)+*+String.valueOf(er)+=+String.valueOf(jieg ); save(s); s=null; break; case 3: jieg = (yi / er); s=String.valueOf(yi)+/+String.valueOf(er)+=+Stri

60、ng.valueOf(jieg ); save(s); s=null; break; case 4: jieg=(yi % er); s=String.valueOf(yi)+%+String.valueOf(er)+=+String.valueOf(jieg ); save(s); s=null; break; fh=5; txt.setText(String.valueOf(jieg); /*登陆注册界面* */ void loginDialog() login = new JDialog(); login.setTitle(登录); login.setLayout(new FlowLay

温馨提示

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

评论

0/150

提交评论