迷你计算器设计说明书.docx

上传人:b****5 文档编号:28002976 上传时间:2023-07-07 格式:DOCX 页数:16 大小:205.82KB
下载 相关 举报
迷你计算器设计说明书.docx_第1页
第1页 / 共16页
迷你计算器设计说明书.docx_第2页
第2页 / 共16页
迷你计算器设计说明书.docx_第3页
第3页 / 共16页
迷你计算器设计说明书.docx_第4页
第4页 / 共16页
迷你计算器设计说明书.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

迷你计算器设计说明书.docx

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

迷你计算器设计说明书.docx

迷你计算器设计说明书

*******************

实践教学

*******************

 

兰州理工大学

计算机与通信学院

2014年秋季学期

 

Java课程设计

 

题目:

迷你计算器设计

专业班级:

计算机3班

姓名:

刘忠雄

学号:

12240304

指导教师:

年福忠

成绩:

前言

当今社会是信息社会,科技经济高速发展的社会!

为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。

由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活中的必备品!

随着科技的发展计算器的种类变得更多,功能变得更强大,体积变得更小!

电脑的出现改变人们的生活习惯,很多事情都可以电脑来完成!

电脑的更大一个优点就是可以通过软件的应用无限的延伸电脑功能的外延!

下面我们将用我们学习的Java语言编写一个简易的计算器程序!

实现简单的初步的计算功能!

本程序的编写基础是Java汉化平台,它在Java的原有基础上实现了多汉字的支持方便了我们的使用。

生成的程序可移植性强兼容性好稳定!

现在只实现了加、减、乘、除。

这个系统是基于软件发展的生命周期来研制的,它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。

但是,每次只能运算一个表达式。

不能运算多个表达式。

在程序里面在添加一组选择函数即可。

 

 

摘要

本次设计是通过java编程技术来设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算,该计算器可以实现加法、减法、乘法、除法的简单运算,也可以实现一些简单的扩展运算如:

阶乘,指数,正弦,余弦,正切。

具有良好的界面,使用人员能快捷接单的进行操作,即时获得需要的计算结果充分降低了数字计算的难度并节省了时间。

对人们的生活有一定的帮助。

 

关键词:

java语言;计算器;四则运算;继承;面向对象

 

第一章系统总体设计

1.1程序流程图

程序采用继承windowadapter类,新建JFrame窗体,利用ButtonGroup定义一组按钮,同时定义了一个文本区用于输入和显示数据。

本系统含有一下方法:

publiccalculator()构造方法完成面板和文本区的复制操作;init()方法完成按钮的初始化操作;addButton()方法统一设置了按钮的使用方式;operate()方法实现加减乘除的基本操作;最后定义了运算符事件监听者ClassSignsimplementsActionListener和数据输入监听者classNumimplementsActionListener。

图1.1程序流程图

1.2设计思路

⑴、本应用程序继承自框架类(JFrame),容器Containerc采用BorderLayout边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel1加入到”Center”区域。

包含各种按钮的面板JPanel1采用5行4列的网格布局,然后定义了一个数字按钮的监听者和运算符按钮的监听者。

如:

classsignsimplementsActionListener

classNumimplementsActionListener

⑵、运算符事件监听器中的事件处理方法voidactionPerformed(ActionEventevt)完成主要的按钮事件的处理。

事件处理分以下几种情况:

运算符按钮事件(”+”,”-“,”*”,”/”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、退格按钮事件(”退格”)、清除按钮事件(“C”)、正弦(sin)、正切(tan)、余弦(cos),指数(pow)。

数字事件监听器中的事件处理方法publicvoidactionPerformed(ActionEvente)完成数字按钮事件的处理:

数字按钮事件(”0”,”1”,”2”…”8”,”9”)。

(3)、计算器完成的是一个数学表达式,如:

3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。

(4)、利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。

(5)、利用文本框显示操作数和运算结果。

第二章详细设计

2.1系统总体框架的设计

系统的总体框架为calculator类继承了JFrame窗体类,在calculator()构造方法中完成面板和文本区的定义。

其中有两个面板panel1,panel2。

Panel1用来加载各种按钮,panel2用来加载文本区。

利用初始化操作init()来添加按钮。

publiccalculator()

{

super("迷你计算器");//设置标题栏

df=newDecimalFormat();//保留四位小数

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

panel1=newJPanel(newGridLayout(5,4,5,5));//5行6列

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

bgb=newButtonGroup();//选项组

numActionListener=newNum();//实现数字监听

//文本域,即为计算器的屏幕显示区域

tf=newJTextField();

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

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

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

tf.setText("0");

init();//对计算器进行初始化

}

//统一设置按钮的的使用方式

privatevoidaddButton(JPanelpanel,Stringname,ActionListeneraction,Colorcolor)

{JButtonbt=newJButton(name);

panel.add(bt);//在面板上增加按钮

bt.setForeground(color);//设置前景(字体)颜色

bt.addActionListener(action);//增加监听事件

}

//初始化操作添加按钮

privatevoidinit()

{

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

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

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

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

addButton(panel1,"n!

",newSigns(),Color.magenta);

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

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

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

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

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

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

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

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

addButton(panel1,"-/+",newSigns(),Color.blue);

addButton(panel1,".",newSigns(),Color.blue);

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

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

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

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

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

addButton(panel1,"e",numActionListener,Color.blue);

addButton(panel1,"∏",numActionListener,Color.blue);

JButtonbtns=newJButton("计算器");

btns.setBorder(BorderFactory.createLoweredBevelBorder());

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

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

panel2.add(panel1,BorderLayout.CENTER);

this.add(tf,BorderLayout.NORTH);

this.add(panel2);

pack();//布置容器,让现实的内容以最小空间显示

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

this.setLocation(300,200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

2.2加减乘除基本运算

privatevoidoperate(doublex)

{

if(oper=="+"){tmp+=x;}

elseif(oper=="-"){tmp-=x;}

elseif(oper=="×"){tmp*=x;}

elseif(oper=="÷"){tmp/=x;}

elseif(oper=="="){tmp=x;}

tf.setText(df.format(tmp));}

2.3各运算符的事件处理

在运算符的事件监听classSignsimplementsActionListener中的actionPerformed(ActionEvente)方法中对各种运算符完成了事件的处理,所含有的运算符有:

+,-,*,/,cos,sin,tan,n!

-/+,=。

classSignsimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

Stringstr=e.getActionCommand();//用此方法获取引发事件的字符串

if(str.equals("sin"))//sin求正弦函数

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

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

elseif(str.equals("cos"))//cos求余弦函数

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

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

elseif(str.equals("tan"))//tan求正切函数

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

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

elseif(str.equals("n!

"))//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("无法进行阶乘");}

}

elseif(str=="-/+")

{doublei=0-Double.parseDouble(tf.getText().trim());

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

}

elseif(str.equals(".")){//定义小数点的事件监听

IfResult=false;

if(tf.getText().trim().indexOf(".")==-1){

tf.setText(tf.getText()+".");}

}

else

{if(flag){IfResult=false;}

if(IfResult){oper=str;}

else

{operate(Double.parseDouble(tf.getText()));

oper=str;

IfResult=true;}

}

}

}

2.4数据的事件处理

数字监听者中的方法actionPerformed(ActionEvente)完成数字按钮的响应。

classNumimplementsActionListener{

publicvoidactionPerformed(ActionEvente)

{Stringstr=e.getActionCommand();//用此方法获取引发事件的各类数字

if(IfResult)

{tf.setText("");

IfResult=false;

}

if(str=="π"){

tf.setText(String.valueOf(Math.PI));

}

elseif(str=="e")

{tf.setText(String.valueOf(Math.E));

}

else{

tf.setText(tf.getText().trim()+str);

if(tf.getText().equals("0"))

{tf.setText("0");

IfResult=true;

flag=true;}

}

}

}

第3章系统测试

3.1各运算符结果测试

3.1.1加减乘除四则运算举例

除法运算以5/2为例输入“5”:

图3.1数据5输入图

输入“÷”

图3.2符号(/)输入图

输入“2”

图3.3数据2输入图

输入“=”

图3.4符号(=)输入图

结果显示5/2的结果为2.5。

3.1.2正余弦为例:

输入“π”

图3.5数据π输入图

输入“sin”

图3.6符号sin输入图

输入sinπ其结果为0。

3.1.3n!

为例:

以4!

为例,输入“4”:

图3.7数据4输入图

输入“n!

图3.8符号(n!

)输入图

3.1.4以指数pow()举例

以3的3次方为例,输入“3”:

图3.9数据3输入图

输入pow:

图3.10符号pow输入图

以3的3次方为例其结果为27。

3.2软件可靠性分析。

以上众多实例可以说明本软件是安全可靠的,利用本软件进行简单计算是完全够用的,但是本软件在计算带小数点的计算时结果是近似数所以大家在利用本软件时要稍微注意。

第四章软件使用说明书

4.1件运行界面

图4.1软件运行界面

4.2软件功能说明

运行该程序后,参与运算的操作数可有鼠标点击相应按钮输入,但操作符应有鼠标点击相应的按钮,当:

1.在简易计算中可以按照常规输入计算。

2.实现基本数学运算、函数等功能:

加、减、乘、除、阶乘、正弦、余弦、正切和指数运算。

4.3软件运行环境

本程序在windows7的pc机上利用eclipse软件运行通过。

 

设计总结

经过一个学期对JAVA的学习,我学习到了基本的理论知识,了解到了JAVA语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。

在为期近两周的JAVA课程设计中,在老师和同学的帮助下,通过自己的努力,终于完成了迷你计算器的课程设计。

我经过这段时间的编程,对其中的艰辛,我是深有体会。

从刚开始的选择程序、理解程序到后来的调试程序以及改进程序这个过程中,我遇到了各种各样的困难和挫折。

但是我坚定信念,对自己充满了信心,想尽一切办法克服重重困难。

我加强了对JAVA程序设计这门课程的认识,并且复习了自己以前学习到的知识。

这些都使得我对计算机语言的学习有了更深入的认识!

总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。

学会用已掌握的知识去解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。

这次课程设计,除了全面系统的理解了JAVA面向对象编程原理的一般原理和基本实现方法,还把死板的课本知识变得生动有趣,激发了学习的积极性。

把学过的编程原理的知识强化,把课堂上学的知识通过自己设计的程序表示出来,这加深了对理论知识的理解。

课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意尽力寻找程序中存在的不足之处,进而使功能更加完善。

当然在做课程设计要有很大的耐心,做的过程就是不断的调试—修改—调试过程,只有静下心来才能把问题解决。

参考文献

[1]曲朝阳,杨杰明等.Java程序设计.北京:

清华大学出版社,2008.10

[2]耿祥以,张跃平.Java大学生实用教程.北京:

电子工业出版社,2012.6

[3]明日科技.Java经典编程.北京:

清华大学出版社,2012.10

[4]李尊朝,苏军.Java语言程序设计.北京:

中国铁道出版社,2004.2

[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.

致谢

在这次设计的整个过程中,我遇到许多问题,谢谢老师在我们遇到困难的时候给我们进行指导,帮助我们走出困境,帮助我们完成课设任务,其次要感谢帮助我同学,是你们使我认识到了团队的真正意义,让我学习到了合作的重要性。

在这里,我想真诚的对你们说一句:

“谢谢你们”,在以后的学习中,我一定更加努力的学习。

 

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

当前位置:首页 > 农林牧渔 > 林学

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

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