java实验报告要点.docx
《java实验报告要点.docx》由会员分享,可在线阅读,更多相关《java实验报告要点.docx(23页珍藏版)》请在冰豆网上搜索。
java实验报告要点
学生学号
实验课成绩
武汉理工大学
学生实验报告书
实验课程名称java语言与程序设计
开课学院
指导老师姓名
学生姓名
学生专业班级
2012—2013学年第一学期
实验课程名称:
java语言程序设计
实验项目名称
Java文件输入输出流
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
把下列数据写到一个名为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("c:
\\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("c:
\\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("c:
\\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();
}
publicstaticvoidmain(String[]args)throwsIOException{
//TODOAuto-generatedmethodstub
MyClassmc=newMyClass();
mc.method01();
//mc.method02();
//mc.method03();
//依次调用method01()、method02()、method03()
}
}
三、主要实验工具、仪器设备及耗材
个人计算机,Eclipse
第二部分:
实验结果分析(可加页)
一、实验结果描述
先执行方法一:
再执行方法二:
最后执行方法三:
二.实验小结、建议及体会
经过这次实验,我对java语言有了初步认识,对如何使用java编程有了初步了解,并且尝试编出一个简单的小程序,实现了先生成文件再将数据写入文件的目的,这对我有很大的帮助,为我以后的java学习打下了基础,以后我会多加练习,争取更大的进步。
实验课程名称:
java语言程序设计
实验项目名称
Java类继承及接口
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一.实验内容描述(问题域描述)
1、接口之一定义四则运算的加减法,接口之二定义四则运算的乘除运算。
类一有一个打印一个字符串和一个整数的成员方法,要求打印的数据通过形式参数导入。
类二继承类一并实现接口一和接口二,且含有用于计算20和30四则运算并打印计算结果的主函数。
_2、利用标准输入流输入一元二次方程的三个系数,并解该方程。
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
第一题源代码:
接口一:
packagejavacourse;
publicinterfaceInterface01{
publicintadd(inta,intb);
publicintsub(inta,intb);
}
接口二:
packagejavacourse;
publicinterfaceInterace02{
publicintprod(inta,intb);
publicintdiv(inta,intb);
}
父类:
packagejavacourse;
publicclassFatherClass{
publicstaticvoidprint(Stringstr,inta)
{
System.out.println(str+":
"+a);
}
}
子类:
packagejavacourse;
publicclassAChildClass
extendsFatherClass
implementsInterface01,Interace02
{
publicAChildClass(){
//TODOAuto-generatedconstructorstub
}
@Override
publicintprod(inta,intb){
//TODOAuto-generatedmethodstub
return(a*b);
}
2
@Override
publicintdiv(inta,intb)
{
//TODOAuto-generatedmethodstub
try{
return(a/b);
}catch(Exceptionex)
{
System.out.println("a/bwithb=0");
return-999;
}
}
@Override
publicintadd(inta,intb){
//TODOAuto-generatedmethodstub
return(a+b);
}
@Override
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));
}
}
第二题参考代码:
packagejavacourse;
importjava.io.*;
publicclassROOT{
privatedoublea,b,c,x1,x2;
privatebooleanhaRealRoots;
3
publicROOT(){
super();
//TODOAuto-generatedconstructorstub
}
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,NumberFormatException
{
byte[]arrA,arrB,arrC;
StringstrA,strB,strC;
doubledelta;
arrA=newbyte[80];
arrB=newbyte[80];
arrC=newbyte[80];
pstr("Inputcoefficienta:
");
System.in.read(arrA);
4
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);
}
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args)
throwsException
{
//TODOAuto-generatedmethodstub
ROOTrt=newROOT();
rt.calRoots();
if(rt.isHaRealRoots())
{
print("x1=",rt.getX1());
print("x2=",rt.getX2());
}
else
{
rt.pstr("Don'texistrealroots");
}
}
}
三、主要实验工具、仪器设备及耗材
个人计算机,Eclipse
第二部分:
实验结果分析(可加页)
一、实验结果描述
输入方程无解:
输入方程有解:
二、实验小结、建议及体会
经过这次实验我对java的类继承及接口有了初步的认识,同时也进一步了解了java的各种类型和变量定义以及表达式的运算,并且亲自动手编了两个程序来巩固自己所学。
java语言跟c语言极有相似之处又有不同之处,这次实验让我对java语言的学习打下了很好的基础。
实验课程名称:
java语言程序设计
实验项目名称
掌握可视化编程,数据结构,和文件输入、输出流
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一.实验内容描述(问题域描述)
实验内容:
编写一个表示学生信息(姓名,电话号码,电子邮箱,性别)的JavaBean。
要求这个“结构体”实现java.io.Serializable,以便能够把若干这样的对象写到文件中。
使用java.util.Hashtable,即哈希表,来处理这样的JavaBean。
使用文件输入、输出流和对象输入、输出流来读、写这样一个哈希表对象。
图形用户界面要用到采单,列表,对话框等。
Java.awt.Menu,Dialog,List,等。
事件接口可以是java.awt.event.ActionListener或java.awt.event.MouseListener。
对话框用于输入一个学生的四项信息,而四个列表用于显示所有学生的四项信息。
软件具备四个功能:
输入一个学生的信息,显示所有学生的信息,从文件中加载数据,以及把当前所有的数据保存到文件中。
而这四项功能由一个采单来选择。
二.实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
实验步骤:
_
(1)把myfile.data数据文件拷到C盘(因为里面有一些初始数据)。
_
(2)在C盘下创建文件夹:
C:
\wk\javacourse。
_(3)把源代码文件StudentManagmentSystem.java拷到该文件夹之下,并编译、解释执行。
_(4)按照你的想法,修改程序,体会有关标准类的使用方法。
源程序:
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***/
Hashtablestudents=newHashtable();
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++)
{
3
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);
4
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,isFemale);
students.put(name,aStudent);
}
elseif(o==