Java程序设计实验指导书Word下载.docx
《Java程序设计实验指导书Word下载.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验指导书Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
这种请在实验报告中给出你所作部分,给出运行结果,记录遇到的问题,搜集调试程序中遇到的错误提示,并作简略分析。
3)自己撰写程序。
如果代码过长,请在实验报告中给出主要代码和运行结果,记录遇到的问题,搜集调试程序中遇到的错误提示,并作简略分析。
三、实验心得
四、回答老师指定的思考题目
Note:
如果有同学实验报告打印的话,请将排版成实验报告的形式。
实验一熟悉java的编程环境
五、实验目的
1.了解和使用J2sdk1.5.0(JDK)集成环境。
2.了解和掌握JCREATOR集成环境的安装,简单应用。
3.了解JavaApplication和Applet程序的基本结构。
4.了解Java程序文件名和类名的说明方法。
六、实验内容与要求
1、安装j2sdk,jcreator并把帮助文档配置好。
2、输入一个Application源程序,学习编辑、编译、运行程序的方法。
//例1-1文件HelloWorldApp.java如下:
//HelloWorldApp.java
publicclassHelloWorldApp{
publicstaticvoidmain(Stringargs[]){
System.out.println(″HelloWorld!
″);
}
本程序的作用是输出下面一行信息:
HelloWorld!
请在jcreator中运行该程序。
2、输入一个applet源程序,学习编辑、编译、运行程序的方法。
简单的Applet小程序
例1-2//HelloWorldApplet.java
importjava.awt.*;
importjava.applet.*;
publicclassHelloWorldAppletextendsApplet{//anapplet
publicvoidpaint(Graphicsg){
g.drawString(″HelloWorldinApplet!
″,20,20);
这个程序中没有实现main()方法,这是Applet与应用程序Application(如上例)的区别之一。
为了运行该程序,首先我们也要把它放在文件HelloWorldApplet.java中,然后在jcreator中对它进行编译:
得到字节码文件HelloWorldApplet.class。
由于Applet中没有main()方法作为Java解释器的入口,我们必须编写HTML文件,把该Applet嵌入其中,然后用appletviewer来运行,或在支持Java的浏览器上运行,如IE。
它的<
HTML>
文件如下:
<
HEAD>
TITLE>
AnApplet<
/TITLE>
/HEAD>
BODY>
appletcode=”HelloWorldApplet.class”width=200height=40>
/applet>
/BODY>
/HTML>
其中用<
applet>
标记来启动HelloWorldApplet.code指明字节码所在的文件,width和height指明applet所占的大小,把这个HTML文件存入Example.html,然后运行该网页。
三:
配置参考
JCREATOR软件安装完成后,若要配置相关的东西,请打开配置->
选项,如下,检查JDK配置文件是否安装好,如果没有点击新建完成配置。
七、思考题
1.什么是Java虚拟机?
它的作用是什么?
2.JavaApplication程序与JavaApplet程序的不同之处有那些?
请各位同学收集错误代码与提示信息,以及产生错误的原因。
3.上网搜索目前有哪些Java开发平台,分析他们的优缺点或特点。
八、实验报告
1、实验完成后,检查是否达到试验目的。
2、编写实验报告,在下一次上实验课时提交。
实验二Java语言基础
1、掌握java语言的基本数据类型,各种运算符以及if,switch,while、do-while和for语句;
2、掌握一维数组的使用。
1、仔细读下面的JAVA语言源程序,自己给出程序的运行结果
publicclassCh21
{
publicstaticvoidmain(Stringargs[])
charx,y,z;
x='
K'
;
y='
\\'
z='
\117'
System.out.print(x);
System.out.print(y);
System.out.print(z);
}
2、仔细读下面的JAVA语言源程序,自己给出程序的运行结果
publicclassCh22
booleanx,y,z;
inta=12,b=24;
x=(a>
b);
y=(a!
=b);
z=(a+b==36);
System.out.println("
x="
+x);
y="
+y);
z="
+z);
3、仔细读下面的JAVA语言源程序,自己给出程序的运行结果
publicclassCh23{
publicstaticvoidmain(Stringargs[]){
intx,y,z=0;
for(x=1;
x<
=10;
x++)
for(y=1;
y<
10;
y++)
{
if(x==5)
continue;
if(y>
5)
break;
z++;
4.编写程序:
用字符串String数组存储英文字符串“javaisanobjectedorientedprogramminglanguage”
并计算单词个数和每个单词的平均字母数。
三、思考题
1.break,continue在流程控制中的作用。
2.Java运算符的优先级与结合性是怎样的?
3.Java程序中可以定义中文字符的变量吗?
四、实验报告
实验三类的设计与使用
1、熟练掌握类、对象的的概念以及对事物的抽象。
2、熟练掌握成员、方法的概念以及构造方法的概念。
3、熟练掌握封装性,多态性的概念
4、理解面向对象的程序设计方法。
1.设计复数类
设计一个复数类,成员变量包括实部和虚部,成员方法包括实现复数的加法、减法、比较、转换成字符串输出等。
publicclassComplex
{
privatedoublereal,im;
//实部,虚部
publicComplex(doublereal,doubleim)//构造方法
this.real=real;
this.im=im;
publicComplex(doublereal)//构造方法重载
this(real,0);
publicComplex()
this(0,0);
publicComplex(Complexc)//拷贝构造方法
this(c.real,c.im);
publicbooleanequals(Complexc)//比较两个对象是否相等
returnthis.real==c.real&
&
this.im==c.im;
}
publicStringtoString()
return"
("
+this.real+"
+"
+this.im+"
i)"
publicvoidadd(Complexc)//两个对象相加
{//改变当前对象,没有返回新对象
this.real+=c.real;
this.im+=c.im;
publicComplexplus(Complexc)//两个对象相加,与add()方法参数一样不能重载
{//返回新创建对象,没有改变当前对象
returnnewComplex(this.real+c.real,this.im+c.im);
publicvoidsubtract(Complexc)//两个对象相减
this.real-=c.real;
this.im-=c.im;
publicComplexminus(Complexc)//两个对象相减,与subtract()方法参数一样不能重载
{//返回新创建的对象,没有改变当前对象
returnnewComplex(this.real-c.real,this.im-c.im);
classComplex__ex
Complexa=newComplex(1,2);
Complexb=newComplex(3,5);
Complexc=a.plus(b);
//返回新创建对象
System.out.println(a+"
+"
+b+"
="
+c);
2、为一个Java州立大学的学生建立账单系统,州内外的学生收费不同,州内每学分收费$75,州外为$200,每个学生账单上有学校名称,学生姓名,学分数以及账单总数。
publicabstractclassStudent
finalstaticdoubleINSTATE_RATE=75;
finalstaticdoubleOUTSTATE_RATE=75;
Stringname;
inthours;
//学分数
publicabstractvoidshowStudent();
publicfinalvoidshowSchool()
System.out.println("
JavaStateUniversity"
);
**********************"
publicclassOutStateStudentextendsStudent
//添加相应的代码,要有构造方法
publicclassInStateStudentextendsStudent
publicclassTest
//添加相应的代码,测试上面的类
三、实验报告
3、评出成绩,按五级(A,B,C,D、E)评分。
实验四设计实现接口的类
理解接口,设计实现接口的类
1.请仔细阅读下面程序,体会接口的使用。
该程序的功能是计算某商店商品的销售总额。
interfaceComputeTotalSales
publicdoubletotalSalesByYear();
classTelevisionimplementsComputeTotalSales
publicdoubletotalSalesByYear()
return50000.456;
classComputerimplementsComputeTotalSales
classMobileimplementsComputeTotalSales
classShop
ComputeTotalSales[]goods;
doubletotalSales=0;
Shop(ComputeTotalSales[]goods)
this.goods=goods;
publicdoublegiveTotalSales()
totalSales=0;
for(inti=0;
i<
goods.length;
i++)
totalSales=totalSales+goods[i].totalSalesByYear();
returntotalSales;
publicclassHappySale
ComputeTotalSales[]goods=newComputeTotalSales[50];
if(i%3==0)
goods[i]=newTelevision();
elseif(i%3==1)
goods[i]=newComputer();
elseif(i%3==2)
goods[i]=newMobile();
Shopshop=newShop(goods);
商店年销售额:
"
+shop.giveTotalSales());
2、定义一个接口OneToN,在接口体中包含一个方法disp()。
定义Sum和Pro类,并分别用不同代码实现OneToN中的disp()方法,在Sum的方法中计算1~n的和,在Pro中计算1~n的乘积。
实验五异常处理
1、理解什么是异常
2、掌握java的异常处理机制和方法
mportjava.io.*;
publicclassCh61{
publicstaticvoidmain(Stringargs[])throwsIOException{
int[]ko=newint[15];
intn,a;
Stringx;
BufferedReaderkeyin=newBufferedReader(newInputStreamReader(System.in));
System.out.print("
Enteraninteger:
x=keyin.readLine();
n=Integer.parseInt(x);
try{
a=110/n;
ko[15]=100;
此描述无法执行!
}catch(ArithmeticExceptione){
除数为0的错误"
}catch(ArrayIndexOutOfBoundsExceptionf){
数组索引值大于数组长度的错误!
执行完catch的描述!
!
2.运行下面的程序,自己给出程序的运行结果。
importjava.io.*;
publicclassCh62{
publicCh62(){
try{
inta[]=newint[2];
a[4]=3;
System.out.println("
Afterhandlingexceptionreturnhere?
}catch(IndexOutOfBoundsExceptione){
System.err.println("
exceptionmsg:
+e.getMessage());
exceptionstring:
+e.toString());
e.printStackTrace();
}finally{
-------------------"
finally"
Noexception?
newCh62();
3、自定义异常类。
请为下面的Date2类定义一个异常类,当set方法的3个整形参数不能构成一个合法的日期时候,抛出异常,Date2类中的其他方法将捕获并处理该异常。
publicclassDate2//公有的类,与源程序文件同名
{
privateintyear,month,day;
//私有的成员变量
publicDate2(inty,intm,intd)//指定参数的构造方法
set(y,m,d);
//可以调用定义在后面的成员方法
publicvoidset(inty,intm,intd)//公有的成员方法,设置日期值,算法不全
this.year=y;
this.month=((m>
=1)&
(m<
=12))?
m:
1;
this.day=((d>
(d<
=31))?
d:
1.本实验的实验内容2中,finally程序块的作用是什么?
2.异常分为哪两类?
3.如果申明inta[]=newint[-10];
应属于那类异常
4.比较throw和throws两者的用法上的区别。
实验六图形用户界面设计
1.掌握常用GUI控制组件的使用方法。
2.掌握事件处理的方法。
3.了解swing控件的概念。
二、实验内容
1.编程包含一个标签和一个按钮,单击按钮时,标签的内容在"
你好"
和"
再见"
之间切换。
2.编程包含一个文本框和一个文本区域,文本框内容改变时,将文本框中的内容显示在文本区域中;
在文本框中按回车键时,清空文本区域的内容。
3.设计计算器,要求见教材P212。
1.Java的事件处理机制是怎样的?
2.若一个数据只有两种取值可能,采用哪种组件表示比较合适?
如果有二种到三种取值可能,采用哪种合适?
如果取值的可能大于5个,采用哪种组件合适?
3.事件监听器和事件适配器的关系是什么?
4.编程包含两个按钮和一个标签,将发生单击事件的按钮上的文本信息显示在标签中。
提示:
关键代码如下:
b1.addActionListener(newB1());
b2.addActionListener(newB2());
classB1implementsActionListener{
publicvoidactionPerformed(ActionEvente){
who.setText("
Button1"
classB2implementsActionListener{
Button2"
实验七Applet应用程序设计
1.掌握JavaApplet程序结构和开发过程
2.了解Applet运行机制
1.JavaApplet程序开发过程
输入一个applet源程序,学习编辑、编译、运行程序的方法。
例//HelloWorldApplet.java
g.drawString(″HelloWorldinAp