文档库

最新最全的文档下载
当前位置:文档库 > 面向对象程序设计实验报告

面向对象程序设计实验报告

《面向对象程序设计实验》

实验一、Java实验环境的建立(2学时)

1、目的要求

(1)掌握Java编程环境的搭建过程;

(2)掌握Jcreator pro软件的使用方法;

(3)能使用Java doc文档。

2、实验内容

(1)下载并安装JDK1.6,配置JDK环境变量;

(2)下载Javadoc压缩包并解压在JDK安装路径下;

(3)下载Jcreator pro 4.0并安装和配置使用环境;

(4)使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。

①Java application程序代码如下:

public class HelloJava

{

public static void main(String args[])

{ System.out.println("Hello Java!"); }

}

面向对象程序设计实验报告

②Java applet程序代码如下:

import java.awt.*;

public class Hello extends java.applet.Applet

{

public void paint(Graphics g)

{ g.drawString("Hello!",30,30); }

}

面向对象程序设计实验报告

3、仪器与材料:计算机

实验二、Java语言程序设计训练(2学时)1、目的要求

(1)输入、输出操作实现原理和方法;

(2)掌握程序流程控制的实现方法;

(3)掌握数组的定义和操作方法。

2、实验内容

(1)计算Result=1!+2!+3!+...+10!。

public class Test3 {

public static void main(String[] args) {

int sum = 0, fact, n, i;

for (n = 1; n <= 10; n++) {

fact = 1;

for (i = 1; i <= n; i++)

fact *= i;

sum += fact;

}

System.out.println("sum=" + sum);

}

}

面向对象程序设计实验报告

(2)计算1---50之间所有素数的和。

public class Main {

public static void main(String[] args)

{

int sum = 0;

for ( int i = 2; i < 51; i++ )

{

int j;

for ( j = 2; j < i / 2; j++ )

{

if (i % j == 0)

break;

}

if (i % j != 0 || i == j)

{

sum += i;

}

}

System.out.println (sum);

}

}

面向对象程序设计实验报告

3、仪器与材料:计算机

实验三、面向对象的程序设计(2学时)

1、目的要求

(1)熟悉类的创建方法;

(2)掌握对象的声明与创建;

(3)掌握构造方法及实例方法的区别与用法;

(4)能利用面向对象的思想解决一般问题。

2、实验内容

(1)创建一个图书类,类中包含的属性有:书名、作者、出版社;包含的方法有:设置书籍状态,查看书籍状态。书籍状态有在馆和外借两种。

public class Lib{ //创建一个图书类,类中包含的属性有:书名、作者、出版社;包含的方法有:设置书籍状态,查看书籍状态。书籍状态有在馆和外借两种。//

private String Bname;

private String Aname;

private String Baddress; //书籍状态

private boolean zt; //包含方法

set get

public void setzt(boolean zt){

this.zt=zt;

}

public boolean getzt(boolean zt){

return zt;

}

public static void main(String[] args){

}

}

(2)设计一个Birthday类,其成员变量有:year,month,day;提供构造方法、输出Birthday对象值的方法和计算年龄的方法。编写程序测试这个类。

public class Birthday{ //设计一个Birthday类,其成员变量有:year,month,day;提供构造方法、输出Birthday对象值的方法和计算年龄的方法。编写程序测试这个类。

private int year;

private int month;

private int day;

public Birthday(int year,int month,int day){

this.year=year;

this.month=month;

this.day=day;

}

public void printBirthDay(){

System.out.println(year+"-"+month+"-"+day);

}

public int printAge(){

return 2012-year;

}

public static void main(String[] args){

}

}

(3)编写一个类,描述汽车,其中用字符型描述车的牌号,用浮点型描述车的价格。编写一个测试类,其中有一个修改价格的方法,对汽车对象进行操作,根据折扣数修改汽车的价格,最后在main()方法中输出修改后的汽车信息。

public class Car{

String chePai;

Floatprice;

Floatprice1;

Car(String chePai,Floatprice){

this.chePai=chePai;

this.price1=price*4/5;

this.Price= price;

}

void dismessage(){

System.out.println("这辆车的品牌是"+chePai+"原价是"+price+"打折后为"+price1);

}

}

Publicclass TestCar{

Publicstaticvoidmain(String[] args){

Car c =newCar("奔驰S6OO",50000);

c.dismessage();

}

}

3、仪器与材料:计算机

实验四、输入输出(2学时)

1、目的要求

(1)理解Java输入输出的实现机制;

(2)掌握常用的输入输出类的功能及方法;

(3)掌握常用数据类型针对文件的输入输出方式。

2、实验内容

(1)double型数组中保存有如下数据:1.23,69.88,34.45,67.98,2345.67。将数据以二进制形式保存到文件中去。

import java.io.*;

public class Test {

public static void main(String[] args) throws IOException{

BufferedWriter bw = new BufferedWriter(new FileWriter(" c:\\data.txt"));

bw.write(Integer.toBinaryString(1.23,69.88,34.45,67.98,2345.67)+"");

bw.close();

}

}

(2)记事本用来记录、保存一些数据、文字,或者打开以前创建的文件进行操作。把编辑好的内容存入文件就是输出。而打开原有的文件的内容则是输入。程序主界面如图1所示。当点击打开按钮则弹出打开文件对话框如图2所示。当选择文本文件后,将文本文档的内容显示在文本区中如图3所示。同理,当在文本区中编辑好内容后,点击保存按钮,则弹出文本保存对话框,选择保存位置后可将内容保存到文件中去。

试尝试实现此功能。

import java.awt.*;

import java.awt.event.*;

public class Main {

public static void main(String args[]){

jtxtfrm fm=new jtxtfrm();

}

}

class jtxtfrm extends Frame implements ActionListener{

FileDialog op,sv;

Button btn1,btn2,btn3;

TextArea tarea;

jtxtfrm(){

super("读写文件");

setLayout(null);

setBackground(Color.cyan);

setSize(600,300);

setVisible(true);

btn1=new Button("打开");

btn2=new Button("保存");

btn3=new Button("关闭");

tarea=new TextArea("");

add(btn1);add(btn2);add(btn3);add(tarea);

tarea.setBounds(30,50,460,220);

btn1.setBounds(520,60,50,30);

btn2.setBounds(520,120,50,30);

btn3.setBounds(520,180,50,30);

op=new FileDialog(this,"打开",FileDialog.LOAD);

sv=new FileDialog(this,"保存",FileDialog.SAVE);

btn1.addActionListener(this);

btn2.addActionListener(this);

btn3.addActionListener(this);

addWindowListener(

new WindowAdapter(){

public void windowClosing(WindowEvent e){

setVisible(false);

System.exit(0);

}

}

);

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==btn1){

String str;

op.setVisible(true);

try{

File f1=new File(op.getDirectory(),op.getFile()); FileReader fr=new FileReader(f1); BufferedReader br=new BufferedReader(fr); tarea.setText("");

while((str=br.readLine())!=null)tarea.append(str+'\n'); fr.close();

}

catch(Exception e1)

{}

}

if(e.getSource()==btn2){

sv.setVisible(true);

try{

File f1=new File(sv.getDirectory(),sv.getFile());

FileWriter fw=new FileWriter(f1);

BufferedWriter bw=new BufferedWriter(fw);

String gt=tarea.getText();

bw.write(gt,0,gt.length());

bw.flush();

fw.close();

}

catch ( Exception e2)

{}

}

if(e.getSource()==btn3){

System.exit(0);

}

}

}

面向对象程序设计实验报告

面向对象程序设计实验报告

图1 记事本界面图2 打开文件对话框图3 显示文件内容

3、仪器与材料:计算机

实验五、图形界面设计(2学时)

1、目的要求

(1)掌握各种组件的用法;

(2)掌握布局管理器的布局方式;

(3)掌握事件处理机制。

2、实验内容

多数学校的学生档案信息都由计算机进行管理,在编写的档案管理应用程序中,有档案信息录入模块,该模块的功能是在图形化的界面下,用户把信息输入到计算机中。实现录入界面的大致样式及组件名称如下图。

import java.awt.*;

import java.awt.event.*;

publicclass InputData implements ActionListener {

Frame f;//声明框架对象

Label l1,l2,l3,l4;//声明标签对象

TextField t;//声明文本行对象

Checkbox r1,r2;//声明单选钮对象

CheckboxGroup g;//声明组对象

Checkbox c1,c2,c3;

Choice ch;//声明选择框对象

Button b;//声明按钮对象

TextArea ta;//声明文本区对象

Panel p1,p2,p3,p4,p5;//声明面板对象

Inti=0;

public InputData() {//对象实例化;

f=new Frame("信息录入");

f.setBounds(200,200,500,500);

ch = new Choice();

l1 = new Label("姓名:");

l2 = new Label("性别:");

l3 = new Label("爱好:");

l4 = new Label("籍贯:");

t = new TextField();

t.setSize(200, 10);g = new CheckboxGroup();

r1 = new Checkbox("男",g,false);

r2 = new Checkbox("女",g,true);

c1 = new Checkbox("体育");

c2 = new Checkbox("音乐");

c3 = new Checkbox("美术");

b = new Button("确定");

b.addActionListener(this);

ta = new TextArea();

p2 = new Panel();

p3 = new Panel();

p4 = new Panel();

p5 = new Panel();

ch.add("济南");//添加选择项

ch.add("潍坊");

ch.add("济宁");

Panel p = new Panel();

p.setLayout(new GridLayout(5,1));

p1=new Panel();

p1.setLayout(new FlowLayout(FlowLayout.LEFT)); //设定面板布局样式p2.setLayout(new FlowLayout(FlowLayout.LEFT));

p3.setLayout(new FlowLayout(FlowLayout.LEFT));

p4.setLayout(new FlowLayout(FlowLayout.LEFT));

p.add(p1);

p.add(p2);

p.add(p3);

p.add(p4);

p.add(p5);

p1.add(l1); //面板中加入组件

p1.add(t);

p2.add(l2);

p2.add(r1);

p2.add(r2);

p3.add(l3);

p3.add(c1);

p3.add(c2);

p3.add(c3);

p4.add(l4);

p4.add(ch);

p5.setLayout(new FlowLayout(FlowLayout.CENTER));

p5.add(b);

f.setLayout(new GridLayout(2,1)); //设定框架布局样式

f.add(p);

f.add(ta);

f.addWindowListener(new WindowAdapter(){ //注册事件监听器,匿名类实现接口

public void windowClosing(WindowEvent e){

f.setVisible(false);

System.exit(0);

}

});

f.setVisible(true);

}

public void actionPerformed(ActionEvent e) //事件处理接口实现

{ //把输入内容显示到文本区中;

i++;

String n = "第"+i+"名同学的输入信息为:\n"

n+= "姓名:"+t.getText()+" ";

String xingbie = " "+g.getSelectedCheckbox().getLabel();

String aihao = " "+(c1.getSelectedObjects()==null?"":c1.getLabel( ))+ " "+(c2.getSelectedObjects()==null?"":c2.getLabel())+ " "+(c3 .getSelectedObjects()==null?"":c3.getLabel());n+= "性

别:"+xingbie+" "+"爱好:"+aihao; n+= "籍

贯:"+(ch.getSelectedIndex()==0?"济南":(ch.getSelectedIndex()==1?"潍坊":"济宁"));

ta.append(n+"\n");

}

public static void main(String args[])

{

new InputData();

}

}

面向对象程序设计实验报告

3、仪器与材料:计算机

实验六、异常处理(2学时)

1、目的要求

(1)熟悉异常的抛出与捕获的含义;

(2)掌握异常捕获与处理的方法;

(3)能自定义异常。

2、实验内容

编写成绩管理应用程序,其中有成绩录入模块,成绩录入过程中,难免出现录入数据的类型出现错误,或录入的成绩不在合理的范围。在成绩录入过程中,若出现上述错误,程序应该如何处理。

import javax.swing.JOptionPane;

class fu extends Exception //当录入了负分时。此处应用了自定义异常

{

负分异常(int i){

System.out.println("分数为负数");

}

}

class gao extends Exception //当录入分超过100时。应用了自定义异常

{

高分异常(int i ){

System.out.println("分数过高");

}

}

publicclass ExceptionDemo

{

static final intnumber=2;

intscore[]=newint[number];

publicvoid 检查分数(int 分数) throws 负分异常,高分异常//下面方法中判断如果录入的成绩不合理,则抛出异常,但本方法并不处理异常,仅声明了异常

{

if(分数 >100) throw new 高分异常(分数); //通过throw,人工抛出异常

if(分数 <0) throw new 负分异常(分数);

}

public void录入成绩()

{

int i;

for(i=0;i

{ try{

score[i]=Integer.parseInt(JOptionPane.showInputDialog("请输入第"+(i+1) +"个同学的成绩"));

}

catch(NumberFormatException e) //在try{…….}catch间的语句中若产生异常,则捕获异常,直接进行异常处理

{

}

try{ 检查分数(score[i]); //在检查分数模块中,可能产生高分异常对象,也可能产生低分异常对象,根据不同情况,进行不同处理

}

catch(高分异常 e){

System.out.println(e);

}

catch(负分异常 e){

System.out.println(e);

}

}

}

public void 输出成绩()

{

System.out.println(score[0]);

System.out.println(score[1]);

}

public static void main(String arg[])

{

ExceptionDemo demo = new ExceptionDemo();

demo.录入成绩();

demo.输出成绩();

}

}

3、仪器与材料:计算机

实验七、Applet程序设计(4学时)

1、目的要求

(1)熟悉Applet程序的编写与运行;

(2)掌握HTML文件与Applet间参数的传递;

(3)掌握在Applet中输出图像与声音。

2、实验内容

(1)设计用户邮箱登录界面。(如下所示)

面向对象程序设计实验报告

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JLabel;

import javax.swing.JTextField;

import java.awt.FlowLayout;

import javax.swing.JComboBox;

import javax.swing.DefaultComboBoxModel;

import javax.swing.JPasswordField;

import javax.swing.JButton;

publicclass Main extends JFrame{

privatestaticfinallong serialVersionUID = 1L;

private JPanel contentPane;

private JTextField textField;

private JPasswordField passwordField;

publicstaticvoid main(String[] args) {

EventQueue.invokeLater(new Runnable() {

publicvoid run() {

try {

Main frame = new Main();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

public Main() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));

JLabel label = new JLabel("\u90AE\u7BB1");

contentPane.add(label);

textField = new JTextField();

textField.setText("\u7528\u6237\u540D");

contentPane.add(textField);

textField.setColumns(20);

JLabel label_1 = new JLabel("@");

contentPane.add(label_1);

JComboBox comboBox = new JComboBox();

comboBox.setModel(new DefaultComboBoxModel(new String[] {"http://www.wendangku.net/doc/6e868efdf9c75fbfc77da26925c52cc58bd690ff.html", "http://www.wendangku.net/doc/6e868efdf9c75fbfc77da26925c52cc58bd690ff.html", "http://www.wendangku.net/doc/6e868efdf9c75fbfc77da26925c52cc58bd690ff.html"}));

contentPane.add(comboBox);

JLabel label_2 = new JLabel("\u5BC6\u7801");

contentPane.add(label_2);

passwordField = new JPasswordField();

passwordField.setColumns(20);

contentPane.add(passwordField);

JButton button = new JButton("\u767B\u9646");

contentPane.add(button);

pack();

}

}

(2)请编写一个Applet,用它的HTML文件中给出的两个整型参数作加数,求它们的和,并显示结果。

html文件:

Java源文件:

import java.applet.*;

import java.awt.*;

public class Test extends Applet{

public void paint(Graphics g){

int num1=Integer.parseInt(getParameter("num1"));

int num2=Integer.parseInt(getParameter("num2"));

g.drawString("两个数的和:"+(num1+num2),100,100);

}

}

(3)准备好几个音乐文件和一幅图像,编写一个Applet,显示一幅图像并添加“播放”、“循环”、“停止”三个按钮,用于控制音乐文件的播放。import javax.swing.*;

import java.applet.AudioClip;

import java.awt.*;

import java.awt.event.*;

publicclass Main extends JApplet implements ItemListener {

AudioClip[] midi=new AudioClip[3];

AudioClip song;

JComboBoxcoi;//下拉列表对象

JButton bntLoop=new JButton("循环");

JButton bntStop=new JButton("停止");

Image img ;

String str;

publicvoid init()

{

String num;

str=getCodeBase().toString();

img=getImage(getCodeBase(),"sdasd/123.jpg");

String[] musical={"result","result(1)","result(2)"};

coi=new JComboBox(musical);

for(int i=0;i

{

num=String.valueOf(i+1);

midi[i]=getAudioClip(getCodeBase(),num+".mid");

}

Container c=getContentPane();

c.setLayout(new FlowLayout(FlowLayout.LEFT));

c.add(coi);

c.add(bntLoop);

c.add(bntStop);

coi.addItemListener(this);

bntLoop.addActionListener(new MyActLit());

bntStop.addActionListener(new MyActLit());

song=midi[0];

song.play();

}

publicvoid paint(Graphics g)

{

g.drawString("123", 150, 120);

g.drawImage(img, 10, 150, 300, 350, this);

play(getCodeBase(),"sdasd/result.mid");

}

publicvoid itemStateChanged(ItemEvent e)

{

song.stop();

int i=coi.getSelectedIndex();

song=midi[i];

song.play();

}

class MyActLit implements ActionListener

{

publicvoid actionPerformed(ActionEvent e)

{

JButton bnt=(JButton)e.getSource();

if(bnt==bntLoop)song.loop();

else song.stop();

}

}

}

面向对象程序设计实验报告

3、仪器与材料:计算机