当前位置:文档之家› java 实验六 输入输出 实验报告

java 实验六 输入输出 实验报告

java 实验六 输入输出 实验报告
java 实验六 输入输出 实验报告

实验六输入输出

实验目标:

1. 理解I/O流的概念与机制,掌握其分类;

2. 掌握文本文件的读写、二进制文件的读写、处理流类的概念和用法、对象序列化;

3. 掌握File类,压缩流类和RandomAccessFile类的使用;

4. 遇到I/O方面的问题,能够自行查阅API稳当解决。

实验任务:

1、课本198页习题2,并使用这个程序来copy自己硬盘的大文件(任何格式都可

以,如电影,最好大于500MB),看看需时多少?

提示:首先需要看懂课本文本文件例子,再模仿修改,关键不同在下面三点。

(1)文本文件复制中是每次读一行,而在二进制文件复制中是自行指定读取多少字节的数据,写法如下。

privateboolean copyFiles() { //这个私有方法用来拷贝文件,如无异常返回true try {

byte[] buf = newbyte[512];

int num = source.read(buf); //从源文件读取数据

while (num > 0) { // 只要能够读取数据,就继续读

dest.write(buf, 0, num); //向目标文件写入

num = source.read(buf); //从源文件读取数据

}

}

catch (IOException iox) {

System.out.println("Problem reading or writing"); returnfalse;

}

returntrue;

}

-------------------

以上请注意byte[] buf = newbyte[512],说明每次只读512字节,请更换每次读取的缓冲字节数,比如byte[] buf = newbyte[5120],每次读5mb左右,请试试copy效率回有所提高吗?请截图回答。

(2)需时多少可以通过CPU时钟计算,方法见下。

Calendar start=Calendar.getInstance();

new BinaryFileCopy().copy(args[0], args[1]);

Calendar end=Calendar.getInstance();

long time=end.getTimeInMillis()-start.getTimeInMillis();

System.out.println("copy时间为"+time+"毫秒");

(3)因为这个程序执行需要输入参数的,所以在eclipse里面不能直接执行的,要到

dos界面去执行,这里命令行的写法就有点讲究了。

首先,运行的是class文件,你先要找到class文件而不是java源代码文件,一般放在项目的bin目录下,因此必须在bin目录下执行,第二执行class文件的程序是java,课本第5页最后几行有介绍,比如运行当前目录下的HelloWorld.class,语法为:java HelloWorld,注意,必须在bin目录下执行

第三,如果你的类是在一个包里,比如我这个类Exe6_2.class在包charp6里面,写法为java charp6.Exe6_2

第四,这个copy程序需要输入两个参数,一个源文件,一个目标文件,记得参数文件名要有后缀名,具体见下截图。

当byte[] buf = newbyte[512]时,该程序的代码如下:

package zi;

import java.io.*;

import java.util.Calendar;

class BinaryFileCopy {

String sourceName, destName;

FileInputStream source;

FileOutputStream dest;

String line;

//打开源文件和目标文件,无异常返回true

privateboolean openFiles() {

try {

source = new FileInputStream(sourceName );

}

catch ( IOException iox ) {

System.out.println("Problem opening " +sourceName );

returnfalse;

}

try {

dest = new FileOutputStream(destName);

}

catch ( IOException iox )

{

System.out.println("Problem opening " + destName );

returnfalse;

}

returntrue;

}

//复制文件

privateboolean copyFiles() { //这个私有方法用来拷贝文件,如无异常返回true try {

byte[] buf = newbyte[512];

int num = source.read(buf); //从源文件读取数据

while (num > 0) {// 只要能够读取数据,就继续读

dest.write(buf, 0, num); //向目标文件写入

num = source.read(buf); //从源文件读取数据

}

}

catch (IOException iox) {

System.out.println("Problem reading or writing"); returnfalse;

}

returntrue;

}

//关闭源文件和目标文件

privateboolean closeFiles() {

boolean retVal=true;

try {

source.close();

}

catch ( IOException iox ) {

System.out.println("Problem closing " + sourceName );

retVal = false;

}

try {

dest.close();

}

catch ( IOException iox ) {

System.out.println("Problem closing " + destName );

retVal = false;

}

return retVal;

}

//执行复制

publicboolean copy(String src, String dst ) {

sourceName = src ;

destName = dst ;

return openFiles() && copyFiles() && closeFiles();

}

}

publicclass Ex6_1 {

publicstaticvoid main ( String[] args ) {

Calendar start=Calendar.getInstance();

String s1="e:/develops/six/copy1.VOB";

String s2="e:/develops/six/copy2.VOB";

if(new BinaryFileCopy().copy(s1, s2))

System.out.print("复制成功");

else

System.out.print("复制失败");

new BinaryFileCopy().copy(s1, s2);

Calendar end=Calendar.getInstance();

long time=end.getTimeInMillis()-start.getTimeInMillis();

System.out.println("copy时间为"+time+"毫秒");

}

}

其运行结果截图如下:

其UML图如下图所示:

当byte[] buf = newbyte[20480]时,其部分代码如下:

privateboolean copyFiles() { //这个私有方法用来拷贝文件,如无异常返回true try {

byte[] buf = newbyte[20480];

int num = source.read(buf);

while (num > 0) {// 只要能够读取数据,就继续读

dest.write(buf, 0, num); //向目标文件写入

num = source.read(buf); //从源文件读取数据

}

}

catch (IOException iox) {

System.out.println("Problem reading or writing"); returnfalse;

}

returntrue;

}

此时运行结果截图如下:

其UML图如下:

2、课本198页习题4,把分别用时截图。

提示:

(1)这题关键是帮助大家理解buffer缓冲的强大与必要性,两种写法分别如下:(2)随机数的产生,请查阅API,代码见下。

Random r = new Random();

int number = r.nextInt(100);

(3)因为Writer是写入文本文件,所以需要把Integer类型转成String类型。

fw.write(((Integer) number).toString());

(4)如何计时?与上题做法一样,通过计算开始前与结束后获得cpu当前时钟(毫秒级),两个数值的差就是代码运行时间。

第一种写法的代码如下:

package zi;

import java.io.*;

publicclass fileWriter {

publicstaticvoid main(String[] args)

throws IOException{

long time = System.

currentTimeMillis();

//当前时间

FileWriter filewriter=new FileWriter("e:/develops/six/Random1.txt"); int number;

for(int i=1;i<=100000;i++){

number=(int)(Math.random()*10000);

filewriter.write(number+" ");

}

filewriter.close();

time=System.

currentTimeMillis

()-time;

//时间差

System.out.println("用时为:"+time+"微秒.");

}

}

其运行结果如图所示:

其UML图如下:

第二种写法的代码如下:

package zi;

import java.io.*;

publicclass bufferedWriter {

publicstaticvoid main(String[] args) throws IOException{ long time = System.currentTimeMillis();

//当前时间

BufferedWriter filewriter=new BufferedWriter(new

FileWriter("e:/develops/six/Random2.txt"));

int number;

for(int i=1;i<=100000;i++){

number=(int)(Math.random()*10000);

filewriter.write(number+" "); }

filewriter.close();

time=System.currentTimeMillis()-time;

//时间差

System.out.println("用时为:"+time+"微秒.");

}

}

其执行结果如图所示:

其UML图如下:

随机数生成文件截图如下:

3、课本199页习题8。(可使用先前创设的Student类或其他类)

提示:这题是熟悉对象序列化,请大家参照课本194页例子6-17的代码来做就可以了。

该题代码如下所示:

package zi;

Serializable{

String name;

int age;

int grade;

transient String secret;

public Student(String name,int age,int grade,String secret){ https://www.doczj.com/doc/8a3729208.html,=name;

this.age=age;

this.grade=grade;

this.secret=secret;

}

}

package zi;

import java.io.*;

publicclass Ex6_3 {

publicstaticvoid main(String[] args) throws

IOException,ClassNotFoundException{

Student student[]={

new Student("张三",18,105,"zhangsan"),

new Student("李四",21,406,"lisi"),

new Student("王五",19,201,"wangwu"),

new Student("赵六",20,304,"zhaoliu")};

//创建输出

ObjectOutputStream oos=new ObjectOutputStream(

new FileOutputStream("naruto.dat"));

for(int i=0;i

oos.writeObject(student[i]);

oos.close();

//将对象数组student全部清空,后边你会明白的。

for(int i=0;i

student[i]=null;

//创建输入

ObjectInputStream ois=new ObjectInputStream(

new FileInputStream("naruto.dat"));

for(int i=0;i

student[i]=(Student)ois.readObject(); //重新从文件中读入,之前的清空就因为此读入。注意,读入要强制转化为学生类

ois.close();

//显示信息

for(int i=0;i

if(i==student.length-1){

System.out.println("我的名字:"+student[i].name);

System.out.println("我的年龄:"+student[i].age);

System.out.println("我的班级:"+student[i].grade);

System.out.println("我的密码:"+student[i].secret);

System.out.println();

}

else{

System.out.println("第"+(i+1)+"个女学生名字:"+student[i].name);

System.out.println("第"+(i+1)+"个女学生年龄:"+student[i].age);

System.out.println("第"+(i+1)+"个女学生班级:"+student[i].grade);

System.out.println("第"+(i+1)+"个女学生密码:"+student[i].secret);

System.out.println();

}

}

}

}

其运行结果截图如下:

其uml图如下:

4、课本199页习题9。

提示:这题是尝试熟悉压缩流类,并增加缓冲功能,使得效率加快,请给出不用缓冲与用缓冲的两个方法在压缩同一批文件时的时间对比。

(1)不用缓冲的压缩程序,见课本189页6-14,代码已在“教学资源共享”书里(记得加上计时功能,实现方法同上面1、2题。),我们注意到这里不使用缓冲压缩和解压缩一

个文本文件,然后使用缓冲读取显示一个文件,那我们显示就不必要了,因为数据太多一百万个看不过来,改写如下。

(2)测试数据:可以找一个大一点的文本文件来实验,比如用任务2的程序生成一百万个的随机数的一个文本文件来做本题测试,下图random1是有10000个随机整数,random2有1000000个随机整数(100以内的整数)的文本文件,我们用后者来做实验。

执行效果如下:

可见相当悲催,才不到20MB文本就压缩了30秒,解压要33秒,看来效率不行,所以需要用缓冲类来改写,怎么用缓冲?请大家参照6-14中的读取显示代码,那是用了缓冲的,再回顾课本的输入输出模型机制,自行检索相关资料。

请把改进后程序应用于同一个文件的压缩与解压缩时间截图。

该题未改写前代码如下所示:

package zi;

import java.io.*;

import java.util.zip.*;

import java.util.*;

publicclass GZIPTester1{

publicstaticvoid main(String[] args) throws IOException {

FileInputStream in = new FileInputStream("e:/develops/six/Random2.txt"); GZIPOutputStream out = new GZIPOutputStream(

new FileOutputStream("e:/develops/six/test1.gz"));

System.out.println("Writing compressing file from

e:/develops/six/Random2.txt to e:/develops/six/test1.gz");

int c;

Calendar start1=Calendar.getInstance();

while((c = in.read()) != -1){

out.write(c); //写压缩文件

}

in.close();

out.close();

Calendar end1=Calendar.getInstance();

long time1=end1.getTimeInMillis()-start1.getTimeInMillis();

System.out.println("不经过buffer缓冲直接压缩时间为"+time1+"毫秒");

System.out.println("Writing decompression to

e:/develops/six/Random2.txt");

GZIPInputStream in3=new GZIPInputStream(new

FileInputStream("e:/develops/six/test1.gz"));

FileOutputStream out2=new

FileOutputStream("e:/develops/six/Random2.txt");

Calendar start2=Calendar.getInstance();

while((c=in3.read())!=-1){

out2.write(c);

}

in3.close();

out2.close();

Calendar end2=Calendar.getInstance();

long time2=end2.getTimeInMillis()-start2.getTimeInMillis();

System.out.println("不经过buffer缓冲解压缩时间为"+time2+"毫秒");

}

}

其运行结果截图如下:

其uml图截图如下:

该题改写后代码如下所示:

package zi;

import java.io.*;

import java.util.Calendar;

import java.util.zip.*;

publicclass GZIPTester2{

publicstaticvoid main(String[] args) throws IOException {

BufferedInputStream in = new BufferedInputStream(new

FileInputStream("e:/develops/six/Random2.txt"));

GZIPOutputStream out = new GZIPOutputStream(new BufferedOutputStream(new FileOutputStream("e:/develops/six/test2.gz")));

System.out.println("Writing compressing file from

e:/develops/six/Random2.txt to e:/develops/six/test2.gz");

int c;

Calendar start1=Calendar.getInstance();

while((c = in.read()) !=-1) out.write(c);

in.close();

out.close();

Calendar end1=Calendar.getInstance();

long time1=end1.getTimeInMillis()-start1.getTimeInMillis();

System.out.println("经过buffer缓冲直接压缩时间为"+time1+"毫秒");

System.out.println("Writing decompression to

e:/develops/six/Random2.txt");

GZIPInputStream in3=new GZIPInputStream(new

FileInputStream("e:/develops/six/test2.gz"));

BufferedOutputStream out2=new BufferedOutputStream(new FileOutputStream("e:/develops/six/Random2.txt"));

Calendar start2=Calendar.getInstance();

while((c=in3.read())!=-1){

out2.write(c);

}

in3.close();

out2.close();

Calendar end2=Calendar.getInstance();

long time2=end2.getTimeInMillis()-start2.getTimeInMillis();

System.out.println("经过buffer缓冲解压缩时间为"+time2+"毫秒");

}

}

该题运行结果如下:

其UML图截图如下:

(3)(选做)在完成基础上,模仿6-15,实现多个文件压缩的功能。

该题代码如下:

package zi;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.zip.ZipEntry;

import java.util.zip.ZipInputStream;

import java.util.zip.ZipOutputStream;

publicclass Ex6_4_3 {

publicstaticint BUFFER_BYTE = 512;

privatestatic String BASE_DIR = "";

privatestaticbyte BYTES[] = newbyte[BUFFER_BYTE];

publicstaticvoid zipDir(String src_dir) throws IOException {

zipDir(src_dir, src_dir + ".zip");

}

publicstaticvoid zipDir(String src_dir, String dest_zip)

throws IOException {

FileOutputStream fos = new FileOutputStream(dest_zip);

ZipOutputStream zout = new ZipOutputStream(fos);

File file = new File(src_dir);

if (!file.exists()) {

// src not available...

System.err.println(file.getName() + " is not available!"); return;

} elseif (!file.isDirectory()) {

zip(zout, file, file.getPath());

System.err.println(file.getName()

+ "#is file, not dir!warn, but no error caused!");

}

zip(zout, file, "");

zout.close();

fos.close();

}

protectedstaticvoid zip(ZipOutputStream zipOut, File file, String base) throws IOException {

if (file.isDirectory()) {

// process dir

File[] fl = file.listFiles();

zipOut.putNextEntry(new ZipEntry(base + "/"));

base = base.length() == 0 ? "" : base + "/";

for (int i = 0; i < fl.length; i++) {

zip(zipOut, fl[i], base + fl[i].getName());

}

} else {

// process file

zipOut.putNextEntry(new ZipEntry(base));

InputStream in = new FileInputStream(file);

System.out.println(base);

int len = 0;

while ((len = in.read(BYTES)) != -1) {

zipOut.write(BYTES, 0, len);

}

in.close();

}

}

publicstaticvoid unzipFile(String src_zip) throws IOException {

int i = src_https://www.doczj.com/doc/8a3729208.html,stIndexOf('.');

String dest = src_zip.substring(0, i);

unzipFile(src_zip, dest);

}

publicstaticvoid unzipFile(String src_zip, String dest_dir)

throws IOException {

Ex6_4_3.BASE_DIR = dest_dir;

File base = new File(Ex6_4_3.BASE_DIR);

if (!base.exists()) {

base.mkdirs();

}

InputStream in = new BufferedInputStream(new FileInputStream(src_zip));

ZipInputStream zin = new ZipInputStream(in);

ZipEntry entry;

while ((entry = zin.getNextEntry()) != null) {

try {

unzip(zin, Ex6_4_3.BASE_DIR + File.separator + entry.getName()); } catch (Exception e) {

e.printStackTrace();

}

}

zin.close();

}

protectedstaticvoid unzip(ZipInputStream zin, String entryName) throws IOException {

System.out.println("unzipping " + entryName);

// create dir

if (entryName.endsWith("/")) {

System.out.println("INFO: #endsWith/,will return now"); return;

}

int i = https://www.doczj.com/doc/8a3729208.html,stIndexOf('/');

if (i > 0) {

String path = entryName.substring(0, i);

File file = new File(path);

if (!file.exists()) {

System.out.println(file.getName()

+ "INFO: #not existed, will create one"); file.mkdirs();

}

System.out.println(path + " =file= " + i);

}

// create file

FileOutputStream out = new FileOutputStream(entryName); int len = 0;

while ((len = zin.read(BYTES)) != -1) {

out.write(BYTES, 0, len);

}

out.close();

}

}

其UML图截图如下:

5、课本199页习题10。

该题代码如下:

package zi;

publicclass Thing{

char name[]=newchar[8];

//16个字节

int number; //4个字节

double price;//8个字节

int count;//4个字节所以保存一个商品要32个字节

public Thing(String name,int number,double price,int count)throws Exception{ if(name.toCharArray().length>8)

System.arraycopy(name.toCharArray(),0, https://www.doczj.com/doc/8a3729208.html,, 0,8);

//如果字符长度大于8,只取前8个

else

System.arraycopy(name.toCharArray(),0,https://www.doczj.com/doc/8a3729208.html,,0,name.toCharArray().length );//如果字符长度小于8,有几个填几个

this.number=number;

this.price=price;

this.count=count;

}

public String getName() {

returnnew String(https://www.doczj.com/doc/8a3729208.html,); }

publicvoid setName(String name) {

if(name.toCharArray().length>8)

System.arraycopy(name.toCharArray(),0, https://www.doczj.com/doc/8a3729208.html,, 0,8);

else

System.arraycopy(name.toCharArray(),0,https://www.doczj.com/doc/8a3729208.html,,0,name.toCharArray().length );

}

publicdouble getPrice() {

return price; }

publicvoid setPrice(double price) {

this.price = price; }

publicint getNumber() {

return number; }

publicvoid setNumber(int number) {

this.number = number; }

publicint getCount() {

return count;

}

publicvoid setCount(int count) {

this.count = count; }

}

package zi;

import java.io.*;

publicclass Work{

String FileName;

public Work(String FileName){

this.FileName=FileName; }

//写第n条商品记录

publicvoid writeThing(Thing th,int n) throws Exception { RandomAccessFile rafw=new RandomAccessFile(FileName,"rw");

rafw.seek(n*32); //将位置指示器移到指定位置上,每个商品占32个字节

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

rafw.writeChar (https://www.doczj.com/doc/8a3729208.html,[i]);

//写入商品名

rafw.writeInt(th.number);//写入商品号码

rafw.writeDouble(th.price); //写入价格

rafw.writeInt(th.count);//写入商品库存量

rafw.close();

}

//输入商品信息

publicvoid readThing(int n) throws Exception {

char thingname[]=newchar[8];

RandomAccessFile rafr=new RandomAccessFile(FileName,"r");

rafr.seek(n*32);//将位置指示器移到指定位置上,每个商品占32个字节

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

thingname[i]=rafr.readChar();//读到char商品名

System.out.print("商品名:");

System.out.println(thingname);

System.out.println("编号:"+rafr.readInt());

System.out.println("价格:"+rafr.readDouble());

System.out.println("商品库存量:"+rafr.readInt());

rafr.close();

System.out.println();

}

//修改存入n号商品名字

publicvoid setThingName(int n,String name) throws Exception { RandomAccessFile rafw=new RandomAccessFile(FileName,"rw");

rafw.seek(n*32);

char[] borrow=newchar[8];

if(name.toCharArray().length>8)

java实验报告总结

java实验报告总结 导语:在这次实训里,让我知道还有很多地方的不足,还有许多的技术等着我去摸索,等着我去学习。下面是由小编为你整理的java实验报告总结,欢迎大家阅读。 java实验报告总结篇一伴随着新年钟声的到来,我不知道我是否是应该高兴还是悲伤。因为伴随自己三个月的华迪实训即将结束。转眼之间三个月的华迪实训就这样在忙碌中过去了。通过此次短暂的java开发习,回顾一下自己这三个月的每一天,觉得过的十分的充实,每天都有一堆忙不完的事。因为你每天想起的第一件事情就是完成自己的项目模块,哪些地方不够,哪些需要修改。渐渐的发觉,自己对自己所担任角色的认知:从原先的学生到现在“程序员”的转变。“任何一个初具规模的软件都是要团队来配合的”这是我一向的认知。因为你再全能程序员也有出纰漏的地方,你程序写的再好,那也只是你一个人的程序。 因为对于程序来说,可读性、可理解性是一项衡量它是否优秀的一个标准。所以就有了我们6位成员的项目组。在项目组中,我担任组员这一角色,这相当于一个正规项目的“项目开发人员”,感觉自己身上的担子挺重,因为要配合其他组员的进度并完成自己任务从而使得项目能够成功地,完整地把它应有的功能实现。对于项目中遇到的困难,我觉得那就是经验不足,会遇到很多问题但也培养了我们上网搜

索查询,咨询老师同学的良好习惯,让我相信任何困难都有被解决的一天。 所以从整个项目来说,自己在编码上遇到的太棘手的问题都是大家集体解决。但是总的来说,这次课程设计对我很有帮助,让我获益匪浅,期间时间虽短但是也学到了不少的知识。在这次实训过程中,我发现平时学习的知识与实践环节所用到的有一定的差距,往往我觉得自己掌握的很好或者自认为熟练的技术却在此次实践环节中往往出问题,书本上的知识只提供方法的借鉴,实践中自己必须摸索出适合具体工作的方法,这一切都离不开钻研精神与勤学好问的精神。 总的来说,这次培训效果不错,对自己有一定的提升,这完全不同与学校的学习,因为它更加贴近工作,针对以后工作的内容作了很多实例的练习与工具的使用,为我们更快的加入工作提供的很好的前提。并且在这次实训里,让我知道还有很多地方的不足,还有许多的技术等着我去摸索,等着我去学习。最后,感谢公司的几位老师辛勤的工作,我们的开心来自你们的热心与关心。祝你们工作顺利。 java实验报告总结篇二此次只实习了短短的三周。虽说时间很短,但其中的每一天都使我收获很大、受益匪浅,它不但极大地加深了我对一些理论知识的理解,不仅使我在理论上对Java有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对

java实验报告完整版

实验报告 (计算机与信息工程学院实验中心) 学期: 2014-2015 课程名称:《Java程序设计实验》 班级:信息1202 姓名:方逸梅 学号: 31 指导老师:费玉莲

《Java程序设计》 独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式 对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验十二的内容由学生自行设计完成。 (二)教学安排 学时数:30课时 学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。 (三)实验环境 实验环境为JDK 。 (四)具体安排 地点:信息大楼实验室。 辅导:每个班次一名辅导老师,原则上由任课老师担任。 登记:实验完成,由辅导老师登记实验纪录。 学生:实验做完,完成实验报告内容,并在学期末上交实验册。 老师:批改实验,成绩与平时成绩一起占期末的30%。 二、实验的具体内容和要求 见实验报告。

浙江工商大学 计算机与信息工程学院实验报告(1)日期:地点:成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 实验目的、实验原理和内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1.下载、安装并设置Java SDK 软件包。 2.熟悉Eclipse 编辑软件。 3.掌握运行Java 程序的步骤。 4.分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。 要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。 程序一 public class hello { public static void main(String[] args) { for(int i=0;i<=4;i++) { "Hello java! 欢迎使用!"); } }

实验二 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

JAVAWEB实训心得体会

j s p+s e r v l e t+m y s q l论坛项目实训总结 实训人:程路峰学号 通过为期10天的实训,我学习了很多关于java web的知识。在老师的正确指导下,顺利的完成了我的实训内容。在此,也有同学的帮助,在他们的帮助下我也受益匪浅。最终,能顺利完成实训的任务也很高兴。 在实训生活中,我了解开发项目的需求、设计、实现、确认以及维护等活动整个过程,让自己开始懂得 一点软件工程的知识点。 首先,了解需求分析的重要性,比如:需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一 个 for linux 的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然 的认为是开发 for windows 的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是 欲哭无泪了,恨不得找块豆腐一头撞死。所以,需求分析是成功的第一步,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。 然后呢?确实客户的需求的以后我们要做什么呢,那当然是设计和分析。此阶段主要根据需求分析的 结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。 接下来是代码实现,此阶段是将网站项目设计的结果转换成计算机可运行的程序代码,我们这个项目为 4个模块,1.界面,2.逻辑层。3实现层。4.数据库及使用说明文档,分别为4个小组成员完成。这阶段我学到很多编程的思想,如: 分层思想、mvc、三大架构的整合、dao 的编写。 编号程序之后就是软件测试了,此时在软件设计完成后要经过严密的测试,以发现软件在整个设计过程 中存在的问题并加以纠正。由于时间有限,我们测试是简单的使用一下每一个功能。 在编写代码时,由于自己技术知识水平不广,常常遇到技术难题;还有自己没有良好的编程习惯,不注释,有时连自己也看懵了;编程的结构不好,维修和修改代码是很慢。这次实训让我意识到了自己做为计算 机软件工程专业的学生,要想在以后的职业中崭露头角,除了要有过硬的理论知识,健康的体魄外,还必须 具备良好的心理素质,使自己在以后的途中无论经历什么样的困难,都立于不败之地。"纸上得来终觉浅, 绝知此事要躬行!"在这短短的时间里,让我深深的感觉到自己在实际应用中所学专业知识的匮乏。让我真 真领悟到"学无止境"这句话的涵义。而所学的,都是课本上没有而对我们又非常实用的东西,这又给我们的实训增加了浓墨淡采的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。 在这次实训中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中各成员合 作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每个成员的意见,使我们的组合达到更加完美。实训过程中,除 了要专业知识,包括人际交往,沟通方式及相关礼节方面的内容,对于团队开发来说,团结一致使我深有体会。团队的合作 注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具体实践中,不仅 加深我对理论的掌握和运用,还让我拥有了一次又一次难忘的开发经历,这也是实训最大的收获。 这次实训带给我太多的感触,它让我知道工作上的辛苦,事业途中的艰辛。让我知道了实际的工作并不像在学校学习那样轻松。让我学到了很多课堂上更本学不到的东西,仿佛自己一下子成熟了,懂得了做人做事的 道理,也懂得了学习的意义,时间的宝贵,人生的真谛。明白人世间一生不可能都是一帆风顺的,只要 勇敢去面对人生中的每个驿站!这让我清楚地感到了自己肩上的重任,看清了自己的人生方向,也让我认识 到了做软件应支持仔细认真的工作态度,要有一种平和的心态和不耻下问的精神,不管遇到什么事都要总代 表地去思考,多听别人的建议,不要太过急燥。

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(); setStub(null); jButton1、setText("3"); jButton1、addActionListener(new java、awt、event、

java实验报告样本2

实验项目名称:继承和多态 (所属课程:Java语言程序设计) 院系:计算机科学与信息工程专业班级:12级物联网工程姓名:张懿 学号:201203040042 实验地点:A-06 411 指导老师:张阳 本实验项目成绩:教师签字:日期: 1.实验目的 (1)掌握类的继承机制。 (2)熟悉类中成员变量和方法的访问控制。 (3)熟悉方法或构造方法多态性。 2.实验内容 (1)模拟编写程序,理解类的继承、多态、继承和多态规则。 (2)独立编程,实现类的继承和多态。 3.实验作业 设计一个类Shape(图形)包含求面积和周长的area()方法和perimeter()方法以及设置颜色的方法SetColor(),并利用Java多态技术设计其子类Circle (圆形)类、Rectangle(矩形)类和Triangle(三角形)类,并分别实现相应的求面积和求周长的方法。每个类都要覆盖toString方法。 海伦公式:三角形的面积等于s(s-a)(s-b)(s-c)的开方,其中s=(a+b+c)/2 4.实验程序 import java.util.Scanner; public class TEST { public static void main(String[] args) { float radius; float chang,kuan; float a,b,c; Scanner input = new Scanner(System.in);

System.out.print("请输入圆的半径:"); radius = input.nextFloat(); Circle circle = new Circle(radius); System.out.println("圆的面积为:"+circle.area()+" 圆的周长为:"+circle.perimeter()+"\n"+circle.toString()); System.out.print("请输入矩形的长:"); chang = input.nextFloat(); System.out.print("请输入矩形的宽:"); kuan = input.nextFloat(); Rectangle rectangle = new Rectangle(chang,kuan); System.out.println("矩形的面积为:"+rectangle.area()+" 矩形圆的周长为:"+rectangle.perimeter()+"\n"+rectangle.toString()); System.out.print("请输入三角形的第一条边:"); a = input.nextFloat(); System.out.print("请输入三角形的第二条边:");

JAVAWEB实训心得体会

jsp+servlet+mysql 论坛项目实训总结 实训人:程路峰学号: 11103303 通过为期 10 天的实训,我学习了很多关于 java web 的知识。在老师的正确指导下,顺利的完成了我的实训内容。在此,也有同学的帮助,在他们的帮助下我也受益匪浅。最终,能顺利完成实训的任务也很高兴。 在实训生活中,我了解开发项目的需求、设计、实现、确认以及维护等活动整个过程,让自己开始懂得一点软件工程的知识点。 首先,了解需求分析的重要性,比如:需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求, 从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一个 for linux 的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发 for windows 的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,恨不得找块豆腐一头撞死。所以,需求分析是成功的第一步,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。 然后呢?确实客户的需求的以后我们要做什么呢,那当然是设计和分析。此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。 接下来是代码实现,此阶段是将网站项目设计的结果转换成计算机可运行的程序代码,我们这个项目为 4 个模块,1.界面,2.逻辑层。3 实现层。4.数据库及使用说明文档,分别为4 个小组成员完成。这阶段我学到很多编程的思想,如: 分层思想、mvc、三大架构的整合、dao 的编写。 编号程序之后就是软件测试了,此时在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。由于时间有限,我们测试是简单的使用一下每一个功能。 在编写代码时,由于自己技术知识水平不广,常常遇到技术难题;还有自己没有良好的编程习惯,不注释,有时连自己也看懵了;编程的结构不好,维修和修改代码是很慢。这次实训让我意识到了自己做为计算机软件工程专业的学生,要想在以后的职业中崭露头角,除了要有过硬的理论知识,健康的体魄外,还必须具备良好的心理素质,使自己在以后的途中无论经历什么样的困难,都立于不败之地。“纸上得来终觉浅,绝知此事要躬行!”在这短短的时间里,让我深深的感觉到自己在实际应用中所学专业知识的匮乏。让我真真领悟到“学无止境” 这句话的涵义。而所学的,都是课本上没有而对我们又非常实用的东西,这又给我们的实训增加了浓墨淡采的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。 在这次实训中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中各成员合作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每个成员的意见,使我们的组合达到更加完美。实训过程中,除了要专业知识,包括人际交往,沟通方式及相关礼节方面的内容,对于团队开发来说,团结一致使我深有体会。团队的合作 注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具体实践中,不仅加深我对理论的掌握和运用,还让我拥有了一次又一次难忘的开发经历,这也是实训最大的收获。

安徽工业大学——java实验报告

Java实验报告 学号149074353 姓名程裕博 班级物141 指导教师柯栋梁 安徽工业大学计算机学院2016年11月

实验一: 利用JAVA 反射技术分析类结构 自己定义的类: package chap05; public class analysis { private int a; private char c; protected int b; public double d; public void test1() { } private void test2() { } protected double test3() { return 1.0; } } 用java反射技术分析输出的结果: Enter class name (e.g. java.util.Date): chap05.analysis class chap05.analysis { public chap05.analysis(); public void test1(); private void test2(); protected double test3(); private int a; private char c; protected int b; public double d; } 1.分析程序运行时的输出结果。 输出的结果中显示了被分析类的方法与变量,包括这些方法与变量的

修饰符 2.分析与JAVA反射技术相关的几个类的作用: https://www.doczj.com/doc/8a3729208.html,ng.reflect.Constructor; Constructor 提供关于类的单个构造方法的信息以及对它的访问权限。 https://www.doczj.com/doc/8a3729208.html,ng.reflect.Field; Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。 https://www.doczj.com/doc/8a3729208.html,ng.reflect.Method; Method 提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。所反映的方法可能是类方法或实例方法(包括抽象方法)。https://www.doczj.com/doc/8a3729208.html,ng.reflect.Modifier; Modifier 类提供了static 方法和常量,对类和成员访问修饰符进行解码。修饰符集被表示为整数,用不同的位位置(bit position) 表示不同的修饰符。 实验二:利用JAVA 反射技术分析对象结构 实验内容:运行示例程序,分析Integer 数组对象的结构;改写程序分析一下自定义 的类对象,如Employee 类。

Java实习报告总结3篇

Java实习报告总结3篇 Java实习既可以开阔我们的视野,又可以增长见识,为我们以后进一步走向社会打下坚实的基础。下面搜集了Java实习报告总结,欢迎阅读! 经过五天的Java实训,感触很深,收获也很大,对自己的缺点也有了很多的认识,回首本学期JAVA学习,重点还是在学习概念等一些常识性的东西,关于类型、变量、接口、输入输出流、分析异常、抛出异常,后期主要是小程序运用,Gui界面设计和事件。 在我学习的语言中,我自己认为Java是一门比较强大的面向对象的编程语言,不仅仅是因为它的跨平台型还有它的较强的实用性,强悍的嵌入性。 本次实训主要是针对我们对项目流程不熟悉和对整体项目的把握不清楚,学习数据库的设计和表的建设以及表与表之间的联系,还有一些代码的编写,这些都是我们所不熟悉的也是我们最薄弱的部分。 通过这一周的实训,虽然实训的时间不长,但是总体上收获挺大的,当我们正式准备学习实训java编程技术时,让我感到非常高兴,因为java一直学的是课本知识,所以实训对于我来说是必须要学会熟练操作的。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。克服了Java学习上的一道道难关,现在自己已经基本掌握了java的基础知识。

有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。所谓”当局者迷,旁观者清”,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点,这在以后的工作或生活中也是很关键的。俗话说:“要想为事业多添一把火,自己就得多添一捆材”。此次实训,我深深体会到了积累知识的重要性。在实训当中我们遇到了不少难题,但是经过我们大家的讨论和老师细心的一一指导,问题得到了解决。两个月的实训结束了,收获颇丰,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,最重要的还是细致严谨。社会是不会要一个一无是处的人的,所以我们要更多更快地从一个学生向工作者转变,总的来说我对这次实习还是比较满意的,它使我学到了很多东西,为我以后的学习做了引导,点明了方向。 这次实训,我们更多学到的是不懂就要问和自己应该尽自己的全力去尝试,哪怕失败,也要尽自己的全力,和身边的同学一起探讨而不是抄袭,团队合作和发挥团队意识,最后在自己的努力下终于运行成功,这种感觉美不可言,心情愉悦至极,有很强的成就感。 最后,我自己感觉这次实训的收获还是很大的,我相信在不久的将来我们会有自己的一片天空。

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第四版实验2实验报告

实验1 1.实验要求: 编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。 2.实验内容: 3.实验分析: (1)将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误。 可能损失精度。 (2)在应用程序的main()方法中增加语句:float x=0.618,程序能编译通过吗? 不能通过编译,提示可能损失精度。 (3)在应用程序的main()方法中增加语句:byte b=128编译能通过吗?在应用程序的main()方法中增加语句:int z=(byte)128;程序输出变量z的值是多少? 增加byte b=128时编译不能通过,提示可能损失精度。 增加int z=(byte)128时结果如下所示。 实验2 1.实验要求: 编写一个Java应用程序,该程序在命令行窗口输出数组的引用以及元素的值。 2.实验内容:

3.实验分析: (1)在程序的【代码4】之后增加语句”a[3]=200;”,编译是否有错?运行是否有错? (2)在程序的【代码4】之前输出二维数组b的各个一维数组的长度和引用。

(3)在程序的【代码4】之后输出二维数组b的各个一维数组的长度和引用。

实验3 1.实验要求: 编写一个Java应用程序,输出数组a的全部元素,并将数组a的全部或部分元素复制到其他数组中,然后改变其他数组的元素的值,再输出数组a的全部元素。 2.实验内容: 3.实验分析:

(1)在程序的【代码4】之后增加语句:int []tom=Arrays.copyOf(c,6); System.out.println(Arrays.toString(tom)); (2)在程序的最后一个语句之后增加语句:int []jerry=Arrays.copyOf(d,1,8); System.out.println(Arrays.toString(jerry));

java实验报告心得体会

java实验报告心得体会 联合大学信息学院 “面向对象程序设计”课 程上机实验报告 题目: JAVA上机实验心得体会 姓名(学号):专业:计算机科学与技术 编制时间: xx年12月19日 版本: 1.0.0 指导教师:联合大学-信息学院编制 实验1 熟悉Java运行环境 实验目的:熟悉JDK环境和操作,编写简单的Java应用程序。

心得体会:在该实验中,我碰到的问题是JDK环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力 帮助。 实验2 选择语句练习 实验目的:正确理解并能够熟练操作和使用Java的if和switch 语句。 心得体会:我个人感觉有了C的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟C非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java 程序的数据输入,与C区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charAt()方法,经查阅JDK文档,知道charAt()方法返回一个位于提供给它的参数索引处的字符,如: str.chatAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。 实验3 迭代练习

实验目的:正确理解并能够熟练操作和使用Java的for、while、do..while语句。心得体会:在该实验中,我学会了为具体操作选 择最合适的循环语句及for、while、do..while语句的相互转换使用。最重要的是,明白了JAVA程序中,定义方法中的局部变量时一定要 赋初始值,否则编译不能通过会报错;但类中的成员变量则不一定需要。如我在实验3main()方法定义的整型局部变量mand,当不初始化则不能通过编译。原因是局部变量不能有JVM自动赋给相关的默认值,而成员变量可以。 实验4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。 心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握 如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。 实验5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。

JAVA实验报告

学生实验报告册 (理工类) 课程名称:面向对象程序设计专业班级:16计算机科学与技术(专转本)学生学号:22 学生姓名:张义丹 所属院部:计算机工程指导教师:刘晶 20 16 ——20 17 学年第2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验项目名称:Java编程基础实验学时: 6 同组学生姓名:————实验地点:工科楼A101 实验日期:实验成绩: 批改教师:刘晶批改时间:

实验1 Java编程基础 一、实验目的和要求 (1)熟练掌握及编写调试Java应用程序及Java小程序的方法; (2)熟练掌握Java应用程序的结构; (3)了解Java语言的特点,基本语句、运算符及表达式的使用方法; (4)熟练掌握常见数据类型的使用; (5)熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法; (6)熟练掌握数组和字符串的使用; (7)调试程序要记录调试过程中出现的问题及解决办法; (8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (9)做完实验后给出本实验的实验报告。 二、实验仪器和设备 奔腾以上计算机,Windows 操作系统,装有和软件。 三、实验过程 (1)分别使用JDK命令行和Eclipse编译运行Java应用程序;适当添加注释信息,通过javadoc生成注释文档;为主方法传递参数“Hello world”字符串,并输出,记录操作过程。 public class Hello { public static void main(String args[]) { "Hello!"); } } (2)分别使用JDK命令行和Eclipse编译Java Applet,并建立HTML文档运行该Applet。 压缩生成".jar"文件。记录操作过程。 import .*; import class HelloApplet extends Applet { public void paint(Graphics g) { ; ("Hello!",20,20); } }

JAVA实验报告一

Java语言程序设计实验报告一 班级:姓名:学号: 一、实验教学目的与基本要求 Java程序设计的实验是Java程序设计课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。 本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java 语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。 本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。 (1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。 (2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。 (3)具有分析、寻找和排除程序中常见问题的能力。

二、实验内容与收获 (1)Java的安装与配置。熟悉语言环境及简单程序设计的使用练习,正确配置Java 开发环境(Eclipse 集成开发环境的安装、配置与使用) a)安装JDK Sun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。 可以通过IE或Netscape浏览器浏览网址:https://www.doczj.com/doc/8a3729208.html,/j2se,根据提示可以下载支持Microsoft Windows操作系统的jdk-1_5_0-windows-i586.exe到本地硬盘。 安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到D:\jdk1.5.0目录下,如图1-2。正确安装后,在JDK目录下有bin、demo、lib、jre等子目录,如图1-3,其中bin目录保存了javac、java、appletviewer等命令文件,demo目录保存了许多java的例子,lib目录保存了Java的类库文件,jre目录保存的是Java的运行时环境(JRE)。 图1-2

JAVA实验报告心得

北京联合大学信息学院 “面向对象程序设计”课 程上机实验报告 题目: java上机实验心得体会 姓名(学号):专业:计算机科学与技术 编制时间: 2012年12月19日 版本:指导教师:北京联合大学-信息学院编制 实验1 熟悉java运行环境 实验目的:熟悉jdk环境和操作,编写简单的java应用程序。 心得体会:在该实验中,我碰到的问题是jdk环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力帮助。 实验2 选择语句练习 实验目的:正确理解并能够熟练操作和使用java的if和switch语句。 心得体会:我个人感觉有了c的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟c非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java程序的数据输入,与c区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charat()方法,经查阅jdk 文档,知道charat()方法返回一个位于提供给它的参数索引处的字符,如: (0)检索str中的第一个字符,()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。 实验3 迭代练习 实验4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。 心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。 实验5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。 心得体会:通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续的多位数在存入数组时,每个数组元素只对应改多位数的一个组成数。我解决的方法如下: for(i=0; i<6; i++){ n[i] = aa%10; etname()是获得正在执行的线程的名字,().getid()是thread类中返回该线程的标识符的方法,().getpriority()是thread类中返回线程的优先级的方法。 实验12 i/o及文件处理 实验目的:掌握并使用java中的i/o和文件。 心得体会:对于该实验,由于比较难,只是基本掌握了文件读写的方法和规则,还有待17周java实训时继续攻坚克难。 结语:在这一系列的实验中,我基本掌握了java的编程规则、知识要点和一些小技巧,特别是对面向对象的编程思想和风格有了进一步的认识和体会。同时,因正确的编出程序而带来的成就感让我对编程更加感兴趣。对于在这些实验过程中,请教老师、同学互助、查阅资料等基本的学习方式,使我更加领悟到集体和团队的力量,也树立了敢于攻坚的信心。篇二:java实训心得 java实训心得 在上学期的最后一周和本学期的第一周,我和同组的学员在学校机房进行了java暑期实训,现在已经结束了。 回首上学期的java学习,重点还是在学习概念等一些常识性的东西,application应用程序和applet小程序,它的开发工具、数据类型、变量、接口、输入输出流等。学会分析异

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

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