Java上机实验指导.docx

上传人:b****5 文档编号:29948419 上传时间:2023-08-03 格式:DOCX 页数:95 大小:50.30KB
下载 相关 举报
Java上机实验指导.docx_第1页
第1页 / 共95页
Java上机实验指导.docx_第2页
第2页 / 共95页
Java上机实验指导.docx_第3页
第3页 / 共95页
Java上机实验指导.docx_第4页
第4页 / 共95页
Java上机实验指导.docx_第5页
第5页 / 共95页
点击查看更多>>
下载资源
资源描述

Java上机实验指导.docx

《Java上机实验指导.docx》由会员分享,可在线阅读,更多相关《Java上机实验指导.docx(95页珍藏版)》请在冰豆网上搜索。

Java上机实验指导.docx

Java上机实验指导

《Java语言程序设计》

上机实验指导手册

实验一Java环境演练

【目的】

①安装并配置Java运行开发环境;

②掌握开发Java应用程序的3个步骤:

编写源文件、编译源文件和运行应用程序;

掌握开发JavaApplet程序的3个步骤:

编写源文件、编译源文件和运行JavaApplet程序;

学习同时编译多个Java源文件。

【内容】

1.一个简单的应用程序

✧实验要求:

编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:

“你好,很高兴学习Java”和“Wearestudents”。

✧程序运行效果示例:

程序运行效果如下图所示:

✧程序模板:

Hello.java

publicclassHello

{

publicstaticvoidmain(Stringargs[])

{

【代码1】//命令行窗口输出"你好,很高兴学习Java"

Aa=newA();

a.fA();

}

}

classA

{

voidfA()

{

【代码2】//命令行窗口输出"Wearestudents"

}

}

✧实验后的练习:

1.编译器怎样提示丢失大括号的错误?

2.编译器怎样提示语句丢失分号的错误?

3.编译器怎样提示将System写成system这一错误?

4.编译器怎样提示将String写成string这一错误?

2.一个简单的JavaApplet程序

✧实验要求:

编写一个简单的JavaApplet程序,并在JavaApplet中写两行文字:

“这是一个JavaApplet程序”和“我改变了字体”。

✧程序运行效果示例:

程序运行效果如下图所示:

✧程序模板:

FirstApplet.java

importjava.applet.*;

importjava.awt.*;

publicclassFirstAppletextendsApplet

{

publicvoidpaint(Graphicsg)

{

g.setColor(Color.blue);

【代码1】//在JavaApplet中绘制一行文字:

“这是一个JavaApplet程序”

g.setColor(Color.red);

g.setFont(newFont("宋体",Font.BOLD,36));

【代码2】//在JavaApplet中绘制一行文字:

“我改变了字体”

}

}

✧实验后的练习:

5.程序中的主类如果不用public修饰,编译能通过吗?

6.程序中的主类如果不用public修饰,程序能正确运行吗?

7.程序将paint方法误写成Paint,编译能通过么?

8.程序将paint方法误写成Paint,运行时能看到有关的输出信息吗?

3.联合编译

✧实验要求:

编写4个源文件:

Hello.java、A.java、B.java和C.java,每个源文件只有一个类,Hello.java是一个应用程序(含有main方法),使用了A、B和C类。

将4个源文件保存到同一目录中,例如:

C:

\100,然后编译Hello.java。

✧程序运行效果示例:

程序运行效果如下图所示:

✧程序模板:

模板1:

Hello.java

publicclassMainClass

{

publicstaticvoidmain(Stringargs[])

{

【代码1】//命令行窗口输出"你好,只需编译我"

Aa=newA();

a.fA();

Bb=newB();

b.fB();

}

}

模板2:

A.java

publicclassA

{

voidfA()

{

【代码2】//命令行窗口输出"IamA"

}

}

模板3:

B.java

publicclassB

{

voidfB()

{

【代码3】//命令行窗口输出"IamB"

}

}

模板4:

C.java

publicclassC

{

voidfC()

{

【代码4】//命令行窗口输出"IamC"

}

}

✧实验后的练习:

9.将Hello.java编译通过后,不断修改A.java源文件中的代码,比如,在命令行窗口输出“我是A类”或“我被修改了”。

要求每次修改A.java源文件后,单独编译A.java,然后直接运行应用程序Hello。

10.如果需要编译某个目录下的全部Java源文件,比如C:

\1000目录,可以使用如下命令:

c:

\1000\javac*.java

【结果】

将本次上机实验结果按照以上内容依次填写实验目标、过程、结果。

【注意事项】

1实验报告要求每人提交一份,使用专门的报告纸,内容写全,包括实验名称、班级、姓名、同组人,试验日期、交报告日期等。

2报告不需要填写源代码,只要将完成情况和所有练习题结果写上就可以。

【思考题】

实验二Java基本数据类型与控制语句

【目的】

1掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表;

2掌握使用if…elseif多分支语句;

3使用if…else分支和while循环语句解决问题。

【内容】

1.输出希腊字母表。

✧实验要求:

编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。

✧程序运行效果示例:

程序运行效果如下图所示:

✧程序模板:

GreekAlphabet.java

publicclassGreekAlphabet

{

publicstaticvoidmain(Stringargs[])

{

intstartPosition=0,endPosition=0;

charcStart='α',cEnd='ω';

【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition

【代码2】//cEnd做int型转换运算,并将结果赋值给endPosition

System.out.println("希腊字母\'α\'在unicode表中的顺序位置:

"+(int)c);

System.out.println("希腊字母表:

");

for(inti=startPosition;i<=endPosition;i++)

{

charc='\0';

【代码3】//i做char型转换运算,并将结果赋值给c

System.out.print(""+c);

if((i-startPosition+1)%10==0)

System.out.println("");

}

}

}

✧实验后的练习:

1.将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误?

2.在应用程序的main方法中增加语句:

floatx=0.618;

程序能编译通过么?

3.在应用程序的main方法中增加语句:

bytey=128;

程序能编译通过么?

4.在应用程序的main方法中增加语句:

intz=(byte)128;

程序输出变量z的值是多少?

2.回文数。

✧实验要求:

编写一个Java应用程序。

用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。

回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。

✧程序运行效果示例:

程序运行效果如下图所示:

✧程序模板:

Number.java

importjavax.swing.JOptionPane;

publicclassNumber

{

publicstaticvoidmain(Stringargs[])

{

intnumber=0,d5,d4,d3,d2,d1;

Stringstr=JOptionPane.showInputDialog("输入一个1至99999之间的数");

number=Integer.parseInt(str);

if(【代码1】)//判断number在1至99999之间的条件

{

【代码2】//计算number的最高位(万位)d5

【代码3】//计算number的千位d4

【代码4】//计算number的百位d3

d2=number%100/10;

d1=number%10;

if(【代码5】)//判断number是5位数的条件

{

System.out.println(number+"是5位数");

if(【代码6】)//判断number是回文数的条件

{

System.out.println(number+"是回文数");

}

else

{

System.out.println(number+"不是回文数");

}

}

elseif(【代码7】)//判断number是4位数的条件

{

System.out.println(number+"是4位数");

if(【代码8】)//判断number是回文数的条件码

{

System.out.println(number+"是回文数");

}

else

{

System.out.println(number+"不是回文数");

}

}

elseif(【代码9】)//判断number是3位数的条件

{

System.out.println(number+"是3位数");

if(【代码10】)//判断number是回文数的条件

{

System.out.println(number+"是回文数");

}

else

{

System.out.println(number+"不是回文数");

}

}

elseif(d2!

=0)

{

System.out.println(number+"是2位数");

if(d1==d2)

{

System.out.println(number+"是回文数");

}

else

{

System.out.println(number+"不是回文数");

}

}

elseif(d1!

=0)

{

System.out.println(number+"是1位数");

System.out.println(number+"是回文数");

}

}

else

{

System.out.printf("\n%d不在1至99999之间",number);

}

}

}

✧实验后的练习:

1.程序运行时,用户从键盘输入2332,程序提示怎样的信息?

2.程序运行时,用户从键盘输入654321,程序提示怎样的信息?

3.程序运行时,用户从键盘输入33321,程序提示怎样的信息?

3.猜数字游戏。

✧实验要求:

编写一个Java应用程序,实现下列功能:

1)程序随机分配给客户一个1—100之间的整数

2)用户在输入对话框中输入自己的猜测

3)程序返回提示信息,提示信息分别是:

“猜大了”、“猜小了”和“猜对了”。

4)用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”。

✧程序运行效果示例:

程序运行效果如下图所示:

✧程序模板:

GuessNumber.java

importjavax.swing.JOptionPane;

publicclassGuessNumber

{

publicstaticvoidmain(Stringargs[])

{

System.out.println("给你一个1至100之间的整数,请猜测这个数");

intrealNumber=(int)(Math.random()*100)+1;

intyourGuess=0;

Stringstr=JOptionPane.showInputDialog("输入您的猜测:

");

yourGuess=Integer.parseInt(str);

while(【代码1】)//循环条件

{

if(【代码2】)//条件代码

{

str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:

");

yourGuess=Integer.parseInt(str);

}

elseif(【代码3】)//条件代码

{

str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:

");

yourGuess=Integer.parseInt(str);

}

}

System.out.println("猜对了!

");

}

}

✧实验后的练习:

1.用“yourGuess>realNumber”替换【代码1】,可以么?

2.语句:

“System.out.println(“猜对了!

”);”为何要放在while循环语句之后?

放在while语句的循环体中合理吗?

【结果】

将本次上机实验结果按照实验要求内容依次进行,填写实验目标、过程、结果。

【注意事项】

实验报告要求每人提交一份,使用专门的报告纸,内容写全,包括实验名称、班级、姓名、同组人,试验日期、交报告日期等。

报告不需要填写源代码,只要将完成情况和所有练习题结果写上就可以。

实验三类与对象、继承

【目的】

使用类来封装对象的属性和功能;

掌握类变量与实例变量,以及类方法与实例方法的区别;

掌握使用package和import语句。

巩固以下概念:

子类的继承性

子类对象的创建过程

成员变量的继承与隐藏

方法的继承与重写

【内容】

1.三角形、梯形和圆形的类封装

✧实验要求:

编写一个Java应用程序,该程序中有3个类:

Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。

具体要求如下:

a)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。

另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。

b)Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。

c)Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。

✧程序运行效果示例:

程序运行效果如下图所示:

✧程序模板:

AreaAndLength.java

classTrangle

{

doublesideA,sideB,sideC,area,length;

booleanboo;

publicTrangle(doublea,doubleb,doublec)

{

【代码1】//参数a,b,c分别赋值给sideA,sideB,sideC

if(【代码2】)//a,b,c构成三角形的条件表达式

{

【代码3】//给boo赋值。

}

else

{

【代码4】//给boo赋值。

}

}

doublegetLength()

{

【代码5】//方法体,要求计算出length的值并返回

}

publicdoublegetArea()

{

if(boo)

{

doublep=(sideA+sideB+sideC)/2.0;

area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));

returnarea;

}

else

{

System.out.println("不是一个三角形,不能计算面积");

return0;

}

}

publicvoidsetABC(doublea,doubleb,doublec)

{

【代码6】//参数a,b,c分别赋值给sideA,sideB,sideC

if(【代码7】)//a,b,c构成三角形的条件表达式

{

【代码8】//给boo赋值。

}

else

{

【代码9】//给boo赋值。

}

}

}

classLader

{

doubleabove,bottom,height,area;

Lader(doublea,doubleb,doubleh)

{

【代码10】//方法体,将参数a,b,c分别赋值给above,bottom,height

}

doublegetArea()

{

【代码11】//方法体,,要求计算出area返回

}

}

classCircle

{

doubleradius,area;

Circle(doubler)

{

【代码12】//方法体

}

doublegetArea()

{

【代码13】//方法体,要求计算出area返回

}

doublegetLength()

{

【代码14】//getArea方法体的代码,要求计算出length返回

}

voidsetRadius(doublenewRadius)

{

radius=newRadius;

}

doublegetRadius()

{

returnradius;

}

}

publicclassAreaAndLength

{

publicstaticvoidmain(Stringargs[])

{

doublelength,area;

Circlecircle=null;

Trangletrangle;

Laderlader;

【代码15】//创建对象circle

【代码16】//创建对象trangle。

【代码17】//创建对象lader

【代码18】//circle调用方法返回周长并赋值给length

System.out.println("圆的周长:

"+length);

【代码19】//circle调用方法返回面积并赋值给area

System.out.println("圆的面积:

"+area);

【代码20】//trangle调用方法返回周长并赋值给length

System.out.println("三角形的周长:

"+length);

【代码21】//trangle调用方法返回面积并赋值给area

System.out.println("三角形的面积:

"+area);

【代码22】//lader调用方法返回面积并赋值给area

System.out.println("梯形的面积:

"+area);

【代码23】//trangle调用方法设置三个边,要求将三个边修改为12,34,1。

【代码24】//trangle调用方法返回面积并赋值给area

System.out.println("三角形的面积:

"+area);

【代码25】//trangle调用方法返回周长并赋值给length

System.out.println("三角形的周长:

"+length);

}

}

✧实验后的练习:

1.程序中仅仅省略【代码15】,编译能通过吗?

2.程序中仅仅省略【代码16】,编译能通过吗?

3.程序中仅仅省略【代码15】,运行时出现怎样的异常提示?

4.给Trangle类增加3个方法,分别用来返回3个边:

sideA、sideB和sideC。

5.让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。

2.实例成员与类成员。

✧实验要求:

按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。

✧程序运行效果示例:

程序运行效果如下图所示:

✧程序模板:

Example.java

classA

{

【代码1】//声明一个float型实例变量a

【代码2】//声明一个float型类变量b,即static变量b

voidsetA(floata)

{

【代码3】//将参数a的值赋值给成员变量a

}

voidsetB(floatb)

{

【代码4】//将参数b的值赋值给成员变量b

}

floatgetA()

{

returna;

}

floatgetB()

{

returnb;

}

voidinputA()

{

System.out.println(a);

}

staticvoidinputB()

{

System.out.println(b);

}

}

publicclassExample

{

publicstaticvoidmain(Stringargs[])

{

【代码5】//通过类名操作类变量b,并赋值100

【代码6】//通过类名调用方法inputB()

Acat=newA();

Adog=newA();

【代码7】//cat象调用方法setA(inta)将cat的成员a的值设置为200

【代码8】//cat调用方法setB(intb)将cat的成员b的值设置为400

【代码9】//dog象调用方法setA(inta)将dog的成员a的值设置为150

【代码10】//dog调用方法setB(intb)将dog的成员b的值设置为300

【代码11】//cat调用inputA()。

【代码12】//cat调用inputB()。

【代码13】//dog调用inputA()。

【代码14】//dog调用inputB()。

}

}

✧实验后的练习:

1.将inputA()方法中的

System.out.println(a);

改写为

System.out.println(a+b);

编译是否出错?

为什么?

2.将inputB()方法中的

System.out.println(b);

改写为

System.out.println(a+b);

编译是否报错?

为什么?

3.使用package语句与import语句。

✧实验要求:

按实验要求使用package语句,并用import语句使用Ja

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1