《互联网软件开发JAVA》课程实验指导书.docx
《《互联网软件开发JAVA》课程实验指导书.docx》由会员分享,可在线阅读,更多相关《《互联网软件开发JAVA》课程实验指导书.docx(48页珍藏版)》请在冰豆网上搜索。
![《互联网软件开发JAVA》课程实验指导书.docx](https://file1.bdocx.com/fileroot1/2023-1/26/eabd14c2-eeca-4b95-a044-84b0db79b8fa/eabd14c2-eeca-4b95-a044-84b0db79b8fa1.gif)
《互联网软件开发JAVA》课程实验指导书
《互联网软件开发(JAVA)》
实 验 指 导 书
林亚明 编写
适用专业:
软件工程、
计算机科学与技术
闽江学院_计算机系
2012年 2 月
前 言
本课程讲授JAVA语法,JAVA的面向对象技术,创建图形用户界面(GUI),异常处理,文件输入/输出(I/O),线程和网络编程等。
为使学生进一步深刻理解JAVA语言基本概念、语法规则及程序结构,熟练掌握JAVA语言程序设计的基本方法,提高利用JAVA在网络环境下开发、设计应用程序的能力,进一步培养学生的创新能力和解决实际问题的能力。
本课程设置了七个实验项目,都为必做项目。
指导书中的7个实验题目见目录,其中实验七java数据库编程设定为综合性实验项目。
本实验指导书适合计算机科学与技术、软件工程本科专业使用。
目录
实验一开发环境熟悉
实验二基本数据类型与控制语句
实验三类与对象
实验四多线程与输入输出流
实验五图形界面编程
实验六Java中的网络编程
实验七java数据库编程
实验一开发环境熟悉
实验学时:
2学时
实验类型:
演示
实验要求:
必做
一、实验目的
掌握开发Java应用程序的3个步骤:
编写源文件、编译源文件和运行应用程序。
二、实验内容
1.新建项目myfirstProject,新建一个类Hello.java,输入以下代码,并将空缺的功能补上(代码1和代码2处)。
2.联合编译
新建项目myfirstProject,新建三个类,Hello.java,A.java,B.java,代码如下:
并将空缺的功能补上。
3.对第二道题目的程序执行单步调试,从而掌握调试基本功能。
三、实验原理、方法和手段
参考案例、课件和教材相关内容。
上机操作
四、实验组织运行要求
集中授课
五、实验条件
软件配置:
WindowsXPProfessional、IE5.5以上、eclipse开发环境
硬件配置:
CPUP42.0G以上、内存512MB以上
六、实验步骤
七、思考题
(1)编译器怎样提示丢失大括号的错误?
(2)编译器怎样提示语句丢失分号的错误?
(3)编译器怎样提示将System写成system这一错误?
(4)编译器怎样提示将String写成string这一错误?
八、实验报告
要求实验报告的内容包括实验目的、实验设备、实验内容、实验结果、思考题五个部分。
九、其它说明
实验二基本数据类型与控制语句
实验学时:
2学时
实验类型:
验证
实验要求:
必做
一、实验目的
掌握char型数据和int型数据之间的互相转换,同时了解unicode字符表。
二、实验内容
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)cStart);
System.out.println("希腊字母表:
");
for(inti=startPosition;i<=endPosition;i++)
{
charc='\0';
【代码3】//i做char型转换运算,并将结果赋值给c。
System.out.print(""+c);
}
}
}
2.编写一个java程序,用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数十否是回文数。
回文数是指该数含有的数字逆序排列后得到的数与原数相同,例如:
12121,3223都是回文数。
请按模板将[代码]替换为java程序代码。
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.println(number+"不在1至99999之间");
}
}
}
3.编写一个java应用程序,实现以下功能:
(1)程序随机分配给客户一个1-100之间的整数。
(2)用户在输入对话框中输入自己的猜测。
(3)程序返回提示信息,提示信息分别是:
“猜大了”、“猜小了”、和“猜对了”。
(4)用户可以根据提示信息再次输入猜测,直到提示信息是“猜对了”。
请按模板将[代码]替换为java程序代码。
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("猜对了!
");
}
}
三、实验原理、方法和手段
四、实验组织运行要求
集中授课
五、实验条件
软件配置:
WindowsXPProfessional、IE5.5以上、eclipse开发环境
硬件配置:
CPUP42.0G以上、内存512MB以上
六、实验步骤
七、思考题
八、实验报告
要求实验报告的内容包括实验目的、实验设备、实验内容、实验结果、思考题五个部分。
九、其它说明
实验三类与对象
实验学时:
2学时
实验类型:
验证
实验要求:
必做
一、实验目的
使用类来封装对象的属性和功能;掌握类变量和实例变量,以及类方法和实例方法的区别。
二、实验内容
1.
程序模板
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】//方法体。
}
doublegetArea()
{
【代码11】//方法体,,要求计算出area返回。
}
}
classCircle
{
doubleradius,area;
Circle(doubler)
{
【代码12】//方法体。
}
doublegetArea()
{
【代码13】//方法体,要求计算出area返回。
}
doublegetLength()
{
【代码14】//方法体,要求计算出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);
}
}
2.
请按模板要求,将【代码】替换为Java程序代码
程序模板
Example.java
classA
{
【代码1】//声明一个float型实例变量:
a。
【代码2】//声明一个float型类变量:
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的值设置为200。
【代码10】//dog调用方法setB(intb)将dog的成员b的值设置为400。
【代码11】//cat调用inputA()。
【代码12】//cat调用inputB()。
【代码13】//dog调用inputA()。
【代码14】//dog调用inputB()。
}
}
3继承
程序模板
Example.java
classPeople
{
protecteddoubleweight,height;
publicvoidspeakHello()
{
System.out.println("yayawawa");
}
publicvoidaverageHeight()
{
height=173;
System.out.println("averageheight:
"+height);
}
publicvoidaverageWeight()
{
weight=70;
System.out.println("averageweight:
"+weight);
}
}
classChinaPeopleextendsPeople
{
【代码1】//重写publicvoidspeakHello()方法,要求输出类似“你好,吃了吗”这样的
//汉语信息。
【代码2】//重写publicvoidaverageHeight()方法,要求输出类似
//“中国人的平均身高:
168.78厘米”这样的汉语信息。
【代码3】//重写publicvoidaverageWeight()方法,
//要求输出类似“中国人的平均体重:
65公斤”这样的汉语信息。
publicvoidchinaGongfu()
{
【代码4】//输出中国武术的信息,例如:
"坐如钟,站如松,睡如弓"等。
}
}
classAmericanPeopleextendsPeople
{
【代码5】//重写publicvoidspeakHello()方法,要求输出类似
//“Howdoyoudo”这样的英语信息。
【代码6】//重写publicvoidaverageHeight()方法。
【代码7】//重写publicvoidaverageWeight()方法。
publicvoidamericanBoxing()
{
【代码8】//输出拳击的信息,例如,“直拳”、“钩拳”等。
}
}
classBeijingPeopleextendsChinaPeople
{
【代码9】//重写publicvoidspeakHello()方法,要求输出类似“您好”这样的汉语信息。
【代码10】//重写publicvoidaverageHeight()方法。
【代码11】//重写publicvoidaverageWeight()方法。
publicvoidbeijingOpera()
{
【代码12】//输出京剧的信息。
}
}
publicclassExample
{
publicstaticvoidmain(Stringargs[])
{
ChinaPeoplechinaPeople=newChinaPeople();
AmericanPeopleamericanPeople=newAmericanPeople();
BeijingPeoplebeijingPeople=newBeijingPeople();
chinaPeople.speakHello();
americanPeople.speakHello();
beijingPeople.speakHello();
chinaPeople.averageHeight();
americanPeople.averageHeight();
beijingPeople.averageHeight();
chinaPeople.averageWeight();
americanPeople.averageWeight();
beijingPeople.averageWeight();
chinaPeople.chinaGongfu();
americanPeople.americanBoxing();
beijingPeople.beijingOpera();
beijingPeople.chinaGongfu();
}
}
4上转型对象
程序模板
HardWork.java
abstractclassEmployee
{
publicabstractdoubleearnings();
}
classYearWorkerextendsEmployee
{
【代码1】//重写earnings()方法。
}
classMonthWorkerextendsEmployee
{
【代码2】//重写earnings()方法。
}
classWeekWorkerextendsEmployee
{
【代码3】//重写earnings()方法。
}
classCompany
{
Employee[]employee;
doublesalaries=0;
Company(Employee[]employee)
{
this.employee=employee;
}
publicdoublesalariesPay()
{
salaries=0;
【代码4】//计算salaries。
returnsalaries;
}
}
publicclassHardWork
{
publicstaticvoidmain(Stringargs[])
{
Employee[]employee=newEmployee[20];
for(inti=0;i{
if(i%3==0)
employee[i]=newWeekWorker();