java计算器课程设计报告 包含代码Word下载.docx

上传人:b****5 文档编号:8365199 上传时间:2023-05-11 格式:DOCX 页数:104 大小:290.46KB
下载 相关 举报
java计算器课程设计报告 包含代码Word下载.docx_第1页
第1页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第2页
第2页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第3页
第3页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第4页
第4页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第5页
第5页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第6页
第6页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第7页
第7页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第8页
第8页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第9页
第9页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第10页
第10页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第11页
第11页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第12页
第12页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第13页
第13页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第14页
第14页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第15页
第15页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第16页
第16页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第17页
第17页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第18页
第18页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第19页
第19页 / 共104页
java计算器课程设计报告 包含代码Word下载.docx_第20页
第20页 / 共104页
亲,该文档总共104页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java计算器课程设计报告 包含代码Word下载.docx

《java计算器课程设计报告 包含代码Word下载.docx》由会员分享,可在线阅读,更多相关《java计算器课程设计报告 包含代码Word下载.docx(104页珍藏版)》请在冰点文库上搜索。

java计算器课程设计报告 包含代码Word下载.docx

布局设计好后再添加按钮事件。

对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。

这是计算器中的一种:

简单计算器,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:

点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;

还能通过用户自己在文本框中输入数字,进行简单运算;

如果输入有误时可以按Clear撤销后重新输入新数据。

二、详细设计过程

1、界面设计

界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用awt中的BorderLayout和GridLayout布局管理方式,窗体名称jisuan继承JFrameActionListener接口,并实现publicvoidactionPerformed(ActionEvente){}方法。

定义菜单、菜单条、菜单项、按钮、文本框、容器,设置为private类型。

定义变量doublememoryd;

//使用内存中存储的数字;

DecimalFormatdf;

//保留小数位数。

使用privateJButtongetJButton()方法添加按钮并给按钮命名,使用setFont(newFont("

楷体"

Font.BOLD,30));

setForeground(newColor(250,0,0));

方法设置按钮的字体和字体颜色。

设置数字按钮1到9并添加监控,使其在发生鼠标事件时改变按钮颜色,其图形界面如下图1-1所示:

图1-1

2、详细设计

根据课题设计的具体要求画出如下图所示的流程图:

图1-2

(1)这段代码主要是对程序的主框架进行相应的设置

Framef=newFrame("

计算器"

);

f.setBackground(Color.lightGray);

f.setForeground(Color.blue);

f.add(p1,BorderLayout.NORTH);

f.add(p2,BorderLayout.CENTER);

f.add(p3,BorderLayout.SOUTH);

f.setSize(350,300);

//设置大小

f.setVisible(true);

//设置为可视

(2)设置数字按钮1到9并添加监控,使其在发生鼠标事件时改变按钮颜色

addMouseListener(newMouseListener(){

publicvoidactionPerformed(MouseEvente){

jButton.setForeground(newColor(0,100,0));

}

publicvoidmouseClicked(MouseEvente){

jButton.setForeground(newColor(0,150,100));

publicvoidmouseEntered(MouseEvente){

jButton.setForeground(newColor(0,0,250));

publicvoidmouseExited(MouseEvente){

jButton.setForeground(newColor(250,0,0));

publicvoidmousePressed(MouseEvente){

jButton.setForeground(newColor(0,250,0));

publicvoidmouseReleased(MouseEvente){

jButton.setForeground(newColor(250,250,0));

}});

(3)在基本的运算中重点介绍一下除法运算jButton3=newJButton("

x/y"

定义double变量c用来存放从除数文本框中读出的数据,设置if……else语句来判断当c==0时在文本框中输出“除数不能等于0”,否则就输出结果

jButton3.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

doublec=Double.parseDouble(jTextField.getText());

doubled=Double.parseDouble(jTextField.getText());

doublea;

if(c==0){jTextField.setText("

除数不能等于0"

}else{a=d/c;

jTextField.setText(Double.toString(d));

}}});

(4)这段代码主要为窗口关闭按钮编写程序

classcloseWinextendsWindowAdapter//为关闭按钮编写程序

{

publicvoidwindowClosing(WindowEvente)

{System.exit(0);

}

3、类的种类如图1-2显示

图1-3

三、程序的调试和运行结果说明,下面列举几种特殊情况下的具体操作

事例1:

当除数为0时,程序运行结果如图1-3:

图1-4

事例2:

4561+8715预计结果13276实际结果如图1-4:

图1-5

4、存在问题

因为第一次设计JAVA程序,有很多地方没有想到,这次设计计算器,也有很多没有完善的地方,比如:

计算器除数不能为0,但我们这次设计的计算器没考虑到这个方面,使得计算器在这种情况下不能正常计算,后经过老师的知道和查阅参考书,解决了这个问题,只需一行代码即可:

if(d3==0)tf.setText("

除数不能为零"

)。

5、主要收获

这次的程序设计,从一个简单的计算器就可以看出JAVA的程序设计不是那么简单,仅仅是一个小小的计算器,就已经有很多需要注意的问题,一不小心就会出错,还会有很多地方没怎么明白,而计算器的设计是最简单的几个设计其中之一,可见,平时的知识积累是很重要的。

没有知识的积累,再简单的东西也不可能设计出来。

课程设计还让我们练习了动手能力,使我们平时学习的知识得以在实际中使用,不会学死书,活学活用,很大程度上提高了我们的能力,对以后的学习、工作、生活也会有一定的帮助。

通过此次的程序设计,让我了解了JAVA的更多知识,使平时的知识可以运用,更好的理解了JAVA这门课程。

课程设计要求

各专业学生应根据课程任教老师的要求,做出选题计划,并按下列要求完成课程设计任务。

一、学生应按照老师的要求完成规定的课程设计任务量。

二、课程设计报告书要求格式统一,字迹工整,语言简练,文字通顺,按课程设计格式要求书写。

程序清单不够填写时统一用A4纸补充并粘贴。

对不按格式要求书写或打印的报告书一律不收,也不得进行答辩和评分。

三、必须独立完成课程设计,不得相互抄袭。

在答辩和批阅过程中发现源程序相同或有大面积抄袭现象,课程任教老师有权通知学生重做,不得给予评分,并通知相关系部做出处理。

四、学生课程设计结束后应提交的材料:

(1)课程设计说明书(3000字以上);

(2)包含完整的、正确的源程序代码(含电子文档);

(3)答辨材料(介绍课程设计要点)。

参考文献情况

序号

名称

编著者

出版社

1

Java语言程序设计

郑莉

清华大学出版社

2

Java程序设计实训教程

张小波

冶金工业出版社

3

Java程序设计

魏衍君

中国商业出版社

4

Java使用和开发案例教程

徐谡

教师评价情况

指导老师评语:

指导老师:

_____________(签名)

日期:

年月日

学生答辩情况

答辩(组)评语:

主答辩老师:

____________(签名)

答辩日期:

综合成绩评定情况

综合评价等级:

__________________

注:

共分五个等级(1.优秀2、良好3、中等4、及格5、不合格)

课程设计考核情况

课程设计报告书目录

一、设计课题…………………………………………………5

二、设计目的…………………………………………………5

三、操作环境…………………………………………………5

四、设计场所(机房号、机器号或自己机器)……………5

五、设计过程(设计内容及主要程序模块)………………6

六、本次设计中用到的课程知识点(列出主要知识点)…16

七、设计过程中遇到的问题及解决办法……………………16

八、程序清单…………………………………………………18

一、设计课题及内容

课题:

计算器

内容:

该程序是一个图形界面的计算器,可以在标准计算器和科学计算器之间切换,标准计算器的基本功能有:

加、减、乘、除基本算术运算;

科学计算器的基本功能有:

三角函数、进制转换、对数、阶乘;

一元二次方程界面可以求一元二次方程的解;

勾股定理界面可以求直角三角形边长。

二、设计目的

进一步掌握和理解java程序编程;

进一步掌握java语言的基本数据类型,熟悉定义变量和使用变量;

理解java图形用户界面的基本工作原理和界面设计;

巩固窗体的布局设计;

掌握窗体按钮控件和文本控件对事件的响应;

理解函数和方法的使用。

三、操作环境

操作系统:

MicrosoftWindowsXPProfessional

CPU:

IntelPentium43.06GHz

内存:

512M

四、设计场所

4306教室

自己笔记本

五、设计过程(设计内容及主要模块,不少于3000字)

1.设计要求

1)标准计算器:

加、减、乘、除、求平方根;

2)科学计算器:

进制转换、求解三角函数、对数运算、阶乘;

3)一元二次方程:

求一元二次方程的解;

4)勾股定理:

求直角三角边长。

2.总体设计

1)功能模块图,如图1。

图1功能模块图

2)一元二次方程界面图科学计算器界面,如图2。

图2一元二次方程界面图

3)标准计算器界面,如图3。

图3标准计算器界面图

4)勾股定理科学计算器界面图,如图4。

图4勾股定理界面图

5)科学计算器界面图,如图5。

图4科学计算器界面图

3.详细设计

1)流程图,如图6。

图6流程图

2)设置窗体

窗体名称biaozhun继承JFrame类和ActionListener接口,并实现publicvoid

actionPerformed(ActionEvente){}方法。

3)定义菜单、菜单条、菜单项、按钮、文本框、容器,设置为private类型。

4)定义变量doublememoryd;

5)使用privateJButtongetJButton()方法添加按钮并给按钮命名,使用

setFont(newFont("

Font.BOLD,30));

setForeground(newColor

(250,0,0));

方法设置按钮的字体和字体颜色。

6)设置数字按钮1到9并添加监控,使其在发生鼠标事件时改变按钮颜色

publicvoidactionPerformed(MouseEvente){

7)开根号运算,定义jButton2=newJButton("

sqrt"

对其设置监控,调用Math.sqrt()方法来实现开根号运算,并在文本框中输出结果,

jButton2.addActionListener(newActionListener(){

doublea=Double.parseDouble(jTextField.getText());

doubleb;

if(a<

0){jTextField.setText("

负数不能开平方"

else{b=Math.sqrt(a);

jTextField.setText(Double.toString(b));

8)设置百分比按钮,jButton7=newJButton("

%"

使用变量i1来存放从文本框中读出的数据并转换成double类型,定义double类型变量z1,z1=i1/100实现求百分比运算,在使用jTextField.setText(Double.toString(z1))使其在文本框中输出结果

jButton7.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

doublei1=Double.parseDouble(jTextField.getText());

doublez1=i1/100;

jTextField.setText(Double.toString(z1));

}});

9)设置求倒数运算,jButton14=newJButton("

1/x"

定义double变量c用来存放从文本框中读出的数据,设置if……else语句来判断当c==0时在文本框中输出“除数不能等于0”,否则就输出结果

jButton14.addActionListener(newActionListener(){

doubled;

}else{d=1/c;

10)定义相反数按钮,jButton16=newJButton("

+/-"

通过使用

0-Double.parseDouble(jTextField.getText().trim());

使文本框中的数据变成其相反数

jButton16.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

doublei2=0-Double.parseDouble(jTextField.getText().trim());

jTextField.setText(Double.toString(i2));

11)等于号按钮,jButton19.setText("

="

通过使用switch……case语句来控制,Operator变量在定义+、-、*、/按钮时对其赋值

jButton19.addActionListener(newActionListener(){

doubledatatwo;

datatwo=Double.parseDouble(str);

switch(Operator){

case'

+'

:

dataone+=datatwo;

break;

-'

dataone-=datatwo;

*'

dataone*=datatwo;

/'

dataone/=datatwo;

default:

str=Double.toString(dataone);

jTextField.setText(str);

12)定义文本框textMemory,用来显示进行MS、M+操作时显示M用,使用

textMemory.setEditable(false);

方法使textMemory文本框变成不可编辑。

13)定义文本框jTextField,用来显示运算结果

jTextField.addKeyListener(newKeyAdapter(){

publicvoidkeyTyped(KeyEvente){

if(e.getKeyChar()>

='

0'

&

e.getKeyChar()<

9'

){

str+=e.getKeyChar();

}elseif(e.getKeyChar()==KeyEvent.VK_BACK_SPACE){

str=str.substring(0,str.length()-1);

}elseif(e.getKeyChar()==KeyEvent.VK_ESCAPE){

str="

"

;

14)定义jButton20、jButton21、jButton22、jButton23分别为MC、MR、MS、

M+,并且对按钮添加监听,计算器内部有一个存贮器,假设将其称为“寄数器”。

MS是将当前窗口数据写入“寄数器”,M+是将当前窗口数据和“寄数器”内的数据相加后再存入“寄数器”,MR是读出“寄数器”内的数据到窗口,MC是清除“寄数器”内的数据,使其为0。

按钮实现方法在publicvoidactionPerformed

(ActionEvente)中实现,

publicvoidactionPerformed(ActionEvente){

Objecttemp=e.getSource();

if(temp==jButton20){

memoryd=memoryi=0;

textMemory.setText("

ZY"

textMemory.setFont(newFont("

华文行楷"

//'

MS'

的操作,将当前文本框内容保存入内存,显示'

M'

if(temp==jButton22){//textMemory显示m的文本框

booleanisDot=false;

M"

for(inti=0;

i<

jTextField.getText().length();

i++)

if('

.'

==jTextField.getText().charAt(i)){

isDot=true;

break;

//如果是double,则存入memoryd(double存储器)

if(isDot==true){

memoryd=Double.parseDouble(jTextField.getText());

memoryi=0;

//保证存储器中存放最新的值}

//如果是int,则存入memoryi(int存储器)

else{

memoryi=Integer.parseInt(jTextField.getText());

memoryd=0;

//保证存储器中存放最新的值}}

MR'

的操作,将存储器中的信息输出

if(temp==jButton21){if(memoryd!

=0)

jTextField.setText(Double.toString(memoryd));

if(memoryi!

jTextField.setText(Integer.toString(memoryi));

M+'

的功能,将当前文本框里的数据和存储器中数据相加后,再存入存储器

if(temp==jButton23){

textMemory.setText("

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

当前位置:首页 > 经管营销 > 经济市场

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

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