网络编程实验报告.docx
- 文档编号:8071953
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:50
- 大小:29.19KB
网络编程实验报告.docx
《网络编程实验报告.docx》由会员分享,可在线阅读,更多相关《网络编程实验报告.docx(50页珍藏版)》请在冰豆网上搜索。
网络编程实验报告
网络编程技术实验报告
一实验目的:
网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业根底课程。
本课程以Java技术为主讲授,Java语言是当前最流行的网络编程语言。
本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要容。
通过实验,让学生熟悉JDK中的主要容,掌握用JDK调试和运行程序的方法,掌握网络编程的根本思想和开发方法、面向对象编程的思想,JAVA中的根本方法和技术,能够熟练使用JAVA设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S构造程序的设计工作。
通过实验,提高学生使用Java语言程序设计开发的能力,提高应用面向对象技术分析和解决实际问题的能力,并在此根底上强化学生的实践意识、提高其分析问题、解决问题的能力以及动手能力和创新能力。
二实验要求
要求学生熟悉JDK中的主要容,掌握用JDK调试和运行程序的方法,掌握网络编程的根本思想和开发方法、面向对象编程的思想,JAVA中的根本方法和技术,能够熟练使用JAVA设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S构造程序的设计工作。
要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。
为保证尽量在统一安排的上机时间完成程序设计任务,学生应事先做问题分析,并做静态检查。
学生应记录实验中所遇到的问题,并写出详细的实验报告。
课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验容、源程序、实验结果及分析。
实验一java根本语法
实验目的:
了解Java的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握Java根本数据类型、运算符与表达式,掌握顺序构造、选择构造和循环构造语法的程序设计方法。
实验要求:
1、编写一个声明Java不同数据类型变量的程序。
2、编写使用不同选择构造的程序。
3、编写使用不同循环构造构造的程序。
实验容:
1、编写一个声明Java不同数据类型变量的程序。
publicclassDataTypes
{
publicstaticvoidmain(Stringargs[])
{
byteb=127;
shorts=32767;
inti=2147483647;
longl=9223372036l;//为什么long表示的数比Int还小.
charc='c';
floatf=1.23F;
doubled=0.9E-3;
booleanbool=true;
System.out.println("b="+b);
System.out.println("s="+s);
System.out.println("i="+i);
System.out.println("l="+l);
System.out.println("c="+c);
System.out.println("f="+f);
System.out.println("d="+d);
System.out.println("bool="+bool);
}
}
///////////////////////////////////////////////////////////////////////////////////////
publicclassTestif
{
publicstaticvoidmain(Stringargs[])
{
booleanleap;
intyear=2021;
if((year%4==0&&year%100!
=0)||(year%400==0))//
System.out.println(year+"年是闰年");
else
System.out.println(year+"年不是闰年");
//方法二///////////////////////////////////////
year=2021;
if(year%4!
=0)
leap=false;
elseif(year%100!
=0)
leap=true;
elseif(year%400!
=0)
leap=false;
else
leap=true;
if(leap==true)
System.out.println(year+"年是闰年");
else
System.out.println(year+"年不是闰年");
//方法三/////////////////////////////////////
year=2050;
if(year%4==0){
if(year%100==0){
if(year%400==0)
leap=true;
else
leap=false;
}
else
leap=false;
}
else
leap=false;
if(leap==true)
System.out.println(year+"年是闰年");
else
System.out.println(year+"年不是闰年");
}
}
2、编写使用不同选择构造的程序。
//使用switch语句/////////////////////////////////////
//1.编写程序用Switch语句实现从键盘上都1,2,3时,屏幕提示不同的信息
importjava.io.*;
classSwitchTest
{
publicstaticvoidmain(Stringargs[])throwIOE*ception
{
chara;
System.out.println("Enteranumberfrom1--3:
");
a=(char)System.in.read();
switch(a)
{
case'1':
System.out.println("winaCar!
");break;
case'2':
System.out.println("pickedthegoat");break;
case'3':
System.out.println("gettokeepyour100!
");break;
default:
System.out.println("entry");
}
}
}
3、编写使用不同循环构造构造的程序。
//for循环语句
importjava.io.*;
classForTest
{
publicstaticvoidmain(Stringargs[])throwsIOE*ception
{
intfahr,cels;
System.out.println("CelsiusFahrenheit");
for(cels=0;cels<=100;cels+=5)
{
fahr=cels*9/5+32;
System.out.println(cels+""+fahr);
}
chara;
outer:
//thisisthelablefortheouterloop
for(inti=0;i<10;i++)
for(intj=0;j<10;j++){
a=(char)System.in.read();
if(a=='b')
breakouter;
if(a=='c')
continueouter;
}
}
}
//while循环语句////////////////////////////////////////////
importjava.io.*;
classWhileTest
{
publicstaticvoidmain(String[]args)throwsIOE*ception
{
charch;
System.out.println("按1/2/3数字可获大奖!
");
System.out.println("按空格键后回车可退出循环操作");
while((ch=(char)System.in.read())!
='')
{
System.in.skip
(2);//跳过回车键
switch(ch){
case'1':
System.out.println("恭喜你获得大奖,一辆汽车");break;
case'2':
System.out.println("不错呀,你得到一台笔记本电脑");break;
case'3':
System.out.println("没白来,你得到一台冰箱");break;
default:
System.out.println("真不兴,你没有奖品!
下次再来");
}
}
}
}
//多重循环
publicclassMul99
{
publicstaticvoidmain(String[]args)
{inti,j,n=9;
System.out.print("*|");
for(i=1;i<10;i++)
System.out.print(""+i);
System.out.print("\n-----|");
for(i=1;i<10;i++)
System.out.print("---");
System.out.println();
for(i=1;i<=n;i++){
System.out.print(""+i+"|");
for(j=1;j<=i;j++)
System.out.print(""+i*j);
System.out.println();
}
}
}
实验感想:
实验二面向对象编程试验
实验目的:
通过编程和上机实验理解Java语言是如何表达面向对象编程根本思想,熟悉类的封装方法以及如何创立类和对象,熟悉成员变量和成员方法的特性,熟悉类的继承性和多态性的作用,熟悉包、接口的使用方法,掌握OOP方式进展程序设计的方法。
实验要求:
1、编写程序实现类的定义和使用。
2、编写不同成员和不同成员方法修饰方法的程序。
3、编写表达类的继承性〔成员变量、成员方法、成员变量隐藏〕的程序和多态性〔成员方法重载、构造方法重载〕的程序。
4、编写接口的定义和使用的程序。
5、编写包的定义和使用的程序。
实验容-
1.日期类输出当前日期
importjava.io.*;
publicclassDate
{
privateintyear,month,day;
//privatestaticthisYear;
publicDate(inty,intm,intd){
this.year=y;
this.month=m;
this.day=d;
}
publicvoidread(inty,intm,intd)
{
inty=System.in.read();
intm=System.in.read();
intd=System.in.read();
}
publicvoidset(inty,intm,intd)
{
if(m>=1&&m<=12)
{
returnm;
}else{
System.out.println("该日期错误");
}
if(d>=1&&d<=31)
{
returnd;
}else
System.out.println("该日期错误");
}
publicvoidshow()
{
System.out.println(this.day+"/"+this.month+"/"+this.year);
}
publicstaticvoidmain(Stringargs[])throwsIOE*ception
{
Dates=newDate();
s.read();
s.set();
s.show();
}
}
//////////////////////////////////////////////////////////////////////////////////////
2.桌子类
publicclassTable
{
privateStringname;
privateintlongs;
privateintweight;
privateintheight;
privateintwidth;
publicTable(Stringn,intl,intwe,inth,intwi)
{
this.name=n;
this.longs=l;
this.weight=we;
this.height=h;
this.width=wi;
}
intArea()
{
returnthis.longs*this.width;
}
publicvoidDisplay()
{
System.out.println("桌子名称:
"+this.name+"\n"+"重量:
"+this.weight+"\n"+"桌面宽度:
"+this.width+"\n"+"桌面长度:
"+this.longs+"\n"+"桌子高度:
"+this.height+"\n"+"桌子面积"+this.Area());
}
publicvoidChangeWeight(ints)
{
this.weight=s;
}
publicstaticvoidmain(Stringargs[])
{
TableT=newTable("*iaozuo",9,3,5,3);
T.Area();
T.Display();
T.ChangeWeight(90);
T.Display();
}
}
//////////////////////////////////////////////////////////////////////////////////////////////
classStaticDemo
{
staticint*;
inty;
publicstaticintget*(){
return*;
}
publicstaticvoidset*(intnew*){
*=new*;
}
publicintgetY(){
returny;
}
publicvoidsetY(intnewY){
y=newY;
}
}
publicclassTestDemo
{
publicstaticvoidmain(Stringargs[]){
System.out.println("静态变量"+StaticDemo.get*());
System.out.println("实例变量"+StaticDemo.getY());//非法编译时将出错
StaticDemoa=newStaticDemo();
StaticDemob=newStaticDemo();
a.set*
(1);
a.setY
(2);
b.set*(3);
b.setY(4);
System.out.println("静态变量a.*="+a.get*());
System.out.println("静态变量a.y="+a.getY());
System.out.println("静态变量b.*="+b.get*());
System.out.println("静态变量b.*="+b.getY());
}
}
3.继承和多态的作用
/*
Date:
2021.11.239:
56:
00
author:
Devon
function:
功能
•创立Rodent(啮齿动物〕:
Mouse(老鼠〕,Gerbil(沙鼠〕,Hamster(大频鼠〕等
的一个继承分级构造。
在根底类中,提供适用于所有Rodent的方法,并在衍生类中覆盖它们,
从而根据不同类型的Rodent釆取不同的行动。
创立一个Rodent数组,在其中填充不同类型的Rodent,
然后调用自己的根底类方法,看看会有什么情况发生。
*/
classRodent
{
Rodentr[]=newRodent[4];
publicvoidTowTooth()
{
}
publicstaticvoidmain(Stringargs[])
{
Rodentrodent=newRodent();
Mouthmouth=newMouth();
Gerbilgerbil=newGerbil();
Hamsterhamster=newHamster();
r[0]=rodent,r[1]=mouth,r[2]=gerbil,r[3]=hamster;
for(inti=0,i { r[i].TowTooth(); } } } classMouaee*tendsRodent { } classGerbile*tendsMouse { } classHamstere*tendsGerbil { } 4、接口的定义和使用 interfaceTest.java publicclassInterfaceTest { publicstaticvoidmain(String[]args) { double*; circley=circle; y.circle (2); *=y.calculate.area(); System.out.println("\n面积为: "+*+"\n"); } } interfacecal_area { doublePI=3.14; doubleclaculate_area(); } classcircleimplementscla_area { doubler; circle(doubler) { this.r=r; } //实现接口中的抽象方法,求圆面积 publicdoublecalculate_area() { returnPI*r*r; } } 5、包的定义和使用•创立自定义包Mypackage /////////////////////////////////////////////////// packageMvpackage;//声明存放类的包 importjava.util.*;//引用java.util包 publicclassTest_YMD{ privateintyear,month,day; publicstaticvoidmain(String[]args){} publicTest_YMD(inty,intm,intd){ year=y; month=(((m>=1)&(m<=12))"m: 1); day=(((d>=1)&(d<=31))"d: 1); } publicTest_YMD(){ this(0,0,0); } publicstaticintthisyear(){ returnCalendar.getInstance().get(Calendar.YEAR);//返回当年的年份 } publicintyear(){ returnyear;//返回年份 } publicStringtoString(){ returnyear+"-n"+month+"n-"+day;//返回转化为字符串的年-月-日 } } ////////////////////////////////////////////////////// importMypackage.KY4_1_YMD;//引用Mypackage包中的KY4_1_YMD类 publicclassYMD_2{ privateStringname; privateTest_YMDbirth; publicstaticvoidmain(Stringargs[]) { YMD_2a=newYMD_2("驰",1990,1,11); a.output(); } publicYMD_2(Stringnl,Test_YMDdl){ name=nl; birth=dl; } publicYMD_2(Stringnl,inty,intm,intd){ this(nl,newTest_YMD(y,m,d));//初始化变量与对象 } publicintage()//计算年龄 { returnTESt_YMD.thisyear()-birth.yearO;//返回当前年与出生年的差即年龄 } publicvoidoutput() { System.out.println(": "+name); System.out.println("出生日期: "+birth.toString()); System.out.println("今年年龄: "+age()); } 实验感想: 实验三异常处理程序设计 实验目的: 了解Java中异常处理〔e*ception〕的作用及常用的异常类,掌握异常处理的设计方法。 实验要求: 理解系统异常处理的机制和创立自定义异常的方法。 实验容: ClassInsufficientFoundsE*ceptione*tendsE*ception { privateBankAccountm-ba; privatedoublegetAmount; InsufficientFoundsE*ception(BankAccountba,doubledAmount) { super("Insufficientfoundsinaccount"); m-ba=ba; getAmount=dAmount; } publicStringtoString()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 编程 实验 报告