JAVA小应用程序Applet设计(计算器)实验报告(附完整代码)
- 格式:doc
- 大小:152.00 KB
- 文档页数:9
实验九实验名称:Applet应用程序设计实验目的:了解Applet运行机制,掌握Java Applet程序结构和开发过程,了解Applet与浏览器的通信。
实验环境:PC机一台,软件Windows 7 +JDK编译器+JCreator编译环境+MyEclipse编译环境。
实验内容和步骤:1、显示"Welcome to Java Programming!"(源程序参见实验指导书)HTML 代码:<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>WelcomeApplet.html</title><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"> <meta http-equiv="description"content="this is my page"><meta http-equiv="content-type"content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head><body><applet code="WelcomeApplet.class"width="260"height="100"></applet></body></html>HTML 代码:<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>WelcomeApplet3.html</title><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"> <meta http-equiv="description"content="this is my page"><meta http-equiv="content-type"content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head><body><applet code="WelcomeApplet3.class"width="260"height="100"></applet></body></html>2、编写Applet显示字符串“This is HEBUT.”,设置字符串的显示位置、字体、大小和颜色。
实验12 Java Applet实验内容Applet 生命周期一、Applet 生命周期实验目的:(1) 掌握JavaApplet 程序的基本结构和编写方法;(2) 了解Applet 的生命周期和运行过程。
实验任务1:编写Applet 程序实现init()、start()、stop()、destory() 方法,并观察其运行过程。
[参考程序](4)保存所有文件,运行该Applet 程序。
使用缺省Applet查看器类, 可观察运行结果如图12-1 所示。
图12-1思考(l) 运行AppletLifeCycle 时, 观察Eclipse控制台视图中的输出内容。
(2)将窗口最小化, 然后还原, 观察Eclipse控制台视图中的输出内容。
分析为什么不同动作会有不同语句输出。
答:因为Applet对象创建后调用的init()方法(Applet的初始化方法),只在Applet首次加载入浏览器时被调用。
Applet被初始化后,当浏览器在页面上显示Applet时调用start()方法,同时调用paint()方法。
浏览器被最小化时会调用stop()方法,当浏览器在被最小化后又恢复时,又会调用start()方法。
用户最小化界面,然后又恢复界面,此时AWT线程会自动调用组件的paint()方法,重新显示组件的外观。
(3) 请单击图12-1 中的Stop 按钮, 观察Eclipse控制台视图中的输出内容。
Now stop()is working.再单击Start按钮, 观察Eclipse控制台视图中的输出内容。
Now init()is working.Now start()is working.The applet runs paint().最后单击Exit 按钮, 观察Eclipse控制台视图中的输出内容。
Now stop()is working.Now destroy()is working.分析为什么单击相应按钮会有不同语句在控制台中输出。
实验六 Applet应用程序一、实验目的1.理解Applet 程序的工作原理和使用方法;2.熟练掌握Applet程序开发;3.掌握多媒体的实现手段和使用方法;4.掌握Applet传递参数的方法。
二、实验要求1.掌握在 Applet 容器中添加组件的方法;2.熟练使用图形类 Graphics。
3.掌握插入图像与播放音乐的方法。
4.了解 Applet 的生命周期。
5.掌握向applet中传递参数。
三、实验内容(一)创建图形用户界面1.在Applet 中添加标签、按钮并使用网格布局程序功能:在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。
编写SY6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class SY6_1 extends Applet {Label l1;Button b1, b2, b3, b4, b5, b6;public void init() {setLayout(new GridLayout(3,3));l1=new Label("标签1");b1 = new Button("按钮1");b2 = new Button("按钮2");b3 = new Button("按钮3");b4 = new Button("按钮4");add(l1);add(b1);add(b2);add(b3);add(new Label());add(b4);add(new Button("按钮5"));add( new Button("按钮6"));add(new Label("标签2"));}}编译程序SY6_1.java。
实验报告课程名称Java程序设计实验项目实验四Java Applet系别电子信息工程专业/班级姓名实验日期_______________________ 成绩_______________________指导教师一、实验题目:实验四Java Applet二、实验内容:编写Applet程序,在界面上打印出自己的学号、姓名、班级以及由字符“*”组成的实心菱形三、程序清单及结果:(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果)1)程序清单及注释//package appletdemo;import java.applet.Applet;import java.awt.Color;import java.awt.Graphics;public class MyApplet extends Applet {private static final long serialVersionUID = 1L;public void init(){}public void start()}public void stop(){}public void destroy(){}public void paint(Graphics g){for(int i=0; i < 7; i++){for(int j=0; j < 7; j++){g.setColor(Color.blue);if(i <= 3) //左上角{if(j <= 3){if(i + j >= 3)g.drawString("*", i*20+50, j*20+50);}}//g.setColor(Color.red);if(i > 3) //左下角{if(j <= 3){int tmp = i - 3;if(tmp <= j)g.drawString("*", i*20+50, j*20+50);}}//g.setColor(Color.yellow); //右上角if(i <= 3){if(j > 3){int tmp = j - 3;if(i >= tmp)g.drawString("*", i*20+50, j*20+50);}}//g.setColor(Color.green); //右下角if(i > 3){if(j > 3){if((i + j - 4) < 6)g.drawString("*", i*20+50, j*20+50);}}}//内层for}//外层forg.drawString("学号:xxxx",8*20,8*20);g.drawString("姓名:某某",8*20,9*20);g.drawString("班级:yyyy",8*20,10*20);}}下面是html文件:<HTML><HEAD><TITLE>第四次试验</TITLE></HEAD><BODY> <APPLET CODE=MyApplet.class WIDTH=300 HEIGHT=300 ></APPLET></BODY></HTML>2)程序运行结果浏览器打开如下:Appletviewer.exe运行如下:四、程序调试报告及总结这次实验,我学会了编写applet小应用程序,applet小应用程序与application应用程序不一样,applet程序必须有 init()、start()、stop()、destroy()方法,构成一个生命周期,而且不需要main方法,applet程序不能独立运行,只能用浏览器或者虚拟机运行。
j a v a编写的简单的计算器程序-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN计算器项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。
项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动;1.Applet容器中组件的添加与设置,包括面板以及菜单的使用;2.容器中组件的布局管理;3.Java核心包中数组、数学计算类的使用;4.异常的处理;5.事件处理模型中的三类对象的使用:1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。
2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。
3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。
6.程序中事件处理的流程:1.计算流程的细化参考代码:import .*;import .*;import .*;importimportimportpublic class Calculatorimplements ActionListener { #############"); dd(panel);panel1 = new JPanel();panel2 = new JPanel();(new BorderLayout());键入计算的第一个数字。
\n");("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。
\n"); ("3. 键入计算的下一个数字。
\n");("4. 输入所有剩余的运算符和数字。
\n");("5. 单击“=”。
#####学院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)实数运算中小数位的精度一致。
《Java语言程序设计》实验报告this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2); //窗口居中this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.addComponentListener(this); //注册组件事件监听器JPanel jpanel = new JPanel();this.getContentPane().add(jpanel,"North");button_t = new JButton("椭圆");jpanel.add(button_t);button_t.addActionListener(this);button_j = new JButton("矩形");jpanel.add(button_j);button_j.addActionListener(this);canvas = new RoseCanvas(Color.red); //创建自定义画布组件this.getContentPane().add(canvas,"Center");this.setVisible(true);}public void actionPerformed(ActionEvent e) //按钮单击事件处理方法{if(e.getSource()==button_t){i=1;canvas.seti(i);}if(e.getSource()==button_j){i=2;canvas.seti(i);}canvas.repaint(); //重画}public void componentResized(ComponentEvent e) //改变组件大小时{this.repaint(); //重画}public void componentMoved(ComponentEvent e) {}public void componentHidden(ComponentEvent e) {}public void componentShown(ComponentEvent e) {}public static void main(String arg[]){new RoseJFrame();}}class RoseCanvas extends Canvas //画布组件{private Color color; //颜色private static int i;public RoseCanvas(Color color){this.setColor(color);}public void seti(int i){this.i = i;;}public void setColor(Color color){this.color = color;}public void paint(Graphics g) //在Canvas上作图{int x0 = 50;//this.getWidth()/2; //(x0,y0)是组件正中点坐标int y0 = 50;//this.getHeight()/2;// g.setColor(color); //设置画线颜色// g.drawLine(x0,0,x0,y0*2); //画X轴// g.drawLine(0,y0,x0*2,y0); //画Y轴/* for (int j=40; j<200; j+=20) //画若干圈四叶玫瑰线for (int i=0; i<1023; i++) //画一圈四叶玫瑰线的若干点{double angle = i*Math.PI/512;double radius = j*Math.sin(2*angle);int x =(int) Math.round(radius * Math.cos(angle) * 2);int y =(int) Math.round(radius * Math.sin(angle));g.fillOval(x0+x,y0+y,1,1); //画直径为1的圆就是一个点}*/if(i==1){实验内容g.setColor(Color.red);//g.drawLine( x0, y0, x0, y0*2);g.drawOval(x0, y0, 100, 60);}if(i==2){g.setColor(Color.blue);g.drawRect(x0, y0, 100, 60);}}}运行结果:实验分析本次试验我建立在课本例题的基础上,略加修改而成。
西安财经学院管理学院 《Java 程序设计》 实验报告
实验名称 Java Applet 小应用程序 实验室 实验楼303 实验日期 5月27 一、实验目的及要求
1. 了解 Applet 类及其中的方法。
2. 掌握Applet 中添加AWT 组件的方法
3. 掌握Applet 中传递参数的方法;
4. 掌握Applet 运行的方法。
二、实验环境
jdk-6u12-windows-i586-p
三、实验内容
1. 在Applet 中添加任一个或多个AWT 组件,并响应该组件的事件处理过程,功能
不限。
2. 创建applet 小程序,通过html 文件传递若干个参数给该Applet ,功能不限。
四、实验步骤
实验一:1、编写好java 代码,放在记事本上,存储在E:\11下,如图:
2、再编写一个html 代码存放在同一个文件夹下面,保存为LabelDemo.html ,如图:
3、在命令提示符上运行如下图,并弹出小应用程序:
姓名
学号
班级
年级 大三
指导教师
实验二:
1、编写好java代码,放在记事本上,存储在E:\22下,如图:
2、再编写一个html代码存放在同一个文件夹下面,保存为TextFieldDemo.html,如图:
3、在命令提示符上运行如下图:
4、点击TextFieldDemo.html形成的网址,如图所示:
友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。
面向对象程序设计实验报告学院计算机科学与技术学院专业计算机科学与技术学号姓名指导教师2016 年 1 月 1 日一、实验目的参照Windows计算器功能,用java语言编写一个图形化计算器程序,实现加、减、乘、除等运算。
二、实验题目Java计算器的编写三、实验内容import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends JFrame implements ActionListener {//定义字符型数组,存放按钮字符private final String[] str = { "sqrt","+/-","CE","C","7", "8", "9", "/", "4", "5", "6", "*", "1","2", "3", "-", "0",".", "=", "+" };//定义按钮数组,用于实现上面的按钮字符JButton[] buttons = new JButton[str.length];//定义文本行,初始显示0JTextField display = new JTextField("0");//计算器构造函数public Calculator() {super("计算器");//panel1是集合了数字和运算符的面板JPanel panel1 = new JPanel(new GridLayout(5, 4)); for (int i = 0; i < str.length; i++) {//把按钮数组加进来buttons[i] = new JButton(str[i]);panel1.add(buttons[i]);}this.addWindowListener(new WinClose());//panel2是文本域和归零面板JPanel panel2 = new JPanel(new BorderLayout()); panel2.add("Center", display);getContentPane().setLayout(new BorderLayout());getContentPane().add("North", panel2);getContentPane().add("Center", panel1);// 为每个数字和运算符按钮添加事件监听器for (int i = 0; i < str.length; i++)buttons[i].addActionListener(this);//为文本域添加事件监听器display.addActionListener(this);//设置窗口位置setBounds(500, 200, 400, 400);//设置框架不能改变大小setResizable(false);//设置组件可见setVisible(true);//调整此窗口的大小,以适合其子组件的首选大小和布局 pack();}//value用来记录当前文本域的数值double value=0;public void actionPerformed(ActionEvent e) {String label = e.getActionCommand();if(label.equals("CE")){display.setText("");}else if(label.equals("C")){handleC();}else if(label.equals("sqrt")){value=Double.parseDouble(display.getText());if(value<0){display.setText("负数不存在平方根!");}else{value=Math.sqrt(value);display.setText(String.valueOf(value));}}else if(label.equals("+/-")){value=Double.parseDouble(display.getText())*(-1);display.setText(String.valueOf(value));}else if ("0123456789.".indexOf(label) >= 0)/*("0123456789.".indexOf(label) >= 0)意思是当前输入的数字是“0123456789”中的一个时,响应输入数字事件,和下面同效果* (label.equals("0")|| label.equals("1")|| label.equals("2")|| label.equals("3")|| label.equals("4")|| label.equals("5")|| label.equals("6")||label.equals("7")||label.equals("8")||label.equals("9")||label.equals("."))*/handleNumber(label);elsehandleOperator(label);}//设置布尔型变量,用于标记是否是第一次按下小数点,初始为是boolean isFirstDigit = true;//响应数字按钮public void handleNumber(String key) {if (isFirstDigit)display.setText(key);else if ((key.equals(".")) && (display.getText().indexOf(".") < 0))display.setText(display.getText() + ".");else if (!key.equals("."))display.setText(display.getText() + key);isFirstDigit = false;}//归零按钮C响应public void handleC() {display.setText("0");isFirstDigit = true;operator = "=";}Double number = 0.0;String operator = "=";//响应运算符按钮public void handleOperator(String key) {if (operator.equals("+")){number += Double.valueOf(display.getText()); display.setText(String.valueOf(number));}else if (operator.equals("-")){number -= Double.valueOf(display.getText()); display.setText(String.valueOf(number));}else if (operator.equals("*")){number *= Double.valueOf(display.getText());display.setText(String.valueOf(number));}else if (operator.equals("/")){if(Double.parseDouble(display.getText())==0){display.setText("error:除数不能为0");}else{number /= Double.valueOf(display.getText());display.setText(String.valueOf(number));}}else if (operator.equals("=")){number = Double.valueOf(display.getText()); display.setText(String.valueOf(number));}operator = key;isFirstDigit = true;}public static void main(String[] args) {//程序入口,新建计算器new Calculator();}}//实现窗口事件监听器接口class WinClose implements WindowListener{public void windowClosing(WindowEvent ev){System.exit(0);}public void windowsOpend(WindowEvent ev){}public void windowActivated(WindowEvent ev){}public void windowsDeactivated(WindowEvent ev){}public void windowClosed(WindowEvent ev){}public void windowIconified(WindowEvent ev){}public void windowDeiconified(WindowEvent ev){}@Overridepublic void windowDeactivated(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowOpened(WindowEvent e) {// TODO Auto-generated method stub}}四、实验结果及分析(一、)程序功能测试:1、加法、减法、乘法、除法测试:20+0.5=20.5100-10.5=89.520*20=4000/2=02/0报错1/2=0.52、Sqrt(开方)测试:√25=5 负数开方报错3、+/-测试:-2+1.5=-0.54、CE(清除当前输入项)和C(清除整个计算式)测试:计算10+20=30时输入10+22然后按下CE清除22,重新输入20。
实验项目二Java Applet设计实验目的:1.了解Applet的生命周期和绘图周期,理解Applet与浏览器之间的关系与交互过程;2.了解Java的绘图机制,及实现更为出色绘图效果的Java 2D3.学会编写Applet程序。
实验要求:1.上机实验前,仔细阅读实验指导书,按照每一个实验题目的具体要求提前完成准备工作,如:查找资料、设计算法、写出全部源程序,做好预习笔记,做到有准备地上机。
2.上机实验课内,积极调试及修改程序。
得到正确运行结果后,积极主动要求指导教师验收程序,回答指导教师提出的问题。
3.上机实验课后,学生应根据实验数据及结果,完成实验报告。
实验报告是评定实验成绩的重要组成部分。
完成的实验报告交给实验小组组长,实验小组组长收齐本组的实验报告后统一交指导教师审阅评定。
4.每次上交的实验报告每个实验小组必须有1/5的成员为打印版的实验报告,其他成员可上交电子版的实验报告。
由实验小组组长确定交打印版的成员。
实验内容:任务1.编写一个Java Applet程序,该程序使用drawLine方法绘制一个5x9的网格。
请提出你的探究问题并回答。
import java.awt.*;import javax.swing.*;import java.applet.*;import java.awt.Graphics;public class GraphicsTester extends Applet {public void paint( Graphics g ) {resize(200, 500);super.paint( g );g.setColor(Color.blue); // call superclass's paint methodg.drawLine(10, 10,100,10);g.drawLine(10, 20,100,20 );g.drawLine(10, 30,100,30 );g.drawLine(10, 40,100,40 );g.drawLine(10, 50,100,50 );g.drawLine(10, 60,100,60 );g.drawLine(10, 10, 10,60 );g.drawLine(20, 10, 20, 60 );g.drawLine(30, 10, 30, 60 );g.drawLine(40, 10, 40, 60 );g.drawLine(50, 10, 50, 60 );g.drawLine(60, 10, 60, 60 );g.drawLine(70, 10, 70, 60 );g.drawLine(80, 10, 80, 60 );g.drawLine(90, 10, 90, 60 );g.drawLine(100,10, 100,60 );}}问题:如何改变窗口的大小?答:在编译的过程中提示applet标记需要宽度。
实验10_Applet小应用程序实验目的:1. 理解Applet生命周期2. 掌握Applet小应用程序设计的基本方法实验内容:一、编辑、编译和运行程序:(1) Applet生命周期import java.awt.*;import javax.swing.*;public class Life_1 extends JApplet {JTextArea text = new JTextArea();public void init() {Container c =getContentPane();text.setBackground(Color.GREEN);text.setEditable(false);c.add(text );addWords("初始化...");}public void start() { addWords("开始..."); }public void stop() { addWords("停止..."); }public void destroy() { addWords("清除..."); }void addWords(String s) {System.out.println(s);text.append(s+"\n"); }}(2) Applet小应用程序import javax.swing.*;import java.awt.*;public class JAp_1 extends JApplet {public void init() {JButton button1=new JButton(new ImageIcon("图片/Previous.gif "));JButton button2=new JButton(new ImageIcon("图片/go.GIF"));JButton button3=new JButton(new ImageIcon("图片/Next.gif"));button1.setToolTipText("向上翻页按钮");button2.setToolTipText("跳转按钮");button3.setToolTipText("向下翻页按钮");JLabel label=new JLabel("图像标签", new ImageIcon("图片/2.gif"),JLabel.CENTER);JPanel p1=new JPanel();p1.add(button1); p1.add(button2); p1.add(button3);p1.setBackground(Color.cyan);Container c=getContentPane();c.setBackground(Color.cyan);c.add(p1,BorderLayout.NORTH);c.add(label,BorderLayout.CENTER);}}二、用面向对象方法编程。
重庆科创职业学院《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。
实验报告课程名称: Java语言程序设计院(系):管理学院专业班级:姓名:学号:指导教师:2013 年5 月27日《Java语言程序设计》上机实验报告序号实验六组号 1 成绩名称Java Applet学时 2评阅教师签名: 2013年月日一、实验目的1.熟悉Java Applet 程序的结构和运行方法;2.会设计Java Applet应用程序;3.了解Html到Applet的数据传递方法。
二、实验内容Java Applet程序设计(一元二次方程求解或计算器两种以上的运算功能或自选题目)。
三、实验硬件、软件环境1.PC计算机一台,配置为CPU为P42.8G,内存为512M,硬盘为80G;2.WindowsXP + JSDK1.6 + JCreatorV4。
四、实验算法设计1.五、程序设计/*求一元二次方程ax2+bx+c=0的根,要求a、b、c从控制台输入*/import java.io.*;import java.util.*;public class Test{private static X fx(double a,double b,double c) throws Exception{ X x=new X();double m=b*b-4*a*c;if(m>=0){x.x1=(-1*b+Math.sqrt(m))/(2*a);x.x2=(-1*b-Math.sqrt(m))/(2*a);return x;}elsethrow new Exception("无解");}public static void main(String[] args){try{Scanner in=new Scanner(System.in);System.out.print("a=");double a=in.nextDouble();System.out.print("b=");double b=in.nextDouble();System.out.print("c=");double c=in.nextDouble();X x=fx(a,b,c);System.out.println("所求根为:"+"\nx1="+x.x1+"\nx2="+x.x2);}catch (Exception e){System.out.println(e.getMessage());}}}class X{double x1;double x2;}六、程序测试记录及结果、运行说明七、实验总结。
《java 网络编程》实验报告实验题目:实验二:java applet一:实验目的1、熟悉Applet类。
2、掌握Applet的程序结构。
3、学会编写启动Applet程序的html文档。
4、观察Applet程序生命周期。
二:实验内容及要求1、编写Applet程序1,显示init(),start(),stop(),paint(),和destroy()方法的执行顺序和执行次数。
要求:编写调用Applet程序1的html文档1,利用appletviewer运行html文档1,启动Applet程序1。
改变Applet窗口大小,使其最大化,最小化,查看init(),start(),stop(),paint(),和destroy()方法的执行情况。
2.编写Applet程序2,在屏幕上画一组同心圆,相邻两圆的直径大小相差10(pixel)(画满整个屏幕)。
要求:编写调用Applet程序2的html文档2,利用appletviewer运行html文档启动Applet程序2。
改变Applet窗口大小,观察同心圆个数的变化情况。
三:实验步骤(一)1、打开elipse,新建java项目File,类Applet1。
2、按照要求编辑源代码。
首先定义五个变量,init,start, stop, paint, destroy,用来计算其调用五个方法的次数。
赋初值0,然后编写五个方法init(),start(),stop(),paint(),和destroy()体即可。
3. 编写html文档,并命名为123.html. 内容如下:<html><body bgcolor="ddd000"><Applet code ="Applet1.class" width="500" height="1000"></applet></body></html>4.运行程序,查看结果。
计算机科学系实验报告(首页)课程名称: Java2 程序设计班级: 03计(2)班实验名称: 计算器指导教师: 刘 *姓名: 学号: 13 日期: 2005-10-9一: 实验任务和目的:图形界面设计熟悉java.awt包中的组件, 掌握图形界面设计方法, 理解委托事件处理模型。
二: 实验题意和要求:设计并实现Windows系统中的“计算器”的窗口及功能1.设计图形界面, 窗口上添加各种组件及菜单, 并处理组件及菜单的事件监听程序。
实现多种运算, 保证运算正确性。
三: 程序分析讨论、体会:1.界面布局: 主框架:list, 网格布局如图(采用Panel容器), 计算结果显示文本行:show (JTextField), 关于对话框:about(Dialog),据自己掌握的知识, 发觉TextField里面的字符无法靠右显示。
查阅资料后, 发现JTextField可以, 它是属于javax.swing包的, 和TextField几乎一样, 但是其具有的功能属性更丰富。
关于运算:进行运算时, 必须先把文本行的字符串类型(String)的数值转换成数字型(Double)才能进行。
四: 应用主程序清单://package Calculator;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Calculator extends WindowAdapter implements ActionListener{Frame list;JTextField show;Button bc,c,ce,ab,jia,jian,cheng,chu,equ,point,sqrt,ds,bfh,zf;//按钮退格, 清空, 复位, 关于, 加, 减, 乘, 除, 等号, 小数点, 2次方根, 倒数, 百分号, 正负号Button b[]=new Button[10]; //按钮数组, 数字键0~9double sum=0,getValue;int i=0,j=0,p=0,l,action;final int slength=30; //设置结果显示有效长度public void disp(){list=new Frame("Calculator");list.setSize(250,190);list.setLocation(320,250);list.setBackground(Color.LIGHT_GRAY);list.setLayout(new FlowLayout(FlowLayout.CENTER));list.setResizable(false);show=new JTextField(20);show.setText("0");show.setHorizontalAlignment(SwingConstants.RIGHT);show.setEditable(false);list.add(show);Panel dispTop=new Panel();list.add(dispTop);dispTop.setLayout(new GridLayout(1,4,3,3));bc=new Button(" Back ");bc.setForeground(Color.BLUE);dispTop.add(bc);ce=new Button(" CE ");ce.setForeground(Color.BLUE);dispTop.add(ce);c=new Button(" C ");c.setForeground(Color.BLUE);dispTop.add(c);ab=new Button(" About ");ab.setForeground(Color.BLUE);dispTop.add(ab);about=new Dialog(list,"About Calculator",true);Label ct=new Label("CopyRight (c) HZU 03J2 Jastby",1);ct.setForeground(Color.RED);about.add(ct,"Center");about.setSize(200,100);about.setLocation(500,300);about.addWindowListener(this);Panel dispMain=new Panel();list.add(dispMain);dispMain.setLayout(new GridLayout(1,2,10,10));Panel dispLeft=new Panel();dispMain.add(dispLeft);dispLeft.setLayout(new GridLayout(4,3,3,3));Panel dispRight=new Panel();dispMain.add(dispRight);dispRight.setLayout(new GridLayout(4,2,3,3));for(l=9;l>=0;l--){b[l]=new Button(String.valueOf(l));dispLeft.add(b[l]);b[l].addActionListener(this);}jia=new Button("+");jia.setForeground(Color.RED);jian=new Button("-");jian.setForeground(Color.RED);cheng=new Button("*");cheng.setForeground(Color.RED);chu=new Button("/");chu.setForeground(Color.RED);equ=new Button("=");equ.setForeground(Color.RED);point=new Button(".");zf=new Button(" +/- ");sqrt=new Button("sqrt");bfh=new Button("%");ds=new Button("1/x");dispRight.add(chu);dispRight.add(sqrt);dispRight.add(cheng);dispRight.add(bfh);dispRight.add(jian);dispRight.add(ds);dispRight.add(jia);dispRight.add(equ);dispLeft.add(zf);dispLeft.add(point);bc.addActionListener(this);ce.addActionListener(this);c.addActionListener(this);ab.addActionListener(this);jia.addActionListener(this);jian.addActionListener(this);cheng.addActionListener(this);chu.addActionListener(this);equ.addActionListener(this);point.addActionListener(this);zf.addActionListener(this);sqrt.addActionListener(this);bfh.addActionListener(this);ds.addActionListener(this);list.addWindowListener(this);list.setVisible(true);}public void actionPerformed(ActionEvent e){getValue=Double.valueOf(show.getText()).doubleValue();//getValue=Double.valueOf(show.getText());//如果该行出错, 则在后面加上.doubleValue(); 属版本兼容问题if(e.getSource()==jia){ //加运算, 可连加if(j==0){sum=getValue;}else if(action==1){sum+=getValue;}setSum();j++;p=0;i=0;action=1;}else if(e.getSource()==jian){ //减运算, 可连减if(j==0){sum=getValue;}else if(action==2){sum-=getValue;}setSum();j++;p=0;i=0;action=2;}else if(e.getSource()==cheng){ //乘运算, 可连乘if(j==0){sum=getValue;}else if(action==3){sum*=getValue;}setSum();j++;p=0;i=0;action=3;}else if(e.getSource()==chu){ //除运算, 可连除if(j==0)sum=getValue;else if(action==4){sum/=getValue;}setSum();j++;p=0;i=0;action=4;}else if(e.getSource()==equ){ //等号,运算最后一个操作数switch(action){case 1:show.setText(String.valueOf(sum+=getValue));break;case 2:show.setText(String.valueOf(sum-=getValue));break;case 3:show.setText(String.valueOf(sum*=getValue));break;case 4:show.setText(String.valueOf(sum/=getValue));break;}setSum();i=0;j=0;action=0;}else if(e.getSource()==point){ //小数点,只能按一个小数点if(p==0)show.setText(show.getText()+e.getActionCommand());p=1;}else if(e.getSource()==c||e.getSource()==ce){ //清空与复位i=0;j=0;p=0;sum=0;action=0;show.setText("0");}else if(e.getSource()==bc){ //退格String s=show.getText();if(s.length()>1){show.setText("");for (l=0;l<s.length()-1;l++){ //按一下,删除尾部一位char a=s.charAt(l);show.setText(show.getText()+a);}}elseshow.setText("0");}else if(e.getSource()==ab){ //关于,弹出对话框about.setVisible(true);}else if(e.getSource()==sqrt){ //开2次方根sum=Math.sqrt(getValue);setSum();j++;}else if(e.getSource()==ds){ //求倒数sum=1/getValue;setSum();j++;}else if(e.getSource()==bfh){ //百分号sum=getValue/100;setSum();j++;}else if(e.getSource()==zf){ //正负号切换,正号不显示String s=show.getText();char a=s.charAt(0);if(a=='-'){show.setText("");for(l=1;l<s.length();l++){ //去掉负号show.setText(show.getText()+s.charAt(l));}}else if(getValue!=0){ //加上负号show.setText("-"+s);}}for(l=0;l<10;l++){ //0~9数字键触发if(e.getSource()==b[l]){if(i==0)show.setText("");String s = show.getText();if(s.length()<slength)show.setText(show.getText()+e.getActionCommand());if(e.getSource()==b[0] && getValue==0 && p==0)show.setText("0");if(e.getSource()!=b[0] && getValue==0 && p==0)show.setText(e.getActionCommand());i++;}}}public void setSum(){ //把计算结果显示出来show.setText(String.valueOf(sum));String s = show.getText();char a=s.charAt((s.length()-1));char b=s.charAt((s.length()-2));if (a=='0' && b=='.'){ //如果是整数,则去掉后面的小数点和0show.setText(String.valueOf(Math.round(sum)));}}public void windowClosing(WindowEvent e){if(e.getSource()==about)about.setVisible(false);else if(e.getSource()==list)System.exit(0);}public static void main(String args[]){(new Calculator()).disp();}}。
广州大学实验报告学院工商管理学院专业、班级电子商务姓名、学号课程名称Java语言程序设计项目名称Applet程序设计实验时间:2013年5月20 日Applet程序设计实验报告开课实验室:文俊东606 2013年5月20日将字符串”enter.au”,”return.au”,”ding.au”分别存入EnterFile,ExitFile和ClickFile中.4.在MouseHandler类中,覆盖 (overriding )public void mouseEntered(MouseEvent e);mouse进入applet显示区时被调用public void mouseExited(MouseEvent e); mouse退出applet显示区时被调用5.用语句 Lb.setForeground(Color.BLUE);//具体颜色可自选6.播放声音请用 play(getCodeBase(), 文件名);7.剩下的工作就是在Click中写出相应事件产生时,Click应该执行的动作了。
三、实验过程原始记录(数据、图表、计算等)1.先定义几个数据成员2. 在Applet的init()方法中,用 lb.getForeground()读取当前颜色,并存入yanse中;3. 将字符串”enter.au”,”return.au”,”ding.au”分别存入EnterFile,ExitFile和ClickFile中.4.在click类中建立函数,设置颜色和声音。
5.在MouseHandler类中,覆盖 (overriding )1).public void mouseEntered(MouseEvent e);mouse进入applet显示区时被调用的颜色、音乐函数2).public void mouseEntered(MouseEvent e);mouse点击applet显示区时被调用的颜色、音乐函数3).public void mouseEntered(MouseEvent e);mouse退出applet显示区时被调用的颜色、音乐函数四、实验结果及分析运行开始:鼠标进入程序区域:鼠标点击并离开程序区域:五、实验总结与体会本次实验相对比较简单,完成本次实验后让我更清楚java语言的函数调用和监听器的作用以及用法。
小应用程序Applet设计一、课题内容和要求内容:设计和编写一个可以用鼠标操作的Applet小应用程序和相应的HTML 页面,观察Applet的执行过程,测试程序鼠标用户交互操作的效果。
要求:要求学生能在学习和理解课堂学习内容中JAVA小应用程序的基础上,通过实验,培养学生将JAVA小应用程序相关知识点(包括JAVA Applet和低级事件处理模型)有机结合,设计基于WEB浏览器的小应用程序的能力。
二、设计思路分析class App:一个Java Applet计算器的主类public void init():完成初始化appletpublic 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;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.*;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);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);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)) {// 加减乘除等于按钮获取运算操作符并进行运算操作if (ForeScreen != "") {// 重新输入数字进行运算操作OperatorCurrent = ((String) o);doOperator();} else {// 没有重新输入数字则作为上一运算符--->保证不输入连续的同一运算符OperatorPre = ((String) o);}}return true;}public void doOperator() {// 运算及运算结果输出操作double dFore, dBack;Double d;if (OperatorPre.equals("")) {// 上一运算符没有则直接输出BackScreen = ForeScreen;// 输入的数据转入后台并清空,用后台输出它ForeScreen = "";tfAnswer.setText(BackScreen);repaint();} else {// 上一运算符存在则运算后输出dFore = (new Double(ForeScreen)).doubleValue();dBack = (new Double(BackScreen)).doubleValue();ForeScreen = "";// 运算结果转入后台并清空,用后台输出它BackScreen = tfAnswer.getText();if (OperatorPre.equals("+")) {d = new Double((dBack + dFore));BackScreen = d.toString();}if (OperatorPre.equals("-")) {d = new Double((dBack - dFore));BackScreen = d.toString();}if (OperatorPre.equals("*")) {d = new Double((dBack * dFore));BackScreen = d.toString();}if (OperatorPre.equals("/")) {d = new Double((dBack / dFore));BackScreen = d.toString();}tfAnswer.setText(BackScreen);repaint();}OperatorPre = OperatorCurrent;// 现运算符变上一运算符repaint();}public void doForeScreen(String s) {// 数字和小数点输出到文本框操作ForeScreen += s;if (ForeScreen.length() > 1 && ForeScreen.startsWith("0")&& !ForeScreen.contains("."))// 以0开头的长度大于一的非小数去掉开头的0ForeScreen = ForeScreen.substring(1);tfAnswer.setText(ForeScreen);repaint();}public void doClear() {// 清空操作OperatorCurrent = "";OperatorPre = "";ForeScreen = "0";BackScreen = "";isFloat = false;tfAnswer.setText(ForeScreen);repaint();}}Html代码:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>"JavaApplet计算器"</title></head><body><div><applet code="App.class" width="215" height="310"></applet></div></body></html>五、测试数据及其结果分析1正常输入:1.88+99=C .666/33=C 7.33*26=0.5-1-3=2结果:输出正常。