《Java程序设计》上机实验.docx
- 文档编号:6667040
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:9
- 大小:21.96KB
《Java程序设计》上机实验.docx
《《Java程序设计》上机实验.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》上机实验.docx(9页珍藏版)》请在冰豆网上搜索。
《Java程序设计》上机实验
a/b/c/d
班级号_学号_姓名_题号.java(多文件应压缩为rar):
实验1:
熟悉上机环境,编写并运行简单的java程序(3学时)
实验目的
(1)熟悉Java程序开发环境
(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元,有几种办法?
importjava.util.*;
Scannerr=newScanner(System.in);
r.nextInt();r.nextDouble();
班级号_学号_姓名_题号.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)掌握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):
实验5:
JApplet(3学时)
实验目的
(1)掌握JavaApplet程序的结构和运行机制
(2)掌握JavaApplet程序的生命周期中触发的各种事件
(3)复习Java语言中类的继承与方法的重载机制
实验内容及要求
编写一个Applet程序,在窗体中分别绘制由’*’组成的正方形和圆,尽量保证’*’号之间的间距相等。
如下图所示:
******
******
******
******
******
思考并验证
(1)思考一个方法,验证Applet程序运行的生命周期中init、start、stop、destroy、paint几个方法被调用的时机。
实现这个方法,并给出验证的结果。
(2)思路:
(3)谈一谈自己对JavaApplication程序与Applet程序之间区别的一些认识和看法。
班级号_学号_姓名_题号.java(多文件应压缩为rar):
实验6:
常用界面组件1(3学时)
实验目的
(1)了解简单的GUI的设计方法
(2)熟悉标签、按钮等基本组件的用法
(3)熟悉文本框的用法
(4)掌握按钮等组件的事件处理方法
(5)熟悉字号的控制方式
实验内容及要求
如下图所示,当点击按钮时若输入文本框中的数正确,则标签文本显示正确,否则显示不正确。
6+9=
正确
思考并验证
(1)若标签的字号比文本框中的字号大,应如何设置?
(2)你的程序用到哪几个组件?
(3)能否去掉按钮”OK”,当输入回车时进行正确性显示?
若能,应如何进行?
班级号_学号_姓名_题号.java(多文件应压缩为rar):
实验7:
常用界面组件2(3学时)
实验目的
(1)掌握GridLayout类的用法
(2)掌握标签、文本框、按钮等图形界面组件的使用,掌握按钮等组件的事件处理方法
(3)理解Java的事件处理机制和委托事件模型,理解事件源、监听者等概念
实验内容及要求
设计一个简易计算器。
在“操作数”标签右侧的两个文本框中输入操作数,当单击操作符+、-、*、÷按钮时,对两个操作数进行运算并将结果填入到“结果”标签的右侧文本框中
思考并验证
(1)画出程序运行效果图:
(2)在你的程序中谁是事件源,相应的监听者是谁?
(3)将程序中的嵌套if语句改写成switch语句,或反之。
班级号_学号_姓名_题号.java(多文件应压缩为rar):
实验8:
常用界面组件3(3学时)
实验目的
(1)进一步了解简单GUI的设计方法
(2)进一步熟悉标签、按钮、文本框等基本组件的用法
(3)进一步掌握按钮等组件的事件处理方法
(4)掌握Math.random()的用法
实验内容及要求
猜数游戏:
要求程序中有两个按钮,点击一个时可以获得一个随机整数,然后在一个文本框中输入猜测,再单击另一个按钮,程序根据用户的猜测在另一个文本框中给出提示信息。
思考并验证
(1)画出程序运行效果图:
(2)在Math中为什么将random()定义成静态成员函数?
(3)用Math.random()产生指定范围(m~n)内的随机整数的语句为:
(4)如何退出程序的执行?
在程序中体现在何处?
(5)猜数过程可进行多次,程序中有循环吗?
班级号_学号_姓名_题号.java(多文件应压缩为rar):
实验9:
界面布局(3学时)
实验目的
(1)熟练运用标签、按钮、文本框等基本组件,掌握按钮等组件的事件处理方法
(2)熟悉JTextArea的用法
(3)熟悉下拉列表框的用法
实验内容及要求
创建一个GUI应用程序,用于转换若干种货币。
提供给用户一个JTextArea以用于输入数量。
同时还应提供给用户一种选择源货币名称和目的货币名称的途径。
同时为自己的测试设置至少三种不同的货币名称及转换汇率。
思考并验证
(1)画出程序运行效果图:
班级号_学号_姓名_题号.java(多文件应压缩为rar):
实验10:
小综合(6学时)
实验目的
(1)学习布局的应用
(2)巩固标签、文本框、按钮等图形界面组件的使用,巩固组件的事件处理方法。
(3)提高语言成分的综合运用能力
(4)文件的简单使用
(5)对“算法及分析”有一个初步认识
实验内容及要求
用“筛选法”求2~n以内的所有素数:
先去掉2的倍数,再去掉3的倍数,再去掉4的倍数,…,依此类推,最后剩下的就是素数。
试按GUI方式图示化求解过程。
思考并验证
(1)画出程序运行效果图:
(2)使用的布局是:
(3)本程序还可选用那些布局?
(4)程序中用到了那些容器?
(5)按另一种方式求2~n以内的所有素数。
在你的方法中,为提高程序的执行效率,你采取了哪些优化措施?
(6)修改程序,设法对循环进行计数。
若n为1000,试对这两种求素数的方法在“时、空”两方面加以比较,你有什么感想?
最后修改程序将所得素数存入文件中。
班级号_学号_姓名_题号.java(多文件应压缩为rar):
实验11:
输入/输出(3学时)
实验目的
(1)了解流类及相关的包
(2)掌握常用的流类及其成员函数的使用方法
(3)学习输入/输出的基本方式
(4)巩固常用组件的使用及其事件的处理方式
实验内容及要求
建立一个班级下拉式列表,列表项中有2004
(1)班,2004
(2)班,2004(3)班和2004(4)班。
当点击某个选项时,将其成绩单显示在文本区中。
思考并验证
(1)抓取程序运行的一个界面:
(2)你的程序涉及到的文件有:
(3)你是通过什么途径建立这些文件的?
(4)能否用word建立这些文件?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计 Java 程序设计 上机 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)