Java的实验报告很详细.docx

上传人:b****8 文档编号:9140145 上传时间:2023-02-03 格式:DOCX 页数:36 大小:630.07KB
下载 相关 举报
Java的实验报告很详细.docx_第1页
第1页 / 共36页
Java的实验报告很详细.docx_第2页
第2页 / 共36页
Java的实验报告很详细.docx_第3页
第3页 / 共36页
Java的实验报告很详细.docx_第4页
第4页 / 共36页
Java的实验报告很详细.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

Java的实验报告很详细.docx

《Java的实验报告很详细.docx》由会员分享,可在线阅读,更多相关《Java的实验报告很详细.docx(36页珍藏版)》请在冰豆网上搜索。

Java的实验报告很详细.docx

Java的实验报告很详细

贵州大学实验报告

学院:

计算机科学与信息学院专业:

软件工程班级:

09级软件1班

姓名

学号

实验组

实验时间

指导教师

成绩

实验项目名称

软件开发技术

实验环境

WindowsXP操作系统环境下安装的JavaJDK开发环境

实验内容及结果

一、实验2:

(1)求两个正整数的最大公约数和最小公倍数。

//假设求两个正整数16和9的最大公约数和最小公倍数

publicclassMax_Min

{

publicstaticvoidmain(Stringargs[])

{

inta=16;

intb=9;

intmax=0,min=0;

inti;

intav;//根据最大公约数的定义可知其最大值只能会是a和b中最大的数

av=(a>b)?

b:

a;//所以根据最大值求出最大公约数

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

{

if(a%i==0&&b%i==0)

max=i;

}

//最小公倍数实际上就是最大公约数的值乘上a、b分别除以最大公约数取余的值

min=max*(a/max)*(b/max);

System.out.println(a+"和"+b+"的最大公约数:

"+max);

System.out.println(a+"和"+b+"的最小公倍数:

"+min);

}

}

结果显示如下:

(2)计算1+1/2!

+1/3!

+1/4!

+…的前20项之和。

……(代码)

结果显示如下:

 

(1)求两个正整数的最大公约数和最小公倍数。

源代码为:

importjava.util.Scanner;

publicclassTestch0_6{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

//调用java.util.Scanner可以获得从键盘输入的数字;

Scannersc=newScanner(System.in);

//定义两个整型数字的变量

intmin;

intmax;

System.out.print("请输入一个数:

");

min=sc.nextInt();//nextInt();方法用来获取输入的IntNUM

System.out.print("请输入另一个数:

");

max=sc.nextInt();

//调用后面的静态方法;

System.out.println(gongyue(min,max));

System.out.println(gongbei(min,max));

}

//a与b的最大公约数

publicstaticintgongyue(intmin,intmax){

while(max%min!

=0){

/**运用递归调用将求余之后的值作为min

*将之前的min作为max直到求余值为0为止结束循环*/

inttemp=max%min;

max=min;

min=temp;

}

returnmin;

}

//a与b的最小公倍数

publicstaticintgongbei(intmin,intmax){

//求公倍数就是将两个数相乘除以最大公约数

returnmin*max/gongyue(min,max);

}

}

结果为:

 

(2)计算1+1/2!

+1/3!

+1/4!

+…的前20项之和。

源代码为:

publicclassjiafa

{

 publicstaticvoidmain(Stringargs[])

 {

intm=1,n;

floati,sum=0;

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

{m=m*n;

i=1.0F/m;

sum=sum+i;

}

if(n>=20)

System.out.print(sum);

 }

}

运行结果为:

 

二、实验3

(2)任给一个字符串,将其中所有的子串“and”用“the”替换。

源代码为:

publicclassCReplace{

publicstaticStringReplace(Stringargs,Stringarg0,Stringarg1){

returnargs.replaceAll(arg0,arg1);

}

publicstaticvoidmain(Stringargs[]){

Stringa="IloveJavaandC#.";

System.out.println("原来的字符串为:

"+a);

System.out.println("改后的字符串为:

"+Replace(a,"and","the"));

}

}

运行结果为:

(3)任给一个字符串,将其中的小写字符转换为大写,大写字符转换为小写,其他字符不变,输出转换结果。

源代码为:

publicclassCConvert{

publicstaticStringConvert(Stringargs){

intlen=args.length();

StringBufferbuffer=newStringBuffer(len);

for(inti=0;i

charc=args.charAt(i);

if(c>='a'&&c<='z'){

buffer.append((char)(c-32));

}elseif(c>='A'&&c<='Z'){

buffer.append((char)(c+32));

}else{

buffer.append(c);

}

}

returnbuffer.toString();

}

publicstaticvoidmain(Stringargs[]){

Stringa="IloveJavaandC#.";

System.out.println("原来的字符串为:

"+a);

System.out.println("改后的字符串为:

"+Convert(a));

}

}

运行结果为:

 

三、实验4

(1)有员工类Employee代码如下,编写一个类Company,在其main方法中用数组存放三个Employee对象(对象初始化值自定),输出最低薪水的员工信息,提高其15%的薪水,然后输出提高后的员工信息。

源代码为:

classEmployee

{

privateStringname;

privatebooleansex;//true表示男性,false表示女性

privatedoublesalary;

publicEmployee(Stringn,booleans,doublesa)

{

name=n;

sex=s;

salary=sa;

}

publicStringgetName()

{

returnname;

}

publicbooleangetSex()

{

returnsex;

}

publicdoublegetSalary()

{

returnsalary;

}

publicvoidraiseSalary(doublebyPercent)

{

doubleraise=salary*byPercent;

salary+=raise;

}

}

publicclassCompany{

publicstaticvoidoput(Employeeemployee){

System.out.print("{姓名:

"+employee.getName());

System.out.print(",性别:

"+(employee.getSex()?

"男":

"女"));

System.out.print(",薪水:

"+employee.getSalary()+"}\n");

}

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Employeeemployees[]={

newEmployee("关羽",true,5430),

newEmployee("孙二娘",false,3300),

newEmployee("扈三娘",false,3690),

};

inti,min=0;

for(i=min+1;i<3;i++){

if(employees[min].getSalary()>employees[i].getSalary()){

min=i;

}

}

System.out.print("最低薪水的员工信息:

");

Company.oput(employees[min]);

employees[min].raiseSalary(0.15);

System.out.print("提高薪水的员工信息:

");

Company.oput(employees[min]);

}

}

运行结果为:

2、继承和多态

有类Cat代码如下,编写类Kitty继承Cat,并在Kitty中实现walk方法(输出“Thecatiswalking”),并编写KittyTest类,在其main方法中创建Kitty的一个实例,然后调用walk方法。

源代码为:

abstractclassCat{publicCat(Stringname){System.out.println("Thecatnameis"+name);}abstractpublicvoidwalk();}publicclassKittyextendsCat{publicKitty(){super("CatRunning");}publicvoidwalk(){System.out.println("Thecatiswalking");}}publicclassKittyTest{publicstaticvoidmain(String[]args){Kittytest=newKitty();test.walk();}}

运行结果为:

 

四、试验5

全部为验证性试验,无代码和报告。

 

五、试验6

1、文件类File

查看C:

\目录下是否存在a.exe文件,若存在,将它移动到D:

\目录下。

(提交实验报告)

源代码为:

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.io.IOException;

publicclassCopyFile{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Filefile=newFile("C:

\\a.exe");

if(file.exists()){

System.out.println("文件C:

\\a.exe存在.");

try

{

FileInputStreamis=newFileInputStream("C:

\\a.exe");

FileOutputStreamos=newFileOutputStream("D:

\\a.exe");

byte[]buffer=newbyte[4096];

while(is.available()>0){

intn=is.read(buffer);

os.write(buffer,0,n);

}

is.close();

os.close();

}

catch(IOExceptione){

System.out.println("复制到D:

\\a.exe失败!

");

e.printStackTrace();

return;

}

System.out.println("复制文件成功!

");

}else{

System.out.println("文件C:

\\a.exe不存在!

");

}

}

}

运行结果为:

首先,C盘目录下没有a.exe的时候出现的情况:

其次,C盘有a.exe后出现的情况:

现有2个Student对象,将对象中的学生数据保存到文件stu.info中,然后从文件中读取学生信息并显示。

(使用DataInput/OutputStream类完成,提交实验报告)

源代码为:

classStudent

{

Stringname;//姓名

booleansex;//男性为true,女性为false

intage;//年龄

doubleweight;//体重

Student(Stringname,booleansex,intage,doubleweight)

{

this.name=name;

this.sex=sex;

this.age=age;

this.weight=weight;

}

publicvoidSetInfo(Stringname,booleansex,intage,doubleweight)

{

this.name=name;

this.sex=sex;

this.age=age;

this.weight=weight;

}

publicvoidOutPut()

{

System.out.println("姓名:

"+name+"\n"+"性别:

"+sex+"\n年龄:

"+age+"\n体重:

"+weight);

}

}

importjava.io.IOException;

importjava.io.DataInputStream;

importjava.io.DataOutputStream;

importjava.io.FileOutputStream;

importjava.io.FileInputStream;

 

publicclassLX4_4{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Students[]={

newStudent("sam\0",true,18,54.2),

newStudent("jenny\0",true,20,46.3),

};

try

{

DataOutputStreamobjOut=newDataOutputStream(newFileOutputStream("stu.info"));

objOut.writeChars(s[0].name);

objOut.writeBoolean(s[0].sex);

objOut.writeInt(s[0].age);

objOut.writeDouble(s[0].weight);

objOut.writeChars(s[1].name);

objOut.writeBoolean(s[1].sex);

objOut.writeInt(s[1].age);

objOut.writeDouble(s[1].weight);

objOut.close();

}

catch(IOExceptione){

e.printStackTrace();

System.out.println("DataOutputStreamSomethingiswrong!

");

}

s[0].SetInfo("",false,0,0);

s[1].SetInfo("",false,0,0);

try

{

DataInputStreamobjIn=newDataInputStream(newFileInputStream("stu.info"));

s[0].name="";

for(charc;(c=objIn.readChar())!

='\0';){

s[0].name+=c;

}

s[0].SetInfo(s[0].name,objIn.readBoolean(),objIn.readInt(),objIn.readDouble());

s[1].name="";

for(charc;(c=objIn.readChar())!

='\0';){

s[1].name+=c;

}

s[1].SetInfo(s[1].name,objIn.readBoolean(),objIn.readInt(),objIn.readDouble());

objIn.close();

s[0].OutPut();

s[1].OutPut();

}

catch(IOExceptione){

e.printStackTrace();

System.out.println("DataOutputStreamSomethingiswrong!

");

}

}

}

运行结果为:

(3)编写程序,在一个文本文件的开头添加一行“山中何所有,岭上多白云”,在文件的末尾添加一行“只可自怡悦,不堪持赠君”。

(提交实验报告)

源代码为:

importjava.io.*;

publicclassAppend

{

publicstaticvoidmain(Stringargs[])

{

Stringpath="c:

\\append.txt";

Stringcontent="山中何所有,岭上多白云;";

StringAppendStr="只可自怡悦,不堪持赠君.";

writefile(path,content,false);

writefile(path,AppendStr,true);

System.out.println("Success");

}

publicstaticvoidwritefile(Stringpath,Stringcontent,booleanappend)

{

BufferedWriterbw;

Filewritefile;

try{

booleanaddStr=append;

writefile=newFile(path);

if(writefile.exists()==false){

writefile.createNewFile();

writefile=newFile(path);

}

FileWriterfw=newFileWriter(writefile,addStr);

bw=newBufferedWriter(fw);

fw.write(content);

fw.flush();

fw.close();

}catch(Exceptiond){

System.out.println(d.getMessage());

}

}

}

运行结果为:

 

六、试验7

2、TreeSet树集

对于如下的学生类

classStudent

{

Stringname;//姓名

booleansex;//男性为true,女性为false

intage;//年龄

doubleweight;//体重

}

将5个Student对象保存到TreeSet中,要求按照学生的姓名进行排序,且姓名短的学生排在前面,例如,假设5个学生的姓名分别为Black,John,Alice,Raj,Sheldon,那么输出的顺序应为Raj,John,Alice,Black,Sheldon。

(提交实验报告)

源代码为:

importjava.util.*;

classStudentimplementsComparable

{

publicStringname;

booleansex;

intage;

doubleweight;

Student(Stringname,booleansex,intage,doubleweight)

{

this.name=name;

this.sex=sex;

this.age=age;

this.weight=weight;

}

publicintcompareTo(Objectb)

{

Studentst=(Student)b;

returnthis.name.length()-st.name.length();

}

}

 

importjava.util.*;

publicclassStudentTest

{

publicstaticvoidmain(Stringargs[])

{

TreeSetmytree=newTreeSet();

Studentstu1,stu2,stu3,stu4,stu5;

stu1=newStudent("Black",true,21,120.0);

stu2=newStu

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

当前位置:首页 > PPT模板 > 商务科技

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

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