java实验九选六已完成.docx

上传人:b****4 文档编号:4455412 上传时间:2022-12-01 格式:DOCX 页数:32 大小:580.42KB
下载 相关 举报
java实验九选六已完成.docx_第1页
第1页 / 共32页
java实验九选六已完成.docx_第2页
第2页 / 共32页
java实验九选六已完成.docx_第3页
第3页 / 共32页
java实验九选六已完成.docx_第4页
第4页 / 共32页
java实验九选六已完成.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

java实验九选六已完成.docx

《java实验九选六已完成.docx》由会员分享,可在线阅读,更多相关《java实验九选六已完成.docx(32页珍藏版)》请在冰豆网上搜索。

java实验九选六已完成.docx

java实验九选六已完成

实验一Java面向对象

实验目的:

深入理解、掌握面向对象的概念。

知识准备:

一.面向对象技术的基本概念:

类、对象、方法、构造方法、属性、修饰符、方法重载和覆盖、继承、多态、抽象类和接口、内部类等。

二.Package和import语句

三.JaveAPI常用包

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

五.This和Super

实验内容:

(选择其一)

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

类结构如下表:

Stock

privateStringsymbol

privateStringname

privatedoublepreviousClosingPrice

privatedoublecurrentPrice

publicStock()

publicStock(Stringsymbol,Stringname)

publicStringgetSymbol()

publicStringgetName()

publicdoublegetPreviousClosingPrice()

publicdoublegetCurrentPrice()

publicvoidsetSymbol(Stringsymbol)

publicvoidsetName(Stringname)

publicvoidsetPreviousClosingPrice(doublepreviousClosingPrice)

publicvoidsetCurrentPrice(doublecurrentPrice)

publicdoublechangePercent()

 

请实现Stock类,并另写一个类来测试Stock类。

在测试类中,创建一个Stock对象,其股票标志为SUN、名称为SunMircosystemInc、前期收盘价为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)中。

测试其中几种被可见性修饰符修饰过的属性和方法。

第一个

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

publicclassStock{

privateStringsymbol;

privateStringname;

privatedoublepreviousPrice;

privatedoublecurrentPrice;

publicStock(){

}

publicStock(Stringsymbol,Stringname){

this.symbol=symbol;

this.name=name;

}

publicStringgetSymbol(){

returnsymbol;

}

publicStringgetName(){

returnname;

}

publicdoublegetPreviousPrice(){

returnpreviousPrice;

}

publicdoublegetCurrentPrice(){

returncurrentPrice;

}

 

publicvoidsetSymbol(Stringsymbol){

this.symbol=symbol;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicvoidsetPreviousPrice(doublepreviousPrice){

this.previousPrice=previousPrice;

}

publicvoidsetCurrentPrice(doublecurrentPrice){

this.currentPrice=currentPrice;

}

publicdoublechangePercent(){

return((currentPrice-previousPrice)/previousPrice);

}

}

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

importjava.util.Scanner;

publicclassTestStock{

publicstaticvoidmain(String[]args){

Stocksun=newStock("SUN","SunMircosystemInc");

doublex=100.0d;

sun.setPreviousPrice(x);

Scannerscan=newScanner(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类的应用-文件、文件夹的建立、删除、重命名等

importjava.io.File;

importjava.io.IOException;

publicclassExam2_1{

publicstaticvoidmain(String[]args)throwsIOException{

Filefile=newFile("d:

/","myfolder");

file.mkdir();

Filefile1=newFile("d:

/myfolder/my.txt");

file1.createNewFile();

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

System.out.println("文件建立:

"+file1.exists());

FilefileNew=newFile(file1.getParent(),"ThisaNewName.txt");

System.out.println("原始名字为:

"+file1.getName());

booleana;

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

System.out.println("的重命名为:

"+fileNew.getName());

}

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

Filefile2=newFile("d:

/myfolder/2.txt");

file2.createNewFile();

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

System.out.println("删除file2:

"+file2.delete());

}

}

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

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

importjava.io.*;

publicclassExam2_2{

publicstaticvoidmain(String[]args)throwsIOException{

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

Filefile=newFile("d:

/","JAVA.txt");

BufferedReaderbufferedReader=newBufferedReader(newInputStreamReader(newFileInputStream(file),"GBK"));

FilefileNew=newFile("d:

/","NewFile.txt");

fileNew.createNewFile();

FileWriterfileWriter=newFileWriter(fileNew);

BufferedWriterbufferedWriter=newBufferedWriter(fileWriter);

Stringstr=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时抛出,

importjava.util.Scanner;

publicclassExam3{

staticintdividend;

staticintdivisor;

staticdoubleresult;

publicstaticvoidmain(String[]args){

Scannerscan=newScanner(System.in);

booleanjudge=false;

while(!

judge){

judge=true;

try{

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

");

dividend=scan.nextInt();

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

");

divisor=scan.nextInt();

if(divisor==0)

thrownewArithmeticException();

if(dividend<0||divisor<0)

thrownewLowerThanZeroException();

result=(double)dividend/divisor;

}

catch(LowerThanZeroExceptione1){

judge=false;

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

}

catch(ArithmeticExceptione2){

judge=false;

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

}

catch(java.util.InputMismatchExceptione3){

judge=false;

thrownewNumberFormatException();

}

finally{

if(judge)

System.out.println("结果为:

"+result);

else

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

");

}

}

}

}

classLowerThanZeroExceptionextendsException{

LowerThanZeroException(){

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

}

@Override

publicStringtoString(){

Stringstr="除数或被除数小于0";

returnstr;

}

}

实验四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/T2260执行。

八位数字出生日期码:

按GB/T7408的规定执行。

三位数字顺序码:

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

一位数字校验码:

采用ISO7064:

1983,MOD11-2校验码系统。

计算方法:

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

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

 Ai:

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

 Wi:

表示第i位置上的加权因子,分别为w[17]7910584216379105842

(2)计算模:

Y=mod(S,11)

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

Y

0

1

2

3

4

5

6

7

8

9

10

校验码

1

0

x

9

8

7

6

5

4

3

2

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

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

四.给定一个HTML文件,将其中的IP地址、Email地址、超级链接输出。

五.利用Collection类实现扑克牌的洗牌。

二---------------------------------

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

importjava.util.HashSet;

importjava.util.Random;

classMyHashSet{

publicstaticvoidmain(String[]args){

HashSethashSetA=newHashSet();//集合1

HashSethashSetB=newHashSet();//集合2

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

hashSetA.add("banana");

hashSetA.add("bcycle");

hashSetB.add("appple");

hashSetB.add("home");

hashSetB.add("Car");

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

intanyNumber;

Randomrandom=newRandom();

anyNumber=random.nextInt(10)+1;

hashSetA.add(anyNumber);

anyNumber=random.nextInt(10)+1;

hashSetB.add(anyNumber);

}

SetmySet=newSet(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));

}

}

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

classSet{

privateHashSeth1=newHashSet();

privateHashSeth2=newHashSet();

privateHashSethSum=newHashSet();//并集

privateHashSethMixed=newHashSet();//交集

privateHashSethDifference=newHashSet();//h差集

publicSet(HashSeth1,HashSeth2){

this.h1=h1;

this.h2=h2;

for(Objectk:

h1){

hSum.add(k);

}

for(Objectk:

h2){

booleanb;

b=hSum.add(k);

if(!

b){

hMixed.add(k);

}

}

}

publicHashSetgetSum(){

returnhSum;

}

publicHashSetgetMixed(){

returnhMixed;

}

publicHashSetgetDifference(HashSeth1,HashSeth2){

this.h1=h1;

this.h2=h2;

for(Objectk:

h1){

booleanb;

b=hMixed.add(k);

if(b){

hDifference.add(k);

}

}

returnhDifference;

}

publicvoidprint(HashSeth){

inti=1;

for(Objectit:

h){

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

if(i%10==0)

System.out.println("");

i++;

}

System.out.println("");

}

}

三—————————————————————————————————

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

importjava.io.BufferedWriter;

importjava.io.File;

importjava.io.FileWriter;

importjava.io.RandomAccessFile;

importjava.util.HashMap;

importjava.util.Map;

importjava.util.Scanner;

importjava.util.StringTokenizer;

publicclassExam4_3{

staticStringfileName;

staticStringfilePath;

publicstaticvoidmain(String[]args)throwsException{

Scannerscan=newScanner(System.in);

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

");

filePath=scan.nextLine();

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

");

fileName=scan.nextLine();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1