JAVA课程设计计算器小程序报告.docx
- 文档编号:23007953
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:20
- 大小:91.07KB
JAVA课程设计计算器小程序报告.docx
《JAVA课程设计计算器小程序报告.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计计算器小程序报告.docx(20页珍藏版)》请在冰豆网上搜索。
JAVA课程设计计算器小程序报告
#####学院
JAVA语言课程设计报告
小程序计算器系统管理
班级:
#######
姓名:
###
##
指导老师:
###
时间:
2012年6月25日至6月29日
1、课程设计概述--------------------------------------------------3
1.1利用java编写计算器,使之具备一定的功能:
-----------------3
1.2课程设计的主要思想--------------------------------------------------3
1.3该项目设计的目的-----------------------------------------------------3
2、需求分析方案--------------------------------------------------4
2.1功能需求分析-----------------------------------------------4
2.2性能需求分析-----------------------------------------------4
3、总体设计方案--------------------------------------------------5
3.1界面设计----------------------------------------------------------------------5
3.2功能介绍-----------------------------------------------------------------------5
4、详细说明、调试---------------------------------------------6
4.1程序流程图-------------------------------------------------------6
4.2部分代码说明-----------------------------------------------------6
4.3程序调试与结果示例-------------------------------------------8
5、个人总结-----------------------------------------------------10
6、附录(代码)-----------------------------------------------11
6.1登陆界面代码--------------------------------------------11
6.2计算器主界面--------------------------------------------12
6.3退出界面代码-------------------------------------------15
1.课程设计概述
1.1利用java编写计算器,使之具备一定的功能:
(1)使用图形用户界面:
一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;
(2)完成整数、实数的四则运算(加、减、乘、除);
(3)通过按钮点击实现数据的复位(清零);
(4)实数运算中小数位的精度一致。
1.2课程设计的主要思想
首先要设计一个登录界面,必须输入密码并正确才能进入到计算器界面;
对于此计算器程序,要设计其GUI界面,总体界面有一个文本框,18个按钮,总体界面用BorderLayout布局。
文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。
布局设计好后再添加按钮事件。
对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。
在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。
最后还需要一个退出界面。
重要的是必须把三个界面的代码放在同一个包里。
1.3该项目设计的目的
(1)理解并掌握Java中的类、对象、继承、方法等概念,以及Applet的基本框架和事件处理的方法。
(2)学会一些按钮,标签,主件,文本框的使用;
(3)学会使用JDK编写、调试和运行JavaApplet应用程序。
(4)利用awt组件编写一个计算器,实现基本的四则运算。
2.需求分析
2.1功能需求分析
在日常生活中经常需要用到计算器,比如科学计算、数值计算、会计业务等,在Applet中实现一个精巧实用的计算器,可以让用户在使用网站服务的同时,可以很方便地进行数据运算,可增加页面的实用性,同时让用户的操作也更方便与快捷。
本项目需要实现一个用Java中的类、对象、继承、方法等概念以及awt主键和Applet的基本框架和事件处理的方法。
简单的四则运算的计算器,拥有加、减、乘、除功能,除此之外要三个界面即:
登录面,计算器主界面,退出界面,要剧本的功能就是点击登录界面可以前往计算器主界面,退出可以到达退出界面。
2.2性能需求分析
实用性:
在实现此过程中,我们要考虑到,计算的实用性,能过用于哪些方面。
准确性:
在实现此过程中,我们要考虑到,怎样使计算器界面更简单,让人更容易明白它怎样去用。
连贯性:
在此项目中,要让登陆界面,计算器主界面,退出界面能连起;即:
运行登陆界面,密码正确时能登陆到计算器主界面,点主界面退出时能到达退出界面,给人以提示。
3总体设计
3.1界面设计
界面设计要求用GUI,界面设计中有用到swing组件的TextField、Button,和JLable用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如下:
登陆界面
计算器主界面
退出提示界面
3.2功能介绍
(1)本项目分为三个界面,登录,计算器,退出三个界面,点击登录输入密码正确就可以登录到计算器界面,退出计算器界面还可以再次登录。
(2)这是计算器中的一种:
简单计算器,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:
点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;还能通过用户自己在文本框中输入数字,进行简单运算;
如果输入有误时可以点“清除”撤销后重新输入新数据.
4.详细设计说明、调试
4.1程序流程图:
4.2部分代码说明
段代码主要是对程序的主框架进行相应的设置。
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);//设置为可见
添加相应的按钮
B[0].addActionListener(this);//7
B[1].addActionListener(this);//8
B[2].addActionListener(this);//9
B[3].addActionListener(this);//除号
B[4].addActionListener(this);//4
B[5].addActionListener(this);//5B[6].addActionListener(this);//*乘号
B[8].addActionListener(this);//1
B[9].addActionListener(this);//2
B[10].addActionListener(this);//3
B[11].addActionListener(this);//-减号
B[12].addActionListener(this);//0
B[13].addActionListener(this);//.小数点
B[14].addActionListener(this);//=等于号
B[15].addActionListener(this);//+加好
b1.addActionListener(this);
b2.addActionListener(this);
f.addWindowListener(newcloseWin();
运算设计代码:
if(command=="清除")//清零键按下时返回初始状态
{
y=0;
tf.setText("0.");
s1="";s2="";s3="";//记录输入值的变量清空
}
elseif(command=="退出")System.exit(0);//退出键关闭应用程序
elseif(y==0&&command!
="*"&&command!
="/"
&&command!
="+"&&command!
="-"
&&command!
="=")//判断输入是否为数字
{
s1=s1.concat(command);
tf.setText(s1);
}
if(command=="*"||command=="/"
||command=="+"||command=="-")//判断是否输入运算符
{
y=1;
s2=command;
}
if(y==1&&command!
="*"&&command!
="/"
&&command!
="+"&&command!
="-"
&&command!
="=")
{
s3=s3.concat(command);
tf.setText(s3);
}
if(command=="=")
{
Doubleob1=Double.valueOf(s1);
Doubleob3=Double.valueOf(s3);d1=ob1.doubleValue();
d3=ob3.doubleValue();
if(s2=="+")d4=d1+d3;
if(s2=="-")d4=d1-d3;
if(s2=="*")d4=d1*d3;
Doubleob4=newDouble(d4);
tf.setText(ob4.toString());
if(s2=="/")
{if(d3==0)
tf.setText("除数不能为零");
else{d4=d1/d3;
ob4=newDouble(d4);
tf.setText(ob4.toString());}
}
y=0;
}
4.3程序调试与结果示例
1.运行登录界面,输入密码,正确和错误两种情况;当输入正确时会弹出计算器界面,如果错误也会提示你,点击“重置”就可以重新输入密码
2.当除数为0时,结果显示“除数不能为零”“if(d3==0)tf.setText("除数为零")”
3.预计“32+3=35”,结果显示“35.0”
4.预计“5-7=-2”,实际结果显示“-2.0”
5.当不需要计算时,点击“退出”或关闭窗口时会弹出退出界面,会提示你是否真的退出,如需要重新登录就点击“再次登录”,如不需要登录就点击“退出”或关闭窗口。
5.个人总结
附录:
(代码)
6.1登录界面的代码:
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassjiemianextendsJFrameimplementsActionListener
{
JButtonbutton1,button2;
JTextFieldtext1,text2;
JLabeljlb,jlb1,jlb2;
publicjiemian()
{
super("java小程序登陆窗口");
Containercon=getContentPane();
con.setLayout(null);
jlb=newJLabel("您好!
欢迎您登陆java小程序计算器");
jlb1=newJLabel("请输入秘密:
");//标签
button1=newJButton("登陆");//登陆按钮
button1.addActionListener(this);//添加监听者
button2=newJButton("重置");//取消按钮
button2.addActionListener(this);//添加监听者
text1=newJPasswordField(10);//密码文本框
((JPasswordField)text1).setEchoChar('*');//设置掩码
text1.addActionListener(this);//添加监听者
jlb2=newJLabel("密码提示:
");//标签
text2=newJTextField(10);//密码提示文本框
//标签,文本框,按钮的位置大小
jlb.setBounds(70,0,220,100);
jlb1.setBounds(90,50,80,50);
text1.setBounds(80,90,190,30);
button1.setBounds(90,210,60,30);
button2.setBounds(170,210,60,30);
jlb2.setBounds(90,110,90,50);
text2.setBounds(80,150,190,30);
con.add(jlb);
con.add(jlb1);
con.add(jlb2);
con.add(text1);
con.add(text2);
con.add(button1);
con.add(button2);setBounds(300,200,350,350);
setVisible(true);
}
publicstaticvoidmain(Stringargs[])
{
newjiemian();//函数调用
}
publicvoidactionPerformed(ActionEvente)
{
if(text1.getText().equals("ruanjian11312"))//判断密码
{
text2.setText("密码正确");
newjsq().init();//调用计算器主界面函数
}
elseif(text1.getText().equals("11312"))//判断密码
{
text2.setText("密码正确");
newjsq().init();//调用计算器主界面函数
}
else
text2.setText("对不起,密码错误,请重新输入");
if(e.getSource()==button2)
{
text1.setText(null);
text2.setText(null);
}//使文本框1、2反空
}
}
6.2计算器主界面的代码:
importjava.awt.*;importjava.awt.event.*;
publicclassjsqimplementsActionListener
{Panelp1=newPanel();
Panelp2=newPanel();
Panelp3=newPanel();
TextFieldtf=newTextField(30);
Stringa[]={"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+",};
ButtonB[];
Buttonb1=newButton("清除");
Buttonb2=newButton("退出");
Strings1=newString();
Strings2=newString();
Strings3=newString();//s1记录第一个数;s2记录运算符;s3记录第二个数;
doubled1,d3,d4;
inty=0;//y用于控制运算符
publicvoidinit()
{
Framef=newFrame("计算器小程序");
f.setBackground(Color.lightGray);
f.setForeground(Color.blue);//数字颜色
p1.add(tf);
p3.setLayout(newGridLayout(1,2));
p3.add(b1);
p3.add(b2);
p2.setLayout(newGridLayout(4,4));
B=newButton[a.length];
for(inti=0;i { B[i]=newButton(a[i]); p2.add(B[i]); } f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.CENTER); f.add(p3,BorderLayout.SOUTH); f.setSize(350,300);//设置面板大小 f.setVisible(true);//设置为可见 B[0].addActionListener(this);//7 B[1].addActionListener(this);//8 B[2].addActionListener(this);//9 B[3].addActionListener(this);//除号 B[4].addActionListener(this);//4B[5].addActionListener(this);//5 B[6].addActionListener(this);//*乘号 B[8].addActionListener(this);//1 B[9].addActionListener(this);//2 B[10].addActionListener(this);//3 B[11].addActionListener(this);//-减号 B[12].addActionListener(this);//0 B[13].addActionListener(this);//.小数点 B[14].addActionListener(this);//=等于号 B[15].addActionListener(this);//+加好 b1.addActionListener(this); b2.addActionListener(this); f.addWindowListener(newcloseWin()); } publicvoidactionPerformed(ActionEvente) { Stringcommand=e.getActionCommand(); if(command=="清除")//清零键按下时返回初始状态 { y=0; tf.setText("0."); s1="";s2="";s3="";//记录输入值的变量清空 } elseif(command=="退出"){ newtuichu();//调用退出界面函数 }//退出键退出到退出界面 elseif(y==0&&command! ="*"&&command! ="/" &&command! ="+"&&command! ="-" &&command! ="=")//判断输入是否为数字 { s1=s1.concat(command); tf.setText(s1); } if(command=="*"||command=="/" ||command=="+"||command=="-")//判断是否输入运算符 { y=1; s2=command; } if(y==1&&command! ="*"&&command! ="/" &&command! ="+"&&command! ="-" &&command! ="=") {s3=s3.concat(command); tf.setText(s3); } if(command=="=") { Doubleob1=Double.valueOf(s1); Doubleob3=Double.valueOf(s3); d1=ob1.doubleValue(); d3=ob3.doubleValue(); if(s2=="+")d4=d1+d3; if(s2=="-")d4=d1-d3; if(s2=="*")d4=d1*d3; Doubleob4=newDouble(d4); tf.setText(ob4.toString()); if(s2=="/") {if(d3==0) tf.setText("除数不能为零"); else{d4=d1/d3; ob4=newDouble(d4); tf.setText(ob4.toString());} } y=0; } } publicstaticvoidmain(String[]args) { newjsq().init();//函数调用 } } classcloseWinextendsWindowAdapter//为关闭按钮编写程序 { publicvoidwindowClosing(WindowEvente) { newtuichu();//关闭调用退出界面函数 } } 6.3退出界面的代码: importjava.awt.Contai
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程设计 计算器 程序 报告