




免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 摘要 本计算器是由 java 语言所编程设计的标准计算器 可以进行十进制下的四 则运算 加 减 乘 除 开平方 求余 求倒数 还可以实现二进制与十进 制之间的转换 通过本课程设计使学生能够较全面的掌握面向对象程序设计的 有关概念和开发方法 以便能较全面地理解 掌握和综合运用所学的知识 提 高自身的编程能力 关键词 java 语言 计算器 算法 2 目录 摘要摘要 1 1 1 概述概述 2 1 11 1 设计目的及思路设计目的及思路 2 1 21 2 功能模块设计功能模块设计 2 1 31 3 系统功能图系统功能图 3 2 2 计算器的设计与实现计算器的设计与实现 3 2 12 1 程序界面程序界面 3 2 22 2 程序源代码程序源代码 4 3 3 计算器演示计算器演示 10 4 4 运行调试及讨论分析运行调试及讨论分析 13 5 5 小结小结 13 参考文献 参考文献 14 3 1 概述 1 11 1 设计目的及思路设计目的及思路 通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和 开发方法 以便能较全面地理解 掌握和综合运用所学的知识 提高自身的编 程能力 利用 Java Applet 图形界面首先开始设计一个计算器的界面 定义计 算器所需要的按钮并赋给其按钮名称 使得使用计算器时简单明了 清晰可见 操作轻松 给各个按钮进行算法 利用鼠标点击事件 当鼠标点击某个按钮时就开始执 行那个按钮所定义的算法 生成数据并显示 除数字的输入为直接进行输入外 其他运算例如 开平方等算法 要求计算时通过内部较为复杂的运算将结果显示在显示屏上 至于其中的进制转换功能的实现则是直接调用 Java 中进制转换的函数 例 如要将十进制转换成二进制则可直接调用函数 Integer toBinaryString int i 来 实现 充分显示了 Java 语言的简洁性和 Java 语言功能的强大性 当然了在输入数据时还要进行异常捕捉 防止越界的现象的发生 这也是 Java 语言健壮性的体现 1 21 2 功能模块设计功能模块设计 以下为标准计算器的基本功能 1 加法 两个数据进行加操作 可以为小数 2 减法 两个数据进行减操作 可以为负数相减 3 乘法 两个数相乘操作 4 除法 两个数相除操作 5 开平方 对任意一个数进行开方运算 可以是小数 6 求余 对任意一个数进行求余运算 7 倒数 对任意一个数进行倒数运算 8 转换 将十进制数转换为二进制以及将二进制转换为十进制 1 31 3 系统功能图系统功能图 4 计算器 减法运算 加法运算 乘法运算 除法运算 倒数运算 开平方运 算 求余运算 二进制与 十进制转 换 2 计算器的设计与实现 2 12 1 程序界面程序界面 2 22 2 程序源代码程序源代码 import javax swing import javax swing text JTextComponent import java util StringTokenizer import java awt import java awt event import java math public class Calculator implements ActionListener JFrame jf new JFrame 计算器 JTextField tf new JTextField JPanel pnl 5 JButton jButtonDENG JButton jButtonJIAN JButton jButtonCHENG JButton jButton1 JButton jButton2 JButton jButton3 JButton jButton4 JButton jButton5 JButton jButton6 JButton jButton7 JButton jButton8 JButton jButton9 JButton jButton0 JButton jButtonCHU JButton jButtonQINGKONG JButton jButtonJIA JButton jButtonQUYU JButton jButtonPINGFANG JButton jButtonXIAOSHUDIAN JButton jButtonBACKSPACE JButton jButtonDAOSHU JButton jButtonKAIPINGFANG JButton jButtonERJINZHI JButton jButtonSHIJINZHI public Calculator 初始化界面的方法 Container c jf getContentPane tf setHorizontalAlignment JTextField RIGHT c add tf North JPanel pnl new JPanel c add pnl Center pnl setLayout new GridLayout 6 5 jButton1 new JButton 1 jButton1 addActionListener this pnl add jButton1 jButton2 new JButton 2 jButton2 addActionListener this pnl add jButton2 jButton3 new JButton 3 jButton3 addActionListener this pnl add jButton3 jButtonBACKSPACE new JButton backspace jButtonBACKSPACE addActionListener this pnl add jButtonBACKSPACE jButton4 new JButton 4 6 jButton4 addActionListener this pnl add jButton4 jButton5 new JButton 5 jButton5 addActionListener this pnl add jButton5 jButton6 new JButton 6 jButton6 addActionListener this pnl add jButton6 jButtonJIA new JButton jButtonJIA addActionListener this pnl add jButtonJIA jButton7 new JButton 7 jButton7 addActionListener this pnl add jButton7 jButton8 new JButton 8 jButton8 addActionListener this pnl add jButton8 jButton9 new JButton 9 jButton9 addActionListener this pnl add jButton9 jButtonJIAN new JButton jButtonJIAN addActionListener this pnl add jButtonJIAN jButton0 new JButton 0 jButton0 addActionListener this pnl add jButton0 jButtonQINGKONG new JButton 清空 jButtonQINGKONG addActionListener this pnl add jButtonQINGKONG jButtonCHENG new JButton jButtonCHENG addActionListener this pnl add jButtonCHENG jButtonCHU new JButton jButtonCHU addActionListener this pnl add jButtonCHU jButtonQUYU new JButton jButtonQUYU addActionListener this pnl add jButtonQUYU jButtonPINGFANG new JButton 平方 jButtonPINGFANG addActionListener this pnl add jButtonPINGFANG jButtonXIAOSHUDIAN new JButton jButtonXIAOSHUDIAN addActionListener this pnl add jButtonXIAOSHUDIAN 7 jButtonDENG new JButton jButtonDENG addActionListener this pnl add jButtonDENG jButtonDAOSHU new JButton 倒数 jButtonDAOSHU addActionListener this pnl add jButtonDAOSHU jButtonKAIPINGFANG new JButton 开平方 jButtonKAIPINGFANG addActionListener this pnl add jButtonKAIPINGFANG jButtonERJINZHI new JButton 二进制 jButtonERJINZHI addActionListener this pnl add jButtonERJINZHI jButtonSHIJINZHI new JButton 十进制 jButtonSHIJINZHI addActionListener this pnl add jButtonSHIJINZHI jf setSize 600 400 jf setVisible true public void actionPerformed ActionEvent event 检测运算符的方法 try double wen 0 String toknizer String ben String wenben tf getText event getActionCommand tf setText wenben 各运算符的判断运行代码 if wenben indexOf 1 toknizer if wenben indexOf 1 toknizer if wenben indexOf 1 toknizer if wenben indexOf 1 toknizer if wenben indexOf 1 toknizer if wenben indexOf 平方 1 toknizer 平方 if wenben indexOf 倒数 1 8 toknizer 倒数 if wenben indexOf 开平方 1 toknizer 开平方 if wenben indexOf 二进制 1 toknizer 二进制 if wenben indexOf 十进制 1 toknizer 十进制 各个运算符的运算方法代码 if event getSource jButtonQINGKONG 清空算法 wenben tf setText wenben if event getSource jButtonBACKSPACE 清除算法 wenben wenben substring 0 wenben length 10 tf setText wenben if event getSource jButtonDENG 算法 wenben wenben substring 0 wenben length 1 double b new double 10 String a new String 15 StringTokenizer sun new StringTokenizer wenben toknizer int i 0 while sun hasMoreTokens a i sun nextToken for int j 0 j 10 j String s a j String k a j 1 if s null break else if toknizer 算法 if j 0 wen 1 b j Double parseDouble s wen wen b j ben Double toString wen tf setText wenben ben if toknizer 算法 if j 0 wen 0 b j Double parseDouble s 9 wen wen b j ben Double toString wen tf setText wenben ben if toknizer 算法 b j Double parseDouble s if j 0 wen 2 b j wen wen b j ben Double toString wen tf setText wenben ben if toknizer 算法 b j Double parseDouble s if j 0 wen b j b j wen wen b j ben Double toString wen tf setText wenben ben if toknizer 平方 平方算法 if j 0 wen 1 b j Double parseDouble s wen wen b j b j ben Double toString wen tf setText wenben ben if toknizer 倒数 倒数算法 b j Double parseDouble s wen 1 b j ben Double toString wen tf setText wenben ben if toknizer 开平方 开平方算法 if j 0 wen 0 b j Double parseDouble s double wen1 sqrt b j ben Double toString wen1 tf setText wenben ben JTextComponent textAnswer null if toknizer 十进制 二进制转为十进制代码 b j Integer parseInt s wen Integer parseInt s 2 ben Double toString wen tf setText wenben ben 10 if toknizer 二进制 十进制转换为二进制代码 int den Integer parseInt s String daen Integer toBinaryString den tf setText wenben daen if toknizer 算法 if j 0 b j Double parseDouble s b j 1 Double parseDouble k if b j b j 1 wen b j b j 1 if j 1 b j Double parseDouble a j wen wen b j ben Double toString wen tf setText wenben ben catch Exception e e getMessage private int sqrt double d TODO Auto generated method stub return 0 主函数 public static void main String args new Calculator 对小程序进行初始化 3 计算器演示 11 加法 减法 乘法 除法 12 倒数 平方 13 二进制转换为十进制 十进制转换为二进制 4 运行调试及讨论分析 将代码写好之后检查代码的正确性 检查代码无误后将代码进行调试和运 行将会出现一个 JavaApplet 计算器界面 在调试过程中可能会出现有界面但是 不能运行小程序 那是因为没有初始化小程序 那时我们应该在主函数中将小 程序进行初始化 这样小程序才能运行 在调试和运行完全正确后 我们就可以按照自己的医院将小程序进行简单 测试 例如输入一些简单数据分别运行各个按钮结果正确后可以初步确定程序 师正确的 有时候我们还要输入不同范围的值进行测试 可能会发现更多的错 误 因为有时候我们定义数据的范围可能会过小或输入数据会越界 到时我们 就可以改正以适应更多更大的运算 有时候我们会不自觉的选择一种最优函数方法尽量将自己的代码简单规范 而又不缺少题目所要求的功能 那就要求我们翻阅很多参考书和查阅很多资料 其实 javaApplet 图形界面的布局也是我们要讨论的范围 如何使得界面更加美 14 观是我们要探讨的 有时候我们可能会到书上或网上找到一些满足我们要求的程序代码 在此我们 应该取其优秀的简单易理解代码作为我们设计程序的代码 作为初学者参考和 借用部分外部程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高等数学自考试题及答案
- 2025年广西民族大学政治与公共管理学院招聘考试笔试试题(含答案)
- 北京电工知识实操培训班课件
- 2024医疗纠纷预防处理和法律法规培训试题及答案
- 手术室实习生出科考试试题及答案
- 2025卫生管理职称考试复习题之试题及答案
- 2025会计基础知识竞赛题库与答案
- 北京护理新生儿知识培训课件
- 2024年国家公务员考试申论真题及答案(地市级)
- 2025年电大专科小学教育小学儿童教育心理学试题及答案重点
- 2025-2026学年接力版(2024)小学英语四年级上册(全册)教学设计(附目录)
- 2025年发展对象考试题题库及答案
- 2025年医疗质量安全核心制度及病历书写规范考核试题(附答案)
- 2025北京广播电视台校园招聘17人笔试备考题库及参考答案详解
- 征兵体检心理测试题及答案
- 水泥混凝土路面施工技术
- DB11T 1481-2024 生产经营单位安全事故应急预案评审规范
- 调车作业培训课件
- MIR睿工业:2025年中国协作机器人产业发展蓝皮书
- 2025年杭州市检察机关招录聘用制书记员考试笔试试题(含答案)
- 2025年应急管理普法知识竞赛题(附答案)
评论
0/150
提交评论