程序设计及使用说明书.docx

上传人:b****6 文档编号:8453132 上传时间:2023-01-31 格式:DOCX 页数:19 大小:502.49KB
下载 相关 举报
程序设计及使用说明书.docx_第1页
第1页 / 共19页
程序设计及使用说明书.docx_第2页
第2页 / 共19页
程序设计及使用说明书.docx_第3页
第3页 / 共19页
程序设计及使用说明书.docx_第4页
第4页 / 共19页
程序设计及使用说明书.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

程序设计及使用说明书.docx

《程序设计及使用说明书.docx》由会员分享,可在线阅读,更多相关《程序设计及使用说明书.docx(19页珍藏版)》请在冰豆网上搜索。

程序设计及使用说明书.docx

程序设计及使用说明书

[程序设计及使用说明书]

文档作者:

周文敏2010011250

[一]程序框架

--万事达商务系统

|-备忘录模块

|-Timer类//主要职能:

获取系统时间

|-MyCalendar类//主要职能:

日历及备忘录的窗体及具体功能

|-科学计算器模块

|-Calendar类//主要职能:

计算器窗体及面板上的按钮

|-监听器类//主要职能:

监听计算器上的各种按钮以实现各种数学运算

|-Signs:

监听符号键,包括正弦余弦求平方立方及对数开平方等运算

|-Clear:

监听清零键

|-Num:

监听数字键

|-Dot:

监听小数点

|-扫雷游戏模块

|-ScanLei1类:

//扫雷游戏所有功能

[二]程序运行截图

不同的小程序可以同时运行

[三]使用说明书

主界面上的三个小部件按钮分别能进入三个小程序,且互不干扰。

退出按钮可以退出整个程序。

备忘录:

在具体的日期下选择,然后在右边的文本框中输入备忘录的内容并保存,下次打开本软件选择该日期就可以浏览相应日期的备忘录。

计算器:

按照普通实体计算器的使用方法使用本计算器。

比如3+2,先按“3”,然后按“+”,然后按“2”,求正弦余弦倒数等时,先按数字在按求正弦余弦等按钮。

扫雷游戏:

与Windows自带的扫雷程序使用方法相同。

[四]课题的现实意义

现实学习生活中,常会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难,这时候我们就必须用到计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。

人们对计算的要求不断提高,普通的功能简单的仅能进行四则运算的计算工具已经不能满足需要,需要一种能进行多种计算。

现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。

这些大大方便了我们的生活给我们更多的选择和实现方式。

这个程序可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。

并且操作简单、界面清晰、灵活、实用、方便等要求出发,它所能完成的主要计算功能有以下几个方面:

加法,减法,乘法,除法,求幂,求模,求平方根,求Sin,求Cos,求Log10。

计算器的设计使我们所学到的c语言知识在现实中得到检验!

信息时代是科技和经济发展的产物,软件产业是信息时代的产物,它在我们的生活工作中发挥着越来越大的作用,计算器的设计对我们知识的掌握有很大的作用,更能方便他人,可行性很强!

[五]过程蓝图模型文件

生成的代码

//方法的定义

voidactionPerformed()

{

//actionPerformed()

Stringstr=e.getActionCommand();

if(str.equals("sqrt"))

{

doublei=Double.parseDouble(tf.getText());

if(i>=0)

{

tf.setText(String.valueOf(df.format(Math.sqrt(i))));

}

else

{

tf.setText("负数不能开平方根");

}

}

if(str.equals("log"))

{

doublei=Double.parseDouble(tf.getText());

if(i>0)

{

tf.setText(String.valueOf(df.format(Math.log(i))));

}

else

{

tf.setText("负数不能求对数");

}

}

if(str.equals("%"))

tf.setText(df.format(Double.parseDouble(tf.getText())/100));

if(str.equals("1/x"))

if(Double.parseDouble(tf.getText())==0)

{

tf.setText("除数不能为零");

}

else

{

tf.setText(df.format(1/Double.parseDouble(tf.getText())));

}

if(str.equals("sin"))

{

doublei=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(Math.sin(i))));

}

if(str.equals("cos"))

{

doublei=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(Math.cos(i))));

}

if(str.equals("tan"))

{

doublei=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(Math.tan(i))));

}

if(str.equals("n!

"))

{

doublei=Double.parseDouble(tf.getText());

if((i%2==0)||(i%2==1))

{

//阶乘运算

intj=(int)i;

intresult=1;

for(intk=1;k<=j;k++)

result*=k;

tf.setText(String.valueOf(result));

}

else

{

tf.setText("无法进行阶乘");

}

}

if(str.equals("x^2"))

{

doublei=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(i*i)));

}

if(str.equals("x^3"))

{

doublei=Double.parseDouble(tf.getText();

tf.setText(String.valueOf(df.format(i*i*i)));

}

}

+actionPerformed

├─:

取得与引发事件对象相关的字符串

├─osqrt求平方根

│├─:

定义双精度变量i

│└─?

判断是否满足可以开平方的条件

│├─:

求算数平方根

│└─:

负数不能开平方

├─olog求常用对数

│├─:

定义双精度变量i

│└─?

判断能否求对数

│├─:

求对数

│└─:

负数不能求对数

├─o%求百分比

│└─:

求百分比的方法

├─o1/x求倒数

│└─?

判断是否具备求倒数的条件

│├─:

除数是零的时候返回出错信息

│└─:

求倒数的方法

├─osin求正弦函数

│├─:

定义双精度变量i

│└─:

求正弦

├─ocos求余弦函数

│├─:

定义变量i并获得自变量的数值

│└─:

求余弦

├─otan求正切函数

│├─:

定义变量i并获得其数值

│└─:

求正切

├─on!

求阶乘

│├─:

定义变量并获得其数值

│└─?

判断为整数放进行阶乘操作

│├─+阶乘运算

││├─:

强制类型转换

││├─:

定义变量result参加运算存放结果数值

││├─*求阶乘

│││└─:

从i到1逐乘

││└─:

输出结果

│└─:

无法进行阶乘

├─ox^2求平方

│├─:

定义变量i并获得其数值

│└─:

求平方并输出

└─ox^3求立方

├─:

定义变量并获得自变量数值

└─:

求立方并输出

 

+addButton

├─:

创建按钮对象

├─:

在面板上增加按钮

├─:

设置前景(字体)颜色

└─:

增加监听事件

//方法的定义

privatevoidaddButton(JPanelpanel,Stringname,ActionListeneraction,Colorcolor)

{

//addButton()

JButtonbt=newJButton(name);

panel.add(bt);

bt.setForeground(color);

bt.addActionListener(action);

}

+Calculator

├─:

设置标题栏

├─:

保留四位小数

├─:

设置布局管理器

├─:

面板1

├─:

面板2

├─:

面板3

├─:

面板4

├─:

菜单栏

├─:

编辑菜单

├─:

查看菜单

├─:

帮助菜单

├─:

设置菜单1字体

├─:

设置菜单2字体

├─:

编辑栏

├─:

查看栏

├─:

帮助栏

├─:

添加项目

├─:

把菜单加到框架中

├─:

实现数字监听

├─:

文本域

└─:

对计算器进行初始化

//方法的定义

publicCalculator()

{

//Calculator()

super("科学计算器");

df=newDecimalFormat("#.####");

this.setLayout(newBorderLayout(10,5));

panel1=newJPanel(newGridLayout(1,3,10,10));

panel2=newJPanel(newGridLayout(5,6,5,5));

panel3=newJPanel(newGridLayout(5,1,5,5));

panel4=newJPanel(newBorderLayout(5,5));

myBar=newJMenuBar();

menu1=newJMenu("编辑(E)");

menu2=newJMenu("查看(V)");

menu3=newJMenu("帮助(H)");

menu1.setFont(newFont("宋体",Font.PLAIN,12));

menu2.setFont(newFont("宋体",Font.PLAIN,12));

editItem1=newJMenuItem("复制(C)Ctrl+C");

editItem2=newJMenuItem("粘贴(P)Ctrl+V");

editItem1.setFont(newFont("宋体",Font.PLAIN,12));

editItem2.setFont(newFont("宋体",Font.PLAIN,12));

seeItem1=newJRadioButtonMenuItem("科学型(T)");

seeItem2=newJRadioButtonMenuItem("标准型(S)");

seeItem3=newJCheckBoxMenuItem("数字分组(I)");

seeItem1.setFont(newFont("宋体",Font.PLAIN,12));

seeItem2.setFont(newFont("宋体",Font.PLAIN,12));

seeItem3.setFont(newFont("宋体",Font.PLAIN,12));

help1=newJMenuItem("帮助主题(H)");

help2=newJMenuItem("关于计算器(A)");

help1.setFont(newFont("宋体",Font.PLAIN,12));

help2.setFont(newFont("宋体",Font.PLAIN,12));

bgb=newButtonGroup();

menu2.add(seeItem1);

menu2.add(seeItem2);

menu2.addSeparator();//添加一条分割线

menu2.add(seeItem3);

menu3.add(help1);

menu3.addSeparator();//添加一条分割线

menu3.add(help2);

myBar.add(menu1);

myBar.add(menu2);

myBar.add(menu3);

this.setJMenuBar(myBar);

numActionListener=newNum();

tf=newJTextField();

tf.setEditable(false);//文本区域不可编辑

tf.setBackground(Color.white);//文本区域的背景色

tf.setHorizontalAlignment(JTextField.RIGHT);//文字右对齐

tf.setText("0");

tf.setBorder(BorderFactory.createLoweredBevelBorder());

init();

}

+getResult

├─?

加法运算

│├─:

两个数做加法

│└─?

减法运算

│├─:

两个数做减法

│└─?

乘法运算

│├─:

两个数相乘

│└─?

除法运算

│├─:

两个数做除法

│└─o等号运算

│└─:

保持结果不变

└─:

在文本域输出结果

 

//方法的定义

privatevoidgetResult(doublex)

{

//getResult(doublex)

if(oper=="+")

{

result+=x;

}

else

{

if(oper=="-")

{

result-=x;

}

else

{

if(oper=="×")

{

result*=x;

}

else

{

if(oper=="÷")

{

result/=x;

}

else

{

if(oper=="=")

result=x;

}

}

}

}

tf.setText(df.format(result));

}

 

+init

├─:

往面板上添加按钮

├─:

添加计算器按钮

├─:

设置按钮属性

├─:

加入按钮

├─:

添加功能按键

├─:

面板布局

├─:

根据布局调整窗口大小

└─:

设置窗口属性

 

//方法的定义

privatevoidinit()

{

//init()

addButton(panel1,"Backspace",newClear(),Color.red);

addButton(panel1,"CE",newClear(),Color.red);

addButton(panel1,"C",newClear(),Color.red);

addButton(panel2,"1/x",newSigns(),Color.magenta);

addButton(panel2,"log",newSigns(),Color.magenta);

addButton(panel2,"7",numActionListener,Color.blue);

addButton(panel2,"8",numActionListener,Color.blue);

addButton(panel2,"9",numActionListener,Color.blue);

addButton(panel2,"÷",newSigns(),Color.red);

addButton(panel2,"n!

",newSigns(),Color.magenta);

addButton(panel2,"sqrt",newSigns(),Color.magenta);

addButton(panel2,"4",numActionListener,Color.blue);

addButton(panel2,"5",numActionListener,Color.blue);

addButton(panel2,"6",numActionListener,Color.blue);

addButton(panel2,"×",newSigns(),Color.red);

addButton(panel2,"sin",newSigns(),Color.magenta);

addButton(panel2,"x^2",newSigns(),Color.magenta);

addButton(panel2,"1",numActionListener,Color.blue);

addButton(panel2,"2",numActionListener,Color.blue);

addButton(panel2,"3",numActionListener,Color.blue);

addButton(panel2,"-",newSigns(),Color.red);

addButton(panel2,"cos",newSigns(),Color.magenta);

addButton(panel2,"x^3",newSigns(),Color.magenta);

addButton(panel2,"0",numActionListener,Color.blue);

addButton(panel2,"-/+",newClear(),Color.blue);

addButton(panel2,".",newDot(),Color.blue);

addButton(panel2,"+",newSigns(),Color.red);

addButton(panel2,"tan",newSigns(),Color.magenta);

addButton(panel2,"%",newSigns(),Color.magenta);

addButton(panel2,"_",numActionListener,Color.orange);

addButton(panel2,"e",numActionListener,Color.orange);

addButton(panel2,"′″",newSigns(),Color.orange);

addButton(panel2,"=",newSigns(),Color.red);

JButtonbtns=newJButton("计算器");

btns.setBorder(BorderFactory.createLoweredBevelBorder());

btns.setEnabled(false);//按钮不可操作

btns.setPreferredSize(newDimension(20,20));

panel3.add(btns);

addButton(panel3,"MC",null,Color.red);

addButton(panel3,"MR",null,Color.red);

addButton(panel3,"MS",null,Color.red);

addButton(panel3,"M+",null,Color.red);

panel4.add(panel1,BorderLayout.NORTH);

panel4.add(panel2,BorderLayout.CENTER);

this.add(tf,BorderLayout.NORTH);

this.add(panel3,BorderLayout.WEST);

this.add(panel4);

pack();

this.setResizable(false);//窗口不可改变大小

this.setLocation(300,200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

 

[六]标准配置

中央处理器CPU:

不低于1.2GHz

内存:

不低于512MB

显卡:

显存不低于64MB

硬盘:

至少有10MB存储空间

系统:

Windows9x/Me/NT/2000/XP/2003/Vista/7/2008Server/MacOSX以上

[七]程序大体流程图

[八]本人编写的计算器小程序功能表(周文敏专利)

主要功能表(表1)

序号

文件名

主要功能

备注

1

+

加法

两个操作数

2

-

减法

两个操作数

3

*

乘法

两个操作数

4

/

除法

两个操作数

5

%

求模

两个操作数

6

^

求x的y次幂

两个操作数

7

S

求平方根

一个操作数

8

O

求Sin

一个操作数

9

I

求Cos

一个操作数

10

L

求Log10

一个操作数

11

=

等于

12

C

寄存器清零

13

Q

退出

 

[九]周文敏(2010011250)个人工作情况总结

经过了四个星期的JAVA语言程序和过程蓝图设计终于在老师的细心指导和同学的热情帮助下基本完成了计算器课题的设计修改任务!

虽然有些地方不尽如人意但是初步达到了对自己的要求!

刚开始设计的时候找不到头绪,不知道该从哪里下手!

通过向同学询问和向老师寻求帮助找走进了设计的门槛!

通过查找到很多成功的程序,通过对那些已经成功地程序进行分析找到自己的设计思路,制定设计流程。

并通过比较各种程序了解各个程序的利弊,从而明确自己计算器的设计方向和如何通过技术手段达到自己的目的!

万事开头难,可是对于并不是很熟悉的JAVA语言程序和过程蓝图在下面的工作中困难处处能遇见.通过查找JAVA语言程序和过程蓝图教材去图书馆查找相关的资料和同学一起讨论终于把一个个棘手的陌生的问题解决。

测试阶段中发现了几处错误导致程序不能编译,通过耐心的分析源代码终于编好了一个完整无误的程序。

在这

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

当前位置:首页 > 解决方案 > 学习计划

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

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