java实验报告.docx
《java实验报告.docx》由会员分享,可在线阅读,更多相关《java实验报告.docx(16页珍藏版)》请在冰点文库上搜索。
![java实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-5/26/e2928144-4f60-42e7-bb38-ba29b55f9a54/e2928144-4f60-42e7-bb38-ba29b55f9a541.gif)
java实验报告
DONGFANGCOLLEGE,FUJIANAGRICULTUREANDFORESTRYUNIVERSITY
实验名称:
JAVA程序设计
系别:
计算机年级:
09级
专业:
计算机科学技术与技术
班级:
1学号:
姓 名:
成绩:
任课教师:
陈潜(老师)
2012年3月28日
福建农林大学东方学院实验报告
实验一:
数组排序
1.实验目的
1、理解一维数组的使用。
2.实验内容
1、定义一个长度为10的一维数组,然后通过键盘输入数组的值。
2、对该数组进行升序排序,并输出。
3.程序代码和观察结果
2、观察结果:
4.实验心得:
1、编写调试程序时要注意程序编写的规则.java文件命名应该和主类名一致,还有就好似java对大小写敏感,在输入是特别要注意大小写,千万不要犯文件名和主类名不一致的错误。
2、冒泡排序要控制好条件,还有就是其实可对冒泡排序进行优化,比如在比较的时候,只要有一次for里都没有进行交换,则说明该数组已经排序好了,所以设置一个标注位,可以实现优化。
实验二:
计算几何图形的面积
1.实验目的
1、掌握类方法的重载。
2、掌握面向对象的编程思想及其优点。
2.实验内容
1、定义一个Area类,其中包括计算长方形的面积,正方形的面积,圆的面积。
2、利用类重载方法分别实现几何图形的面积。
3.程序代码和观察结果
1、程序代码:
importjava.util.Scanner;
classOverload{
Scannerscanner=newScanner(System.in);
voidArea(doublelength,doublewidth){
//长方形的面积。
System.out.print("输入长方形的长和宽(长和宽为double类型):
");
length=scanner.nextDouble();
width=scanner.nextDouble();
System.out.println("长方形的面积是:
"+length*width);
}
voidArea(intside){
System.out.print("输入正方形的边长(边长为int型):
");
side=scanner.nextInt();
System.out.println("正方形的面积是:
"+side*side);
}
voidArea(doubleridus){
System.out.print("输入圆的半径(半径为double类型):
");
ridus=scanner.nextDouble();
System.out.println("圆的面积是:
"+3.1415*Math.pow(2,ridus));
}
}
publicclassArea{
publicstaticvoidmain(String[]args){
doublelength=0,width=0,ridus=2;
intside=0;
Overloado=newOverload();
o.Area(length,width);
o.Area(side);
o.Area(ridus);
}
}
2、观察结果
4.实验心得:
1、编写调试程序时要注意程序编写的规则,.java文件命名应该和主类名一致,还有就好似java对大小写敏感,在输入是特别要注意大小写,千万不要犯文件名和主类名不一致的错误。
2、在做方法重载时要明白方法重载的2个条件。
(1)方法名一样。
(2)参数列表不同,即参数的个数不同、参数的类型不同或参数的类型顺序不同,但最后一种情况可能会产生二义性。
实验三:
万年历
1、实验目的
1、掌握java的基本界面控制设计,增加对swing控件的了解。
2、掌握JFrame,JTable,label等控件的运用。
2.实验内容
1、定义2个下拉组合框,名字分别为请选择年份:
和请选择月份:
,用来实现年份和月份的选择。
2、定义一个6行7列的表格,列名分别为"日","一","二","三","四","五","六",用来存储每个月的具体日期。
3、具体代码实现万年历。
3.程序代码和观察结果
1、程序代码:
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.util.*;
classDateWinextendsJFrameimplementsItemListener{
Calendarcd=null;
intyears;
intmonths;
intdates;
JTabletable;
Objectdate[][];
Objectname[]={"日","一","二","三","四","五","六"};
JComboBoxyear,month;
JLabellabel1,label2;
JPanelpanel;
DateWin(Strings){
super(s);
setSize(400,300);
setLocation(120,120);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
year=newJComboBox();
//year.addItem("1990");
for(inti=0;i<30;i++){
intyears=1990+i;
year.addItem(years);
}
month=newJComboBox();
for(inti=1;i<13;i++){
month.addItem(i);
}
label1=newJLabel("请选择年份:
");
label2=newJLabel("请选择月份:
");
panel=newJPanel();
panel.add(label1);
panel.add(year);
panel.add(label2);
panel.add(month);
Containercon=getContentPane();
con.setLayout(newBorderLayout());
con.add(panel,BorderLayout.NORTH);
cd=newGregorianCalendar();
//years=Integer.parseInt(year.getSelectedItem().toString());
//months=Integer.parseInt(month.getSelectedItem().toString())-1;
//cd=newGregorianCalendar(years,months,1);
years=cd.get(Calendar.YEAR);
year.setSelectedItem(years);
months=cd.get(Calendar.MONTH)+1;
month.setSelectedItem(months);
cd.set(Calendar.DATE,1);
intdateNumber=cd.getActualMaximum(Calendar.DATE);
intfirstDay=cd.get(Calendar.DAY_OF_WEEK)-1;
intcount=1;
date=newObject[6][7];
for(inti=0;i<6;i++){
for(intj=0;j<7;j++){
if(count>dateNumber)
break;
else{
if((i*7+j)continue;
else{
date[i][j]=count;
count++;
}
}
}
}
table=newJTable(date,name);
table.setRowHeight(15);
con.add(newJScrollPane(table),BorderLayout.CENTER);
con.validate();
validate();
year.addItemListener(this);
month.addItemListener(this);
}
publicvoiditemStateChanged(ItemEvente){
//TODOAuto-generatedmethodstub
years=Integer.parseInt(year.getSelectedItem().toString());
months=Integer.parseInt(month.getSelectedItem().toString())-1;
cd=newGregorianCalendar(years,months,1);
intdateNumber=cd.getActualMaximum(Calendar.DATE);
intfirstDay=cd.get(Calendar.DAY_OF_WEEK)-1;
intcount=1;
date=newObject[6][7];
for(inti=0;i<6;i++){
for(intj=0;j<7;j++){
if(count>dateNumber)
break;
else{
if((i*7+j)continue;
else{
date[i][j]=count;
count++;
}
}
}
}
table=newJTable(date,name);
table.setRowHeight(15);
getContentPane().removeAll();
getContentPane().setLayout(newBorderLayout());
getContentPane().add(panel,BorderLayout.NORTH);
getContentPane().add(newJScrollPane(table),BorderLayout.CENTER);
validate();
}
}
publicclassCalendar{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
DateWindateWin=newDateWin("Java日历");
}
}
4.实验心得:
1、编写调试程序时要注意程序编写的规则,.java文件命名应该和主类名一致,还有就好似java对大小写敏感,在输入是特别要注意大小写,千万不要犯文件名和主类名不一致的错误。
2、在做图形界面时,注意设置图形界面的大小以及文本框、标签的位置。
创建窗体时,可以设置窗体的相关属性。
还有就是复选框的取值要设置好。
实验四:
文件操作
1.实验目的
1、掌握文件的各种操作,比如文件的输入和输出,复制等等。
2、掌握文件操作是异常的处理。
2.实验内容
1、创建一个包,然后分别创建FileReadeTest类,InputTest类,Mycopy类等等并实现具体的方法。
2、在实现方法的同时要注意各种异常处理并实现具体的方法。
3.程序代码和观察结果
packagech12;
importjava.io.*;
publicclassFileReadeTest{
/**
*@paramargs
*GBK全名为汉字内码扩展规范
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
FileReaderfr=null;
try
{
fr=newFileReader("k:
\\1.txt");
System.out.println(fr.getEncoding());
inttemp;
while((temp=fr.read())!
=-1){
charc=(char)temp;
System.out.print(c);
}
}
catch(IOExceptione)
{
e.printStackTrace();
}
finally{
if(fr!
=null)
try{
fr.close();
}
catch(IOExceptione){}
}
}
}
//文件的输入变保存路径为d:
\\xingxi.txt
packagech12;
importjava.io.*;
publicclassInputTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Stringname=null;
Stringaddress=null;
InputStreamReaderisr=newInputStreamReader(System.in);
BufferedReaderbr=newBufferedReader(isr);
try
{
System.out.println("请输入您的姓名:
");
name=br.readLine();
System.out.println("请输入您的地址:
");
address=br.readLine();
}
catch(IOExceptione)
{
e.printStackTrace();
}
//定义文件输出留ios
FileOutputStreamfos=null;
try
{
fos=newFileOutputStream("d:
\\xingxi.txt");
System.setOut(newPrintStream(fos));
}catch(FileNotFoundExceptione)
{
e.printStackTrace();
}
System.out.println("您的姓名是:
"+name+","+"您的地址是:
"+address);
}
}
//对一副图形进行复制变保存
packagech12;
importjava.io.*;
publicclassMycopy{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args)
{
//TODOAuto-generatedmethodstub
FileInputStreamin=null;
FileOutputStreamout=null;
try
{
in=newFileInputStream("d:
\\1.jpg");
out=newFileOutputStream("d:
\\3.jpg");
while(in.available()>0)
{
out.write(in.read());
}
out.flush();
System.out.print("恭喜你,图片已经成功复制!
!
!
");
}
catch(IOExceptione)
{
e.printStackTrace();
}
finally
{
if(in!
=null)
{
try{in.close();}
catch(IOExceptione){}
}
if(out!
=null)
{
try{out.close();}
catch(IOExceptione){}
}
}
}
}
packagech12;
importjava.io.File;
importjava.util.*;
publicclassMyDirectory{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Filef=null;
if(args.length>0)
{
f=newFile(args[0]);
}
else
{
f=newFile(".");
}
if(!
f.isDirectory())
{
System.out.println("对不起,您输入的路径"+f.getName()+"不是一个有效的目录!
");
System.exit(0);
}
File[]files=f.listFiles();
for(inti=0;i{
Calendarc=newGregorianCalendar();
c.setTimeInMillis(files[i].lastModified());
System.out.print("最多修改的时间是:
"+c.get(Calendar.YEAR)+"-"+(c.get(Calendar.MONTH)+1)+"-"+c.get(Calendar.DAY_OF_MONTH)
+""+c.get(Calendar.HOUR_OF_DAY)+":
"+c.get(Calendar.MINUTE)+":
"+c.get(Calendar.SECOND)+"\t");
if(files[i].isDirectory())
{
System.out.print("目录"+"\t"+"\t");
}
else
{
System.out.print("文件的大小是"+files[i].length()+"字节\t");
}
System.out.println("文件或目录名是:
"+files[i].getName());
}
}
}
4.实验心得:
1、编写调试程序时要注意程序编写的规则,.java文件命名应该和主类名一致,还有就好似java对大小写敏感,在输入是特别要注意大小写,千万不要犯文件名和主类名不一致的错误。