计算器课程设计.docx

上传人:b****2 文档编号:2271841 上传时间:2022-10-28 格式:DOCX 页数:17 大小:68.63KB
下载 相关 举报
计算器课程设计.docx_第1页
第1页 / 共17页
计算器课程设计.docx_第2页
第2页 / 共17页
计算器课程设计.docx_第3页
第3页 / 共17页
计算器课程设计.docx_第4页
第4页 / 共17页
计算器课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

计算器课程设计.docx

《计算器课程设计.docx》由会员分享,可在线阅读,更多相关《计算器课程设计.docx(17页珍藏版)》请在冰豆网上搜索。

计算器课程设计.docx

计算器课程设计

枣庄学院

信息科学与工程学院

课程设计任务书

 

题目:

计算器的设计与实现

 

学号:

201012220241

姓名:

赵文正

专业:

计算机应用技术

课程:

java程序设计

指导教师:

刘梦琳职称:

讲师

完成时间:

2011年月----2011年月

枣庄学院信息科学与工程学院制

课程设计任务书及成绩评定

课程设计的任务和具体要求

设计目的:

1.巩固和加深课堂所学知识;

2.学习掌握一般的软件的设计方法和查阅、运用资料的能力;

3.掌握JAVA程序设计语言,面向对象的软件设计思想、方法。

设计任务:

(在规定的时间内完成下列任务)

1、任务:

设计一个简单的计算器程序

功能要求:

能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计

2、设计任务要完成设计、编码、测试等过程,给出设计思路、设计说明书、主要的代码的说明、使用说明书。

源代码以及可运行的计算器程序。

具体要求:

设计报告撰写格式要求(按提供的设计报告统一格式撰写)

具体内容如下:

①设计任务与要求

②总体方案与说明

③面向对象的设计(主要类的设计)

④源程序清单与注释

⑤软件主要模块流程图

⑥问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想);

⑦小结与体会

附录:

①源程序(必须有简单注释)②使用说明③参考资料

指导教师评语:

 

成绩:

指导教师签字:

日期:

课程设计所需软件、硬件等

软件:

eclipse、word

硬件:

计算机

 

课程设计进度计划

起至日期

工作内容

备注

2011/11/1-----11/5

2011/11/6-----11/16

2011/11/17----11/20

2011/11/21-----12/1

确定思路

编写代码

调试修改

整理报告

 

务实

认真

参考文献、资料索引

序号

文献、资料名称

编著者

出版单位

参考书目:

[1]李尊朝,苏军,《Java语言程序设计》(第二版),中国铁道出版社,2007年12月

[2]刘晓莉,周璐,钱方,《java大学基础教程》(第六版),电子工业出版社,2007年1月

[3]埃史尔(美),译者:

陈昊鹏,《Java编程思想(第四版)(thinkinginjava)》,机械工业出版社,2007年3月

 

目录

一.课程设计研究背景及意义4

二.课程设计题目描述和要求4

三.设计思路5

四.课程设计报告内容5

1、题目求解的理论依据及算法5

2、数据结构:

6

3、主要事件处理:

6

4、简要的设计流程:

7

5、代码8

五、运行结果25

六、总结:

25

 

一.课程设计研究背景及意义

这次课程设计是通过JAVA编程来实现计算器的功能。

以前,人们用来计算的工具不管从方便的角度还是速度的角度来看都不及现代计算器,计算器的发明是人类进步的有力证明。

电子技术的不断发展使得计算器的功能不断的完善。

人们通过使用计算器来提高自己的工作效率,计算器是高科技的产物,是以往任何时代都无法比拟的。

在二十一世纪的今天,计算器依然是人们重要的计算工具,所以,对计算器的研究的课程设计具有重大意义。

本次课程设计题目主要应用到JAVA面向对象程序设计语言中Swing组件和GUI(图形用户界面)当中的一些知识,当然也用到JAVA中大部分基础知识,如JAVA的基本控制结构、数组、输入与输出等等。

 

二.课程设计题目描述和要求

 

通过JAVA中的Swing组件来制作一个计算器的界面包括0—9的十个数字按键,小数点键,+-*/开方百分比,倒数运算符键,=运行符键以及M组合键等。

以及实现计算器的一些基本的计算功能。

这个模拟计算器能进行连加,连减,连乘,连除,求二次平方根,求百分比,求倒数以及负数运算等操作。

要求界面逼真,按键布局美观,要求实现加、减、乘、除等基本计算功能

三.设计思路

本应用程序继承自框架(frame),此程序使用frame布局管理器bordelayout,将单行文本加入相应区域,包含各种按纽的面板buttonpanel加入相应区域

还可以将进制转换的面板与单行文本框放一块

包含各种按纽的面板buttonpanel采用N行N列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中,同时注册按钮事件监听器

日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet中实现一个精巧的计算器,可以让用户的操作也更方便和快捷。

本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计,本次设计添加转进制等功能

 

四.课程设计报告内容

1、题目求解的理论依据及算法

解题原理:

(1)界面布局。

创建一个面板,先将所有按钮:

所有数字键和运算符键等放在面板上,采用网格布局,具体设计为4行,5列的网格,二十个格子;接着添加一个1行3列的网格布局来放置三个功能键:

清零,检测,退格键;然后,再添加一个5行一列的网格布局来放置四个M组合功能键和一个空键,其目的在于美化界面,使其与现实中的计算器更接近,同时也是为了满足这次课程设计的要求。

最后,对以上三个面板,采用BorderLayout布局,将按键面板放在计算器的中部,功能键面板放北部,作为一个新的面板。

最后,将文本框放在界面的北部,新面板放在界面的中央,MKpanel放在界面的西部,采用边界布局管理器,做为界面的整体布局,这样界面布局就搞定了。

(2)输入数字、小数点、符号时按输入的顺序显示在单行文本框中,并按右对齐方式显示,且不允许修改文本行中的内容。

(3)输入运算符时,说明前一个数已经输入完毕,保存第一个数firstDigit,同时保存运算符,显示firstDigit。

(4)输入第二个数,按等号,保存第二数,根据输入的运算符进行相应的运算,文本行中显示运算结果resultNum。

(5)按退格键Backspace,将返回到前一次输入状态。

(6)按Check键,输入的数字第一个数字为零。

(7)按复位键键Again,归零。

(8)由于M组合键没有实现其功能,所以暂不能用,待更进一步研究。

(8)第三、四步可以重复操作。

2、数据结构:

面板:

数字等按键面板calckeysPanel,功能键面板calmsPanel,M组合键面板MKpanel,组合面板panel1,整体布局:

top

第一个数firstDigit,运算结果resultNum,运算符operator,文本行组件result

3、主要事件处理:

1、数字输入及小数点事件,输入后直接显示在文本行。

2、双目运算符输入事件:

输入后,保存第一个数,同时保存运算符。

3、单目运算符和等于符=输入事件:

保存第二个数,取出原有数据和运算符算出结果,并显示在文本行组件。

4、处理Backspace键被按下事件。

5、以上几类事件都归为行为类对象ActionListener.

负责部分的主要事件处理:

1、“+”,“-”,“*”,“/”四个双目运算符被按下,当前面没有输入第一个数时,或当按下双目运算符后没输入第二个数就按下“=”符,计算器不做任何反应。

只有等按规则输入数字时才按正确运算输出结果。

2、“sqrt”,“%”,“1/x”,“+/-”四个单目运算符被按下,只有当前面输入一个数后按下单目运算符键再按“=”,才输出正确结果。

而“+/-”第一次按下时执行,第二次按下时取消。

 

4、简要的设计流程:

5、代码

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

 

publicclassCalculatorextendsFrameimplementsActionListener,WindowListener

{

privateContainercontainer;

privateGridBagLayoutlayout;

privateGridBagConstraintsconstraints;

privateJTextFielddisplayField;//计算结果显示区

privateStringlastCommand;//保存+,-,*,/,=命令0

privatedoubleresult;//保存计算结果

privatebooleanstart;//判断是否为数字的开始

privateJMenuBarmenubar;

privateJMenuItemm_exit,m2_ejz,m2_bjz;

privateDialogdialog;

privateLabellabel_dialog;

privateJButtonbutton_sqrt,button_plusminus,button_CE,button_cancel,button_1,button_2,

button_3,button_4,button_5,button_6,button_7,button_8,button_9,button_0,

button_plus,button_minus,button_multiply,button_divide,button_point,

button_equal,button_log,button_tan,button_cos,button_sin,button_exp;

publicCalculator()//构造方法设置布局、为按钮注册事件监听器

{

super("Calculator");

this.setLocation(240,200);

this.setSize(350,300);

this.setResizable(true);

this.setLayout(newGridLayout(7,1));

this.addmyMenu();//调用成员方法添加菜单

displayField=newJTextField(30);

this.add(displayField);

displayField.setEditable(true);

start=true;

result=0;

lastCommand="=";

JPanelpanel0=newJPanel();

panel0.setLayout(newGridLayout(1,4,4,4));

 

JPanelpanel1=newJPanel();

panel1.setLayout(newGridLayout(1,5,4,4));

this.add(panel1);

button_sqrt=newJButton("sqrt");

button_plusminus=newJButton("+/-");

button_exp=newJButton("exp");

button_CE=newJButton("退格");

button_cancel=newJButton("C");

JPanelpanel2=newJPanel();

panel2.setLayout(newGridLayout(1,5,4,4));

this.add(panel2);

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1