资源描述
攀枝花学院攀枝花学院学生课程设计(论文)学生课程设计(论文)题 目: 实现计算器功能的应用程序实现计算器功能的应用程序 学生姓名: 葛肪瑜葛肪瑜 学 号: 201010801018201010801018 所在院(系): 数学与计算机学院数学与计算机学院 专 业: 计算机科学与技术计算机科学与技术 班 级: 20102010 级计本一班级计本一班 指 导 教 师: 范胜波范胜波 职称: 讲师讲师 2013 年 6 月 9 日攀枝花学院教务处制攀枝花学院课程设计评定表2课程设计(论文)指导教师成绩评定表课程设计(论文)指导教师成绩评定表题目名称题目名称评分项目评分项目分分值值得得分分评价内涵评价内涵01学习态度6 6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7 7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。工作表现20%03课题工作量7 7按期圆满完成规定的任务,工作量饱满。04综合运用知识的能力1010能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5 5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5 5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5 5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。能力水平35%08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)1010具有较强的数据收集、分析、处理、综合的能力。09插图(或图纸)质量、篇幅、设计(论文)规范化程度5 5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量3030综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。成果质量45%11创新1010对前人工作有改进或突破,或有独特见解。成绩成绩指指导导教教师师评评语语指导教师签名: 年 月 日攀枝花学院课程设计任务书攀枝花学院本科学生课程设计任务书攀枝花学院本科学生课程设计任务书题题 目目实现计算器功能的应用程序1 1、课程设计的目的、课程设计的目的通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。2 2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)根据计算器的实际功能,要求:能够实现简单的加、减、乘、除、乘方、开方、阶乘、正弦、余弦运算等相关运算,界面美观。3 3、主要参考文献、主要参考文献1朱福喜.Java 语言程序设计(第二版).科学出版社2陈国君等.Java 程序设计基础(第二版).清华大学出版社3 Deitel.Java 大学基础教程(第六版).电子工业出版社 4 MaryCampione.Java 语言导学(第四版).机械工业出版社5 Y.Daniel Liang.Java 语言程序设计基础篇(第六版). 机械工业出版社6 Kathy Sierra.Head First Java(第二版).东南大学出版社4 4、课程设计工作进度计划、课程设计工作进度计划序号时间(天)内容安排备注11分析设计准备周一22编程调试阶段周二至周三31编写课程设计报告周四41考核周五总计5(天)指导教师指导教师(签字)日期日期年 月 日攀枝花学院课程设计评定表4教研室意见:教研室意见:年 月 日学生学生(签字): 接受任务时间: 年 月 日注:注:任务书由指导教师填写。攀枝花学院课程设计摘要5摘 要自从 java 语言诞生以来,java 语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了 C 语言中指针特点,因而变得简单了很多。Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,其具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人 PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。本文介绍了用 java 语言编写一个简易计算器。实现数学上的加、减、乘、除、乘方、开方、阶乘、正弦、余弦运算等相关运算。利用这个程序可以方便的进行日常性的小规模运算,小巧简易,是个实用的工具。关键词关键词: : 程序设计,计算器,java 语言攀枝花学院课程设计Abstract6Abstract Since the inception of the java language, java language Take irresistible trend soon became widespread international popular object-oriented programming language, both with advanced language features, and less of the C language pointer characteristics, and thus becomes a lot simpler . Java is a cross-platform application software can write object-oriented programming language, which has excellent versatility, efficiency, platform portability, and security, are widely used in personal PC, data center, gaming consoles, scientific super-computers, mobile phones and the Internet, also has the worlds largest developer of professional community. In the global cloud computing and mobile Internet industry environment, Java and more have significant advantages and broad prospects. This article describes the use java language a simple calculator. Achieve mathematical addition, subtraction, multiplication, division, involution, evolution, factorial, sine, cosine operations and other related operations. With this program you can easily carry out daily operations of small-scale, small simple, is a useful tool.Keywords:Keywords: program design, calculator, java language攀枝花学院课程设计目录7目录摘要摘要.4ABSTRACT.51 1 前言前言.71.1 课程设计背景.71.2 需求环境.71.3 课程设计思路.72 2 课程设计概要课程设计概要.83 3 计算器详细设计计算器详细设计.93.1 计算器界面.93.1.1 CAL 主类的显示布局.93.1.2 计算器显示界面实现代码.93.2 监听各个按钮的类.103.2.1 编写监听类目的.103.2.2 监听类实现代码.113.3 按键响应类.123.3.1 响应类编写的目的.123.3.2 响应类实现代码.123.4 运算处理类.133.4.1 处理方式.133.4.2 处理类实现代码.134 4 运行与调试运行与调试.154.1 进入程序主界面.154.2 加减乘除功能实现.154.3 正余弦、正切功能实现.164.4、阶乘功能实现 .164.5、乘方、开方功能实现 .175 5 课程设计总结课程设计总结.18参考文献参考文献.19附录:源代码附录:源代码.20攀枝花学院课程设计前言81 前言1.1 课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。在java 语言当中通过定义类,类中的各种方法实现对计算器相关功能的实现,并通过与用户自己手动输入并选择运算功能实现计算功能,是一个完全由用户控制的简易计算器。在完成课程设计的期间,参阅了相关的书籍并在网络上查找相关的资料,对实现这个设计提供了很大的帮助。由于设计水平和知识方面的匮乏,本次课程设计还存在缺点和不足,希望大家提出宝贵的意见,互相交流以期提高。1.2 需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:硬件要求:一台计算机。软件配置:WINDOWS 系统、JDK 1.7、eclipse1.3 课程设计思路做计算器最主要的就是实用性,要简单,便于操作。程序界面是一个窗口的形式展现并由用户自己完全手动控制。并以设计的要求为基础,在实现课程设计所给的功能以外,要对界面的美观进行了优化,看起来更人性化,由此一个简洁美观的计算器就建立起来了。攀枝花学院课程设计课程概要设计92 课程设计概要在设计程序的时候,考虑到计算器的功能,首先编写一个 CAL 类,在该类中按照其功能分别写了一个方法实现,在程序开始后,可以看到一个控制面板形式的计算器界面展现在用户面前,用户自己输入数据和选择要运算的功能进行计算。具体方法有:加减乘除运算、乘方开方运算、正余弦正切运算、删除阶乘运算等具体的关系结构如表 2-1:表表 2-1 CAL 类加、减、乘、除方法正余弦、正切方法删除、阶乘方法乘方、开方方法流程功能实现的流程图详解:用户按数字键输入数据加、减、乘、除方法正余弦、正切方法删除、阶乘方法乘方、开方方法用户启动计算器运算输出运算结果攀枝花学院课程设计计算器详细设计103 计算器详细设计3.1 计算器界面3.1.1 CAL 主类的显示布局为了方便用户的使用,创建了一个带按钮的控制面板。将所有的运算键、数字键等都放在该面板中方便用户选择与使用。所有的运算选择都完全由用户掌控。3.1.2 计算器显示界面实现代码程序如下:public class cal extends Applet / 定义所有需要使用的全局变量String str = 0;/ 暂存显示屏数据String sign = null;/ 暂存符号数据double num = 0;/ 暂存内部运算数据boolean change = false;/ 暂存内部四则运算起用GridLayout g0, g1;/ 定义AWT布局部件JTextField number;Button num_p, num_0, num_1, num_2, num_3, num_4, num_5, num_6, num_7,num_8, num_9;Button act_add, act_mul, act_div, act_sub;Button mat_sin, mat_cos, mat_tan;Button do_ans, do_del;Button fac, sqr,inv,blank;Panel p0, p1;public void init()/ 主程序部分/ 定义各个控件的样式number = new JTextField(20);/ 显示屏number.setHorizontalAlignment(JTextField.RIGHT);number.setEnabled(false);number.setText(0);num_p = new Button(。);/ 小数点的按钮num_p.setForeground(Color.red);num_p.addActionListener(new getbt();num_0 = new Button(0);/ 数字0的按钮num_0.setForeground(Color.red);num_0.addActionListener(new getbt();攀枝花学院课程设计计算器详细设计11num_1 = new Button(1);/ 数字1的按钮num_1.setForeground(Color.red);num_1.addActionListener(new getbt();/此处省略了部分代码num_9 = new Button(9);/ 数字9的按钮num_9.setForeground(Color.red);num_9.addActionListener(new getbt();act_add = new Button(+);/ 加法的按钮act_add.setForeground(Color.red);act_add.addActionListener(new getbt();/此处省略了部分代码blank = new Button(blank);/ blank的按钮blank.setForeground(Color.red);blank.addActionListener(new getbt();/ 布局整个计算器g0 = new GridLayout(1, 1, 10, 10);/ 布局输入输出大体位置g1 = new GridLayout(4, 6, 10, 10);p0 = new Panel(); / 显示屏的布局p0.setLayout(g0);p0.add(number);p0.setBounds(0, 0, 100, 50);/ 按纽的布局p1 = new Panel();p1.setLayout(g1);p1.add(num_1);/ 第一排按纽p1.add(num_2);p1.add(num_3);p1.add(act_add);p1.add(act_sub);p1.add(fac);/此处省略了部分代码p1.setBounds(5, 60, 400, 250);p1.setBackground(Color.cyan);/ 设置按钮背景颜色setLayout(null);add(p0);add(p1);this.setBackground(Color.cyan);/ 设置背景整体颜色3.2 监听各个按钮的类攀枝花学院课程设计计算器详细设计123.2.1 编写监听类目的编写监听类的目的主要监听用户所按下的数字键和运算键,为了计算机后续的取得数据并进行运算做预备工作。给后续计算工作提供保障。3.2.2 监听类实现代码class getbt implements ActionListener / 监听作出反应的类 public void actionPerformed(ActionEvent e)/ 对每个每个按钮做出响应if (e.getSource() = num_0)press0();else if (e.getSource() = num_1)press1();else if (e.getSource() = num_2)press2();else if (e.getSource() = num_3)press3();else if (e.getSource() = num_4)press4();else if (e.getSource() = num_5)press5();else if (e.getSource() = num_6)press6();else if (e.getSource() = num_7)press7();else if (e.getSource() = num_8)press8();else if (e.getSource() = num_9)press9();else if (e.getSource() = num_p)pressp();else if (e.getSource() = act_add)pressadd();else if (e.getSource() = act_mul)pressmul();else if (e.getSource() = act_div)pressdiv();else if (e.getSource() = act_sub)presssub();else if (e.getSource() = mat_sin)presssin();else if (e.getSource() = mat_tan)攀枝花学院课程设计计算器详细设计13presstan();else if (e.getSource() = mat_cos)presscos();else if (e.getSource() = do_ans)pressans();else if (e.getSource() = do_del)pressdel();else if (e.getSource() = fac)pressfac();else if (e.getSource() = sqr)presssqr();else if (e.getSource() = inv)pressinv();3.3 按键响应类3.3.1 响应类编写的目的通过监听类的监听,采集用户所按下的按键信息进行分析,并将分析结果保存为不同的方法和标记,通过不同的标记在运算过程中调用处理类中的不同方法实现计算功能。3.3.2 响应类实现代码public void press0()/ 对按 0 作出反应if (str.length() 16 & str != 0 & change = false) str += 0; else if (str = 0 | sign != null) str = 0;number.setText(str);/此处省略部分代码public void pressp()/ 对按。作出反应boolean p = false;for (int i = 0; i str.length(); i+)if (str.charAt(i) = .)p = true;if (str.length() 16)str = str.substring(0, 16);num = 0;number.setText(str);3.4 运算处理类3.4.1 处理方式通过获得上诉用户所按下数字键和运算功能键的信息,用响应类的处理结果信息进行判断标示符的形式对号入座进行调用不同运算处理并把运算结果显示在输入数据框中。3.4.2 处理类实现代码public void pressans()/ 对按=作出反应if (sign = null)number.setText(str);else if (sign = fac) int sum=1;for(int i=1;i=num;i+)攀枝花学院课程设计计算器详细设计15sum= sum*i;str = Double.toString(sum);number.setText(str);else if (sign = sqr) double sum;sum=Math.sqrt(Double.parseDouble(str); str = Double.toString(sum);number.setText(str);else if (sign = inv) double sum=num;for(int i=1;iDouble.parseDouble(str);i+)sum=sum*num;str = Double.toString(sum);number.setText(str);else if (sign = add) num += Double.parseDouble(str);str = Double.toString(num);number.setText(str); else if (sign = sub) num -= Double.parseDouble(str);str = Double.toString(num);number.setText(str); else if (sign = mul) num *= Double.parseDouble(str);str = Double.toString(num);number.setText(str); else if (sign = div) if (num != 0) num /= Double.parseDouble(str);str = Double.toString(num);number.setText(str); else str = 0;number.setText(str);sign = null;攀枝花学院课程设计计算器详细设计16攀枝花学院课程设计运行与调试174 运行与调试4.1 进入程序主界面4.2 加减乘除功能实现例如;333333 乘于 555555攀枝花学院课程设计运行与调试184.3 正余弦、正切功能实现例如:30 的 tan4.4、阶乘功能实现例如:9 的阶乘攀枝花学院课程设计运行与调试194.5、乘方、开方功能实现例如;36 开方攀枝花学院课程设计课程设计总结205 课程设计总结在这次课程设计中,独自编写计算器的各个功能,并对其进行按键的排版、监听、处理、运算等各个步骤的亲力亲为,基本上完成了任务书上的各项内容。虽然在这次的课程设计中有很多的不足,但是我也收获了很多。由于本身计算器这个课题就比较简单,涉及的知识不是很多,所以我一个人一组,通过与同学们的交流,解决了不少长久以来困扰我的 java 语言问题,让我深切体会到了大家共同努力的重要性。在设计这个系统的时候,我查阅了很多相关的书籍,并通过网络解决了不少问题。通过这次课程式设计,我对 eclipse 的开发环境有了更多的认识和了解,让我对 java 语言的认识又加深了一步,不仅使我学会了如何查阅资料,同时也让我发现了网络这个好老师,总之收获了很多攀枝花学院课程设计参考文献21参考文献1 朱福喜.Java 语言程序设计(第二版).科学出版社2 陈国君等.Java 程序设计基础(第二版).清华大学出版社3 Deitel.Java 大学基础教程(第六版).电子工业出版社 4 MaryCampione.Java 语言导学(第四版).机械工业出版社5 Y.Daniel Liang.Java 语言程序设计基础篇(第六版).机械工业出版社6 Kathy Sierra.Head First Java(第二版).东南大学出版社7(美)埃克尔 著,陈昊鹏 译 Java 编程思想(第 4 版).机械工业出版社8 李兴华 Java 从入门到精通 人民邮电出版社 2010-4-1 版9 臧萌 编著 Java 入门 123清华大学出版社 2010-5-1 版10 李钟尉,周小彤,陈丹丹等编著 Java 从入门到精通 (第 2 版)清华大学出版社11 李辉 打通经脉 Java 基础入门编程详解中国铁道出版社 2010-11-01 版12 (美)卡登赫斯第 Java 编程入门经典(第 4 版) 人民邮电出版社13 喻桃阳 Java 快速入门与商用项目培训清华大学出版社 2011-03-01 版14 温沿书 Java 入门与实战教程人民邮电出版社 2010-03-01 版15 李钟尉 Java 范例完全自学手册 人民邮电出版社 2009-10-116 (美)斯采尔德 著,马海军 Java2 实用教程清华大学出版社 2004-1-117 (美)贝茨(Bates,B.) Head First Java(中文版)中国电力出版社 2007-2-1 版18 辛运帏 Java 程序设计(第二版) 清华大学出版社攀枝花学院课程设计运行与调试22攀枝花学院课程设计附录23附录:源代码package gefangyu;import java.applet.*;import java.awt.*;import javax.swing.*;import java.awt.event.*;/import java.math.*;public class cal extends Applet / 定义所有需要使用的全局变量String str = 0;/ 暂存显示屏数据String sign = null;/ 暂存符号数据double num = 0;/ 暂存内部运算数据boolean change = false;/ 暂存内部四则运算起用GridLayout g0, g1;/ 定义 AWT 布局部件JTextField number;Button num_p, num_0, num_1, num_2, num_3, num_4, num_5, num_6, num_7,num_8, num_9;Button act_add, act_mul, act_div, act_sub;Button mat_sin, mat_cos, mat_tan;Button do_ans, do_del;Button fac, sqr,inv,blank;Panel p0, p1;public void init()/ 主程序部分/ 定义各个控件的样式number = new JTextField(20);/ 显示屏number.setHorizontalAlignment(JTextField.RIGHT);number.setEnabled(false);number.setText(0);num_p = new Button(。);/ 小数点的按钮num_p.setForeground(Color.red);num_p.addActionListener(new getbt();num_0 = new Button(0);/ 数字0 的按钮num_0.setForeground(Color.red);num_0.addActionListener(new getbt();num_1 = new Button(1);/ 数字1 的按钮num_1.setForeground(Color.red);num_1.addActionListener(new getbt();num_2 = new Button(2);/ 数字2 的按钮num_2.setForeground(Color.red);num_2.addActionListener(new getbt();num_3 = new Button(3);/ 数字3 的按钮num_3.setForeground(Color.red);num_3.addActionListener(new getbt();num_4 = new Button(4);/ 数字4 的按钮num_4.setForeground(Color.red);num_4.addActionListener(new getbt();num_5 = new Button(5);/ 数字5 的按钮num_5.setForeground(Color.red);num_5.addActionListener(new getbt();num_6 = new Button(6);/ 数字6 的按钮num_6.setForeground(Color.red);num_6.addActionListener(new getbt();num_7 = new Button(7);/ 数字7 的按钮攀枝花学院课程设计附录24num_7.setForeground(Color.red);num_7.addActionListener(new getbt();num_8 = new Button(8);/ 数字8 的按钮num_8.setForeground(Color.red);num_8.addActionListener(new getbt();num_9 = new Button(9);/ 数字9 的按钮num_9.setForeground(Color.red);num_9.addActionListener(new getbt();act_add = new Button(+);/ 加法的按钮act_add.setForeground(Color.red);act_add.addActionListener(new getbt();act_sub = new Button(-);/ 减法的按钮act_sub.setForeground(Color.red);act_sub.addActionListener(new getbt();act_mul = new Button(*);/ 乘法的按钮act_mul.setForeground(Color.red);act_mul.addActionListener(new getbt();act_div = new Button(/);/ 除法的按钮act_div.setForeground(Color.red);act_div.addActionListener(new getbt();do_ans = new Button(=);/ 等于的按钮do_ans.setForeground(Color.red);do_ans.addActionListener(new getbt();do_del = new Button(del);/ 删除的按钮do_del.setForeground(Color.red);do_del.addActionListener(new getbt();mat_sin = new Button(sin);/ sin的按钮mat_sin.setForeground(Color.red);mat_sin.addActionListener(new getbt();mat_cos = new Button(cos);/ cos的按钮mat_cos.setForeground(Color.red);mat_cos.addActionListener(new getbt();mat_tan = new Button(tan);/ tan的按钮mat_tan.setForeground(Color.red);mat_tan.addActionListener(new getbt();fac = new Button(fac);/ fac 的按钮fac.setForeground(Color.red);fac.addActionListener(new getbt();sqr = new Button(sqr);/ sqr 的按钮sqr.setForeground(Color.red);sqr.addActionListener(new getbt();inv= new Button(xy);/ Involution 的按钮inv.setForeground(Color.red);inv.addActionListener(new getbt();blank = new Button(blank);/ blank 的按钮blank.setForeground(Color.red);blank.addActionListener(new getbt();/ 布局整个计算器g0 = new GridLayout(1, 1, 10, 10);/ 布局输入输出大体位置g1 = new GridLayout(4, 6, 10, 10);p0 = new Panel(); / 显示屏的布局p0.setLayout(g0);p0.add(number);p0.setBounds(0, 0, 100, 50);/ 按纽的布局p1 = new Panel();p1.setLayout(g1);p1.add(num_1);/ 第一排按纽p1.add(num_2);攀枝花学院课程设计附录25p1.add(num_3);p1.add(act_add);p1.add(act_sub);p1.add(fac);p1.add(num_4);/ 第二排按纽p1.add(num_5);p1.add(num_6);p1.add(act_mul);p1.add(act_div);p1.add(sqr);p1.add(num_7);/ 第三排按纽p1.add(num_8);p1.add(num_9);p1.add(mat_sin);p1.add(mat_cos);p1.add(inv);p1.add(num_0);/ 第四排按钮p1.add(num_p);p1.add(do_ans);p1.add(do_del);p1.add(mat_tan);p1.add(blank);/ 为了占位排版美观p1.setBounds(5, 60, 400, 250);p1.setBackground(Color.cyan);/ 设置按钮背景颜色setLayout(null);add(p0);add(p1);this.setBackground(Color.cyan);/ 设置背景整体颜色class getbt implements ActionListener / 监听作出反应的类public void actionPerformed(ActionEvent e)/ 对每个每个按钮做出响应if (e.getSource() = num_0)press0();else if (e.getSource() = num_1)press1();else if (e.getSource() = num_2)press2();else if (e.getSource() = num_3)press3();else if (e.getSource() = num_4)press4();else if (e.getSource() = num_5)press5();else if (e.getSource() = num_6)press6();else if (e.getSource() = num_7)press7();else if (e.getSource() = num_8)press8();else if (e.getSource() = num_9)press9();else if (e.getSource() = num_p)pressp();else if (e.getSource() = act_add)pressadd();else if (e.getSource() = act_mul)pressmul();else if (e.getSource() = act_div)pressdiv();else if (e.getSource() = act_sub)presssub();else if (e.getSource() = mat_sin)presssin();else if (e.getSource() = mat_tan)presstan();else if (e.getSource() = mat_cos)presscos();else if (e.getSource() = do_ans)pressans();else if (e.getSource() = do_del)pressdel();攀枝花学院课程设计附录26else if (e.getSource() = fac)pressfac();else if (e.getSource() = sqr)presssqr();else if (e.getSource() = inv)pressinv();public void press0()/ 对按 0 作出反应if (str.length() 16 & str != 0 & change = false) str += 0; else if (str = 0 | sign != null) str = 0;number.setText(str);public void press1()/ 对按 1 作出反应if (str.length() 16 & str != 0 & change = false) str += 1; else if (str = 0 | sign != null) str = 1;change = false;number.setText(str);public void press2()/ 对按 2 作出反应if (str.length() 16 & str != 0 & change = false) str += 2; else if (str = 0 | sign != null) str = 2;change = false;number.setText(str);public void press3()/ 对按 3 作出反应if (str.length() 16 & str != 0 & change = false) str += 3; else if (str = 0 | sign != null) str = 3;change = false;number.setText(str);public void press4()/ 对按 4 作出反应if (str.length() 16 & str != 0 & change = false) str += 4; else if (str = 0 | sign != null) str = 4;change = false;number.setText(str);public void press5()/ 对按 5 作出反应if (str.length() 16 & str != 0 & change = false) str += 5; else if (str = 0 | sign != null) str = 5;change = false;number.setText(str);public void press6()/ 对按 6 作出反应if (str.length() 16 & str != 0 & change = false) str += 6; else if (str = 0 | sign != null) str = 6;change = false;攀枝花学院课程设计附录27number.setText(str);public void press7()/ 对按 7 作出反应if (str.length() 16 & str != 0 & change = false) str += 7; else if (str = 0 | sign != null) str = 7;change = false;number.setText(str);public void press8()/ 对按 8 作出反应if (str.length() 16 & str != 0 & change = false) str += 8; else if (str = 0 | sign != null) str = 8;change = false;number.setText(str);public void press9()/ 对按 9 作出反应if (str.length() 16 & str != 0 & change = false) str += 9; else if (str = 0 | sign != null) str = 9;change = false;number.setText(str);public void pressp()/ 对按。作出反应boolean p = false;for (int i = 0; i str.length(); i+)if (str.charAt(i) = .)p = true;if (str.length() 16)str = str.substring(0, 16);num = 0;if (str = 0) sign = null;num = 0;number.setText(str);public void presstan()/ 对按 tan 作出反应if (str != 0. & str != -0 & str != -0. & str != 0) sign = null;num = Double.parseDouble(str);num = Math.tan(num);str = Double.toString(num);if (str.length() 16)str = str.substring(0, 16);num = 0;number.setText(str);public void presscos()/ 对按 cos 作出反应if (str != 0. & str != -0 & str != -0.) sign = null;num = Double.parseDouble(str);num = Math.cos(num);str = Double.toString(num);if (str.length() 16)str = str.substring(0, 16);num = 0;number.setText(str);public void pressans()/ 对按=作出反应if (sign = null)number.setText(str);else if (sign = fac) int sum=1;for(int i=1;i=num;i+)sum= sum*i;str = Double.toString(sum);number.setText(str);else if (sign = sqr) double sum;sum=Math.sqrt(Double.parseDouble(str); str = Double.toString(sum);number.setText(str);else if (sign = inv) double sum=num;for(int i=1;i 1) str = str.substring(0, str.length() - 1);number.setText(str); else if (str.length() = 1) str = 0;number.setText(str);
展开阅读全文