java课程设计 实现计算器功能的应用程序.doc

上传人:文库蛋蛋多 文档编号:2386963 上传时间:2023-02-17 格式:DOC 页数:26 大小:462KB
返回 下载 相关 举报
java课程设计 实现计算器功能的应用程序.doc_第1页
第1页 / 共26页
java课程设计 实现计算器功能的应用程序.doc_第2页
第2页 / 共26页
java课程设计 实现计算器功能的应用程序.doc_第3页
第3页 / 共26页
java课程设计 实现计算器功能的应用程序.doc_第4页
第4页 / 共26页
java课程设计 实现计算器功能的应用程序.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《java课程设计 实现计算器功能的应用程序.doc》由会员分享,可在线阅读,更多相关《java课程设计 实现计算器功能的应用程序.doc(26页珍藏版)》请在三一办公上搜索。

1、攀枝花学院学生课程设计(论文)题 目: 实现计算器功能的应用程序 学生姓名: 葛肪瑜 学 号: 201010801018 所在院(系): 数学与计算机学院 专 业: 计算机科学与技术 班 级: 2010级计本一班 指 导 教 师: 范胜波 职称: 讲师 2013年 6月 9日攀枝花学院教务处制课程设计(论文)指导教师成绩评定表题目名称评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04

2、综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能

3、力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名: 年 月 日攀枝花学院本科学生课程设计任务书题 目实现计算器功能的应用程序1、课程设计的目的通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。2、课程设计的内容和要求(包括原始数据、技术要求

4、、工作要求等)根据计算器的实际功能,要求:能够实现简单的加、减、乘、除、乘方、开方、阶乘、正弦、余弦运算等相关运算,界面美观。3、主要参考文献1朱福喜.Java语言程序设计(第二版).科学出版社2陈国君等.Java程序设计基础(第二版).清华大学出版社3 Deitel.Java大学基础教程(第六版).电子工业出版社 4 MaryCampione.Java语言导学(第四版).机械工业出版社5 Y.Daniel Liang.Java语言程序设计基础篇(第六版). 机械工业出版社6 Kathy Sierra.Head First Java(第二版).东南大学出版社4、课程设计工作进度计划序号时间(天

5、)内容安排备注11分析设计准备周一22编程调试阶段周二至周三31编写课程设计报告周四41考核周五总计5(天)指导教师(签字)日期年 月 日教研室意见:年 月 日学生(签字): 接受任务时间: 年 月 日注:任务书由指导教师填写。摘 要自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了C语言中指针特点,因而变得简单了很多。Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,其具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最

6、大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。本文介绍了用java语言编写一个简易计算器。实现数学上的加、减、乘、除、乘方、开方、阶乘、正弦、余弦运算等相关运算。利用这个程序可以方便的进行日常性的小规模运算,小巧简易,是个实用的工具。关键词: 程序设计,计算器,java语言Abstract Since the inception of the java language, java language Take irresistible trend soon became widespread international popular objec

7、t-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, platf

8、orm 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 m

9、ore 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 c

10、an easily carry out daily operations of small-scale, small simple, is a useful tool.Keywords: program design, calculator, java language目录摘要.4ABSTRACT.51 前言71.1 课程设计背景71.2 需求环境71.3 课程设计思路72 课程设计概要83 计算器详细设计93.1 计算器界面93.1.1 CAL主类的显示布局93.1.2 计算器显示界面实现代码93.2 监听各个按钮的类103.2.1 编写监听类目的103.2.2 监听类实现代码113.3 按

11、键响应类123.3.1响应类编写的目的123.3.2 响应类实现代码123.4 运算处理类133.4.1 处理方式133.4.2 处理类实现代码134 运行与调试154.1 进入程序主界面154.2 加减乘除功能实现154.3 正余弦、正切功能实现164.4、阶乘功能实现164.5、乘方、开方功能实现175 课程设计总结18参考文献19附录:源代码201 前言1.1 课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。在java语言当中通过定义类,类中的各种方法实现对计算器相关功能的实现,并通过与用户自己手

12、动输入并选择运算功能实现计算功能,是一个完全由用户控制的简易计算器。在完成课程设计的期间,参阅了相关的书籍并在网络上查找相关的资料,对实现这个设计提供了很大的帮助。由于设计水平和知识方面的匮乏,本次课程设计还存在缺点和不足,希望大家提出宝贵的意见,互相交流以期提高。1.2 需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:硬件要求:一台计算机。软件配置:WINDOWS系统、JDK 1.7、eclipse1.3 课程设计思路做计算器最主要的就是实用性,要简单,便于操作。程序界面是一个窗口的形式展现并由用户自己完全手动控制。并以设计的要求为基础,在实现课程设计所给的功能以外,要对界

13、面的美观进行了优化,看起来更人性化,由此一个简洁美观的计算器就建立起来了。2 课程设计概要在设计程序的时候,考虑到计算器的功能,首先编写一个CAL类,在该类中按照其功能分别写了一个方法实现,在程序开始后,可以看到一个控制面板形式的计算器界面展现在用户面前,用户自己输入数据和选择要运算的功能进行计算。具体方法有:加减乘除运算、乘方开方运算、正余弦正切运算、删除阶乘运算等具体的关系结构如表2-1:表2-1 CAL类加、减、乘、除方法正余弦、正切方法删除、阶乘方法乘方、开方方法流程功能实现的流程图详解:用户按数字键输入数据加、减、乘、除方法正余弦、正切方法删除、阶乘方法乘方、开方方法用户启动计算器运

14、算输出运算结果3 计算器详细设计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

15、 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 =

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

17、 getbt();num_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.addActionListen

18、er(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, 5

19、0);/ 按纽的布局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 监听各个按钮的

20、类3.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)pr

21、ess2();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.ge

22、tSource() = 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 (

23、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响应类编写的目的通过监听类的监听,采集用户所按下的按键信息进行分析,并将分析结果保存为不同

24、的方法和标记,通过不同的标记在运算过程中调用处理类中的不同方法实现计算功能。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.c

25、harAt(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=

26、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;iDouble.parseDouble(str);i+)sum=sum*num;str = Double.

27、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.t

28、oString(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;4 运行与调试4.1 进入程序主界面4.2 加减乘除功能实现例如;333333乘于5555554.3 正余弦、正切功能实现例如:30的tan4.4、阶乘功能实现例如:9的阶乘4.5、乘方、开方功能实现例如;36开方

29、5 课程设计总结在这次课程设计中,独自编写计算器的各个功能,并对其进行按键的排版、监听、处理、运算等各个步骤的亲力亲为,基本上完成了任务书上的各项内容。虽然在这次的课程设计中有很多的不足,但是我也收获了很多。由于本身计算器这个课题就比较简单,涉及的知识不是很多,所以我一个人一组,通过与同学们的交流,解决了不少长久以来困扰我的java语言问题,让我深切体会到了大家共同努力的重要性。在设计这个系统的时候,我查阅了很多相关的书籍,并通过网络解决了不少问题。通过这次课程式设计,我对eclipse的开发环境有了更多的认识和了解,让我对java语言的认识又加深了一步,不仅使我学会了如何查阅资料,同时也让我

30、发现了网络这个好老师,总之收获了很多参考文献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

31、-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实用教程清华大学出版社2

32、004-1-117 (美)贝茨(Bates,B.)Head First Java(中文版)中国电力出版社2007-2-1版18 辛运帏 Java程序设计(第二版) 清华大学出版社附录:源代码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 =

33、 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;

34、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_

35、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 B

36、utton(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);

37、/ 数字6的按钮num_6.setForeground(Color.red);num_6.addActionListener(new getbt();num_7 = new Button(7);/ 数字7的按钮num_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的按钮n

38、um_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(*);/ 乘法的按

39、钮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(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号