




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#学院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 j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南侨中学分班考数学试卷
- 攀枝花初二统考数学试卷
- 2025年建筑工程类建筑三类人员专职安全生产管理人员(C3证)-项目负责人(B证)参考题库含答案解析
- 名校测试卷答案数学试卷
- 2025年学历类自考公共课大学语文-政治经济学(财)参考题库含答案解析
- 2025年学历类自考公共课-政治经济学(财)参考题库含答案解析
- 梦见不想做数学试卷
- 盘溪中学九年级数学试卷
- 2025年学历类自考专业(电子商务)电子商务概论-电子商务法概论参考题库含答案解析
- 2025年学历类自考专业(电子商务)市场营销(三)-电子商务网站设计原理参考题库含答案解析
- 法律知识培训课件
- 2024年安康社区工作者考试真题及答案
- 学院 军训协议书
- 农村房地产转让合同协议
- 拉链专业工艺讲解
- GB/T 5184-2016叉车挂钩型货叉和货叉架安装尺寸
- 软件系统平台对接接口方案计划
- 大连市劳动用工备案流程
- 某顶级小学2015-2018幼升小考试题
- 办公楼装饰装修 安全保证措施
- 客户订单确认表(共1页)
评论
0/150
提交评论