JAVA课程设计-计算器小程序报告.doc

上传人:wux****ua 文档编号:8351182 上传时间:2020-03-28 格式:DOC 页数:16 大小:152KB
返回 下载 相关 举报
JAVA课程设计-计算器小程序报告.doc_第1页
第1页 / 共16页
JAVA课程设计-计算器小程序报告.doc_第2页
第2页 / 共16页
JAVA课程设计-计算器小程序报告.doc_第3页
第3页 / 共16页
点击查看更多>>
资源描述
#学院JAVA语言课程设计报告小程序计算器系统管理班 级:#姓 名:#指导老师:#时间:2012年6月25日至6月29日目录1、课程设计概述-3 1.1 利用java编写计算器,使之具备一定的功能:-3 1.2 课程设计的主要思想-3 1.3 该项目设计的目的-32、需求分析方案-42.1 功能需求分析-42.2 性能需求分析-43、总体设计方案-53.1界面设计-53.2功能介绍-54、 详细说明、调试-64.1程序流程图-6 4.2部分代码说明-6 4.3程序调试与结果示例-85、 个人总结-106、 附录(代码)-116.1登陆界面代码 -116.2计算器主界面 -126.3 退出界面代码 -151.课程设计概述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编写、调试和运行Java Applet应用程序。(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部分代码说明段代码主要是对程序的主框架进行相应的设置。Frame f=new Frame(计算器小程序); 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);/设置为可见添加相应的按钮B0.addActionListener(this); /7 B1.addActionListener(this); /8 B2.addActionListener(this); /9 B3.addActionListener(this); /除号 B4.addActionListener(this); /4 B5.addActionListener(this); /5 B6.addActionListener(this); /*乘号 B8.addActionListener(this); /1 B9.addActionListener(this); /2 B10.addActionListener(this); /3 B11.addActionListener(this); / -减号 B12.addActionListener(this); /0 B13.addActionListener(this); /.小数点 B14.addActionListener(this); /=等于号 B15.addActionListener(this); /+加好 b1.addActionListener(this); b2.addActionListener(this); f.addWindowListener(new closeWin();运算设计代码:if(command=清除) /清零键 按下时返回初始状态 y=0; tf.setText(0.); s1=;s2=;s3=;/记录输入值的变量清空 else if(command=退出) System.exit(0);/退出键 关闭应用程序 else if(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=) Double ob1=Double.valueOf(s1); Double ob3=Double.valueOf(s3); d1=ob1.doubleValue(); d3=ob3.doubleValue(); if(s2=+) d4=d1+d3; if(s2=-) d4=d1-d3; if(s2=*) d4=d1*d3; Double ob4=new Double(d4); tf.setText(ob4.toString(); if(s2=/) if(d3=0) tf.setText(除数不能为零); else d4=d1/d3; ob4=new Double(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登录界面的代码:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class jiemian extends JFrame implements ActionListenerJButton button1,button2;JTextField text1,text2;JLabel jlb,jlb1,jlb2;public jiemian()super(java小程序登陆窗口);Container con=getContentPane();con.setLayout(null);jlb=new JLabel(您好!欢迎您登陆java小程序计算器);jlb1=new JLabel(请输入秘密:);/标签button1=new JButton(登陆);/登陆按钮button1.addActionListener(this); /添加监听者button2=new JButton(重置);/取消按钮button2.addActionListener(this); /添加监听者text1=new JPasswordField(10);/密码文本框(JPasswordField) text1).setEchoChar(*);/设置掩码text1.addActionListener(this); /添加监听者jlb2=new JLabel(密码提示:);/标签text2=new JTextField(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);public static void main(String args)new jiemian();/函数调用public void actionPerformed(ActionEvent e)if(text1.getText().equals(ruanjian11312)/判断密码text2.setText(密码正确);new jsq().init();/调用计算器主界面函数else if(text1.getText().equals(11312)/判断密码text2.setText(密码正确);new jsq().init();/调用计算器主界面函数elsetext2.setText(对不起,密码错误,请重新输入);if(e.getSource()=button2)text1.setText(null);text2.setText(null);/使文本框1、2反空6.2计算器主界面的代码:import java.awt.*; import java.awt.event.*;public class jsq implements ActionListener Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel(); TextField tf=new TextField(30); String a=7,8,9,/,4,5,6,*,1,2,3,-,0,.,=,+,; Button B; Button b1=new Button(清除); Button b2=new Button(退出); String s1=new String(); String s2=new String(); String s3=new String();/s1记录第一个数;s2记录运算符;s3记录第二个数; double d1,d3,d4; int y=0; / y用于控制运算符 public void init() Frame f=new Frame(计算器小程序); f.setBackground(Color.lightGray); f.setForeground(Color.blue);/数字颜色 p1.add(tf); p3.setLayout(new GridLayout(1,2); p3.add(b1); p3.add(b2); p2.setLayout(new GridLayout(4,4); B=new Buttona.length; for(int i=0;ia.length;i+) Bi=new Button(ai); p2.add(Bi); f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.CENTER); f.add(p3,BorderLayout.SOUTH); f.setSize(350,300);/设置面板大小 f.setVisible(true);/设置为可见 B0.addActionListener(this); /7 B1.addActionListener(this); /8 B2.addActionListener(this); /9 B3.addActionListener(this); /除号 B4.addActionListener(this); /4 B5.addActionListener(this); /5 B6.addActionListener(this); /*乘号 B8.addActionListener(this); /1 B9.addActionListener(this); /2 B10.addActionListener(this); /3 B11.addActionListener(this); / -减号 B12.addActionListener(this); /0 B13.addActionListener(this); /.小数点 B14.addActionListener(this); /=等于号 B15.addActionListener(this); /+加好 b1.addActionListener(this); b2.addActionListener(this); f.addWindowListener(new closeWin(); public void actionPerformed(ActionEvent e) String command = e.getActionCommand(); if(command=清除) /清零键 按下时返回初始状态 y=0; tf.setText(0.); s1=;s2=;s3=;/记录输入值的变量清空 else if(command=退出) new tuichu();/调用退出界面函数 /退出键 退出到退出界面 else if(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=) Double ob1=Double.valueOf(s1); Double ob3=Double.valueOf(s3); d1=ob1.doubleValue(); d3=ob3.doubleValue(); if(s2=+) d4=d1+d3; if(s2=-) d4=d1-d3; if(s2=*) d4=d1*d3; Double ob4=new Double(d4); tf.setText(ob4.toString(); if(s2=/) if(d3=0) tf.setText(除数不能为零); else d4=d1/d3; ob4=new Double(d4); tf.setText(ob4.toString(); y=0; public static void main(String args) new jsq().init(); /函数调用 class closeWin extends WindowAdapter /为关闭按钮编写程序 public void windowClosing(WindowEvent e) new tuichu(); /关闭调用退出界面函数 6.3退出界面的代码:import java.awt.Container;import java.awt.event.*;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;public class tuichu extends JFrame implements ActionListener JLabel jlb; JButton button;JButton button2;public tuichu()super(计算器退出);Container con=getContentPane();con.setLayout(null);jlb=new JLabel(谢谢你的光临,欢迎下次登录小程序计算器!);button=new JButton(退出); button2=new JButton(再次登录); jlb.setBounds(20,0,300,100);button.setBounds(70,70,60,30); button.addActionListener(this);/添加监听者button2.setBounds(150,70,100,30);button2.addActionListener(this); /添加监听者con.add(jlb);con.add(button);con.add(button2);setBounds(300,200,340,150);setVisible(true);public static void main(String args)new tuichu();Overridepublic void actionPerformed(ActionEvent e) if(e.getSource()=button)System.exit(0);/退出程序else if(e.getSource()=button2)new jiemian();/调用登陆界面函数
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!