java实验报告.docx
- 文档编号:5607895
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:37
- 大小:644.27KB
java实验报告.docx
《java实验报告.docx》由会员分享,可在线阅读,更多相关《java实验报告.docx(37页珍藏版)》请在冰豆网上搜索。
java实验报告
JAVA实验报告
姓名
冷小七
专业
计算机科学与技术
班级
计101
学号
夏小宅
指导教师
李伟
安徽工业大学计算机学院
2012年12月5日
实验三、面向对象编程实验
一、实验目的
⒈掌握接口的编写及使用
⒉理解继承、多态
⒊掌握包的编写以及如何使用包中的类
二、预习内容
java的基本语法知识
三、实验设备与环境
装有JAVA语言工具软件(JCreator)的微机若干
4、实验内容
⒈接口的编写
(1)编辑Interfaceclass.java
interfaceInterfaceclass
{
inti=4;
intk=5;
voidfunc1();
intfunc2(intx);
}
(2)编辑UseInterface.java
classUseInterfaceimplementsInterfaceclass
{
intj;
publicvoidfunc1()//在使用接口的类中一定要实现接口中的所有抽象方法
{
System.out.println("func1="+1);
}
publicintfunc2(inti)
{
System.out.println("func2="+1);
returni;
}
publicstaticvoidmain(Stringsrgs[])
{
//Interfaceclass.classx=newInterfaceclass.class();不能对接口进行实例化
UseInterfacex=newUseInterface();
x.func1();
x.func2(k);
}
}
程序截图:
2.包的建立与使用
(1)编辑Calculate.java
packagemypackage;
publicclassCalCulate
{
privateinta;
publicCalCulate(inta)
{
this.a=a;
System.out.println("fromconstrartion"+this.a);
}
publicdoublevolume(doubleheight,doublewidth,doubledepth)
{
returnheight*width*depth;
}
intadd(intx,inty)
{
returnx+y;
}
protectedvoida()
{
System.out.println("fromconstration"+a);
}
}
编译,查看D:
\myjava目录下是否生成了myoackage文件夹,在该文件夹中是否有Calculate.class文件。
程序截图:
(2)编辑Interfaceclass.java
importmypackage.CalCulate;
classPackageDemo
{
publicstaticvoidmain(Stringargs[])
{
CalCulatec=newCalCulate(10);
doubles=c.volume(5,6,7);
System.out.println(s);
//intb=c.add(5,6);
//c.a();
}
}
程序截图:
实验四、异常处理实验
一、实验目的
⒈异常的生产及捕获
⒉自定义异常及其使用
二、预习内容
面向对象的基本知识
三、实验设备与环境
装有JAVA语言工具软件(JCreator)的微机若干
四、实验内容
⒈异常的捕获
计算两数相除并输出结果。
使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。
编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。
importjava.io.*;
publicclassex4_1
{
publicstaticvoidmain(Stringargs[])
{
try
{
BufferedReaderstrin=newBufferedReader(newInputStreamReader(System.in));
System.out.println("请输入除数:
");
Stringcl=strin.readLine();
inta=Integer.parseInt(cl);
System.out.println("请输入被除数:
");
cl=strin.readLine();
intb=Integer.parseInt(cl);
intc=b/a;
System.out.println("商为:
"+c);
}
catch(IOExceptione)
{
e.printStackTrace();
}
catch(NumberFormatExceptione)
{
System.out.println("请输入整数!
");
}
catch(ArithmeticExceptione)
{
System.out.println("除数不可以0!
");
}
}
}
⒉定义异常
编写程序包含自定义异常,当输入数值为13和4时抛出该异常。
编辑Ex2.java,设保存在D:
\myjava目录下。
classEx2extendsException
{
Ex2(Stringmsg)
{
super(msg);
}
}
classMyEx
{
privateintx;
voidsetX(intx)
{
this.x=x;
}
voidf1()throwsEx2
{
if(x==13)
thrownewEx2("Idon’tlike13!
");
elseif(x==4)
thrownewEx2("Idon’tlike4!
");
else
System.out.println(100/x);
}
publicstaticvoidmain(Stringargs[])
{
MyExa=newMyEx();
try
{
a.setX(5);
//a.setX(13);
//a.setX(4);
//a.setX(0);
a.f1();
}
catch(Ex2e)
{
System.out.println("getmessage:
"+e.getMessage());
}
}
}
编译并运行,分别取消注释上面程序中被注释的语句。
当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果
实验八、多线程实验
一、实验目的
⒈掌握多线程的实现方法
⒉学会利用多线程来显示动画
二、预习内容
线程与进程的基础知识
三、实验设备与环境
装有JAVA语言工具软件(JCreator)的微机若干
四、实验内容
⒈使用Runnable接口的方法实现多线程
编辑TestRunnable.java
(1)编译TestRunnable.java。
importjava.applet.*;
importjava.awt.*;
publicclassTestRunnableextendsAppletimplementsRunnable
{
Labelprompt1=newLabel("thefirstthread");
Labelprompt2=newLabel("thesecondthread");
TextFieldthreadFirst=newTextField(14);
TextFieldthreadSecond=newTextField(14);
ThreadThread1,Thread2;
intcount1=0,count2=0;
publicvoidinin()
{
add(prompt1);
add(threadFirst);
add(prompt2);
add(threadSecond);
}
publicvoidstart()
{
Thread1=newThread(this,"FirstThread");
Thread2=newThread(this,"SecondThread");
Thread1.start();
Thread2.start();
}
publicvoidrun()
{
StringcurrentRunning;
while(true)
{
try
{
Thread.sleep((int)(Math.random()*10000));
}
catch(Exceptione){}
currentRunning=Thread.currentThread().getName();
if(currentRunning.equals("FirstTheard");
{
count1++;
threadFirst.setText("thefirstthread"+count1+"use");
}
elseif(currentRunning.equals("SecondThread"))
{
count2++;
threadSecond.setText("thesecondthread"+count2+"use");
}
}
}
}
(2)编辑TestRunnable.htm,要求与TestRunnable.class在同一目录下。
(3)运行TestRunnable.htm。
⒉实现简单动画
实现一个简单动画,效果为一个球由小到大,从屏幕左侧滚动到右侧。
importjava.applet.*;
importjava.awt.*;
publicclassMov_ballextendsApplet
{
intx1=50,x2=5,y1=75,y2=5;
publicvoidpaint(Graphicsg)
{
intw=this.getWidth();
inth=this.getHeight();
if(x1>=w)
x1=50;
if(x2>h)
x2=5;
g.setColor(Color.RED);
g.fillOval(x1,y1,x2,x2);
g.drawOval(x1,y1,x2,x2);
x1+=50;
x2+=5;
try
{
Thread.sleep(500);
}
catch(Exceptione){}
repaint();
}
}
实验九、输入输出流实验
一、实验目的
⒈了解文件的概念和文件对象的创建方法
⒉了解FileInputStream和FileOutoutStream的基本概念
⒊学会创建文件输入输出流
⒋掌握使用文件输入输出流读写文件的方法
二、预习内容
输入输出类的使用方法
三、实验设备与环境
装有JAVA语言工具软件(JCreator)的微机若干
四、实验内容
⒈编写程序读取文本文件内容
⒉读取图像文件
编辑ReadPic.java。
设该目录下已经存在一个run.gif文件
(1)编译并运行ReadPic..class。
importjava.io.*;
classReadPic
{
//*此程序将当前目录下的run.gif文件复制到copyrun.gif中
ReadPic()
{
try
{
Filef=newFile("run.gif");
Filef1=newFile("copyrun.gif");
FileInputStreaminFile=newFileInputStream(f);
BufferedInputStreaminB=newBufferedInputStream(inFile);
FileOutputStreamoutFile=newFileOutputStream(f1);
BufferedOutputStreamputB=newBufferedOutputStream(outFile);
byteb[]=newbyte[(int)f.length()];
while(inB.read(b)!
=-1)
{
putB.write(b);
}
putB.flush();
inB.close();
putB.close();
}
catch(Exceptione){e.printStackTrace();
}
publicstaticvoidmain(Stringargs[])
{
newReadPic();
}
}
}
(2)打开copyrun.gif与run.gif进行对比。
⒊将内容写入文件
编辑UseStream1.java
importjava.io.*;
classUseStream1
{
UseStream1(Stringpath)
{
try{
Filef=newFile(path,"test1.txt");
//向文件test1.txt中写入数据
FileWriterputFile=newFileWriter(f);
BufferedWriteroutB=newBufferedWriter(putFile);
Strings="你们好,这是一个测试写入数据的文件。
";
outB.write(s);
//插入一行
outB.newLine();
outB.write("这是利用FileWrite与BuffereWrite的例题。
");
//需要调用flush()方法
outB.flush();
//写入完毕要关闭流
outB.close();
//从text.txt中读取数据
FileReaderinFile=newFileReader(f);
BufferedReaderinB=newBufferedReader(inFile);
/*inB中含有能够直接读取一行数据的方法raesLine()供我们使用,当然返回值null时,意味着读取结束*/
StringfileContent="",str="";
while((fileContent=inB.readLine())!
=null)
{
str=str+fileContent+"\n";
}
System.out.println(str);
inB.close();
}
catch(Exceptione){e.printStackTrace();}
}
publicstaticvoidmain(Stringargs[])
{
newUseStream1("C:
\\MyEclipse8.5\\projects\\sy9");
}
}
编译并运行UseStream1.class。
综合实验—学生成绩管理系统
主窗口:
源程序:
classMainFormextendsJFrameimplementsActionListener{
JMenumSystem=newJMenu("系统");
JMenuItemmExit=newJMenuItem("退出");
JMenumOperate=newJMenu("数据操作");
JMenuItemmAdd=newJMenuItem("添加");
JMenuItemmDel=newJMenuItem("删除");
JMenuItemmModify=newJMenuItem("修改");
JMenuItemmBrowse=newJMenuItem("浏览");
JMenumQuery=newJMenu("查询");
JMenuItemmNumber=newJMenuItem("按学号查询");
JMenuItemmScore=newJMenuItem("按成绩查询");
JMenumHelp=newJMenu("帮助");
JMenuItemmAbout=newJMenuItem("关于");
JMenuBarmBar=newJMenuBar();
MainForm(){
super("学生成绩管理系统");
setSize(700,630);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
mSystem.add(mExit);
mOperate.add(mAdd);
mOperate.add(mDel);
mOperate.add(mModify);
mOperate.add(mBrowse);
mQuery.add(mNumber);
mQuery.add(mScore);
mHelp.add(mAbout);
mBar.add(mSystem);
mBar.add(mOperate);
mBar.add(mQuery);
mBar.add(mHelp);
setJMenuBar(mBar);
mExit.addActionListener(this);
mAdd.addActionListener(this);
mDel.addActionListener(this);
mModify.addActionListener(this);
mBrowse.addActionListener(this);
mNumber.addActionListener(this);
mScore.addActionListener(this);
mAbout.addActionListener(this);
setContentPane(newMyPanel());
setVisible(true);
}
publicvoidactionPerformed(ActionEventae){
if(ae.getSource()==mExit)
System.exit(0);
elseif(ae.getSource()==mAbout)
JOptionPane.showMessageDialog(this,"学生管理系统\n计算机学院\n","关于",JOptionPane.INFORMATION_MESSAGE);
elseif(ae.getSource()==mAdd)
newAddForm().setVisible(true);
elseif(ae.getSource()==mDel)
newDeleteForm().setVisible(true);
elseif(ae.getSource()==mModify)
newModifyForm().setVisible(true);
elseif(ae.getSource()==mBrowse)
newBrowseForm().setVisible(true);
elseif(ae.getSource()==mNumber)
newNumberQueryForm().setVisible(true);
elseif(ae.getSource()==mScore)
newScoreQueryForm().setVisible(true);
}
publicstaticvoidmain(String[]args){
newMainForm();
}
}
添加窗口:
源程序:
classAddFormextendsJFrameimplementsActionListener{
JLabellabName=newJLabel("学号:
");
JLabellabDate=newJLabel("出生日期:
");
JLabellabScore=newJLabel("成绩:
");
JTextFieldtxtName=newJTextField(20);
JTextFieldtxtDate=newJTextField(18);
JTextFieldtxtScore=newJTextField(20);
JButtonbtnOk=newJButton("确定");
JButtonbtnClear=newJButton("清空");
JPanelpan=newJPanel();
JPanelpan1=newJPanel();
JPanelpan2=newJPanel();
JPanelpan3=newJPanel();
JPanelpan4=newJPanel();
Connectioncnn;
Statementstm;
ResultSetrs;
AddForm(){
super("添加数据");
setSize(400,300);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
pan.setBorder(BorderFactory.createEtchedBorder());
pan1.add(labName);
pan1.add(txtName);
pan2.add(labDate);
pan2.add(txtDate);
pan3.add(labScore);
pan3.add(txtScore);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 报告