当前位置:文档之家› java实验九选六已完成

java实验九选六已完成

java实验九选六已完成
java实验九选六已完成

实验一 Java面向对象

实验目的:深入理解、掌握面向对象的概念。

知识准备:

一.面向对象技术的基本概念:类、对象、方法、构造方法、属性、修饰符、方法重载和覆盖、继承、多态、抽象类和接口、内部类等。

二.Package和import语句

三.Jave API常用包

四.Java名字空间及访问规则

五.This和Super

实验内容:(选择其一)

一.写一个名为Stock的类模拟股票,类包含符号标志、名称、前期收盘价、当前价等属性,包含构造器方法和计算价格变化方法。类结构如下表:

Stock

private String symbol

private String name

private double previousClosingPrice

private double currentPrice

public Stock()

public Stock(String symbol , String name)

public String getSymbol()

public String getName()

public double getPreviousClosingPrice()

public double getCurrentPrice()

public void setSymbol(String symbol)

public void setName(String name)

public void setPreviousClosingPrice(double previousClosingPrice) public void setCurrentPrice(double currentPrice)

public double changePercent()

请实现Stock类,并另写一个类来测试Stock类。在测试类中,创建一个Stock 对象,其股票标志为SUN、名称为 Sun Mircosystem Inc、前期收盘价为100。随机设置一个新的当前价,显示价格变化比例。

二.设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck 是Car类的子类,其中包含的属性有载重量payload。每个类都有构造方法和输出相关数据的方法。

三.利用接口继承完成对生物biology、动物animal、人human三个接口的定义,其中生物接口定义呼吸breathe抽象方法,动物接口定义了吃饭eat和睡觉

sleep两个抽象方法,人接口定义了思维think和学习learn两个抽象方法;定一个普通人类person实现上述三个接口定义的抽象方法。

四.定义一个类Family,描述一个家庭,其中包括私有的钱数money(属性)、受保护的祖传秘方secret(方法,在其中写输出语句模拟即可)、只在家族中能够使用的运输工具vehicle(方法,在其中写输出语句进行模拟),公共的门牌号码doorplate(属性)。将这个家庭放置在一个包中 (如china.hb.hd),编写一个该家庭的子类SubFamily,放置在另一个包(如china.beijing)中。测试其中几种被可见性修饰符修饰过的属性和方法。

第一个

//————————————————————

public class Stock{

private String symbol;

private String name;

private double previousPrice;

private double currentPrice;

public Stock(){

}

public Stock(String symbol,String name){

this.symbol=symbol;

https://www.doczj.com/doc/913716241.html,=name;

}

public String getSymbol(){

return symbol;

}

public String getName(){

return name;

}

public double getPreviousPrice(){

return previousPrice;

}

public double getCurrentPrice(){

return currentPrice;

}

public void setSymbol(String symbol){

this.symbol=symbol;

}

public void setName(String name){

https://www.doczj.com/doc/913716241.html,=name;

}

public void setPreviousPrice(double previousPrice){

this.previousPrice=previousPrice;

}

public void setCurrentPrice(double currentPrice){

this.currentPrice=currentPrice;

}

public double changePercent(){

return ((currentPrice-previousPrice)/previousPrice);

}

}

//——————————————————————————

import java.util.Scanner;

public class TestStock{

public static void main(String[] args){

Stock sun=new Stock("SUN","Sun Mircosystem Inc");

double x=100.0d;

sun.setPreviousPrice(x);

Scanner scan=new Scanner(System.in);

System.out.println(" previousPrice=100,请输入一个新的当前价:"); sun.setCurrentPrice(scan.nextDouble());

System.out.printf("\n 价格变化为:");

System.out.println(sun.changePercent()*100+"%");

}

}

实验二 Java输入输出

实验目的:深入理解、掌握Java输入输出流,。

知识准备:

一.Java基本输入输出类:InputStream类、OutputStream类、Reader类、Writer 类

二.File类

三.文件流和随机存取文件流

四.数据流

五.对象流-对象序列化和反序列化

六.字符流和字节流

实验内容:(选择其二)

一.File类的应用-文件、文件夹的建立、删除、重命名等

二.将一个文本文件用readLine()读出到屏幕,并将其写入到另外一个文件中。三.将指定范围内的素数写入文件,并读出,求出其中最大值、最小值、平均值。四.输入5名学生的姓名、年龄,并将学生信息(要求用对象表示)写入文件并读出。一:—————————————————// 一.File类的应用-文件、文件夹的建立、删除、重命名等

import java.io.File;

import java.io.IOException;

public class Exam2_1 {

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

File file=new File("d:/","myfolder");

file.mkdir();

File file1=new File("d:/myfolder/my.txt");

file1.createNewFile();

System.out.println("文件夹建立"+file.exists());

System.out.println("文件建立:"+file1.exists());

File fileNew=new File(file1.getParent(),"This a NewName.txt");

System.out.println("原始名字为:"+file1.getName());

boolean a;

if( a=file1.renameTo(fileNew)){

System.out.println("的重命名为:"+fileNew.getName());

}

System.out.println("下面建立并删除file2文件");

File file2=new File("d:/myfolder/2.txt");

file2.createNewFile();

System.out.println("文件夹file2建立"+file.exists());

System.out.println("删除file2:"+file2.delete());

}

}

二———————————————————

//二.将一个文本文件用readLine()读出到屏幕,并将其写入到另外一个文件中。import java.io.*;

public class Exam2_2 {

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

System.out.println("下面从先前准备好的文件JA V A.txt中读取信息");

File file=new File("d:/","JA V A.txt");

BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK") );

File fileNew=new File("d:/","NewFile.txt");

fileNew.createNewFile();

FileWriter fileWriter=new FileWriter(fileNew);

BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);

String str=null;

str=bufferedReader.readLine();

while(str!=null){

System.out.println(str);

fileWriter.write(str);

fileWriter.flush();

str=bufferedReader.readLine();

}

fileWriter.close();

bufferedReader.close();

}

}

实验三异常处理机制

实验目的:深入理解、掌握面向对象的概念及其异常处理机制。

知识准备:

1.Exception的概念、子类及其继承关系

2.面向对象的异常处理机制

3.异常处理语句(try-catch-finally)

4.用throw语句抛出用户自定义Exception

5.用throws语句在方法声明抛出系统定义Exception

6.创建自己的异常

实验内容:

1.输入两个数据,显示两个数的商。

●当除数或被除数不是数字时抛出NumberFormatExcetpion,并用

try…catch…finally语句进行处理。

●当除数为0时,捕获ArithmeticException,并在控制台上打印异常信息。

●自定义异常LowerThanZeroException,当除数、被除数小于0时抛出,

import java.util.Scanner;

public class Exam3{

static int dividend;

static int divisor;

static double result;

public static void main(String[] args){

Scanner scan=new Scanner(System.in);

boolean judge=false;

while(!judge){

judge=true;

try {

System.out.println("请输入被除数:");

dividend=scan.nextInt();

System.out.println("请输入除数:");

divisor=scan.nextInt();

if(divisor==0)

throw new ArithmeticException();

if(dividend<0||divisor<0)

throw new LowerThanZeroException();

result=(double)dividend/divisor;

}

catch(LowerThanZeroException e1){

judge=false;

System.out.println(e1.toString());

}

catch(ArithmeticException e2){

judge=false;

System.out.println(e2.toString());

}

catch (java.util.InputMismatchException e3) { judge=false;

throw new NumberFormatException();

}

finally{

if(judge)

System.out.println("结果为:"+result); else

System.out.println("请重新输入:");

}

}

}

}

class LowerThanZeroException extends Exception{

LowerThanZeroException(){

super("除数或被除数小于0");

}

@Override

public String toString(){

String str="除数或被除数小于0";

return str;

}

}

实验四 Java常见类的使用和泛型

实验目的:深入理解、掌握Arrays类,Java字符串String和StringBuffer类,正则表达式和模式匹配。

知识准备:

一.String和StringBuffer类的使用

二.日期类:Date、Calender、DateFromat类

三.数学类:Math类

四.Collection系列API简介

五.数据结构类:LinkedList、HashSet、HashMap、TreeSet、TreeMap等BigInteger 类

六.StringTokenizer类

七.泛型

八.正则表达式

实验内容:(选择其二)

一.输入18位身份证号的前17位,输出1位校验位。

18位公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。六位数字地址码:常住户口所在县(市、旗、区)的行政区划代码,按 GB/T 2260执行。

八位数字出生日期码:按 GB/T 7408 的规定执行。

三位数字顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数千分配给女性。

一位数字校验码:采用ISO 7064:1983,MOD 11-2 校验码系统。

计算方法:

(1)十七位数字id[17]本体码加权求和公式

S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和

Ai:表示第i位置上的身份证号码数字值

Wi:表示第i位置上的加权因子,分别为w[17] 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

(2)计算模: Y = mod(S, 11)

(3)通过模得到对应的校验码 v[11]

Y012345678910

校验码10x98765432

二.用HashSet实现集合的并、交、差集运算。

三.给定一个英文文本文件(>100MB),统计其中的各种不同的英文单词的个数,并将统计结果存入一个文件中。

四.给定一个HTML文件,将其中的IP地址、Email地址、超级链接输出。五.利用Collection类实现扑克牌的洗牌。

二---------------------------------///二.用HashSet实现集合的并、交、差集运算

import java.util.HashSet;

import java.util.Random;

class MyHashSet {

public static void main(String[] args) {

HashSet hashSetA=new HashSet();//集合1

HashSet hashSetB=new HashSet();//集合2

hashSetA.add("appple");//为集合加入元素

hashSetA.add("banana");

hashSetA.add("bcycle");

hashSetB.add("appple");

hashSetB.add("home");

hashSetB.add("Car");

for(int i=0;i<10;i++){ //为集合加入元素

int anyNumber;

Random random=new Random();

anyNumber=random.nextInt(10)+1;

hashSetA.add(anyNumber);

anyNumber=random.nextInt(10)+1;

hashSetB.add(anyNumber);

}

Set mySet=new Set(hashSetA,hashSetB);

System.out.printf("\n集合A为:");

mySet.print( hashSetA);

System.out.printf("\n集合B为:");

mySet.print( hashSetB);

System.out.printf("\nA和B的并集为:");

mySet.print(mySet.getSum());

System.out.printf("\nA和B的交集为:");

mySet.print(mySet.getMixed());

System.out.printf("\n集合A对B的差集为:");

mySet.print(mySet.getDifference(hashSetA, hashSetB));

System.out.printf("\n集合B对A的差集为:");

mySet.print(mySet.getDifference(hashSetB, hashSetA)); }

}

//可进行并、交、差集运算---------------

class Set{

private HashSet h1=new HashSet();

private HashSet h2=new HashSet();

private HashSet hSum=new HashSet(); //并集

private HashSet hMixed=new HashSet(); //交集

private HashSet hDifference=new HashSet(); //h差集

public Set(HashSet h1,HashSet h2){

this.h1=h1;

this.h2=h2;

for (Object k:h1) {

hSum.add(k);

}

for(Object k:h2){

boolean b;

b=hSum.add(k);

if(!b){

hMixed.add(k);

}

}

}

public HashSet getSum(){

return hSum;

}

public HashSet getMixed(){

return hMixed;

}

public HashSet getDifference (HashSet h1,HashSet h2){ this.h1=h1;

this.h2=h2;

for(Object k:h1){

boolean b;

b=hMixed.add(k);

if(b){

hDifference.add(k);

}

}

return hDifference;

}

public void print(HashSet h){

int i=1;

for(Object it: h){

System.out.print(it+" ");

if(i%10==0)

System.out.println("");

i++;

}

System.out.println("");

}

}

三—————————————————————————————————////三.给定一个英文文本文件(>100MB),统计其中的各种不同的英文单词的个数,并将统计结果存入一个文件中。

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.RandomAccessFile;

import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

import java.util.StringTokenizer;

public class Exam4_3 {

static String fileName;

static String filePath;

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

Scanner scan=new Scanner(System.in);

System.out.println("输入读取文件的路径:");

filePath=scan.nextLine();

System.out.println("输入要读取的文件名:");

fileName=scan.nextLine();

Map map=new HashMap();

ReadText readText=new ReadText(fileName,filePath,map);

map=readText.getWords();

System.out.println("输入要生成文件的路径:");

filePath=scan.nextLine();

System.out.println("输入要生成文件的文件名:");

fileName=scan.nextLine();

System.out.println(fileName+"文件生成");

File text=new File(filePath+fileName);

text.createNewFile();

FileWriter fileWriter=new FileWriter(text);

BufferedWriter bufferedWriter=new BufferedWriter(fileWriter); for(String k:map.keySet()){

bufferedWriter.write(k+" "+map.get(k)+"个");

bufferedWriter.newLine();

System.out.println(k+" "+map.get(k)+"个");

}

bufferedWriter.flush();

fileWriter.close();

bufferedWriter.close();

}

}

class ReadText{

String fileName;

String filePath;

Map map;

public ReadText(String fileName,String

filePath,Map map){

this.fileName=fileName;

this.filePath=filePath;

this.map=map;

}

public Map getWords()throws Exception{

String str;

File text=new File(filePath,fileName);

System.out.println("文件是否存在:"+text.exists());

RandomAccessFile randomAccessFile=new

RandomAccessFile(text,"r");

while((str=randomAccessFile.readLine())!=null){

StringTokenizer analyse=new StringTokenizer(str," , . \n \t ; : ? \" \" ! = = _ @$ @ % ^ & * ( )" );

while(analyse.hasMoreTokens()){

String string=analyse.nextToken();

if(!map.containsKey(string))

map.put(string,"1");

else

map.put(string,String.valueOf((Integer.valueOf(map.get(string))+1))); }

analyse=null;

}

randomAccessFile.close();

return map;

}

}

——————————————————————————————————实验五 GUI界面制作-AWT、Swing与NetBeans

实验目的:

1.深入理解、掌握Java图形界面编程、事件模型

2.掌握NetBeans的基本使用方法和常用属性的配置

3.利用NetBeans的Mattise组件进行GUI编程。

知识准备:

一.AWT、布局管理器、常用组件、容器、事件处理模型。

二.Swing组件

三.Java事件处理机制

四.NetBeans

实验内容:(选择其一)

一.利用Canvas实现画图软件的功能。

二.利用Graphics类在Frame上画出各种图形并填充。

List应用:点击“>>”按钮时,把左边文本区域的内容添加到右边文本区域。“<<”功能相反。

三.图形日历的实现

四.记事本的实现

五.华容道游戏的实现

六.使用Matisse创建GUI应用程序:名片管理程序,完成名片的增加、删除、修改等集成界面并完成事件处理代码的编写。

import java.awt.Color;

import java.awt.Container;

import java.awt.Rectangle;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Calendar;

import javax.swing.*;

/**

三.图形日历的实现

*/

public class Exam5 {

public static void main(String[] args) {

new Mycalendar();

}

}

class Mycalendar{

Calendar myDate = Calendar.getInstance();

JLabel lyear = new JLabel("年:");

JLabel lmonth = new JLabel("月:");

JButton button = new JButton("确定");

JTextField textyear = new

JTextField(String.valueOf(myDate.get(Calendar.YEAR)),5);

JTextField textmonth = new

JTextField(String.valueOf(myDate.get(Calendar.MONTH)+1),5);

String[] str = new String[]{"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

JLabel[] label = new JLabel[7];

public Mycalendar(){

JFrame frame = new JFrame();

frame.setBounds(400,150,490,300);

frame.setLayout(null);

frame.setVisible(true);

Container content=frame.getContentPane();

content.setBackground(Color.green);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

lyear.setBounds(140,10,50,20);

textyear.setBounds(155,10,50,20);

lmonth.setBounds(250,10,50,20);

textmonth.setBounds(275,10,50,20);

button.setBounds(355,10,60,25);

frame.add(lyear);

frame.add(textyear);

frame.add(lmonth);

frame.add(textmonth);

frame.add(button);

for(int i=0;i<7;i++){

label[i]=new JLabel(str[i]);

label[i].setBounds(new Rectangle(30+i*60,40,67,34));

frame.add(label[i]);

}

final JLabel[] numberLabel= new JLabel[37];

for(int i=0,l=0,h=0;i<37&&l<7&&h<7;i++){

if(i%7==0){

l=0;

h++;

}

else

l++;

numberLabel[i] = new JLabel(" ",JLabel.CENTER);

numberLabel[i].setBounds(new

Rectangle(30+l*60,h*30-30+75,60,26));

frame.add(numberLabel[i]);

}

MyDateCompute myDateCompute = new

MyDateCompute(Integer.parseInt(textyear.getText()),Integer.parseInt(t extmonth.getText()));

int dateNumber=myDateCompute.getDateNumber();

myDate.set(Integer.parseInt(textyear.getText()),Integer.parseInt(text month.getText())-1,1);

int skip = myDate.get(Calendar.DAY_OF_WEEK);

for(int i=1,j=skip-1;i<=dateNumber;i++){

numberLabel[j].setText(String.valueOf(i));

j++;

}

class MyEventExam5 implements ActionListener{

public void actionPerformed(ActionEvent e){

int year = Integer.parseInt(textyear.getText());

int month = Integer.parseInt(textmonth.getText());

if(month<1||month>12){

JDialog dialog = new JDialog();

dialog.setVisible(true);

dialog.setBounds(400,200,400,400);

JLabel dialogLabel = new JLabel("日期输入错误!",JLabel.CENTER);

dialog.add(dialogLabel);

}

else{

MyDateCompute myDateCompute = new MyDateCompute(year,month);

myDate.set(year,month-1,1);

int dateNumber=myDateCompute.getDateNumber(); int skip = myDate.get(Calendar.DAY_OF_WEEK);

for(int i=0;i<37;i++)

numberLabel[i].setText(" ");

for(int i=1,j=skip-1;i<=dateNumber;i++){

numberLabel[j].setText(String.valueOf(i)); j++;

}

}

}

}

textyear.addActionListener(new MyEventExam5());

textmonth.addActionListener(new MyEventExam5());

button.addActionListener(new MyEventExam5());

}

}

class MyDateCompute{

private boolean leap_year=false;

private int dateNumber;

public MyDateCompute(int year,int month){

if(year%400==0||(year%4==0&&year%100!=0))

leap_year=true;

int february=28;

if(leap_year)

february=29;

switch(month){

case 1:case 3:case 5: case 7:case 8:case 10:case 12:

dateNumber=31;break;

case 4:case 6:case 9: case 11: dateNumber=30;break;

case 2:dateNumber=february; }

}

public boolean getLeap_year(){

return leap_year;

}

public int getDateNumber(){

return dateNumber;

}

}

JAVA实验6答案

广东海洋大学学生实验报告书(学生用表) 实验名称实验六. Java的接口与实现课程名称Java程序设计与开发 技术 课程号16232204 学院(系) 信息学院专业计算机科学与技术班级计科 学生姓名学号实验地点钟海楼 04019 实验日期 2015年 10月26日 一、实验目的 (1)学习掌握Java中类怎样实现接口、接口回调技术; (2)学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE开发工具的PC机。 四、实验内容和步骤 实验1 代码如下: Estimator.java interface CompurerAverage{ public double average(double x[]); } class Gymnastics implements CompurerAverage{ public double average(double x[]){ int count=x.length; double aver=0,temp=0; for(int i=0;i

for(int i=1;i2) aver=aver/(count-2); else aver=0; return aver; } } class School implements CompurerAverage{ public double average(double[] x){ int count=x.length; double sum=0; for(int i=0;i

8-实验八Java多线程操作(实验报告内容)

实验八 Java多线程操作 (实验报告) 一、目的 1.掌握Java多线程操作。 二、实验内容 启动线程,线程休眠,线程同步,等待和唤醒 三、实验环境 JDK1.6+dos环境 四、实验原理 通过案例掌握多线程操作。 五、实验步骤 1、设计一个线程操作类,要求可以产生三个线程对象,并可以分 别设置三个线程的休眠时间,如下所示: 线程A,休眠10秒 线程B,休眠20秒 线程C,休眠30秒 2、生产者与消费者问题,生产者生产一台电脑,消费者马上将生 产出的电脑取走。 六、实验小结 1、class MyThread implements Runnable{

String name; int time; public MyThread(String name,int time){ https://www.doczj.com/doc/913716241.html,=name; this.time=time; } public void run(){ try{ Thread.sleep(this.time); } catch(Exception e){ } System.out.println(https://www.doczj.com/doc/913716241.html,+"线程,休眠"+this.time/1000+"秒"); } } public class Demo08{ public static void main(String args[]){ MyThread mt1=new MyThread("线程A",10000); MyThread mt2=new MyThread("线程B",20000); MyThread mt3=new MyThread("线程C",30000);

java实验二附答案

Java 实验二 实验二类与对象 实验目的 1、掌握面向对象程序设计的方法与Java 作为面向对象程序设计语言的特点; 2、掌握修饰符与构造方法的使用规则; 3、掌握接口的特点、结构、调用与继承; 4、掌握如何创建包, 通过包如何管理类; 5、掌握Java 的继承机制与实现多态的方法实验内容 (1)定义一个类Student,属性为学号、姓名与成绩;方法为增加记录SetRecord与得到记录GetRecord。SetRecord赋值学号、姓名与成绩,GetRecord通过学号得到考生的成绩。通过实例验 证编程无误。 ⑵定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea()然后设 计Circle与Rectan两个类实现这个接口的方法calculateArea()分别计算圆与矩形的面积。通过实例验证编程无误。 (3) 假定根据学生的3门学位课程的分数决定其就是否可以拿到学位,对于本科生, 如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。根据上述要求,请完成以下Java类的设计: (i)设计一个基类Student描述学生的共同特征。 (ii)设计一个描述本科生的类Undergraduate该类继承并扩展Student类。 (iii)设计一个描述研究生的类Graduate该类继承并扩展Student类。 (iv)设计一个测试类StudentDemo分别创建本科生与研究生这两个类的对象,并输 出相关信息 附实验一名称就是Java 语言基础实验报告分为以下几个部分 一实验名称二实验目的三实验仪器四实验步骤(把您的操作一步一步写清楚,java 程序代码要写) 五实验结果(程序运行后的结果就就是DOS 环境下运行出来的结果写在实验报告上) 六实验讨论(实验过程中的错误及如何改正,您的心得体会等) 答案: (1)定义一个类Student,属性为学号、姓名与成绩;方法为增加记录SetRecord与得到记录GetRecord。SetRecord 赋值学号、姓名与成绩,GetRecord 通过学号得到考生的成绩。通过实例 验证编程无误 public class Student { private int ID; private String name; private float score; public void SetRecord(int ID,String name,float score){ this、ID=ID; this、name=name; this、score=score; } public float getRecord(int ID){ if(ID==this 、ID) return this 、score; else return -1; }

JAVA实验6答案

GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表) 实验名称 实验六.Java 的接口与实现 课程名称JaVa 程序设计与开发 课程号16232204 技术 实验地点钟海楼实验日期 2015年 04019 10 月 26 日 、实验目的 (1) 学习掌握Java 中类怎样实现接口、接口回调技术; (2) 学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE 开发工具的PC 机。 四、实验内容和步骤 实验1 代码如下: Estimator.java in terface Compu rerAverage{ p ublic double average(double x[]); } class Gymn astics imp leme nts Compu rerAverage{ p ublic double average(double x[]){ int coun t=x.le ngth; double aver=0,te mp=0; for(i nt i=0;i

aver=aver+x[i]; } if(cou nt>2) aver=aver/(co un t-2); else aver=0; retur n aver; } } class School impi eme nts Compu rerAverage{ p ublic double average(double[] x){ int coun t=x.le ngth; double sum=0; for(i nt i=0;i

JAVA实验_题目8

第八章类和对象的扩展 【实验目的】 (1) 类的继承 a. 掌握父类及子类的关系及创建方法 b. 掌握上转型对象的使用方法 c. 掌握子类对象创建过程中与父类构造方法的关系,及super关键字的用法 (2) 多态与接口 a. 掌握抽象类与抽象方法的概念 b. 掌握多态的实现原理及方法 c. 了解成员变量的隐藏 d. 掌握接口的设计方法 【实验范例】 例1:(继承) (1)编写一个圆类Circle,该类拥有: ①一个成员变量 Radius(私有,浮点型);ustID == id) ind=i; } while (true) { "\n1.存款"); "2.取款"); "3.修改密码"); "4.查询"); "5.退出"); sc = new Scanner; switch()) { case 1: "请输入存款金额:"); money = (); cust[ind].deposit(money); cust[ind].displayAccout(); break; case 2: "请输入取款金额:"); money = (); if (cust[ind].withdraw(money)) cust[ind].displayAccout(); else "您的账号余额不足!"); break;

case 3: "请输入新密码:"); cust[ind].custPWD = (); break; case 4: cust[ind].displayAccout(); break; case 5: "欢迎使用xxx银行系统!"); (1); } } } } 【练习题目】 8-1 (继承与多态)有哺乳动物类mammal,将其作为父类,从其派生出子类猫cat和子类狗dog,基类中有方法speak()。 8-2 (重载)编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个strAdd函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。(异常处理) 8-3 (接口) 1.利用接口继承完成对生物、动物、人三个接口的定义。其中生物接口定义呼吸抽象方法; 2.动物接口除具备生物接口特征之外,还定义了吃饭和睡觉两个抽象方法; 3.人接口除具备动物接口特征外,还定义了思维和学习两个抽象方法。 4.定义一个学生类实现上述人接口。 8-4 (继承、接口) 实现一个名为Person的类和它的子类Employee,Manager是Employee的子类,设计一个接口Wage,用于涨工资,普通员工一次能涨10%,经理能涨20%。 具体要求如下: (1)接口Wage包含addWage方法,创建类WageImpl用于实现接口Wage (2)Person类中的属性有:姓名name(String类型),地址address(String类型),定义该类的构造方法; (3)Employee类中的属性有:工号ID(String型),工资wage(double类型),工龄(int型),定义该类的构造方法; (4)Manager类中的属性有:级别level(String类型)定义该类的构造方法; (5)编写一个测试类,产生一个员工和一个经理给该员工和经理涨工资,并输出其具有的信息。

java实验二

信息工程学院1 Java程序设计实验/实习报告 学院: 班级:地信姓名: 学号:2 成绩:A 面向对象编程 一、实验/实习过程 (一)实验目的 掌握Java程序面向对象编程的基本架构,会运用面向对象的思想编写Java程序。(二)实验过程 【实验题1】完成如下程序,完成思考题 [基本要求] 运行程序并观察运行结果。 [思考问题] 试述程序中主要语句的作用 运行结果: 主要程序语句的作用已标注为注释: class CCircle // 类的声明 { double pi; //申明成员变量 double radius; //申明成员变量 double getRadius() //创建方法 实验报告的内容与格式按任课教师的要求书写。

{ return radius; //返回 radius } void setCircle(double r, double p) //创建方法 { pi=p; //初始化数据成员 radius=r; //初始化数据成员 } } public class Ex2_1 //类的声明 { public static void main(String args[]) //主方法 { CCircle cir1=new CCircle(); //创建对象 cir1.setCircle(2.0,3.1416); //调用对象 System.out.println("radius="+cir1.getRadius()); //输出结果 } } 【实验题2】设计一个用来描述汽车的类,使用类的静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。 package zz1; public class Car{ String name; int speed; int jiaodu; public Car(String name,int speed,int jiaodu){ https://www.doczj.com/doc/913716241.html,=name; this.speed=speed; this.jiaodu=jiaodu; System.out.println("车主:"+https://www.doczj.com/doc/913716241.html,); System.out.println("车速为:"+this.speed);

java第二次实验报告

java实验报告 实验题目运用JavaFx实现时钟动画学生姓名 指导教师 学院 专业班级 完成时间2014年12

目录 一、实验目的 (3) 二、实验开发环境和工具 (3) 三、实验内容 (3) 四.实际简要描述: (3) 五.程序清单 (4) 六.结果分析 (10) 七.调试报告 (11) 八.实验心得 (11)

一、实验目的 1.了解和掌握JavaFx动画基本概念和相关用法 二、实验开发环境和工具 可以在Linux或者Windows操作系统上搭建开发环境,可使用集成开发环境Eclipse,使用Java语言,工具包使用JDK1.8。 三、实验内容 基于JavaFx画出如下所示可动态变化的时钟。要求按‘start’按钮可启动时钟,按‘stop’按钮可让时钟暂停。时钟初始时显示当前时间并开始动态变化。 四.实际简要描述: 1.新建一个动态时针 EventHandlereventHandler = e -> { clock.setCurrentTime(); // 设置时钟时间 }; 2.建立一个动画使时钟走起来 Timeline animation = new Timeline( newKeyFrame(https://www.doczj.com/doc/913716241.html,lis(1000), eventHandler)); animation.setCycleCount(Timeline.INDEFINITE); animation.play(); // 开始动画

3.建立按钮 HBoxhbox=new HBox();//新建HBOX布局 hbox.setSpacing(20); hbox.setLayoutX(310); hbox.setLayoutY(520); Start = new Button("Start");//建立start按钮 Start.setPrefSize(80, 40); Stop = new Button("Stop");//建立stop按钮 Stop.setPrefSize(80, 40); hbox.getChildren().addAll(Start,Stop);//将按钮加入HBOX getChildren().add(hbox); 五.程序清单 importjavafx.application.Application; importjava.util.Calendar; importjava.util.GregorianCalendar; https://www.doczj.com/doc/913716241.html,yout.Pane; importjavafx.scene.paint.Color; importjavafx.scene.shape.Circle; importjavafx.scene.shape.Line; importjavafx.scene.text.Text; importjavafx.application.Application; importjavafx.stage.Stage; importjavafx.animation.KeyFrame; importjavafx.animation.Timeline; importjavafx.event.ActionEvent;

JAVA实验报告六

篇一:java实验报告6 实验报告(六) 篇二:java实验报告(实验六) 北京林业大学 2013 学年— 2014 学年第 2学期 java程序设计基础实验 报告书 专业:电子班级:11-2 姓名:王云飞学号: 101114110 实验地点:计算机中心任课教师:黄儒乐实验题目:图形用户界面编程实验环境:windows2000/xp;局域网实验要求: 1. 对所有实验内容中涉及到的命令均要亲自实践,对照实验指导书进行。 2. 把实验中出现的问题以及最后解决的情况反馈到实验报告中。 3. 程序作业的源代码要求反馈到实验报告中。 实验内容: 设计一个考试分数分布统计程序,要求该程序: 1)提供输入界面,可输入考生姓名和分数; 2)单击输入按钮,在登记考生姓名和分数的同时,立即绘制当前人数的分数分布统计饼图(分为优秀、良好、中等、不及格) 3)参考界面如下: ? 初始执行时,各个分数比例均匀分布。? 然后逐个输入姓名和分数,点击输入后,左面显示姓名和分数,右面饼图同步更新。 实验目的: 掌握图形用户界面中常用类的使用。 实现方法、实验结果及结论分析等: 实验源代码: import java.awt.event.*; import java.awt.*; import javax.swing.*;public class score extends jframe{ jpanel inputpanel=new jpanel(); shanxingtu figure =new shanxingtu(); jlabel labelname=new jlabel(姓名:); jlabel labelscore=new jlabel(分数:); jlabel labelred = new jlabel(不及格(60以下)); jlabel labelyellow = new jlabel(优秀(100-90)); jlabel labelgreen = new jlabel(良好(89-75)); jlabel labelblue = new jlabel(中等(74-60)); jtextfield inputname=new jtextfield(10); jtextfield inputscore=new jtextfield(10); jtextarea textarea=new jtextarea(20,16); jbutton inputbutton=new jbutton(输入); jscrollpane scrollpane = new jscrollpane(textarea); int excellent = 0,good = 0,pass = 0,fail = 0; public score(){ setsize(400,300); settitle(分数统计); setdefaultcloseoperation(jframe.exit_on_close);

实验一java基础知识

实验一:java基础知识 实验目的: 1.掌握jave中变量的类型。 2.掌握常用的运算符 3.程序流程控制:顺序,选择和分支 实验内容: 1、回文数: 编写一个Java程序。用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指该数含有的数字逆序排列后得到的数和原数相同。 实验类别:验证性 2、猜数字游戏 编写一个Java应用程序,实现如下功能: 程序随机分配给客户一个1-100之间的整数 用户在输入对话框中输入自己的猜测 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”、和“猜对了”用户可以根据提示信息再次输入猜测,直到提示信息是“猜对了” 实验类别:设计性 3、输出希腊字母表 为了输出希腊字母表,首先获取希腊字母表的第一个字母和最后一个字母在unicode表中的位置,然后使用循环输出剩余的希腊字母 要观察一个字符在uniclde表中的顺序位置 实验类别:设计性

实验二类和对象 实验目的: 1.理解类的基本概念。 2.掌握如何定义类,定义类的成员变量和成员方法.创建和使用对象。 3.掌握定义重载方法和构造方法,方法参数的传递。 4. static变量和方法的使用。 实验内容: 1、定义一个名为Rectangle的类表示矩形,其中含有length,width两个double型 的成员变量表示矩形的长和宽。要求为每个变量定义访问方法和修改方法,定义求矩形周长的方法peremeter和求面积的方法area。定义一个带参数构造方法,通过给出的长和宽创建矩形对象。定义默认构造方法,在该方法中调用有参构造方法,将矩形长宽设置为1.0。 实验类别:验证性 2、方法重载: 编写一个Java程序,反映方法重载的使用特点,该程序包含多个重载的加法的运算,如整型加法,实型加法。 实验类别:验证性 3、学生类的创建: 1)创建一个student类,包括的域有学号、班号、姓名、性别、年龄等 2)声明一个构造方法,以初始化对象的所有域 3)声明分别获得各属性(学号、班号、姓名、性别、年龄)的各个public方法。4)声明修改各属性(学号、班号、姓名、性别、年龄)的各个public方法。5)创建一个具体学生对象,进行输出。 实验类别:设计性 4、定义一个类,类中有两个整型变量x和y,并定义构造函数初始化这两个变量。(通过构造函数传数据,数据值自定) 类中还可定义以下方法: 求两个数的和(x+y)并返回结果,求两个数的差(x-y)并返回结果,求两个数商(x/y)并返回结果,求两个数的余数(x%y)并返回结果,求两个数的最大值并返回结果。 编写应用程序,测试上面定义的类,使用类中定义的各个方法并将其结果输出。实验类别:验证性 5、用set()、get()方法传递数据: 本工程共有三个类,Person类、Employee类、和Test类,其中Test类 为测试类,其中有main()方法。 调用的是默认的构造方法,参数为空。 实验类别:设计性

Java程序设计-试验2(学生版)

华北电力大学 实验报告 实验名称Java程序面向对象设计(一)课程名称Java程序设计 专业班级:学生姓名: 学号:成绩: 指导教师:张学斌实验日期:

一、实验目的及要求 1.掌握类的定义。 2.掌握成员变量和成员方法的定义。 3.掌握构造方法的定义和使用。 4.掌握类的多态性 二、实验环境 Windows2000/Windows XP,JDK 1.2~1.6 三、试验内容和步骤 要求按照实验内容,写出详细实验过程和步骤,必要时截图。 实验1 机动车 1.1实验要求 编写一个Java应用程序,该程序有两个类:Vehicle(用于刻画机动车)和User(主类)。具体要求如下: Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。定义了speedUp(int s)方法,体现机动车有加速功能。定义了speedDown()方法,体现机动车有减速功能。定义了setPower(int s),用于设置机动车的功率。定义了getPower()方法,用于获取机动车的功率。 在主类User的mian()方法中用Vehicle类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。 1.2程序模板 Vehicle.java public class Vehicle { 【代码1】//声明double型变量speed,刻画速度 【代码2】//声明int型变量power,刻画功率 void speedUp(int s) { 【代码3】//将参数s的值与成员变量speed的和赋值给成员变量speed } void speedDown(int d) { 【代码4】//将成员变量speed与参数d的差赋值给成员变量speed } void setPower(int p) { 【代码5】//将参数p的值赋值给成员变量power } int getPower() { 【代码6】//返回成员变量power的值

实验二 Java类-实验报告

南京信息工程大学实验(实习)报告 实验(实习)名称Java类实验(实习)日期 10.17 得分指导教师刘文杰院计算机与软件学院专业软件工程年级 2017级班次 1 姓名张成学号20171344024 1.实验目的: 1)熟练MyEclipse工具的使用与调试; 2)掌握Java类、方法和变量的定义和使用; 3)熟悉方法重载和覆盖、掌握this和supper关键字使用; 4)掌握4类访问控制符的使用。 2.实验内容: (1)定义一个类Circle,实现其面积计算功能getArea(); (2)编写程序,读入一个正整数并按降序显示它的所有最小因子。(教材第3章习题9)(3)利用多态性编程,实现求三角形、正方形和圆形的面积。(教材第4章习题6) 3.实验步骤 1、 public class Circle { public double radius; public Circle(double r) { radius= r; } public double getArea() { return radius*radius*Math.PI; } public static void main(String[] args) { Circle area1 = new Circle(5); System.out.println("The area is " + area1.getArea()); } }

2、 import java.util.Scanner; public class Read { public static void main(String[] args) { Scanner input =new Scanner(System.in); System.out.print("输入一个正整数:"); int n=input.nextInt(); int []a=new int[n]; int []b=new int[n]; int p,q=0,m=0; for(p=2;p<=n;p++) { while(n%p==0) { n=n/p; if(n!=1) { a[q]=p; q++; } else { a[q]=p; } } } while(q!=-1) { b[m]=a[q]; m++; q--; } for(p=0;p

《Java面向对象程序设计》实验-实验八(输入输出流)

广西科技大学 计通学院 《Java面向对象程序设计》实验实验八输入输出流 学生姓名:××× 学号:××× 班级:××× 指导老师:××× 专业:计算机科学与技术 提交日期:×××年××月××日 实验报告内容 1.实验目的 掌握字符输入、输出流用法; 掌握使用Scanner类解析文件; 掌握Console流的使用。 2.实验内容 实验教材-第12章实验1、2、3 字符输入输出流;Scanner类与Console类。 要求:完善程序,给出实验结果截图; 完成试验后练习。 3.程序代码及运行结果: 实验1 举重成绩单 //AnalysisResult、java import java、io、*; import java、util、*;

public class AnalysisResult { public static void main(String[] args) { File("score、txt"); File("scoreAnalysis、txt"); try{ Writer out=new (fWrite); BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new (fRead); BufferedReader bufferRead=new BufferedReader(in); String str=null; while((str=bufferRead、 readLine())!=null){ double totalScore=Fenxi、getTotalScore(str); str=str+"总成绩:"+totalScore; System、out、println(str); bufferWrite、write(str); bufferWrite、newLine(); } bufferRead、close(); bufferWrite、close(); } catch(IOException e){ System、out、println(e、toString()); } } } //Fenxi、java import java、util、*;

JAVA第六次实验报告接口

实验一 1、实验题目 体操比赛计算选手成绩的办法是去掉一个最高分和一个最低分再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班学生的平均成绩。Gymnastics 类和School 类都实现了ComputerAverage接口,但实现方式不同。 2、程序代码 interface ComputerAverage{ public double average(double x[]); } class Gymnastics implements ComputerAverage{ public double average(double x[]){ int count=x.length; double aver=0,temp=0; for(int i=0;i2) aver=aver/(count-2); else aver=0; return aver; } } class School implements ComputerAverage{ public double average(double x[]){ int count=x.length; double aver=0; for(int i=0;i0) aver=aver/count;

java程序设计-试验2(学生版)()

华北电力大学 实验报告实验名称Java程序面向对象设计(一)课程名称Java程序设计 专业班级:学生姓名: 学号:成绩: 指导教师:张学斌实验日期:

一、实验目的及要求 1.掌握类的定义。 2.掌握成员变量和成员方法的定义。 3.掌握构造方法的定义和使用。 4.掌握类的多态性 二、实验环境 Windows2000/Windows XP,JDK 1.2~1.6 三、试验内容和步骤 要求按照实验内容,写出详细实验过程和步骤,必要时截图。 实验1 机动车 1.1实验要求 编写一个Java应用程序,该程序有两个类:Vehicle(用于刻画机动车)和User(主类)。具体要求如下: Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。定义了speedUp(int s)方法,体现机动车有加速功能。定义了speedDown()方法,体现机动车有减速功能。定义了setPower(int s),用于设置机动车的功率。定义了getPower()方法,用于获取机动车的功率。 在主类User的mian()方法中用Vehicle类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。 1.2程序模板 Vehicle.java

【代码1】//声明double型变量speed,刻画速度 【代码2】//声明int型变量power,刻画功率 void speedUp(int s) { 【代码3】 //将参数s的值与成员变量speed的和赋值给成员变量speed } void speedDown(int d) { 【代码4】//将成员变量speed与参数d的差赋值给成员变量speed } void setPower(int p) { 【代码5】 //将参数p的值赋值给成员变量power } int getPower() { 【代码6】 //返回成员变量power的值 } double getSpeed() { return speed; } } ---------------------------------------------------------------------------------------------- User.java

java实验报告实验六Java图形用户界面

信息工程学院 Java程序设计实习报告 JAVA图形用户界面 实验六Java图形用户界面 1.实验目的 (1)掌握图形用户界面基本组件。 (2)了解如何使用布局管理器对组件进行管理。 (3)掌握Java事件处理机制。 2.实验内容 实验题1 编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。 运行结果: 实验报告的内容与格式按任课教师的要求书写。

加法: 主要代码: private void initComponents() { jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jButton6 = new javax.swing.JButton(); jButton7 = new javax.swing.JButton(); jButton8 = new javax.swing.JButton(); jButton9 = new javax.swing.JButton(); jButton10 = new javax.swing.JButton(); jButton11 = new javax.swing.JButton(); jButton12 = new javax.swing.JButton(); jButton13 = new javax.swing.JButton(); jButton14 = new javax.swing.JButton(); jButton15 = new javax.swing.JButton(); jTextField1 = new javax.swing.JTextField();

Java实验四 -实验报告

实验四类和对象;类的继承和派生;多态性; 接口;构造器应用 一、实验目的 1、掌握类与对象的关系; 2、掌握类的定义; 3、掌握对象的声明及使用; 4、掌握构造方法的概念及调用时机; 5、掌握构造方法的重载; 6、掌握匿名对象的使用。 二、实验学时 2学时 三、实验类型 验证性实验 四、实验需求 1、硬件 每位学生配备计算机一台 2、软件 Windows 7操作系统,JDK,eclipse,MySQL 3、网络 无 4、工具 无 五、实验理论与预备知识 1、类与对象的关系; 2、类的定义; 3、对象的声明及使用; 4、构造方法的概念及调用时机; 5、构造方法的重载; 6、匿名对象的使用。 六、实验内容与结果 1、编写一个应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯 形”和“圆形”。

//三角形类 class Trangle { double sidea,sideb,sidec,sjxzc,sjxmj; boolean boo; public Trangle(double a,double b,double c) { sidea=a; sideb=b; sidec=c; if(a+b>c && a+c>b && b+c>a) { boo=true; } else { boo=false; } } double getlength() { double length; length=sidea+sideb+sidec; return length; } public double getarea() { if(boo) { double area; double p=(sidea+sideb+sidec)/2.0; area=Math.sqrt(p*(p-sidea)*(p-sideb)*(p-sidec)); return area; } else { System.out.println("不是一个三角形,不能计算面积"); return 0; } } } //梯形类 class Lader

Java 实验八

实验八事件处理 学号201617406 姓名刘顺专业网络工程成绩 【实验目的与要求】 1、理解和掌握Java中事件处理模式; 2、理解和掌握Java中事件处理的流程和方法; 3、实验后及时总结、归纳、分析,并完成实验报告。 【实验内容与要求】 设计信息注册窗口,并完成组件的事件处理功能。 编程提示: 1)完成界面设计和实现; 2)单击“确定”按钮后,在“基本信息”文本域中显示选择的信息内 容。 3)给按钮添加事件监听,实现事件处理。 button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setText() // JTextArea的方法,设置文本域内容 append() // JTextArea的方法,文本域内容追加 getText() // 组件的方法,获取组件内容 isSelected() // JcheckBox的方法,复选框内容被选中 getSelectedItem() //JComboBox()的方法,获取选中项 } 【实验过程与结果】 import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.border.TitledBorder; public class Test8 { public static void main(String[] args) { //FlowLayout flow=new FlowLayout(); JFrame j=new JFrame("新用户注册"); //创建窗体 j.setVisible(true); //窗体可见

相关主题
文本预览
相关文档 最新文档