java课代实验报告.docx
- 文档编号:11561292
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:53
- 大小:442.46KB
java课代实验报告.docx
《java课代实验报告.docx》由会员分享,可在线阅读,更多相关《java课代实验报告.docx(53页珍藏版)》请在冰豆网上搜索。
java课代实验报告
贵州大学实验报告
学院:
计算机科学与信息学院专业:
软件工程班级:
软工111
姓名
蔡远波
学号
1108060023
实验组
实验时间
2013年秋
指导教师
汪健
成绩
实验项目名称
软件开发技术
实验环境
WindowsXP操作系统环境下安装的JavaJDK开发环境
实验内容及结果
一、实验一:
(1)求两个正整数的最大公约数和最小公倍数。
(2)计算1+1/2!
+1/3!
+1/4!
+…的前20项之和。
(1)
package实验;
importjava.util.*;
publicclassExperiment1{
publicstaticvoidmain(Stringargs[]){
Scannersc=newScanner(System.in);
inti,j;
intn=sc.nextInt();
intm=sc.nextInt();
if(n>m){
i=m;j=n;
while(!
(n%i==0&&m%i==0))
i--;
System.out.print("最大公约数为:
"+i);
while(!
(j%n==0&&j%m==0))
j++;
System.out.print("最小公倍数为:
"+j);
}
else{
i=n;j=m;
while(!
(n%i==0&&m%i==0)){
i--;
}
System.out.print("最大公约数为:
"+i);
while(!
(j%n==0&&j%m==0)){
j++;
}
System.out.print("最小公倍数为:
"+j);
}
}
}
(2)
package实验;
publicclassExperiment1{
publicstaticvoidmain(String[]args){
intn=20,i;
doublesum=0,t=1;
for(i=1;i<=n;i++)
{
t=t*i;
sum=sum+1/t;
}
System.out.println("式子1+1/2!
+1/3!
+......+1/20!
的和:
"+sum);
}
结果显示如下:
二、实验二:
(1)任给一个字符串,将其中所有的子串“and”用“the”替换。
(2)任给一个字符串,将其中的小写字符转换为大写,大写字符转换为小写,其他字符不变,输出转换结果。
package实验;
publicclassExperiment_2{
publicstaticvoidmain(Stringargs[])
{
Experiment_2cai=newExperiment_2();
Stringstr="hgfsajandANDJJANDjanfandGJDFJDHandandJHJmsdbdjJJQWEJnjj";
System.out.println("原字符串:
"+str);
System.out.println("替换后的字符串为:
"+str.replaceAll("and","the"));
System.out.println("原常字符串:
"+str);
System.out.println("转换后的字符串:
"+cai.transform(str));
}
publicStringtransform(Strings){
intlen=s.length();
StringBufferbuffer=newStringBuffer(len);
for(inti=0;i charch1=s.charAt(i); charch2=Character.isUpperCase(ch1)? Character.toLowerCase(ch1): Character.toUpperCase(ch1);//判断大小写并转换 buffer.append(ch2); } returnbuffer.toString(); } } 结果显示如下: 三、实验三: (1)有员工类Employee代码如下,编写一个类Company,在其main方法中用数组存放三个Employee对象(对象初始化值自定),输出最低薪水的员工信息,提高其15%的薪水,然后输出提高后的员工信息。 代码如下: package实验; publicclassEmployee { privateStringname; privatebooleansex;//true表示男性,false表示女性 privatedoublesalary; publicEmployee(Stringn,booleans,doublesa) { name=n; sex=s; salary=sa; } publicEmployee(){} publicStringgetName() { returnname; } publicbooleangetSex() { returnsex; } publicdoublegetSalary() { returnsalary; } publicvoidraiseSalary(doublebyPercent) { doubleraise=salary*byPercent; salary+=raise; } publicstaticvoidmain(String[]args){ Employee[]em=newEmployee[3]; em[0]=newEmployee("张三",false,4000); em[1]=newEmployee("李四",true,4500); em[2]=newEmployee("王麻子",false,3000); Employeeem1=newEmployee(); em1=em[0]; for(inti=1;i<3;i++){ if(em[i].getSalary() em1=em[i]; } System.out.println("最低工资员工的信息为: "+'\n' +"姓名: "+em1.getName()+'\n' +"性别(true表示男false表示女)"+em1.getSex()+'\n' +"工资"+em1.getSalary()); em1.raiseSalary(0.15); System.out.println("调整后员工的信息为: "+'\n' +"姓名: "+em1.getName()+'\n' +"性别(true表示男false表示女)"+em1.getSex()+'\n' +"工资"+em1.getSalary()); } } 结果显示如下: 2.有类Cat代码如下,编写类Kitty继承Cat,并在Kitty中实现walk方法(输出“Thecatiswalking”),并编写KittyTest类,在其main方法中创建Kitty的一个实例,然后调用walk方法。 (提交实验报告) 代码如下: publicclassKittyTest{ package实验; publicclassKittyTest{ publicKittyTest(){ Kittykt=newKitty("Beautiful"); kt.walk(); } publicstaticvoidmain(String[]args){ KittyTestkt=newKittyTest(); } } abstractclassCat { publicCat(Stringname) { System.out.println("Thecatnameis: "+name); } abstractpublicvoidwalk(); } classKittyextendsCat{ publicKitty(Stringname){ super(name); } publicvoidwalk(){ System.out.println("Thecatiswalkingslowly"); } } 运行结果为: 四、实验四: 为验证试验; 五、实验五: 查看C: \目录下是否存在a.exe文件,若存在,将它移动到D: \目录下。 (提交实验报告) 源代码为: package实验; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileOutputStream; importjava.io.IOException; publicclassCopyFile{ publicstaticvoidmain(String[]args){ Filefile=newFile("C: \\蔡远波.exe"); if(file.exists()){ System.out.println("文件C: \\蔡远波.exe存在."); try { FileInputStreamis=newFileInputStream("C: \\蔡远波.exe"); FileOutputStreamos=newFileOutputStream("D: \\蔡远波.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: \\蔡远波.exe失败! "); e.printStackTrace(); return; } System.out.println("复制文件成功! "); }else{ System.out.println("文件c: \\蔡远波.exe不存在! "); } } } 运行结果为: 首先,C盘目录下没有“蔡远波.exe”的时候出现的情况: 其次,C盘有“蔡远波.exe”后出现的情况: 现有2个Student对象,将对象中的学生数据保存到文件stu.info中,然后从文件中读取学生信息并显示。 (使用DataInput/OutputStream类完成,提交实验报告) 源代码为: package实验; importjava.io.DataOutputStream; importjava.io.FileInputStream; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.DataInputStream; classStudent { Stringname; booleansex; doubleweight; intage; Student(Stringname,booleansex,doubleweight,intage) { this.name=name; this.sex=sex; this.weight=weight; this.age=age; } publicvoidOutPut() { System.out.println("姓名: "+name+"\n"+"性别: "+sex+"\n"+"体重: "+weight+"\n"+"年龄: "+age); } publicvoidSetInfo(Stringname,booleansex,doubleweight,intage) { this.name=name; this.sex=sex; this.weight=weight; this.age=age; } } publicclassfile1 { publicstaticvoidmain(Stringargs[]) { Strings0="蔡远波\0",s1="周鑫\0"; Studentstudent[]=newStudent[2]; student[0]=newStudent(s0,true,63,22); student[1]=newStudent(s1,true,55,20); try { DataOutputStreamobjOut=newDataOutputStream(newFileOutputStream("stu.info")); objOut.writeChars(student[0].name); objOut.writeBoolean(student[0].sex); objOut.writeDouble(student[0].weight); objOut.writeInt(student[0].age); objOut.writeChars(student[1].name); objOut.writeBoolean(student[1].sex); objOut.writeDouble(student[1].weight); objOut.writeInt(student[1].age); objOut.close(); } catch(IOExceptione) { e.printStackTrace(); System.out.println("DataOutputStreamSomethingiswrong! "); } student[0].SetInfo("",false,0,0); student[1].SetInfo("",false,0,0); try { DataInputStreamobjIn=newDataInputStream(newFileInputStream("stu.info")); student[0].name=""; for(charc;(c=objIn.readChar())! ='\0';) { student[0].name+=c; } student[0].SetInfo(student[0].name,objIn.readBoolean(),objIn.readDouble(),objIn.readInt()); student[1].name=""; for(charc;(c=objIn.readChar())! ='\0';) { student[1].name+=c; } student[1].SetInfo(student[1].name.toString(),objIn.readBoolean(),objIn.readDouble(),objIn.readInt()); objIn.close(); student[0].OutPut(); student[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()); } } } 运行结果为: 六、试验六: 2、TreeSet树集 对于如下的学生类 classStudent { Stringname;//姓名 booleansex;//男性为true,女性为false intage;//年龄 doubleweight;//体重 } 将5个Student对象保存到TreeSet中,要求按照学生的姓名进行排序,且姓名短的学生排在前面,例如,假设5个学生的姓名分别为Black,John,Alice,Raj,Sheldon,那么输出的顺序应为Raj,John,Alice,Black,Sheldon。 (提交实验报告) 源代码为: package实验课程; importjava.util.*; classStudentimplementsComparable { publicStringname; charsex; intage; doubleweight; Student(Stringname,charsex,intage,doubleweight) { this.name=name; this.sex=sex; this.age=age; this.weight=weight; } publicintcompareTo(Objectb) { Studentstudent=(Student)b; returnthis.name.length()-student.name.length(); } } publicclasstree { publicstaticvoidmain(Stringargs[]) { TreeSet Studentstudent0,student1,student2,student3,student4,student5; student1=newStudent("十点多几级的时间段内技术监督局",'M',22,63); student2=newStudent("十多年到你家",'M',20,55); student3=newStudent("菜大树的美济礁的什么",'M',22,70); student4=newStudent("圣诞节是假的皮",'M',21,65); student5=newStudent("收到货是几",'M',21,50); 树.add(student1); 树.add(student2); 树.add(student3); 树.add(student4); 树.add(student5); Iterator while(tree.hasNext()) { Studentstu=tree.next(); System.out.println("学生的姓名: "+stu.name); } } } 运行结果为: 七、实验七: 可以看出,输出比较混乱,这是因为多个工人(线程)独立工作的原因。 考虑实际情况,仓库在某一时刻,只能进行一个货物的出(入)库操作,如何修改代码可达到这一目的(synchronized关键字)。 再进一步考虑,仓库的容量有限,若容量到达最大值,则不能再进行入库操作;若容量=0,则不能进行出库操作,修改代码实现这一要求 classWareHouse { privateintcapacity; privatefinalintcapacityLimit=15;//仓库最大容量 publicWareHouse() { capacity=10; } publicWareHouse(intn) { capacity=n; } publicsynchronizedvoidgoodsIn() { System.out.println("货物入库开始..."); try { Thread.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)