《Java程序设计》上机实验课件.docx

上传人:b****8 文档编号:29730586 上传时间:2023-07-26 格式:DOCX 页数:13 大小:20.76KB
下载 相关 举报
《Java程序设计》上机实验课件.docx_第1页
第1页 / 共13页
《Java程序设计》上机实验课件.docx_第2页
第2页 / 共13页
《Java程序设计》上机实验课件.docx_第3页
第3页 / 共13页
《Java程序设计》上机实验课件.docx_第4页
第4页 / 共13页
《Java程序设计》上机实验课件.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

《Java程序设计》上机实验课件.docx

《《Java程序设计》上机实验课件.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》上机实验课件.docx(13页珍藏版)》请在冰豆网上搜索。

《Java程序设计》上机实验课件.docx

《Java程序设计》上机实验课件

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验1:

熟悉上机环境,编写并运行简单的java程序(3学时)

实验目的

(1)熟悉Java程序开发环境J2SDK+JCreator的安装及使用

(2)熟悉JavaApplication和Applet程序的结构及开发步骤

(3)熟练掌握if语句的使用

(4)掌握Math.sqrt()等常用数学函数的用法

(5)熟悉System.out.print()的用法

实验内容及要求

按JavaApplication和Applet两种方式分别编写程序,求一元二次方程ax2+bx+c=0的根(系数在程序中给定),并输出。

思考并验证

(1)分别给定以下几组系数,给出输出结果

a=1,b=5,c=3

a=4,b=4,c=1

a=2,b=3,c=2:

+i+i

(2)如果程序的public类的类名和源文件的文件名不一样会有什么问题?

(3)将类的public修饰去掉是否可行?

接着再将类名换为其它是否可行?

这说明了什么?

(4)将程序中main前面的public去掉,重新编译执行你的程序,你看到了什么信息?

(5)将程序中main前面的static去掉,重新编译执行你的程序,你看到了什么信息?

为什么?

(6)本次上机中,你还遇到了什么问题,是如何解决的?

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验2:

控制流程1(3学时)

实验目的

(1)进一步熟悉使用if语句

(2)掌握循环语句实现循环的方法

实验内容及要求

输出时,只使用下面的语句:

System.out.print(“”);//输出一个空格,并且不换行

System.out.print(“*”);//输出一个字符’*’,并且不换行

System.out.print(“+”);//输出一个字符’+’,并且不换行

System.out.println(“*”;)//输出一个字符’*’,并换行

编写程序输出(注:

在图形的中心处有一个加号’+’):

*

***

*****

***+***

*****

***

*

思考并验证

下面程序片段给出了从键盘输入一个整数的方法:

importjava.io.*;

InputStreamReaderir;

BufferedReaderin;

ir=newInputStreamReader(System.in);

in=newBufferedReader(ir);

try{Strings=in.readLine();

inti=Integer.parseInt(s);//转换成整形

}

catch(IOExceptione){}

(1)如何修改程序,使得输出的图形可以很方便的在水平方向上移动?

 

(2)如何修改你的程序,按输入行数n(为奇数)输出图形?

 

选做:

编程求支付方法的种数:

取1元,2元,5元纸币10张,付给18元,有几种办法?

 

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验3:

控制流程2(3学时)

实验目的

(1)掌握数据类型的含义

(2)掌握break语句的使用

(3)掌握用三种循环语句实现循环以及循环嵌套的方法

实验内容及要求

编程,计算11+22+33+……+66

思考并验证

(1)将内层循环改为另一种循环语句,比较哪种循环语句更适用于本程序?

 

(2)修改程序使之计算11+22+33+……+2020,你的程序能得出正确结果吗?

若不能,应如何修改?

 

(3)考虑如何通过使用break语句修改这个程序,求出最大值n,使得11+22+…+nn小于等于long数据类型所能表示的最大值(即Long.MAX_VALUE),并给出11+22+…+nn的确切值。

 

选做:

求有几组和为1000的连续正整数,并输出这些整数。

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验4:

类和对象(数组)(3学时)

实验目的

(1)掌握Java语言中类和对象的基本概念

(2)掌握Java程序设计中类和对象的定义及使用

(3)学习使用数组,掌握数组的初始化方法及数组元素的引用

实验内容及要求

2

7

6

9

5

1

4

3

8

编程,求解和为15的棋盘游戏问题。

要求将从1到9的九个数填入3×3的棋盘中,使得各行、各列以及两个对角线上的三个数之和均为15,并打印出结果。

如左图。

思考并验证

(1)在程序中,你用到了数组了吗,使用的是几维数组?

如果没有使用,在程序中该如何使用数组?

它给编程带来了什么好处?

 

(2)编程思路:

 

(3)在程序中,你定义了哪些类,它们分别具有什么含义?

 

(4)在程序中,你是否生成了自己定义类的对象?

如果要求不可以生成类的对象实例,程序应如何修改?

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验5:

继承、多态(接口和包)(3学时)

实验目的

(1)掌握Java语言中继承和多态的相关概念

(2)掌握Java程序设计中继承和多态机制的使用

(3)掌握Java语言中接口和包的概念及使用

实验内容及要求

仿真农场

一个哺乳动物类如下所示:

publicclassMammal{

protectedintage=2;

protectedintweight=5;

publicMammal(){

System.out.println(“Mammalconstructor”);

}

intgetAge(){returnage;}

voidsetAge(inta){age=a;}

intgetWeight(){returnweight;}

voidsetWeight(intw){weight=w;}

voidmove(){System.out.println(“Mammalmoveonestep”);}

voidspeak(){System.out.println(“Mammalspeak!

”);}

voidsleep(){System.out.println(“shhh,I’msleeping.”);}

}

狗属哺乳动物,且它的属性有品种之分(在哺乳类基础上增加品种数据成员),叫声区别于其他动物(输出“Woof!

”),还会摇尾巴(增加成员函数,输出“Tailwagging…”),乞讨食物(增加成员函数,输出“beggingforfood…”)。

猫、马、猪也属于哺乳动物,其叫声分别为:

“Meow!

”,“Winnie!

”,“Oink!

”。

编程分别使各个动物表现为不一样的行为。

要求将所有的动物类放置于animal.mammal包下。

定义两个新的类,表示宠物猫和宠物狗。

要求:

这两个类能输出宠物所属的主人,价格等信息;将这两个类放置于animal.mammal.pet包下。

思考并验证

(1)在程序中的哪些地方使用到了多态的机制?

多态性为我们带来了什么好处?

 

(2)试着把源文件放到另外一个目录下,然后编译,看看会得到什么信息?

为什么会出现这种情况?

 

(3)在定义宠物类的时候,是否使用了接口?

如果没有使用,该定义一个什么接口,并如何修改程序?

接口的使用为程序带来了什么好处?

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验6:

异常处理(3学时)

实验目的

(1)理解异常的概念

(2)掌握Java程序设计中异常的处理机制

实验内容及要求

一、输入以下代码,编译调试并分析执行结果

程序1:

编写用于演示异常处理机制的try-catch代码,用于测试

ArrayIndexOutOfBoundsException异常,请调试:

PublicclassCatchException

{

publicstaticvoidmain(String[]args)

{

int[]arr=newint[10];

try

{

arr[10]=10;

}

catch(ArrayIndexOutOfBoundsExceptione)

{

e=newArrayIndexoutBoundsException(“数组下标越界!

”);

throwe;

}

}

}

输入以上代码,并编译和调试,最后分析结果。

程序2:

编写用于演示异常处理机制try-catch-finally的代码。

在此程序中,当一个数字除以0时,将引发ArithmeticException异常,引发的异常被catch捕获。

ClassProgram2

{

Stringname=”内蒙古大学软件学院”

Intno1=10;

Intno2=20;

Program2()

{

try

{

System.out.println(name);

System.out.println(“相除结果为:

”+no1/no2);

}

catch(ArithmeticExceptionI)

{

System.out.println(“不能除以0!

”);

}

finally

{

name=null;

system.out.println(“Finally已执行!

”);

}

}

publicstaticvoidmain(Stringargs[])

{

newProgram2();

}

}

二、.编写一个程序,用于将来自用户的两个数字接受为命令行参数。

将第一个数字除以第二个数字并显示结果,处理可能的异常提示:

使用两个catch语句,一个用于捕获ArrayIndexOutOfBoundsException异常(从命令行传来的参数个数不对),而另一个用于捕获ArithmaticException异常。

 

选做:

编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。

如果输入的参数为一个、二个、三个则它们应分别对应正方形、长方形、三角形,如果没有参数,则通过异常处理方法现实错误消息。

(用于计算面积的方法是一个重载的方法)。

提示:

定义一个抽象的父类,并提供一个抽象的方法area().再派生出三个子类,重写area()方法,然后在main方法中编写测试逻辑。

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验7:

输入/输出(3学时)

实验目的

(1)了解流类及相关的包

(2)掌握常用的流类及其成员函数的使用方法

(3)学习输入/输出的基本方式

(4)巩固常用组件的使用及其事件的处理方式

实验内容及要求

建立一个班级下拉式列表,列表项中有2004

(1)班,2004

(2)班,2004(3)班和2004(4)班。

当点击某个选项时,将其成绩单显示在文本区中。

思考并验证

(1)抓取程序运行的一个界面:

 

(2)你的程序涉及到的文件有:

 

(3)你是通过什么途径建立这些文件的?

 

(4)能否用word建立这些文件?

 

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验8:

界面布局(3学时)

实验目的

(1)熟练运用标签、按钮、文本框等基本组件,掌握按钮等组件的事件处理方法

(2)熟悉JTextArea的用法

(3)熟悉下拉列表框的用法

实验内容及要求

创建一个GUI应用程序,用于转换若干种货币。

提供给用户一个JTextArea以用于输入数量。

同时还应提供给用户一种选择源货币名称和目的货币名称的途径。

同时为自己的测试设置至少三种不同的货币名称及转换汇率。

思考并验证

(1)画出程序运行效果图:

 

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验9:

Applet(3学时)

实验目的

(1)掌握JavaApplet程序的结构和运行机制

(2)掌握JavaApplet程序的生命周期中触发的各种事件

(3)复习Java语言中类的继承与方法的重载机制

实验内容及要求

编写一个Applet程序,在窗体中分别绘制由’*’组成的正方形和圆,尽量保证’*’号之间的间距相等。

如下图所示:

******

******

******

******

******

思考并验证

(1)思考一个方法,验证Applet程序运行的生命周期中init、start、stop、destroy、paint几个方法被调用的时机。

实现这个方法,并给出验证的结果。

 

(2)思路:

 

(3)谈一谈自己对JavaApplication程序与Applet程序之间区别的一些认识和看法。

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验10:

线程(6学时)

实验目的

(1)掌握多线程的概念与基本操作方法

(2)掌握线程的并发控制技术

(3)掌握线程同步技术

实验内容及要求

一、编写程序创建5个线程,分别显示5个不同的字符串。

分别用继承Thread类以及实现Runnable接口的两种方式实现。

 

二、编写生产者/消费者模式的程序。

生产者每隔100ms产生一个0~9之间的一个数,保存在一个MyNumber类型的对象中,并显示出来。

只要这个MyNumber对象中保存了新的数字,消费者就将其取出来显示。

试定义MyNumber类,编写消费者、生产者程序,并编写主程序创建一个MyNumber对象,一个生产者线程、一个消费者线程并将这两个线程启动。

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验11:

Java网络程序设计(6学时)

实验目的

(1)掌握网络通信的基础知识及Java对网络通信的支持

(2)掌握Java基于URL的3W资源访问技术

(3)掌握基于底层Scoket的有连接和无连接的网络通信方法

实验内容及要求

一、编写Applet显示或播放指定URL的图像和声音文件。

 

二、编写一个客户/服务器程序,服务器的功能是计算圆的面积。

客户端将圆的半径发送给服务器端,服务器端计算得出的圆面积发送给客户端,并在客户端显示。

班级号_学号_姓名_题号.java(多文件应压缩为rar):

实验12:

小综合(6学时)

实验目的

(4)学习布局的应用

(5)巩固标签、文本框、按钮等图形界面组件的使用,巩固组件的事件处理方法。

(6)提高语言成分的综合运用能力

(7)文件的简单使用

(8)对“算法及分析”有一个初步认识

实验内容及要求

用“筛选法”求2~n以内的所有素数:

先去掉2的倍数,再去掉3的倍数,再去掉4的倍数,…,依此类推,最后剩下的就是素数。

试按GUI方式图示化求解过程。

思考并验证

(1)画出程序运行效果图:

 

(2)使用的布局是:

(3)本程序还可选用那些布局?

 

(4)程序中用到了那些容器?

 

(5)按另一种方式求2~n以内的所有素数。

在你的方法中,为提高程序的执行效率,你采取了哪些优化措施?

 

(6)修改程序,设法对循环进行计数。

若n为1000,试对这两种求素数的方法在“时、空”两方面加以比较,你有什么感想?

最后修改程序将所得素数存入文件中。

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

当前位置:首页 > 经管营销 > 公共行政管理

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

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