网络编程技术实验报告
一实验目的:
网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业基础课程。本课程以Java技术为主讲授,Java语言是当前最流行的网络编程语言。本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要内容。通过实验,让学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JA V A中的基本方法和技术,能够熟练使用JA V A设计、编写程序,特别是基于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不同数据类型变量的程序。
public class DataTypes
{
public static void main(String args[])
{
byte b=127;
short s=32767;
int i=2147483647;
long l=9223372036l;//为什么long表示的数比Int还小?
char c='c';
float f=1.23F;
double d=0.9E-3;
boolean bool=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);
}
.
}
///////////////////////////////////////////////////////////////////////////////////////
public class Testif
{
public static void main(String args[])
{
boolean leap;
int year=2014;
if((year%4==0&&year%100!=0)||(year%400==0))//
System.out.println(year+"年是闰年");
else
System.out.println(year+"年不是闰年");
//方法二///////////////////////////////////////
year=2008;
if(year%4!=0)
leap=false;
else if(year%100!=0)
leap=true;
else if(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时,屏幕提示不同的信息
import java.io.*;
class SwitchTest
{
public static void main(String args[]) throw IOException
{
char a;
System.out.println("Enter a number from 1--3:");
a=(char)System.in.read();
switch(a)
{
case '1':
System.out.println("win a Car!");break;
case '2':
System.out.println("picked the goat");break;
case '3':
System.out.println("get to keep your100!");break;
default:System.out.println("entry");
}
}
}
3、编写使用不同循环结构结构的程序。
//for循环语句
import java.io.*;
class ForTest
{
public static void main(String args[])throws IOException
{
int fahr,cels;
System.out.println("Celsius Fahrenheit");
for(cels=0;cels<=100;cels+=5)
{
fahr=cels*9/5+32;
System.out.println(cels+" "+fahr);
}
.
char a;
outer://this is the lable for the outer loop
for(int i=0;i<10;i++)
for(int j=0;j<10;j++){
a=(char)System.in.read();
if(a=='b')
break outer;
if(a=='c')
continue outer;
}
}
}
//while循环语句////////////////////////////////////////////
import java.io.*;
class WhileTest
{
public static void main(String[] args)throws IOException
{
char ch;
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("真不兴,你没有奖品!下次再来");
}
}
}
}
//多重循环
public class Mul99
{
public static void main(String[] args)
{ int i,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.日期类输出当前日期
import java.io.*;
public class Date
{
private int year,month,day;
//private static thisYear;
public Date(int y,int m,int d){
this.year=y;
this.month=m;
this.day=d;
}
public void read(int y,int m,int d)
{
int y=System.in.read();
int m=System.in.read();
int d=System.in.read();
}
public void set(int y,int m,int d)
{
if(m>=1&&m<=12)
{
return m;
}else{
System.out.println("该日期错误");
}
if(d>=1&&d<=31)
{
return d;
}else
System.out.println("该日期错误");
}
public void show( )
{
System.out.println(this.day+"/"+this.month+"/"+this.year);
}
public static void main(String args[])throws IOException
{
Date s=new Date();
s.read();
s.set();
s.show();
}
}
//////////////////////////////////////////////////////////////////////////////////////
2.桌子类
public class Table
{
private String name;
private int longs;
private int weight;
private int height;
private int width;
public Table(String n,int l,int we,int h,int wi)
{
https://www.sodocs.net/doc/1912833282.html,=n;
this.longs=l;
this.weight=we;
this.height=h;
this.width=wi;
}
int Area()
{
return this.longs*this.width;
}
public void Display()
{
System.out.println("桌子名称:"+https://www.sodocs.net/doc/1912833282.html,+"\n"+"重量:"+this.weight+"\n"+"桌面宽度:"+this.width+"\n"+"桌面长度:"+this.longs+"\n"+"桌子高度:"+this.height+"\n"+"桌子面积"+this.Area());
}
public void ChangeWeight(int s)
{
this.weight=s;
}
public static void main(String args[])
{
Table T=new Table("xiaozuo",9,3,5,3);
T.Area();
T.Display();
T.ChangeWeight(90);
T.Display();
}
}
////////////////////////////////////////////////////////////////////////////////////////////// class StaticDemo
{
static int x;
int y;
public static int getX(){
return x;
}
public static void setX(int newX){
x=newX;
}
public int getY(){
return y;
}
public void setY(int newY){
y=newY;
}
}
public class TestDemo
{
public static void main(String args[]){
System.out.println("静态变量"+StaticDemo.getX());
System.out.println("实例变量"+StaticDemo.getY());//非法编译时将出错
StaticDemo a=new StaticDemo();
StaticDemo b=new StaticDemo();
a.setX(1);
a.setY(2);
b.setX(3);
b.setY(4);
System.out.println("静态变量a.x="+a.getX());
System.out.println("静态变量a.y="+a.getY());
System.out.println("静态变量b.x="+b.getX());
System.out.println("静态变量b.x="+b.getY());
}
}
3.继承和多态的作用
/*
Date:2014.11.23 9:56:00
@author:Devon
function:功能
?创建Rodent (啮齿动物):Mouse (老鼠),Gerbil (沙鼠),Hamster (大频鼠)等的一个继承分级结构。在基础类中,提供适用于所有Rodent的方法,并在衍生类中覆盖它们,
从而根据不同类型的Rodent釆取不同的行动。创建一个Rodent数组,在其中填充不同类型的Rodent,
然后调用自己的基础类方法,看看会有什么情况发生。
*/
class Rodent
{
Rodent r[]=new Rodent[4];
public void TowTooth()
{
}
public static void main(String args[])
{
Rodent rodent=new Rodent();
Mouth mouth=new Mouth();
Gerbil gerbil=new Gerbil();
Hamster hamster=new Hamster();
r[0]=rodent,r[1]=mouth,r[2]=gerbil,r[3]=hamster;
for(int i=0,i { r[i].TowTooth(); } } } class Mouae extends Rodent { } class Gerbil extends Mouse { } class Hamster extends Gerbil { } 4、接口的定义和使用 interfaceTest.java