




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息科学与技术学院 Java Java 语言课程设计语言课程设计 报告报告 题题 目 目 编写一个计算器程序编写一个计算器程序 专专 业 业 计算机科学与技术计算机科学与技术 班班 级 级 学学 号 号 姓姓 名 名 目录目录 一 概述一 概述 3 3 1 1 设计目的及思路 3 1 2 功能模块设计 3 1 3 程序结构 流程图 4 二 计算器的设计与实现二 计算器的设计与实现 4 4 2 1 程序界面 4 2 2 程序源代码 5 三 三 参考文献参考文献 1414 一 概述 1 11 1 设计目的及思路设计目的及思路 通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和 开发方法 以便能较全面地理解 掌握和综合运用所学的知识 提高自身的编 程能力 利用 Java Applet 图形界面首先开始设计一个计算器的界面 定义计 算器所需要的按钮并赋给其按钮名称 使得使用计算器时简单明了 清晰可见 操作轻松 给各个按钮进行算法 利用鼠标点击事件 当鼠标点击某个按钮时就开始执 行那个按钮所定义的算法 生成数据并显示 除数字的输入为直接进行输入外 其他运算例如 开平方等算法 要求计算时通过内部较为复杂的运算将结果显示在显示屏上 至于其中的进制转换功能的实现则是直接调用 Java 中进制转换的函数 例 如要将十进制转换成二进制则可直接调用函数 Integer toBinaryString int i 来 实现 充分显示了 Java 语言的简洁性和 Java 语言功能的强大性 当然了在输入数据时还要进行异常捕捉 防止越界的现象的发生 这也是 Java 语言健壮性的体现 1 21 2 功能模块设计功能模块设计 1 加法 两个数据进行加操作 可以为小数 2 减法 两个数据进行减操作 可以为负数相减 3 乘法 两个数相乘操作 4 除法 两个数相除操作 5 阶乘 对任意一个数进行阶乘运算 6 指数 对任意一个数进行指数运算 7 倒数 对任意一个数进行倒数运算 1 31 3 程序结构程序结构 流程图 流程图 二 计算器的设计与实现 2 12 1 程序界面程序界面 2 22 2 程序源代码程序源代码 package mine import java awt import java awt event public class Calculator implements ActionListener private double data1 0 0 data2 0 0 private String t content boolean number false key 用标示用户所按按钮即加减乘除 key0 标示 1 表示 2 表示 3 表示 short key 1 pkey 取值 1 5 pkey 1 表示第按 按钮 5 说明第按 按钮 pkey 其值 0 1 2 3 别代表 short pkey 1 Frame frame new Frame 计算器 定义标题 Calculator 窗体 TextField textfield new TextField 30 定义计算机 定义 backspace ce c0 按钮 Button backspace new Button 退格 Button ce new Button 撤消 Button c0 new Button 清空 定义面板其 backspace ce c0 按钮计算机栏 textfeild 放面板 p1 其余按钮放面板 p2 Panel p1 new Panel Panel p2 new Panel 定义界面按钮数组即除 backspace ce c0 按钮所按钮 String names 7 8 9 sqrt 4 5 6 1 2 3 1 x 0 Button bb new Button names length public static void main String args Calculator cal new Calculator cal go public void go frame setSize 300 200 frame setLayout new BorderLayout Font fonts new Font 楷体 GB2312 Font PLAIN 12 设置面板 p1 字体布局管理类型 textfeild 象添加面板 p1 setFont fonts p1 setLayout new GridLayout 2 1 5 10 textfield setFont fonts p1 add textfield null backspace ce c0 按钮注册 addActionListener backspace addActionListener this ce addActionListener this c0 addActionListener this backspace ce c0 按钮添加 p1 面板 p1 add backspace null p1 add ce null p1 add c0 null 设置面板 p2 布局管理器类型 GridLayout p2 setLayout new GridLayout 4 5 5 5 按钮组按钮注册 addActionListener for int i 0 i names length i bb i new Button names i p2 add bb i bb i addActionListener this 设置面板 p1 面板 p2 窗体位置 面板 p1 窗体 North 向面板 p2 窗体 South 向 frame add p1 BorderLayout NORTH frame add p2 BorderLayout SOUTH frame setVisible true 单击关闭按钮退系统 frame addWindowListener new WindowAdapter public void windowClosing WindowEvent e System exit 0 public void actionPerformed ActionEvent ae String s 通 ActionEvent 类 getActionCommand 作由哪按钮触发 s ae getActionCommand 用户单击计算栏便掉字符 先计算栏字符清空再添加除字符字符串 if s equals 退格 textfield setText for int i 0 i t content length 1 i char c t content charAt i textfield setText textfield getText c 用户单击撤消按钮 if s equals 撤消 textfield setText number false 用户单击清空按钮 if s equals 清空 textfield setText data1 data2 0 0 number false 用户单击 sqrt 按钮其负数能 if s equals sqrt if t content charAt 0 textfield setText 负数能 number false else textfield setText Double toString java lang Math sqrt Double parseDou ble t content 用户单击 1 x 求倒数按钮求倒数母能 0 if s equals 1 x if t content equals 0 textfield setText 零能求倒数 number false else textfield setText Double toString 1 Double parseDouble t content 用户单击 按钮 if s equals textfield setText t content else boolean g false for int i 0 i textfield getText length i if textfield getText charAt i g true break Double 数除 100 if g true double dtemp Double parseDouble textfield getText dtemp dtemp 100 0 textfield setText Double toString dtemp int 数能 100 整除则掉末尾两 0 else if Integer parseInt textfield getText 100 0 int itemp Integer parseInt textfield getText itemp 100 textfield setText Integer toString itemp int 数能 100 整除则按 Double 数处理 else double dtemp Double parseDouble textfield getText dtemp dtemp 100 0 textfield setText Double toString dtemp 负数字处理 if s equals t content textfield getText if t content charAt 0 textfield setText String content for int i 1 i t content length i textfield setText textfield getText t content charAt i else textfield setText t content 所按按钮 按钮 if s equals switch pkey case 0 data2 Double parseDouble textfield getText break case 1 data2 Double parseDouble textfield getText break case 2 data2 Double parseDouble textfield getText break case 3 if textfield getText equals 0 textfield setText 除数能零 number false else key 1 data2 data1 textfield setText Double toString data2 break default data2 Double parseDouble textfield getText pkey key 0 textfield setText 所按按钮 按钮 if s equals switch pkey case 0 data2 Double parseDouble textfield getText break case 1 data2 Double parseDouble textfield getText break case 2 data2 Double parseDouble textfield getText break case 3 if textfield getText equals 0 textfield setText 除数能零 number false else key 1 data2 data1 textfield setText Double toString data2 break default data2 Double parseDouble textfield getText pkey key 1 textfield setText 所按按钮 按钮 if s equals switch pkey case 0 data2 Double parseDouble textfield getText break case 1 data2 Double parseDouble textfield getText break case 2 data2 Double parseDouble textfield getText break case 3 if textfield getText equals 0 textfield setText 除数能零 number false else key 1 data2 data1 textfield setText Double toString data2 break default data2 Double parseDouble textfield getText pkey key 2 textfield setText 所按按钮 按钮 if s equals switch pkey case 0 data2 Double parseDouble textfield getText break case 1 data2 Double parseDouble textfield getText break case 2 data2 Double parseDouble textfield getText break case 3 if textfield getText equals 0 textfield setText 除数能零 number false else key 1 data2 data1 textfield setText Double toString data2 break default data2 Double parseDouble textfield getText pkey key 3 textfield setText 所按按钮 求结 if s equals textfield setText Double toString data2 break case 1 data2 data1 textfield setText Double toString data2 break case 2 data2 data1 textfield setText Double toString data2 break case 3 if textfield getText equals 0 textfield setText 除数能零 number false else data2 data1 textfield setText Double toString data2 break 第按 按钮 else data1 Double parseDouble textfield getText switch key case 0 key 1 data2 Double parseDouble textfield getText textfield setText Double toString data2 break case 1 key 1 data2 Double parseDouble textfield getText textfield setText Double toString data2 break case 2 key 1 data2 Double parseDouble textfield getText textfield setText Double toString data2 break case 3 if textfield getText equals 0 textfield setText 除数能零 number false else key 1 data2 Double parseDou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 雕塑在城市广场中的艺术价值评估报告
- 河北省南宫市高中生物 第二章 动物和人体生命活动的调节 2.4 免疫调节说课稿 新人教版必修3
- 锚链打包浸漆工技术考核试卷及答案
- 梳理化学粘合非织造布制作工理念考核试卷及答案
- 气雾剂工新员工考核试卷及答案
- 1.6《利用三角函数测高》(2)说课稿-2024-2025学年北师大版九年级数学下册
- 特色小镇方案咨询
- 黑白建筑人物调色方案设计
- 餐饮服务流程标准化建设方案
- 小学数学小数运算专项练习
- 安静与智慧主题班会课件
- 危险货物道路运输规则第4部分:运输包装使用要求(JTT617.4-2018)
- 2024年四川省成都市中考数学真题及答案解析
- 部队军事体能训练课件
- 国有企业外部董事个人履职报告
- 2025年公共营养师三级考试试卷及答案
- 开工前安全培训教学课件
- 船舶拆解资金管理办法
- 2025年皮肤科学常见皮肤病鉴别诊断练习试卷答案及解析
- 家政服务企业社会责任报告样本
- 2025年《临床输血技术规范》
评论
0/150
提交评论