JAVA小应用程序Applet设计(计算器)实验报告(附代码)
- 格式:doc
- 大小:153.00 KB
- 文档页数:9
摘要本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开平方、求余、求倒数,还可以实现二进制与十进制之间的转换。
通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
关键词: java语言,计算器,算法目录摘要 (1)1概述 (3)设计目的及思路 (3)功能模块设计 (3)系统功能图 (3)2计算器的设计与实现 (4)程序界面 (4)程序源代码 (4)3计算器演示 (10)4运行调试及讨论分析 (13)5小结 (14)参考文献: (14)1概述设计目的及思路通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。
给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。
除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。
至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。
当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。
(2)减法两个数据进行减操作,可以为负数相减。
(3)乘法两个数相乘操作。
(4)除法两个数相除操作。
(5)开平方对任意一个数进行开方运算,可以是小数。
广东海洋大学学生实验报告书(学生用表)实验名称JAVA计算器程序设计课程名称JAVA程序设计课程号学院(系)专业班级学生姓名学号实验地点完成日期GDOU-B-11-112实验JAVA计算器程序设计1) 实验总结:刚做之前,勉强还能做些小程序,但在进行了计算器程序设计的时候,才发现很多语句还不能联系运用,大部分还是通过百度和书籍才勉勉强强完成,看来实践才是硬道理2) 实验目的通过计算器程序设计,能够更加深入的了解JAVA,熟悉图形用户的设计原理和程序结构等4)实验内容和步骤实验内容应用JAVA软件设计一个简易的计算器,实现基本的四则运算及括号设计流程1. 分析该计算器需要完成的功能。
用户能够完成添加括号和负号的四则混合运算,并且计算器能够自动识别运算符的优先级,根据用户输入的运算表达式,自动计算出相应的结果。
同时还完成了计算器中C按钮清屏功能和Backspace退格键。
2. 考虑异常处理。
(1)当输入的表达式中出现除零的操作,显示框将显示“Infinity(无穷大)”。
(2)当输入的表达式错误时,将弹出提示框显示“表达式错误请重新输入”(3)当计算器的显示文本框里为没有输入内容时直接点击等号按钮,将弹出提示框显示“对不起,您没有任何输入,请重新输入:”。
(4)当第一次输入乘号键,除号键,右括号,小数点,求余键,等号键,ce键,Backspace键时提示错误。
4. 考虑数据的处理目标计算表达式通过点击计算器界面上的按钮进行输入,当按下等号之后,计算器通过调用JAVA中script这个包中的相关类和方法来实现数据的处理。
5. 编码实现计算器的功能。
(1)新建相关的文件。
(2)引入JAVA中相关的包。
(3)新建类Jsq,并继承了类Frame,而且实现了接口ActionListener (4)定义相关的变量,创建相关组件,并对组件的属性进行设置。
(5)对所创建的组件进行布局,完成界面的实现。
(6)为各个组件添加事件监听器。
一、目標:通過Java程序開發實訓使學生掌握《面向對象程序設計(Java)》課堂講授の內容,靈活運用到Java程序の開發與設計中。
二、要求:按時參加Java程序開發實訓訓練,不得遲到和早退;獨立完成程序設計;按要求撰寫實踐報告。
三、詳細內容:使用《面向對象程序設計(Java)》課程講授內容,編寫一個簡單の計算器,要求實現如下功能:1.進行圖形界面設計通過圖形界面設計,掌握Frame類、Panel類、5種布局管理器、文本框、標簽及按鈕の使用方法。
2.實現計算器の基本功能包括加減乘除四則運算、清除結果等功能。
3.實現計算器の存儲計算功能包括清空、使用清零、退格。
和基本運算4.類の屬性及所用到の方法布局布局:整個界面(Frame)采用BorderLayout布局P1組件添加到Frameの南部P1采用默認の流式布局添加文本框P2組件添加到Frameの中部P2采用網格布局四行五列放各種按鈕用到の類:mycalKeyAdapterWindowAdapterMyCal類:mycal類の屬性:b[];按鈕數組保存各種按鍵以後放到Panel2中tf;文本匡顯示輸入及運算結果num1,num2,jieguo運算數char c,ch;運算符號,ch為輸入の運算符號,c保存ch輸入の“+-*/”Panel p1,p2;//兩個組件p1放文本匡p2放按鈕P2の布局為網格布局5行4列mycal類の方法:1.構造方法:設置標題;設置文本框;文本框中添加匿名內置類(KeyAdapter)實現鍵盤の輸入和運算;將各種組件添加到容器,設置各種按鍵の顏色;添加WindowListenr監聽器設置關閉按鈕;2.Main方法:新建一個mycal類;4.actionPerformed 方法:設置按鈕の輸入和運算,當按下運算數將其顯示在文本匡中如果之前清零則將零去除當按下運算符將其保存在c中並將文本匡內容清空當按下等號判斷字符cの符號進行相應の運算並將結果顯示在文本框中。
课程设计论文设计题目:java计算器学生:指导教师:专业名称:所在院系:摘要在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。
Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。
该程序是一个图形界面的java 计算器,其界面主要采用了swing包,程序实现了:(1)实现简单加、减、乘、除的运算。
(2)实现除了加、减、乘、除按钮外其他按钮功能。
(3)给软件添加一个编辑、查看、帮助的主菜单。
(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。
(5)科学型计算器与标准计算器之间的菜单切换。
Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。
在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。
与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。
目录第1章概要设计 (1)1.1查找资料 (1)1.2选题 (1)1.3标准型计算器界面设计 (1)1.4本章小节 (3)第2章程序整体设计说明 (4)2.1程序中所用到的变量 (4)2.2程序部分源代码及注释 (4)2.3本章小节 (15)第3章程序运行效果 (16)3.1程序运行主界面 (16)3.2程序中各按钮运行界面 (16)3.3本章小节 (20)第4章设计中遇到的重点及难点 (21)4.1设计中遇到的重点 (21)4.2设计中的遇到的难点 (21)4.3本章小节 (23)第5章本次设计中存在不足与改良方案 (24)5.1本次设计中存在的不足 (24)5.2本次设计的改良方案 (24)5.3本章小节 (24)结论 (25)参考文献 (26)致 (27)指导教师评语 (28)答辩委员会评语 (29)第1章概要设计1.1查找资料21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。
#####学院JA V A语言课程设计报告小程序计算器系统管理班级:#######姓名:###指导老师:###时间:2012年6月25日至6月29日目录1、课程设计概述--------------------------------------------------31.1利用java编写计算器,使之具备一定的功能:-----------------31.2 课程设计的主要思想--------------------------------------------------31.3 该项目设计的目的-----------------------------------------------------32、需求分析方案--------------------------------------------------42.1功能需求分析-----------------------------------------------42.2 性能需求分析-----------------------------------------------43、总体设计方案--------------------------------------------------53.1界面设计----------------------------------------------------------------------53.2功能介绍-----------------------------------------------------------------------54、详细说明、调试---------------------------------------------64.1程序流程图-------------------------------------------------------64.2部分代码说明-----------------------------------------------------64.3程序调试与结果示例-------------------------------------------85、个人总结-----------------------------------------------------106、附录(代码)-----------------------------------------------116.1登陆界面代码--------------------------------------------116.2计算器主界面--------------------------------------------126.3 退出界面代码-------------------------------------------151.课程设计概述1.1利用java编写计算器,使之具备一定的功能:(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据的复位(清零);(4)实数运算中小数位的精度一致。
1.整数计数器。
编写一个小应用程序,要求该小应用程序能够接受整数的输入,并能进行整数的加减乘除运算。
import java.awt.FlowLayout;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JApplet;import javax.swing.JButton;import javax.swing.JTextField;import javax.swing.JComboBox;public class calcu extends JApplet implements ActionListener{JTextField []a={new JTextField(2),new JTextField(2),new JTextField(2)};String []s={" + "," - "," * "," / "};JComboBox cb=new JComboBox(s);public void init(){Container c=getContentPane();c.setLayout(new FlowLayout());a[0].setEditable(true);a[1].setEditable(true);JButton k=new JButton("=");c.add(a[0]);int n=4;for(int i=0;i<n-1;i++){c.add(cb);}c.add(a[1]);c.add(k);c.add(a[2]);k.addActionListener(this);}public void actionPerformed(ActionEvent e){switch(cb.getSelectedIndex()){case 0:a[2].setText( Integer.parseInt(a[0].getText())+ Integer.parseInt(a[1].getText())+"" );break;case 1:a[2].setText( Integer.parseInt(a[0].getText())- Integer.parseInt(a[1].getText())+"" );break;case 2:a[2].setText( Integer.parseInt(a[0].getText())* Integer.parseInt(a[1].getText())+"" );break;case 3:a[2].setText( Integer.parseInt(a[0].getText())/ Integer.parseInt(a[1].getText())+"" );break;}}}<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="Generator" content="EditPlus®"><meta name="Author" content=""><meta name="Keywords" content=""><meta name="Description" content=""><title>计数器</title></head><body><applet code="calcu.class" width=200 height=150></applet><br></body></html>程序结果:。
课题名称:简单计算器的应用学生指导教师课题名称简单计算器的应用设计时间设计地点设计目的一、课题介绍1、课题要求(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据的复位(清零);(4)实数运算中小数位的精度一致。
2、课题设计思想对于此计算器程序,首先要设计其GUI界面,总体界面有一个文本框,18个按钮,总体界面用BorderLayout布局。
文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。
布局设计好后再添加按钮事件。
对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。
这是计算器中的一种:简单计算器,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;还能通过用户自己在文本框中输入数字,进行简单运算;如果输入有误时可以按Clear撤销后重新输入新数据。
二、详细设计过程1、界面设计界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用awt中的BorderLayout和GridLayout布局管理方式,窗体名称jisuan继承JFrameActionListener接口,并实现public void actionPerformed(ActionEvent e){}方法。
定义菜单、菜单条、菜单项、按钮、文本框、容器,设置为private类型。
定义变量double memoryd;//使用内存中存储的数字;DecimalFormat df;//保留小数位数。
一、目标:通过Java程序开发实训使学生掌握《面向对象程序设计(Java)》课堂讲授的内容,灵活运用到Java程序的开发与设计中。
二、要求:按时参加Java程序开发实训训练,不得迟到和早退;独立完成程序设计;按要求撰写实践报告。
三、详细内容:使用《面向对象程序设计(Java)》课程讲授内容,编写一个简单的计算器,要求实现如下功能:1.进行图形界面设计通过图形界面设计,掌握JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法。
2.实现计算器的基本功能包括加减乘除四则运算、倒数、平方根及清除结果等功能。
3.实现计算器的存储计算功能包括存储中间结果(MS)、使用中间结果(MR)、累加中间结果(M+)及清除中间结果(MC)的功能。
4.计算器的扩展功能包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余弦、反正切、反余切及2进制、8进制、16进制、10进制之间的相互转换等功能.四、源代码import java。
awt.BorderLayout;import java.awt.Color;import java。
awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java。
awt.event.ActionListener;import java.awt。
event。
KeyEvent;import java.text.DecimalFormat;import javax。
swing.JButton;import javax.swing.JFrame;import javax。
swing.JLabel;import javax。
swing.JMenu;import javax.swing。
JMenuBar;import javax。
swing。
JMenuItem;import javax。
摘要本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开平方、求余、求倒数,还可以实现二进制与十进制之间的转换。
通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
关键词: java语言,计算器,算法目录摘要.................................... 错误!未定义书签。
1概述................................... 错误!未定义书签。
设计目的及思路............................................ 错误!未定义书签。
功能模块设计.............................................. 错误!未定义书签。
系统功能图................................................ 错误!未定义书签。
2计算器的设计与实现..................................... 错误!未定义书签。
程序界面.................................................. 错误!未定义书签。
程序源代码................................................ 错误!未定义书签。
3计算器演示............................. 错误!未定义书签。
4运行调试及讨论分析..................... 错误!未定义书签。
5小结........................................................ 错误!未定义书签。
参考文献: ..................................................... 错误!未定义书签。
重庆科创职业学院《Java高级应用开发》课程作业(二)课题名称: Applet计算器的设计与实现专业:计算机应用技术班级:计算机应用ZK0901学号:姓名:成绩:_____________ ___________ 完成时间:二○一○年十一月十五日一、课题设计目的1、掌握Applet的生命周期及各种方法的应用;2、掌握Applet小应用程序的编写及运用;3、通过本次课题设计,进一步理解面向对象程序设计的方法和图形用户界面的设计。
二、课题的描述和要求本次课题要求运用JAVA语言完成一个基于Applet的简单计算器,可以应用于网页中某些特殊的计算。
该计算器除了具备简单的计算功能外,还需要完成背景音乐的播放,其参考界面如下:三、课题设计的步骤在开始具体程序编写之前,首先应该将简单计算器的运算过程分析清楚,画出计算器运算的控制流程图。
3.1 计算器运算过程分析任务一:请根据计算机自带计算器完成运算过程分析,写出运算的详细过程。
该如何分析呢?比如,第一次点数字按钮该做什么?如果第一次点的是运算符按钮又该怎么做?第二次点数字又该怎么做?如果第二次点的是运算符按钮又该怎么做?分析过程中注意以下两个问题:问题1:如何记录前后两个操作数?问题2:怎么知道现在是否该计算结果?解决方案:通过声明两个字符串变量foreScreen和backScreen来记录当前操作数(第2个操作数)和前一个操作数(第1个操作数),通过声明两个字符串变量operatorCurrent和operatorPre来记录当前的运算符和前一个运算符。
1、点击的是“数字”按钮,则将foreScreen与当前按钮上数值连接起来,并且将文本框中内容设置为foreScreen。
2、点击的是“运算符”按钮,(1)如果foreScreen和backScreen两个操作数都不为空(必定已经点击了一个运算符,即operatorCurrent中有值),则将operatorCurrent的值赋值给operatorPre,并将计算结果放入backScreen中后把foreScreen的值清空和把当前点击的运算符按钮值赋值给operatorCurrent。
图形用户界面设计和小应用程序一.实验目的:1.掌握常见组件的定义共处五项原则2.掌握事件处理的原理和事件处理程序的编程方法3.熟悉JApplet类,掌握applet的程序结构二、实验内容:1.创建组件2.写出相应的事件处理程序,创建监听程序对象,注册监听程序对象三.实验要求:1.编写一个猜数字的游戏,按下“产生随机数”按钮产生一个0~9的随机数,则在屏幕的提示框显示“输入所猜测的数字”,当输入所猜测的数字并按“确定”按钮后,在提示框中提示“输入正确”(或“猜小了”、或“猜大了”)。
程序如下:package aa;import java.awt.*;import java.awt.event.*;public class GuessNum extends Frame implements ActionListener{ int min=0;int max=100;int i=0;int number=(int)(10*Math.random());TextField text1=new TextField("请输入0到9之间的整数");TextField text2=new TextField();Button btn=new Button("确定");Label lab1=new Label("信息提示区:");Label lab2=new Label("请输入猜测数字:");GuessNum(){super("猜字游戏");setSize(500,300);setVisible(true);setLayout(null);add(lab1);lab1.setBounds(30,80,100,30);add(text1);text1.setBounds(150,80,300,30);text1.setEditable(false);add(lab2);lab2.setBounds(30,130,100,30);add(text2);text2.setBounds(150,130,300,30);add(btn);btn.setBounds(200,180,100,30);btn.addActionListener(this);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent we){System.exit(0);}});}public static void main(String[] args){new GuessNum();}public void actionPerformed(ActionEvent e){try{i=Integer.parseInt(text2.getText());if(i<min||i>max){text1.setText("输入错误,请重新输入一个"+min+"到"+max+"之间的整数");text2.setText("");}else {if(i<number){min=i;text1.setText("猜小了");text2.setText("");}else if(i>number){max=i;text1.setText("猜大了");text2.setText("");}else if(i==number){text1.setText("恭喜猜中了!!数字为"+number);}}}catch(NumberFormatException ie){text1.setText("输入错误,请重新输入一个"+min+"到"+max+"之间的整数");text2.setText("");}}}运行结果:程序如下:package aa;import java.awt.Graphics;import javax.swing.*;public class DrawCircle extends JApplet {public void init() {CirclePanel panel = new CirclePanel();add(panel);}}class CirclePanel extends JPanel {public void paintComponent(Graphics g) {super.paintComponent(g);int d = getWidth() > getHeight() ? getHeight() : getWidth();int circleX = d / 2;int i = 0;while ((circleX - i * 5) > 0) {i++;g.drawOval(circleX - i * 5, circleX - i * 5, 2*i * 5, 2*i *5);}}}运行结果:对应的HTML文件:四、实验结论:通过这次上机实验,我掌握了基本的GUI设计及javaApplet小程序的设计基础以及其常见组件的定义共处原则,还熟悉了图像用户界面设计里事件处理的原理以及事件响应程序的编程方法。
java简易计算器实训报告一、实训目的与背景本次实训的主要目的是通过编写一个简易计算器程序,学习和掌握Java编程语言的基本语法和面向对象编程的思想,了解Java语言中常用的数据类型、运算符、控制语句和输入输出方法等。
二、实训内容1.计算器的实现本次实训中,我以控制台界面为主,编写了一个简易的Java计算器程序。
程序支持基本的四则运算,包括加减乘除和取模运算。
同时,程序还支持多次运算,并能够检查输入的表达式是否合法。
2.面向对象设计在本次实训中,我采用了面向对象的设计思想,将整个程序分解成若干个类,通过类之间的交互实现计算器的功能。
(1)定义了一个名为Calculator的类,该类包含了计算器的主要功能方法,如加减乘除和取模运算等。
(2)定义了一个名为Operation的类,该类封装了运算符和运算数,便于进行表达式的解析处理。
三、实训过程1.需求分析在编写本次实训的计算器程序之前,我先对计算器的功能需求进行了分析。
(1)程序需要支持基本的四则运算,包括加减乘除和取模运算。
(2)程序需要支持多次运算。
(3)程序需要检查输入的表达式是否合法,避免出现错误。
2.编写程序在需求分析完成后,我开始着手编写程序。
首先,我创建了一个名为Calculator 的类,该类包含了计算器的主要功能方法。
在Calculator类中,我定义了以下几个方法:(1)addition方法:用于实现加法运算。
(2)subtraction方法:用于实现减法运算。
(3)multiplication方法:用于实现乘法运算。
(4)division方法:用于实现除法运算。
(5)modulo方法:用于实现取模运算。
(6)calculate方法:用于解析表达式并计算结果。
(7)main方法:用于启动程序。
接着,我定义了一个Operation类,封装了运算符和运算数,方便进行表达式的解析处理。
在Operation类中,我定义了以下两个属性:(1)operator:用于存储运算符。
中南民族大学计算机科学学院Java程序设计实验一报告2014—2015第二学期课程名称: Java程序设计院系:计算机科学学院年级: 2013 专业:计算机科学与技术班级: 1大班小组成员(学号姓名):201321091035 高波 201321091071 王吉201321151065 锁松源指导教师:强小利2015年5月实验一Java 计算器编程1. 实验类型:设计型2. 实验目的(1)熟悉Java编程环境JDK和NetBeans的安装,配置和使用;(2)掌握Java Application的编写及调试;(3)掌握Java图形用户界面的设计及其编程;(4)熟练掌握Java的事件委托处理模型;(5)熟练掌握java.awt包常用类的使用;(6)掌握Java的封装、继承和多态程序设计。
3. 实验任务利用Java编程技术实现一个简单的计算器,具体要求如下:(1)编写一个Java Application,使得程序能提供计算器的一般计算功能,计算器界面如下:(2)使用java.awt.Frame创建一个窗框。
(3)为计算器的每个按钮(button)注册监听器。
(4)利用FlowLayout、BorderLayout、GridLayout设置容器的布局。
(5)利用容器间的嵌套策略来布置整个计算器的界面,充分利用Panel作为中间层容器的优点。
(6)对于带括号的表达式,能够根据优先次序求解表达式的值。
以下为选做功能:(7)能够对大整数进行运算。
4. 组内分工(说明每个成员分工的编程工作)王吉主要负责实现计算器的基本功能包括加减乘除四则运算、倒数、平方根及清除结果等功能。
高波负责通过图形界面设计,掌握JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法。
锁松原负责按钮监听,计算器的每个按钮(button)注册监听器。
5. Java源代码import java.awt.*;import java.awt.event.*;import java.util.Stack;import javax.swing.*;public class Calculator extends JFrame implements ActionListener{private JTextField txtResult;private JPanel p;private String name[] = { "7", "8", "9", "+", "4", "5", "6", "-","1", "2", "3", "*", "0", ".", "=", "/", "π", "C", "(", ")" };private JButton button[] = new JButton[name.length];private JMenuBar menuBar;//菜单栏的实现。
. word教育资料 小应用程序Applet设计 一、 课题内容和要求 内容:设计和编写一个可以用鼠标操作的Applet小应用程序和相应的HTML页面,观察Applet的执行过程,测试程序鼠标用户交互操作的效果。 要求:要求学生能在学习和理解课堂学习内容中JAVA小应用程序的基础上,通过实验,培养学生将JAVA小应用程序相关知识点(包括JAVA Applet和低级事件处理模型)有机结合,设计基于WEB浏览器的小应用程序的能力。 二、设计思路分析 class App:一个Java Applet计算器的主类 public void init():完成初始化applet public boolean action():实现事件处理的方法 public void doOperator():运算及运算结果输出操作 public void doForeScreen():数字和小数点输出到文本框操作 public void doClear():清空操作 三、概要设计 public class App extends Applet { TextField tfAnswer; Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9; Button bPoint, bEqual, bPlus, bMinus, bClear, bMulti, bDivision; String OperatorCurrent, OperatorPre; String ForeScreen, BackScreen; boolean isFloat = false; . word教育资料 public void init(); public boolean action(Event e, Object o); public void doOperator() public void doForeScreen(String s); public void doClear(); } 事件处理:
运算及运算结果输出: 四、详细设计 Java代码: import java.awt.*; . word教育资料 import java.applet.*; public class App extends Applet { TextField tfAnswer;// 定义变量 Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9; Button bPoint, bEqual, bPlus, bMinus, bClear, bMulti, bDivision; String OperatorCurrent, OperatorPre; String ForeScreen, BackScreen; boolean isFloat = false;
public void init() {// 初始化 OperatorCurrent = new String(""); OperatorPre = new String(""); ForeScreen = new String("0");// 保证输入字符串不为空防止计算错误 BackScreen = new String(""); setBackground(Color.gray); setLayout(null);// 设为空布局便于自定义组件位置 tfAnswer = new TextField();// 设置文本框样式 tfAnswer.setBounds(20, 20, 175, 40); tfAnswer.setFont(new Font(BackScreen, Font.BOLD, 28)); add(tfAnswer); tfAnswer.setText(ForeScreen); bClear = new Button("C");// 设置按钮样式 bClear.setBounds(20, 70, 40, 40); add(bClear);
bDivision = new Button("/"); bDivision.setBackground(Color.green); bDivision.setBounds(65, 70, 40, 40); add(bDivision);
bMulti = new Button("*"); bMulti.setBackground(Color.green); bMulti.setBounds(110, 70, 40, 40); add(bMulti);
bMinus = new Button("-"); bMinus.setBackground(Color.green); bMinus.setBounds(155, 70, 40, 40); add(bMinus);
b7 = new Button("7"); b7.setBounds(20, 115, 40, 40); b7.setBackground(Color.orange); . word教育资料 add(b7); b8 = new Button("8"); b8.setBackground(Color.orange); b8.setBounds(65, 115, 40, 40); add(b8); b9 = new Button("9"); b9.setBackground(Color.orange); b9.setBounds(110, 115, 40, 40); add(b9);
bPlus = new Button("+"); bPlus.setBackground(Color.green); bPlus.setBounds(155, 115, 40, 85); add(bPlus);
b4 = new Button("4"); b4.setBackground(Color.orange); b4.setBounds(20, 160, 40, 40); add(b4); b5 = new Button("5"); b5.setBackground(Color.orange); b5.setBounds(65, 160, 40, 40); add(b5); b6 = new Button("6"); b6.setBackground(Color.orange); b6.setBounds(110, 160, 40, 40); add(b6);
b1 = new Button("1"); b1.setBackground(Color.orange); b1.setBounds(20, 205, 40, 40); add(b1); b2 = new Button("2"); b2.setBackground(Color.orange); b2.setBounds(65, 205, 40, 40); add(b2); b3 = new Button("3"); b3.setBackground(Color.orange); b3.setBounds(110, 205, 40, 40); add(b3);
bEqual = new Button("="); bEqual.setBackground(Color.green); bEqual.setBounds(155, 205, 40, 85); . word教育资料 add(bEqual); b0 = new Button("0"); b0.setBackground(Color.orange); b0.setBounds(20, 250, 85, 40); add(b0); bPoint = new Button("."); bPoint.setBackground(Color.orange); bPoint.setBounds(110, 250, 40, 40); add(bPoint); }
public boolean action(Event e, Object o) {// 实现事件处理的方法 String s = new String(""); if ((e.target == b0) || (e.target == b1) || (e.target == b2) || (e.target == b3) || (e.target == b4) || (e.target == b5) || (e.target == b6) || (e.target == b7) || (e.target == b8) || (e.target == b9)) {// 获取数字按钮数据并在控制台和文本框输出 if (e.target != bPoint) {// 获取数字 s = (String) o; doForeScreen(s);
} } if ((e.target == bPoint) && !ForeScreen.contains(".")) {// 保证原数不含小数点的情况下获取小数点并在控制台和文本框输出 s = (String) o; if (ForeScreen.equals(""))// 原来没有输入数据则用0. { doForeScreen("0.");
} else// 原来有输入数据则用. { doForeScreen(s);
} }
if (e.target == bClear) {// 清除按钮进行清除操作 doClear(); } if ((e.target == bMulti) || (e.target == bDivision) || (e.target == bPlus) || (e.target == bMinus) || (e.target == bEqual)) {// 加减乘除等于按钮获取运算操作符并进行