SWT计算器的设计与实现Word文档格式.doc

上传人:wj 文档编号:3959881 上传时间:2023-05-02 格式:DOC 页数:38 大小:395KB
下载 相关 举报
SWT计算器的设计与实现Word文档格式.doc_第1页
第1页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第2页
第2页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第3页
第3页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第4页
第4页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第5页
第5页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第6页
第6页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第7页
第7页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第8页
第8页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第9页
第9页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第10页
第10页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第11页
第11页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第12页
第12页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第13页
第13页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第14页
第14页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第15页
第15页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第16页
第16页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第17页
第17页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第18页
第18页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第19页
第19页 / 共38页
SWT计算器的设计与实现Word文档格式.doc_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SWT计算器的设计与实现Word文档格式.doc

《SWT计算器的设计与实现Word文档格式.doc》由会员分享,可在线阅读,更多相关《SWT计算器的设计与实现Word文档格式.doc(38页珍藏版)》请在冰点文库上搜索。

SWT计算器的设计与实现Word文档格式.doc

布置任务,查找资料、需求分析1天

总体设计1天

详细设计1.5天

编制源程序实现3.5天

测试与修改1天

撰写课设报告2天

六、主要参考资料

[1]张广彬.Java课程设计案例精编(第二版).北京:

清华大学出版社,2011.

[2]耿祥义.Java课程设计(第二版).北京:

清华大学出版社,2008.

[3]耿祥义.JAVA大学实用教程.北京:

[4]邹林达.陈国君Java2程序设计基础.北京:

清华大学出版社,2010.

[5]邹林达.Java2程序设计基础实验指导.北京:

清华大学,2010.

指导教师(签名):

20年月日

目录

1需求与总体设计……………………………………………………………………………1

1.1计算器需求分析………………………………………………………………………1

1.2功能描述………………………………………………………………………1

1.3系统功能图………………………………………………………………………1

1.3系统主要类图………………………………………………………………………2

2详细设计…………………………………………………………………………………3

2.1类…………………………………………………………………………………3

2.2成员变量………………………………………………………………………3

2.3方法………………………………………………………………………4

2.4详细类图………………………………………………………………………4

3编码实现…………………………………………………………………………………5

3.1计算器详细代码实现……………………………………………………………………5

4系统测试…………………………………………………………………………………28

4.1界面测试……………………………………………………………………………28

4.2计算器功能测试…………………………………………………………………………28

4.2.1四则运算…………………………………………………………………………28

4.2.2三角函数运算…………………………………………………………………………29

4.2.3特殊运算…………………………………………………………………………29

4.2.4计算过程清除…………………………………………………………………………30

4.2.5计算过程保存…………………………………………………………………………30

4.2.6关于计算机说明…………………………………………………………………………31

总结…………………………………………………………………………………32

(要求:

目录题头用三号黑体字居中书写,隔行书写目录内容。

目录中各级题序及题标用小四号黑体字)

1需求与总体设计

1.1计算器需求分析

为了减轻人们日益繁琐的工作压力和负担,实现高效统计和运算,在普通计算器上加入更多样更便捷的功能势在必行,普通计算器上加入三角函数功能和保存功能,可以大大减轻会计以及财务部门统计账目的压力。

此次逻辑算术设计实践,利用java面向对象程序设计和SWT技术针对该程序显示GUI用户界面,能实现四则运算以及扩展函数运算,并用图形界面实现。

够培养我们严谨务实的工作态度以及提高我们分析问题和解决问题的能力,也对于巩固和加深对面向对象程序设计的基本概念、基本理论和实现技术的理解起到了一定的意义。

1.2功能描述

(1)单击“计算器”上的数字按钮(0、1、2、3、4、5、6、7、8、9)可以设置参与计算的运算数。

(2)单击“计算器”上的运算符按钮(+、-、*、/)可以选择运算符号。

(3)单击“计算器”上的函数按钮可以计算出相应的函数值。

(4)单击“计算器”上的“=”按钮显示计算结果。

(5)单击“保存”按钮可以将文本区中的全部计算过程保存到文件:

1.3功能图如下:

结果清除

复制显示框内容

保存计算过程

显示运算结果

函数计算

加、减、乘、除计算

图1-1系统主要功能图

1.4系统主要类图

ClassCalc()

显示“+”“—”按钮

显示“*”“/”按钮

显示Sin按钮

显示Cos按钮

显示Tan按钮

显示退格按钮

显示数字0-9按钮

显示清除按钮

显示结果文本框

显示计算过程显示文本框

四则运算

函数运算

特殊运算

计算过程保存、清楚

计算过程复制到剪贴板

main()

显示按钮

数据计算

计算过程保存、清除

图1-2系统主要类图

2详细设计

2.1类

clascalc:

该类是程序的主类,显示了界面窗口,数据计算,计算过程保存、复制到剪贴板,以下是该类的说明。

2.2成员变量

lDecimalFormatdf设置数据输出精度(对于double型值)

lbooleanclickable控制当前能否按键

ldoublememory内存中存储的double型数字

lintmemory内存中存储的int型数字

ldoublevard,用来保存double型数据的中间值

ldoubleanswerd用来保存最后结果

lshortkey用来保存当前进行何种运算,

lshortprekey用来保存前次进行何种运算

lintw=0按钮前一动作为结果运算动作,比如“=”或是开方

lintw=1按钮前一动作为数值输出或是“-/+”

lStringmid中间运算过程记录值

lDisplayd与系统交互类实例

lShells容器窗口实例

lTexttextanswer计算结果显示框

lTextt2计算过程显示窗口

lMenum菜单bar实例

lMenufilemenu菜单变量

lMenuItembzx“标准型”菜单项目变量

lButtonb0–b9数字键0到9

lButtonbuttonSave保存键按钮,保存计算过程

lButtonbuttonCopy复制键按钮,复制计算过程到剪贴板

lButtonbuttonSqart开方键按钮,进行开方运算

lButtonbuttonMod“%”键按钮,进行模运算

lButtonbuttonDot小数点按钮

lButtonbutonAddbuttonSubbuttonMulbuttonDiv“+”“-”“*”“/”键按钮,进行加减乘除运算

lButtonbuttonSinbuttonCosbuttonAsinbuttonAcosbuttonLog“sin””cos””asin””acos”按钮,进行三角函数运算

2.3方法

calc()是程序的主要方法,负责构造友好界面窗口,显示按钮、文本框,调用监听器进行按钮功能判断监听,实施四则运算和特殊函数,显示运算结果,保存运算结果到文件和剪贴板。

2.4详细类图

ClassCalc

DecimalFormatdfbooleanclickable

doublememoryintmemory

doublevard,doubleanswerd

shortkeyshortprekey

intwStringmid

TexttextanswerMenufilemenu

DisplaydShellsMenum

MenuItembzxButtonb0–b9

ButtonbuttonSavebuttonCopy

buttonSqartbuttonModbuttonDotbutonAddbuttonSubbuttonMulbuttonDiv

ButtonbuttonSinbuttonCosbuttonAsinbuttonAcosbuttonLog

Calc()

Classmain()

calcss

classcalc

图2-1系统详细类图

3编码实现

3.1计算器详细代码实现

packageZY04;

importjava.text.DecimalFormat;

importjava.awt.Color;

importjava.io.*;

importjava.lang.NumberFormatException;

importorg.eclipse.swt.*;

importorg.eclipse.swt.events.*;

importorg.eclipse.swt.graphics.*;

importorg.eclipse.swt.layout.*;

importorg.eclipse.swt.widgets.*;

publicclasscalc{

DecimalFormatdf=newDecimalFormat("

0.##############"

);

//设置数据输出精度(对于double型值)

booleanclickable;

//控制当前能否按键

doublememoryd;

//内存中存储的double型数字

intmemoryi;

//内存中存储的int型数字

doublevard,answerd;

//用来保存double型数据的中间值(vard)和最后结果(answerd)

shortkey=-1,prekey=-1;

//key用来保存当前进行何种运算,prekey用来保存前次进行何种运算

intw=0;

//w=1,按钮前一动作为结果运算动作,比如“=”或是开方,w=0,按钮前一动作为数值输出或是“-/+”

Stringmid="

"

;

//中间运算过程记录值

Displayd;

Shells;

calc(){

d=newDisplay();

s=newShell(d);

s.setSize(220,380);

s.setImage(newImage(d,"

c:

\\123.jpg"

));

s.setText("

计算器"

//**************************************************************************

//设置菜单

Menum=newMenu(s,SWT.BAR);

//创建查看菜单项

finalMenuItemfile=newMenuItem(m,SWT.CASCADE);

file.setText("

查看(v)"

finalMenufilemenu=newMenu(s,SWT.DROP_DOWN);

file.setMenu(filemenu);

finalMenuItembzx=newMenuItem(filemenu,SWT.RADIO);

bzx.setSelection(true);

bzx.setText("

标准型(T)Alt+1"

finalMenuItemkxx=newMenuItem(filemenu,SWT.RADIO);

kxx.setText("

科学型(S)Alt+2"

finalMenuItemcxy=newMenuItem(filemenu,SWT.RADIO);

cxy.setText("

程序员(P)Alt+3"

finalMenuItemtjxx=newMenuItem(filemenu,SWT.RADIO);

tjxx.setText("

统计信息(A)Alt+4"

finalMenuItemseparator1=newMenuItem(filemenu,SWT.SEPARATOR);

//分割线

finalMenuItemlsjl=newMenuItem(filemenu,SWT.CHECK);

lsjl.setText("

历史记录(Y)Ctrl+H"

finalMenuItemszfz=newMenuItem(filemenu,SWT.CHECK);

szfz.setText("

数字分组(I)"

finalMenuItemseparator2=newMenuItem(filemenu,SWT.SEPARATOR);

finalMenuItemjb=newMenuItem(filemenu,SWT.RADIO);

jb.setSelection(true);

jb.setText("

基本(B)Ctrl+F4"

finalMenuItemdwzh=newMenuItem(filemenu,SWT.RADIO);

dwzh.setText("

单位转换(U)Ctrl+U"

finalMenuItemrqjs=newMenuItem(filemenu,SWT.RADIO);

rqjs.setText("

日期计算(D)Ctrl+E"

//创建工作表子菜单

finalMenuItemgzb=newMenuItem(filemenu,SWT.CASCADE);

gzb.setText("

工作表(W)"

finalMenusubmenu=newMenu(s,SWT.DROP_DOWN);

gzb.setMenu(submenu);

finalMenuItemdy=newMenuItem(submenu,SWT.RADIO);

dy.setText("

抵押(M)"

finalMenuItemqczl=newMenuItem(submenu,SWT.RADIO);

qczl.setText("

汽车租赁(V)"

finalMenuItemyh1=newMenuItem(submenu,SWT.RADIO);

yh1.setText("

油耗(mpg)(F)"

finalMenuItemyh2=newMenuItem(submenu,SWT.RADIO);

yh2.setText("

油耗(1/100km)(U)"

//创建编辑菜单

finalMenuItemedit=newMenuItem(m,SWT.CASCADE);

edit.setText("

编辑(E)"

finalMenueditmenu=newMenu(s,SWT.DROP_DOWN);

edit.setMenu(editmenu);

finalMenuItemfz=newMenuItem(editmenu,SWT.PUSH);

fz.setText("

复制(C)Ctrl+C"

finalMenuItemzt=newMenuItem(editmenu,SWT.PUSH);

zt.setText("

粘贴(V)Ctrl+V"

finalMenuItemseparator3=newMenuItem(filemenu,SWT.SEPARATOR);

finalMenuItemlsjl1=newMenuItem(editmenu,SWT.CASCADE);

lsjl1.setText("

历史记录(H)"

finalMenusubmenu1=newMenu(s,SWT.DROP_DOWN);

lsjl1.setMenu(submenu1);

finalMenuItemfzlsjl=newMenuItem(submenu1,SWT.PUSH);

fzlsjl.setText("

复制历史记录(I)"

finalMenuItembj=newMenuItem(submenu1,SWT.PUSH);

bj.setText("

编辑(E)F2"

finalMenuItemqxbj=newMenuItem(submenu1,SWT.PUSH);

qxbj.setText("

取消编辑(N)Esc"

finalMenuItemqc=newMenuItem(submenu1,SWT.PUSH);

qc.setText("

清楚(L)Ctrl+Shift+D"

//创建帮助菜单

finalMenuItemhelp=newMenuItem(m,SWT.CASCADE);

help.setText("

帮助(H)"

//创建帮助菜单

finalMenuhelpmenu=newMenu(s,SWT.DROP_DOWN);

help.setMenu(helpmenu);

finalMenuItemckbz=newMenuItem(helpmenu,SWT.PUSH);

ckbz.setText("

查看帮助(V)F1"

finalMenuItemabout=newMenuItem(helpmenu,SWT.PUSH);

about.setText("

关于计算机A)"

s.setMenuBar(m);

//界面采用网格布局,5栏**************************************************

GridLayoutgl=newGridLayout();

gl.numColumns=5;

s.setLayout(gl);

//创建计算窗口,设置样式

FinalTexttextAnswer=newText(s,SWT.SINGLE|SWT.BORDER|

SWT.READ_ONLY|SWT.RIGHT);

textAnswer.setText("

GridDatagd=newGridData(GridData.FILL_BOTH);

gd.horizontalSpan=5;

textAnswer.setLayoutData(gd);

//创建显示计算过程窗口,设置样式

finalTextt2=newText(s,SWT.MULTI|SWT.BORDER|SWT.READ_ONLY|SWT.RIGHT|SWT.V_SCROLL|SWT.FocusOut);

gd=newGridData(GridData.FILL_BOTH);

gd.horizontalSpan=4;

gd.verticalSpan=3;

t2.setLayoutData(gd);

//创建复制、保存、清除按钮,对t2操作,由后方监听器实现

finalButtonbuttonCopy=newButton(s,SWT.PUSH);

buttonCopy.setText("

复制"

finalButtonbuttonSave=newButton(s,SWT.PUSH);

buttonSave.setText("

保存"

finalButtonbuttonClear=newButton(s,SWT.PUSH);

buttonClear.setText("

清除"

//创建三角函数按钮

finalButtonbuttonLog=newButton(s,SWT.PUSH);

buttonLog.setText("

log"

finalButtonbuttonSin=newButton(s,SWT.PUSH);

buttonSin.setText("

sin"

finalButtonbuttonCos=newBut

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2