面向对象程序设计及WINDOWS编程实验指导书.docx
- 文档编号:28112746
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:46
- 大小:107.27KB
面向对象程序设计及WINDOWS编程实验指导书.docx
《面向对象程序设计及WINDOWS编程实验指导书.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计及WINDOWS编程实验指导书.docx(46页珍藏版)》请在冰豆网上搜索。
面向对象程序设计及WINDOWS编程实验指导书
面向对象程序设计及WINDOWS编程
实验指导书
(java程序设计)
2012.2
第二部分Java程序设计实验项目
实验一熟悉Java程序开发环境
一、实验目的
1.了解和使用J2sdk1.6.0(JDK)集成环境;
2.熟悉J2sdk集成环境的基本命令、功能和基本用法。
并学会配置path等环境变量;
3.学习并熟练掌握使用J2SDK环境进Java程序开发的全过程(包括:
源程序的编辑、编译、调试、运行和结果查看);
4.了解和掌握JCREATOR集成环境的安装,简单应用;
5.了解JavaApplication和Applet程序的基本结构;
6.了解Java程序文件名和类名的说明方法。
二、实验内容与要求
1. 安装Jdk1.6.0集成环境,安装成功后,配置path,classpath路径,让用户在任何目录下均可用到Java的系统资源。
设置环境变量PATH和CLASSPATH(如果在autoexec.bat中没有进行设置)。
进入命令行(MS-DOS)方式,进行如下设置:
SETPATH=D:
\JDK1.6.0\BIN;%PATH%
SETCLASSPATH=.;%CLASSPATH%
2. 安装Jdk1.6.0Doc,并查看Jdk1.6.0Doc文档中,和课堂教学有关系的部分。
在整个实验过程中都可以参考。
3. 建立自己的工作目录如d:
\user。
以后的Java程序和过程文件均放置在此目录下。
4. 输入一个Application源程序,学习编辑、编译、运行程序的方法。
//例1-1文件HelloWorldApp.java如下:
//HelloWorldApp.java
publicclassHelloWorldApp{
publicstaticvoidmain(Stringargs[]){
System.out.println(″HelloWorld!
″);
}
}
本程序的作用是输出下面一行信息:
HelloWorld!
现在我们可以运行该程序。
首先把它放到一个名为HelloWorldApp.java的文件中,这里,这文件名应和类名相同,因为Java解释器要求公共类必须放在与其同名的文件中。
然后对它进行编译:
d:
\user>javacHelloWorldApp.java
编译的结果是生成字节码文件HelloWorldApp.class。
最后用java解释器来运行该字节码文件:
d:
\user>javaHelloWorldApp
结果在屏幕上显示HelloWorld!
5. 输入一个applet源程序,学习编辑、编译、运行程序的方法。
简单的Applet小程序
例1-2//HelloWorldApplet.java
importjava.awt.*;
importjava.applet.*;
publicclassHelloWorldAppletextendsApplet{//anapplet
publicvoidpaint(Graphicsg){
g.drawString(″HelloWorldinApplet!
″,20,20);
}
}
这个程序中没有实现main()方法,这是Applet与应用程序Application(如上例)的区别之一。
为了运行该程序,首先我们也要把它放在文件HelloWorldApplet.java中,然后对它进行编译:
d:
\user>javacHelloWorldApplet.java
得到字节码文件HelloWorldApplet.class。
由于Applet中没有main()方法作为Java解释器的入口,我们必须编写HTML文件,把该Applet嵌入其中,然后用appletviewer来运行,或在支持Java的浏览器上运行,如IE。
它的文件如下:
其中用
d:
\user>appletviewerExample.html
这时屏幕上弹出一个窗口,其中显示HelloWorldinApplet!
。
6.安装JCREATOR软件,并配置JCREATOR,在JCREATOR中用建立工程的方式重新运行上面的4、5小题。
三、思考题
1.什么是Java虚拟机?
它的作用是什么?
2.JavaApplication程序与JavaApplet程序的不同之处有那些?
请各位同学收集错误代码与提示信息,以及产生错误的原因。
3.列举出5种以上Java开发平台,分析他们的优缺点或特点。
四、实验报告
1、实验完成后,检查是否达到试验目的。
2、编写实验报告(打印或手写均可),在下一次上实验课时提交。
3、评出成绩,按五级(A,B,C,D、E)评分。
实验二Java基本数据类型及运算
一、实验目的
1.理解Java语言的基本数据类型的概念和数据类型之间的转换;
2.掌握常量、变量和各种表达式的用法;
3.掌握各种运算符的优先级;
4.学会编写简单的Java程序。
5.把课堂上学到的理论用于实践,并验证理论的正确性,和发现新的问题.
二、实验内容与要求
(一)实验要求
1.体会自动类型转换和强制类型转换用法;
2.给出算术表达式、关系表达式及布尔表达式的值,体会运算符的优先级;
3.利用三目运算符进行编程;
4.进行简单Java编程,能够根据给出的三个变量值进行求和及平均;
5.进行简单Java编程,能够根据圆的半径计算出圆的周长及面积。
(二)实验内容
1.给出下面程序运行结果,注意掌握自动类型转换和强制类型转换的用法。
//定义变量
charc='a';
byteb=10;
inti=100;
longl=1000l;
floatf=2.72f;
doubled=3.14159;
//自动类型转换
intii=c+i;
longll=l-ii;
floatff=f*b;
doubledd=ff/i+d;
//强制类型转换
bytebb=(byte)i;
intiii=(int)ll;
//显示
System.out.println("ii="+ii+",ll="+ll+",ff="+ff+",dd="+dd);
System.out.println("bb="+bb+",iii="+iii);
根据运行结果,请问:
(1)哪些变量用到了自动类型转换,哪些用到了强制类型转换?
(2)强制类型转换可能会产生什么样的问题?
(3)变量dd的结果和你预期的结果有什么样的偏差,为什么?
2.给出下面程序的运行结果。
inta=20,b=3,c=4,d=5;
intvalue1,value2,value3;
value1=a+b++;
value2=a+++c;
value3=a+++d;
System.out.println("value1="+value1
+",value2="+value2
+",value3="+value3);
booleanx,y;
x=!
(c>d)||b*c>a&&a>b;
y=c==d&&b>c+d||a-b>c+d&&!
x;
System.out.println("x="+x+",y="+y);
根据运行结果,请问:
(1)上面程序用到哪些运算符,其优先级如何?
(2)“++”运算符放到变量之后和之前有什么区别?
(3)“a+++b”、“a+++b”和“a+++b”一样吗,为什么?
3.用条件运算符编写Java程序,取两数之中较大的数及较小的数,已知两个数为10和5。
4.已知某学生三科考试成绩分别为87、92和75分,试求此学生考试成绩总和及平均分,要求平均分保留2位小数。
5.计算半径为10的圆面积和周长。
注意,π的值使用Java中的Math.PI。
三、思考题
1.定义变量的作用是什么?
2.Java运算符的优先级与结合性是怎样的?
3.&和&&有什么区别?
4.break,continue在流程控制中的作用。
四、实验报告
1、实验完成后,检查是否达到试验目的。
2、编写实验报告(打印或手写均可),在下一次上实验课时提交。
3、评出成绩,按五级(A,B,C,D、E)评分。
实验三流程控制语句
一、实验目的
1.熟练掌握选择结构控制的程序设计方法;
2.熟练掌握循环结构控制的程序设计方法。
二、实验内容与要求
(一)实验要求
1.理解if语句、if…else语句在程序设计中的运用;
2.学会switch语句,if嵌套语句在多重选择程序设计中的运用;
3.理解while语句、do…while语句和for语句实现循环的方法;
4.学会运用while语句、do…while语句和for语句实现循环;
5.学会多重循环和循环嵌套语句的使用。
(二)实验内容
1.编程实现学生成绩所在等级,其中,成绩大于等于90分为优秀,大于等于80分为小于90分为良,大于等于60分小于80分为及格,小于60分为不及格。
假设学生成绩为85分。
2.给出下面程序的运行结果及实现的功能。
/*Main.java*/
packageexperiment3;
publicclassMain{
publicstaticvoidmain(String[]args){
intnowYear=2009;
intnowMonth=3;
if(args.length>0)
nowYear=Integer.parseInt(args[0]);
if(args.length>1)
nowMonth=Integer.parseInt(args[1]);
Question3_2questionInstance=newQuestion3_2();
System.out.println(nowYear+"年"+nowMonth+"月有"
+questionInstance.run(nowYear,nowMonth)+"天");
}
}
/*Question3_2.java*/
packageexperiment3;
publicclassQuestion3_2{
publicintrun(intyear,intmonth){
intdays=-1;
switch(month){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
break;
case4:
case6:
case9:
case11:
days=30;
break;
case2:
if(year%400==0||(year%4==0&&year%100!
=0))
days=29;
else
days=28;
}
returndays;
}
}
3.给出下面程序的运行结果和实现的功能。
System.out.println("输出以下数:
");
for(inti=100;i<1000;i++){
inta,b,c;
a=i/100;
b=i/10%10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
System.out.println(i);
}
4.编写Java程序,求1000以内(包括1000)能被3整除或被5整除的所有整数之和。
5.编写Java程序,给出九九乘法表。
三、实验报告
1、实验完成后,检查是否达到试验目的。
2、编写实验报告(打印或手写均可),在下一次上实验课时提交。
3、评出成绩,按五级(A,B,C,D、E)评分。
实验四面向对象程序设计初步
一、实验目的
1.掌握根类Object的使用方法;
2.掌握类描述类Class的使用方法;
3.掌握系统类System的使用方法;
4.掌握算术运算类Math的使用方法;
5.掌握String类和StringBuffer类的使用方法;
6.掌握日期类Date和日历类Calendar的使用方法。
二、实验内容与要求
(一)实验要求
1.学会利用String类分析和编写程序;
2.理解StringBuffer类的用法;
3.学会分析Date类和Calendar类程序;
4.体会System类的使用方法;
5.学会利用Math类进行编程。
(二)实验内容
1.分析运行下面程序并给出程序结果,体会String类的用法。
packageexperiment10;
publicclassQuestion10_3{
publicvoidrun()
{
Strings1="Hello";
Strings2="World!
";
System.out.println("字符串1长:
"+s1.length());
System.out.println("字符串2长:
"+s2.length());
System.out.println(s1.concat(s2));//连接字符串
Strings3="Welcome";
Strings4="tojava!
";
Strings5=s3+s4;
System.out.println(s5);
Strings6="Nicetomeetyou.";
Strings7="Nicetomeetyou.";
Strings8=newString("Youareverynice.");
Strings9=newString("Youareverynice.");
booleanc,d,e,f;
c=s6==s7;//s6和s7指向内存中同一个存储空间
d=s6.equals(s7);
e=s8==s9;//s8和s9是两个不同的对象,在内存中占用两个不同的存储空间,他们用“==”比较时,两者的值不相等;
f=s8.equals(s9);//equal方法比较的是两个变量的值;
System.out.println(c+""+d);
System.out.println(e+""+f);
inti,j;
i=pareTo(s7);
j=pareTo(s9);
System.out.println(i+""+j);
}
}
2.分析运行下面程序并给出程序结果,回答下面问题。
packageexperiment10;
importjava.util.*;
publicclassQuestion10_5{
publicvoidrun(){
GregorianCalendarcal=newGregorianCalendar();
DaterightNow=cal.getTime();
System.out.println("Thecurrenttimeanddate:
"+rightNow);
}
}
问题:
(1)第二条语句含义是什么?
(2)程序功能是什么?
给出程序运行结果。
(3)体会Date类和Calendar类的用法。
3.分析运行下面程序并给出程序结果,体会System类的使用方法。
packageexperiment10;
publicclassQuestion10_1{
publicvoidrun(){
System.out.println("file.separatorissetto"+System.getProperty("file.separator"));
System.out.println("java.class.pathissetto"+System.getProperty("java.class.path"));
System.out.println("java.class.versionissetto"+System.getProperty("java.class.version"));
System.out.println("java.homeissetto"+System.getProperty("java.home"));
System.out.println("java.vendorissetto"+System.getProperty("java.vendor"));
System.out.println("java.vendor.urlissetto"+System.getProperty("java.vendor.url"));
System.out.println("java.versionissetto"+System.getProperty("java.version"));
System.out.println(System.getProperties());
}
}””
4.编程程序,产生10个3位随机整数,并分两行打印输出到屏幕。
三、实验报告
1、实验完成后,检查是否达到试验目的。
2、编写实验报告(打印或手写均可),在下一次上实验课时提交。
3、评出成绩,按五级(A,B,C,D、E)评分。
实验五类与对象的设计
一、实验目的
1.掌握类的声明和定义;
2.理解有静态成员和非静态成员变量的区别;
3.理解基本参数和引用参数的区别;
4.掌握类构造函数的方法;
5.实现类的方法;
6.掌握创建类实例的方法;
7.学会定义和使用具有重载方法的继承类;
8.掌握方法的重新定义。
二、实验任务与要求
(一)实验要求
1.理解类的构造、方法及实例化的使用;
2.学会对类的创建,构造函数的使用,类属性及方法的创建,以及类的实例化及使用;
3.会对类的创建,类的属性及方法的创建进行独立编程;
4.学会对较复杂的类进行分析;
(二)实验任务
1.分析类的用法,并运行下面程序,给出程序运行结果。
packageexperiment5;
classNum{
intx,y,z,sum;
Num(inti,intj,intk){
x=i;
y=j;
z=k;
sum=x+y+z;
}
booleanisSameNum(Numa){
if(a.x==x&&a.y==y&&a.z==z)
returntrue;
else
returnfalse;
}
booleanisSameSum(Numb){
if(b.sum==sum)
returntrue;
else
returnfalse;
}
}
publicclassQuestion5_1{
publicvoidrun(){
Numa=newNum(3,6,9);
Numb=newNum(3,6,9);
Numc=newNum(6,9,3);
System.out.println(a.isSameNum(b));
System.out.println(b.isSameNum(c));
System.out.println(a.isSameSum(b));
System.out.println(b.isSameSum(c));
}
}
2.设计一个Dog类,属性有名称、颜色、重量和年龄,定义两个构造方法,定义toString()。
声明两个方法:
狗叫和狗咬。
然后实例化两个Dog,分别让它们叫和咬。
3创建学生类Student来完成下面问题。
(1)创建类Student,包括属性学号no、姓名name和年龄age,且都是private类型;
(2)声明一个构造方法,以初始化对象的所有的域;
(3)声明获得各属性(学号、姓名和年龄)的各个方法;
(4)声明设置各属性(学号、姓名和年龄)的各个方法;
(5)声明一个public型的toString方法,将该类所有域信息组合成一个字符串;
(6)声明统计创建Student对象的个数的成员变量count和得到Student对象的个数的方法。
在主类中使用Student类创建两个Student对象,输出对象所有域信息;修改其姓名和年龄,并显示。
4.在文件Question5_5.java中,分析并运行下面代码,给出输出结果。
packageexperiment5;
classRect{
privatedoublew,h;
Rect(doublew,doubleh){
this.w=w;
this.h=h;
}
Rect(Rects){
w=s.w;
h=s.h;
}
doublegetw(){
returnw;
}
doublegeth(){
returnh;
}
doublearea(){
returngetw()*geth();
}
}
publicclassQuestion5_5{
publicvoidrun(){
Rects[]=newRect[3];
s[0]=newRect(2,3);
s[1]=newRect(5,6);
s[2]=newRect(newRect(7,8));
for(inti=0;i System.out.println("s["
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 WINDOWS 编程 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)