Java实验报告.docx
- 文档编号:16998506
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:22
- 大小:127.91KB
Java实验报告.docx
《Java实验报告.docx》由会员分享,可在线阅读,更多相关《Java实验报告.docx(22页珍藏版)》请在冰点文库上搜索。
Java实验报告
学生学号
实验课成绩
武汉理工大学
学生实验报告书
实验课程名称java语言程序设计
开课学院计算机科学与技术学院
指导老师姓名祁明龙
学生姓名
学生专业班级
2012—2013学年第一学期
实验课程名称:
java语言程序设计
实验项目名称
文件输入流和字符流的使用
实验成绩
实验者
专业班级
软件sy1001
组别
同组者
实验日期
2011年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
●把下列数据写到一个名为c:
\myfile.data的文件中。
姓名年龄电子邮件
Zhangsan20Zhang-San@
LiSi18Li_Si@
WangErMazi21Wang_er_mazi@
LiuBang240Liu-Bang@
(一)利用java.io.FileOutputStream和java.io.DataOutputStream直接把表中的数据写到文件中
(二)方法2:
编写一个表示每行数据的JavaBean,例如Person,然后再使用对象数组
(三)方法3:
同方法2,但是使用数据结构java.util.Vector
●利用文件输入流和数据输入流读入上述文件。
●利用文件字符流和缓冲字符流读入下列文件(文件名C:
\sales.txt)
2300
5890
7830
7850
并统计以上数值之和。
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
packagepkg;
importjava.io.*;
publicclassMyClass{
publicvoidmethod01()throwsIOException
{
FileOutputStreamfos=newFileOutputStream("G:
\\myfile.data");
DataOutputStreamdos=newDataOutputStream(fos);
dos.writeUTF("Zhangsan");
dos.writeInt(20);
dos.writeUTF("Zhang_san@");
dos.writeUTF("LiSi");
dos.writeInt(18);
dos.writeUTF("Li_Si@");
dos.writeUTF("WangErMazi");
dos.writeInt(21);
dos.writeUTF("Wang_Er_Mazi@");
dos.writeUTF("LiuBang");
dos.writeInt(18);
dos.writeUTF("Liu_Bang@");
fos.close();
dos.close();
}
publicvoidmethod02()throwsIOException
{
FileInputStreamfis=newFileInputStream("G:
\\myfile.data");
DataInputStreamdis=newDataInputStream(fis);
Stringname,email;
intage,count;
while((count=dis.available())!
=0)
{
name=dis.readUTF();
age=dis.readInt();
email=dis.readUTF();
System.out.printf("%-20s\t%-6d\t%-30s\n",name,age,email);//\t是水平制表符,相当于TAB空格
}
fis.close();
dis.close();
}
publicvoidmethod03()throwsIOException
{
FileReaderfr=newFileReader("G:
\\sales.txt");
BufferedReaderbr=newBufferedReader(fr);
Stringdata;
intsum=0;
while((data=br.readLine())!
=null)
{
sum+=Integer.parseInt(data);
}
System.out.println("sum="+sum);
fr.close();
br.close();
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args)throwsIOException{
//TODOAuto-generatedmethodstub
MyClassmc=newMyClass();
mc.method01();
//mc.method02();
//mc.method03();
//依次调用method01()、method02()、method03()
}
}
三、主要实验工具、仪器设备及耗材
PC一台
JavaJDK
eclipse
第二部分:
实验结果分析(可加页)
一、实验结果描述
(1)表中数据写到文件myfile.data中
到G盘下查看,新生成一个myfile.data文件
(2)读入上述文件
(3)统计并计算数值之和
二、实验小结、建议及体会:
通过本次实验,理论与实践相结合,学会了文件输入流和文件字符流的使用,更加升深入的理解了对数据的读写,并且通过上机操作,进一步熟悉了对javaeclipse的使用,以及对java规范编程的掌握。
实验课程名称:
java语言程序设计
实验项目名称
接口和标注输入流的使用
实验成绩
实验者
专业班级
软件sy1001
组别
同组者
实验日期
2011年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
●接口之一定义四则运算的加减法,接口之二定义四则运算的乘除运算。
类一有一个打印一个字符串和一个整数的成员方法,要求打印的数据通过形式参数导入。
类二继承类一
并实现接口一和接口二,且含有用于计算20和30四则运算并打印计算结果的主函数。
●利用标准输入流输入一元二次方程的三个系数,并解该方程。
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
A.
(1)Interface01接口
packagejavacourse;
publicinterfaceInterface01{
publicintadd(inta,intb);
publicintsub(inta,intb);
intprod(inta,intb);
}
(2)Interace02接口
packagejavacourse;
publicinterfaceInterace02{
publicintprod(inta,intb);
publicintdiv(inta,intb);
}
(3)FatherClass类
packagejavacourse;
publicclassFatherClass{
publicstaticvoidprint(Stringstr,inta)
{
System.out.println(str+":
"+a);
}
}
(4)AChildClass类
packagejavacourse;
publicclassAChildClass
extendsFatherClass
implementsInterface01,Interace02
{
publicAChildClass(){
//TODOAuto-generatedconstructorstub
}
publicintprod(inta,intb){
//TODOAuto-generatedmethodstub
return(a*b);
}
publicintdiv(inta,intb)
{
//TODOAuto-generatedmethodstub
try{
return(a/b);
}catch(Exceptionex)
{
System.out.println("a/bwithb=0");
return-999;
}
}
publicintadd(inta,intb){
//TODOAuto-generatedmethodstub
return(a+b);
}
publicintsub(inta,intb){
//TODOAuto-generatedmethodstub
return(a-b);}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
AChildClasscc=newAChildClass();
print("30+20",cc.add(20,30));
print("30-20",cc.sub(30,20));
print("30*20",cc.prod(30,20));
print("30/20",cc.div(30,20));
}
}
B.packageroot;
importjava.io.*;
publicclassROOT{
privatedoublea,b,c,x1,x2;
privatebooleanhaRealRoots;
/*publicROOT()
{
super();
}
publicROOT(doublea,doubleb,doublec)
{super();
this.a=a;
this.b=b;
this.c=c;
}*/
publicdoublegetX1(){
returnx1;
}
publicdoublegetX2(){
returnx2;
}
publicbooleanisHaRealRoots(){
returnhaRealRoots;
}
publicvoidpstr(Stringstr){
System.out.println(str);
}
publicstaticvoidprint(Stringstr,doublea)
{
System.out.println(str+a);
}
publicvoidcalRoots()throwsIOException{
byte[]arrA,arrB,arrC;
StringstrA,strB,strC;
doubledelta;
arrA=newbyte[80];
arrB=newbyte[80];
arrC=newbyte[80];
pstr("inputcoefficienta:
");
System.in.read(arrA);
pstr("inputcoefficientb:
");
System.in.read(arrB);
pstr("inputcoefficientc:
");
System.in.read(arrC);
strA=newString(arrA);
strB=newString(arrB);
strC=newString(arrC);
a=Double.parseDouble(strA);
b=Double.parseDouble(strB);
c=Double.parseDouble(strC);
delta=b*b-4*a*c;
if(delta<0){
this.haRealRoots=false;}
else{
this.haRealRoots=true;
x1=(-b+Math.sqrt(delta))/2*a;
x2=(-b-Math.sqrt(delta))/2*a;}
}
publicstaticvoidmain(String[]args)throwsIOException{
ROOTrt=newROOT();
rt.calRoots();
if(rt.isHaRealRoots())
{
print("x1=",rt.getX1());
print("x2=",rt.getX2());
}else{
rt.pstr("Don'texistrealroots");
}
//TODOAuto-generatedmethodstub
}
}
}
}
三、主要实验工具、仪器设备及耗材
PC一台
eclipse
javaJDK
第二部分:
实验结果分析(可加页)
一、实验结果描述
二、实验小结、建议及体会
通过本次试验,我熟悉Java接口和类的使用,用接口弥补了java不可以多重继承的缺陷,同时必须注意接口不可以实例化,只有实现了接口的所有方法才能有实例。
此外,本次实验还进一步熟悉了使用标注输入流解一元二次方程的问题。
实验课程名称:
java语言程序设计
实验项目名称
可视化编程,数据结构,和文件输入、输出流
实验成绩
实验者
专业班级
软件sy1001
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
编写一个表示学生信息(姓名,电话号码,电子邮箱,性别)的JavaBean。
要求这个
“结构体”实现java.io.Serializable,以便能够把若干这样的对象写到文件中。
●使用java.util.Hashtable,即哈希表,来处理这样的JavaBean。
●使用文件输入、输出流和对象输入、输出流来读、写这样一个哈希表对象。
●图形用户界面要用到采单,列表,对话框等。
Java.awt.Menu,Dialog,List,等。
事件接
口可以是java.awt.event.ActionListener或java.awt.event.MouseListener。
对话框用于输入
一个学生的四项信息,而四个列表用于显示所有学生的四项信息。
软件具备四个功能:
输入一个学生的信息,显示所有学生的信息,从文件中加载数据,以及把当前所有的数
据保存到文件中。
而这四项功能由一个采单来选择。
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
(1)源程序
packagejavacourse;
importjava.awt.*;
importjava.awt.event.*;
importjava.util.*;
importjava.io.*;
publicclassStudentInfoManagment
extendsWindowAdapter
implementsActionListener
{
FramemainWindow;
MenuBarmb;
Menumenu;
MenuItem[]actions;
Dialogd1,d2;
Fontfont;
java.awt.List[]lists;
Label[]titles;
/***Controlsforinputingstudent'sinfo***/
Label[]d1Labs;
TextField[]d1TFs;
Button[]d1Btns;
Checkbox[]d1CBs;
CheckboxGroupd1Grp;
Buttond1Quit;
/***Someconstantstrings***/
finalString[]messages=
{
"Inputstudent'info",
"Displayallstudents'infos",
"Savedataintothefile",
"Loadinfofromthefile",
};
/***Hashtabletohandlestudents'infos***/
Hashtable
finalString[]d1Str=
{"NAME","PHONE","EMAIL"};
finalintNumberFunctionalities=4;
publicStudentInfoManagment(){
//TODOAuto-generatedconstructorstub
}
publicvoidguiSetup()
{
mainWindow=
newFrame("AStudentInformationSystem");
mainWindow.setSize(600,400);
mainWindow.setLocation(100,100);
font=newFont("TimesNewRoman",Font.ITALIC,18);
mainWindow.setFont(font);
mb=newMenuBar();
menu=newMenu("Functionalities");
actions=newMenuItem[NumberFunctionalities];
for(inti=0;i { actions[i]=newMenuItem(messages[i]); menu.add(actions[i]); actions[i].addActionListener(this); } mb.add(menu); mainWindow.setLayout(newGridLayout(1,4)); titles=newLabel[4]; lists=newjava.awt.List[4]; for(inti=0;i<4;i++) { titles[i]=newLabel(); lists[i]=newjava.awt.List(); } titles[0].setText("NAME"); titles[1].setText("PHONE"); titles[2].setText("EMAIL"); titles[3].setText("SEX"); for(inti=0;i<4;i++) mainWindow.add(lists[i]); mainWindow.setMenuBar(mb); mainWindow.addWindowListener(this); /***Dialog01setup***/ d1=newDialog(mainWindow,messages[0],false); d1.setBounds(100,100,400,200); d1Labs=newLabel[3]; d1TFs=newTextField[3]; for(inti=0;i<3;i++) { d1Labs[i]=newLabel(d1Str[i]); d1TFs[i]=newTextField(20); } d1CBs=newCheckbox[2]; d1Grp=newCheckboxGroup(); d1CBs[0]=newCheckbox("Male",d1Grp,true); d1CBs[1]=newCheckbox("Female",d1Grp,false); d1Btns=newButton[2]; d1Btns[0]=newButton("SUBMIT"); d1Btns[1]=newButton("RESET"); d1Quit=newButton("QUIT"); d1Btns[0].addActionListener(this); d1Btns[1].addActionListener(this); d1Quit.addActionListener(this); d1.setLayout(newGridLayout(6,2)); for(inti=0;i<3;i++) { d1.add(d1Labs[i]); d1.add(d1TFs[i]); } d1.add(d1CBs[0]); d1.add(d1CBs[1]); d1.add(d1Btns[0]); d1.add(d1Btns[1]); d1.add(d1Quit); mainWindow.setVisible(true); } publicvoidactionPerformed(ActionEvente) { Objecto=e.getSource(); if(o==actions[0]) { d1.setVisible(true); } elseif(o==d1Btns[0]) { Stringname,phone,email; booleanisFemale; name=d1TFs[0].getText(); phone=d1TFs[1].getText(); email=d1TFs[2].getText(); isFemale=d1CBs[1].getState(); STUDENTaStudent=new STUDENT(name,phone,email,isFe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验 报告