Java程序设计实验指导书(答案)_第1页
Java程序设计实验指导书(答案)_第2页
Java程序设计实验指导书(答案)_第3页
Java程序设计实验指导书(答案)_第4页
Java程序设计实验指导书(答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

--36-第Ⅰ局部:试验指导试验1:Java开发环境J2SE一、试验目的学习从网络上下载并安装J2SE开发工具。学习编写简洁的JavaApplication程序.了解Java源代码、字节码文件,把握Java程序的编辑、编译和运行过程。二、试验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简洁的JavaApplication程序,编译并运行这个程序。三、试验内容J2SE开发工具Sun公司为全部的java程序员供给了一套免费的java开发和运行环境,取名为Java2SDK,可以从“://java.sun/“://java.sun上进展下载。安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03名目下。教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2023/2023下环境变量的设置方法。J2SE源代码编辑工具EditPlus教师通过大屏幕演示EditPlus的安装过程,以及在Windows98/2023/2023操作系统环境下编辑Java原程序的常用命令的用法。JavaApplication程序。创立一个名为HelloWorldAppjavaApplication程序,在屏幕上简洁的显示一句话“教师,你好!“。publicclassHelloWorldApp{publicstaticvoidmain(String[]args){System.out.println(“教师,你好!“);}}JavaApplication程序,写出运行结果。1:publicclassMyClass{2: privateintday;3: privateintmonth;4: privateintyear;5: publicMyClass{6: day=1;7: month=1;8: year=1900;9: }10: publicMyClass(intd,intm,inty){11: day=d;12: month=m;13: year=y;14: }15: publicvoiddisplay{16: System.out.println(day+“-“+month+“-“+year);17: }18: publicstaticvoidmain(Stringargs[]){19: MyClassm1=newMyClass;20: MyClassm2=newMyClass(25,12,2023);21: m1.display;22: m2.display;23: }24:}运行结果:1-1-190025-12-2023试验2:Java根本数据类型一、试验目的把握javadoc文档化工具的使用方法。把握Java语言转义字符的功能。理解“值传递”的过程。二、试验任务利用javadoc文档化工具,将给定的JavaApplication源代码自动生成一系列说明文档。输入、运行给定的JavaApplication程序,写出运行结果,以验证Java语言转义字符的功能。依据要求编写JavaApplication程序。三、试验内容Javadoc文档化工具的使用Java2SDK1.4.1中供给了一个文档自动生成工具,可以简化程序员编写文档的工作。可以使用javadoc.exe命令启动Java文档化工具,自动生成Java程序文档。输入下面给出的JavaApplication程序,利用javadoc命令生成该Java应用程序的文档,并使用扫瞄IE显示生成的文档页面内容。1:/*Java编程技术chapter3,CommentTest.java2: 版权全部:东方IT教育。3: zlg4: 日期:2023/07/015:*/6:/**7: 这是一个Java语言入门程序,定义类CommentTest。其中含有main方法,因此可以作为一8: 个应用程序单独执行。其功能是在默认的输出设备上输出字符串“Hi,你好!“。9:*/10: publicclassCommentTest{11: //主方法,作为Java应用程序的默认入口。12:13:14:15:

publicstaticvoidmain(Stringargs[]){System.out.println(“Hi,你好!“);//输出“Hi,你好!“}}执行javadocCommentTest.java指令,生成文件:CommentTest.html、package-frame.html、package-summary.html、package-tree.html、constant-values.html、overview-tree.html、index-all.html、deprecated-list.html、allclasses-frame.html、allclasses-noframe.html、index.html、help-doc.html。JavaApplication程序,写出运行结果。1:publicclassCharSample{2: publicstaticvoidmain(Stringargs[]){3: charch1=”\b”;4: charch2=”\t”;5: charch3=”\n”;6: charch4=”\r”;7: charch5=”\“”;8: charch6=”\””;9: charch7=”\\”;10: System.out.println(“沈阳“+ch1+“师范大学“);11: System.out.println(“沈阳“+ch2+“师范大学“);12: System.out.println(“沈阳“+ch3+“师范大学“);13: System.out.println(“沈阳“+ch4+ch3+“师范大学“);14: System.out.println(ch5+“沈阳“+“师范大学“+ch5);15: System.out.println(ch6+“沈阳“+“师范大学“+ch6);16: System.out.println(ch7+“沈阳“+“师范大学“+ch7);17: }18:}运行结果:沈师范大学沈阳 师范大学沈阳师范大学沈阳师范大学“沈阳师范大学”‘沈阳师范大学’\沈阳师范大学\JavaApplication程序,写出程序的运行结果。定义一个Java类Point,用来描述平面直角坐标系中点的坐标,该类应当能描述点的横、纵坐标信息及一些相关操作,包括猎取点的横、纵坐标,修改点的坐标,显示点的当前位置等。定义一个测试类javaTestPoint类的对象并对其进展有关的操作。classPoint{doublex,y;publicvoidsetXY(doublea,doubleb){x=a;y=b;}publicdoublegetX{returnx;}publicdoublegetY{returny;}publicvoiddisp{System.out.println(“点的当前坐标为:(“+x+“,“+y+“)“);}};publicclassjavaTest{publicstaticvoidmain(String[]args){Pointp1=newPoint;p1.disp;p1.setXY(3.2,5.6);p1.disp;}}运行结果:点的当前坐标为:(0.0,0.0)点的当前坐标为:(3.2,5.6)试验3:Java流程把握一、试验目的把握Java运算符的用法。把握表达式的使用和各种运算符的优先级把握。把握构造化程序设计的根本构造。二、试验任务输入依据给定的JavaApplication程序,写出运行结果,并说明程序所完成的功能。依据要求编写JavaApplication程序。三、试验内容JavaApplication程序,写出运行结果,并说明程序的功能。1:importjava.io.*;2:publicclassfindNum{3: publicstaticvoidmain(Stringargs[]){4: Strings;5: doubled;6: inti;7: booleanb=false;8: do{9: try{10: System.out.println(“请输入一个浮点数:“);11: BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));12: s=br.readLine; //以字符串方式读入13: i=s.indexOf(”.”); //找到小数点的位置14: d=Double.parseDouble(s); //将字符串转换成浮点数15: System.out.println(d+“整数局部为:“+(long)d);16: if(i==-1) //假设没有小数点,则没有小数局部17: System.out.println(d+“小数局部为:0.0“);18: else //假设有小数点,则截取小数点后的字符串合成浮点数1: System.out.println(d+“+Double.parseDouble(((s.charAt(0)==”-”)“-“:““)+“0.“+s.substring(i+1,s.length)));20:21: }

b=false;22:23:catch(NumberFormatExceptionnfe){System.out.println(“输入浮点数格式有误。\n“);24:b=true;25:}26:catch(IOExceptionioe){27:b=false;28:}29:30:}while(b); //浮点格式错误时重输入31:}//endofmain32:}//endofclass运行结果:请输入一个浮点数:abc输入浮点数格式有误请输入一个浮点数:3.143.14的整数局部为:33.14的小数局部为:0.14程序功能:通过IO类从命令行读入一个字符串,假设输入的字符串为非数字字符串,则提示特别,要求重输入。假设输入的是一个没有小数点的数字字符串〔即整数类型,则将其转换为double最终完成将浮点数的小数位和整数位分别输出。程序,输出区间[200,300]上的全部素数,要求写出程序的运行结果。publicclassPrime{publicstaticvoidmain(String[]args){inti,j;outer:for(i=200;i<=300;i++){for(j=2;j<i-1;j++){if(i%j==0)continueouter;}System.out.print(i+“ “);}}}运行结果:211 223 227 229 239 241 251 257 263 269 271 277 281 283 293试验4:Java类与对象一、试验目的把握Java类的继承关系和派生方法。理解多态的概念与使用。把握接口的定义和使用。二、试验任务按要求编写一个Java程序。按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。三、试验内容StudentStudentpublicStringtoString()Student类的对象的全部JavaApplicationStudent类的对象,并验证增加的功能。classStudent{privatelongstudentID;privateintclassID;privateStringname;privateStringsex;privateintage;publicStudent(longstudentID,intclassID,Stringname,Stringsex,intage){this.studentID=studentID;this.classID=classID;=name;this.sex=sex;this.age=age;}publiclonggetStudentID{returnstudentID;}publicintgetClassID{returnclassID;}publicStringgetName{returnname;}publicStringgetSex{returnsex;}publicintgetAge{returnage;}publicStringtoString{return“学号:“+getStudentID+“\n班号:“+getClassID+“\n姓名:“+getName+“\n性别:“+getSex+“\n年龄:“+getAge;}}publicclassStudentDemo{publicstaticvoidmain(String[]args){Students1=newStudent(90221,2,“Tom“,“male“,20);System.out.println(s1.toString);}}运行结果:学号:90221班号:2姓名:Tom性别:male年龄:20试验5:Java继承与多态一、试验目的把握Java类的定义和使用方法。把握对象的声明和使用。构造函数的概念和使用。把握类及其成员的访问把握符的使用。把握包的概念和使用。二、试验任务输入依据给定的JavaApplication程序,写出运行结果。依据要求编写JavaApplication程序。三、试验内容阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。1:classSuperClass{2: intx;3: SuperClass{4: x=3;5: System.out.println(“inSuperClass:x=“+x);6: }7: voiddoSomething{8: System.out.println(“inSuperClass.doSomething“);9:}11:}1:classSubClassextendsSuperClass{2: intx;3: SubClass{4: super; //调用父类的构造方法5: x=5; //super()要放在方法中的第一句6: System.out.println(“inSubClass:x=“+x);7:8:9:10:11:12:14:}

}voiddoSomething(){super.doSomething();//调用父类的方法System.out.println(“inSubClass.doSomething“);System.out.println(“super.x=“+super.x+“sub.x=“+x);}1:publicclassInheritance{2: publicstaticvoidmain(Stringargs[]){3: SubClasssubC=newSubClass;4: subC.doSomething;5: }6:}运行结果:inSuperClass:x=3inSubClass:x=5inSuperClass.doSomethinginSubClass.doSomethingsuper.x=3 sub.x=5假定依据学生的3门学位课程的分数打算其是否可以拿到学位,对于本科生,假设80分才能够通Java类的设计:设计一个基类Student描述学生的共同特征。设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。设计一个描述争论生的类Graduate,该类继承并扩展Student类。设计一个测试类StudentDemo,分别创立本科生和争论生这两个类的对象,并输出相关信息。classStudent{privateStringname;privateintclassA,classB,classC;publicStudent(Stringname,intclassA,intclassB,intclassC){=name;this.classA=classA;this.classB=classB;this.classC=classC;}publicStringgetName{returnname;}publicintgetAverage{return(classA+classB+classC)/3;}}classUnderGraduateextendsStudent{publicUnderGraduate(Stringname,intclassA,intclassB,intclassC){super(name,classA,classB,classC);}publicvoidisPass{if(getAverage>=60)System.out.println(本科生“+getName+“+getAverage+“可以拿到学士学位。“);else士学位。“);}

System.out.println(本科生“+getName+“+getAverage+“不能拿到学}classGraduateextendsStudent{publicGraduate(Stringname,intclassA,intclassB,intclassC){super(name,classA,classB,classC);}publicvoidisPass{if(getAverage>=80)System.out.println(争论生“+getName+“+getAverage+“可以拿到硕士学位。“);else士学位。“);}

System.out.println(争论生“+getName+“+getAverage+“不能拿到硕}publicclassStudentDemo{publicstaticvoidmain(String[]args){UnderGraduates1=newUnderGraduate(“Tom“,55,75,81);Graduates2=newGraduate(“Mary“,72,81,68);s1.isPass;s2.isPass;}}运行结果:Tom的三科平均分为:70,可以拿到学士学位。Mary的三科平均分为:73,不能拿到硕士学位。假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员〔不同类型的雇员按不同的方式支付工资:每月获得一份固定的工资〔Salesman〕——在根本工资的根底上每月还有销售提成。JavaApplication程序,〔提示:应设计一个雇员类〔Employee〕描述全部雇员的共图特性,这ComputeSalary(),使得可以通过这个类计算全部雇员的工资。经理、销售人员和一般工人对应的类都应当继承这个类,并重定义计算工资的〕abstractclassEmployee{privateStringname;publicEmployee(Stringname){=name;}publicStringgetName{returnname;}publicabstractdoublecomputeSalary;}classManagerextendsEmployee{privatedoublemonthSalary;publicManager(Stringname,doublemonthSalary){super(name);this.monthSalary=monthSalary;}publicdoublecomputeSalary{returnmonthSalary;}}classSalesmanextendsEmployee{privatedoublebaseSalary;privatedoublecommision;privateintqualtities;publicSalesman(Stringname,doublebaseSalary,doublecommision,intqualtities){super(name);this.baseSalary=baseSalary;thismision=commision;this.qualtities=qualtities;}publicdoublecomputeSalary{returnbaseSalary+commision*qualtities;}}classWorkerextendsEmployee{privatedoubledailySalary;privateintdays;publicWorker(Stringname,doubledailySalary,intdays){super(name);this.dailySalary=dailySalary;this.days=days;}publicdoublecomputeSalary{returndailySalary*days;}}publicclassEmployeeDemo{publicstaticvoidmain(Stringargs[]){Managere1=newManager(“张三“,10000);Salesmane2=newSalesman(“李四“,2023,50.4,63);Workere3=newWorker(“王五“,79.5,28);System.out.println(“经理“+e1.getName+“的月工资为:“+e1puteSalary);System.out.println(“销售人员“+e2.getName+“的月工资为:“+e2puteSalary);System.out.println(“工人“+e3.getName+“的月工资为:“+e3puteSalary);}}运行结果:经理张三的月工资为:10000.0销售人员李四的月工资为:5175.2工人王五的月工资为:2226.0试验6:Java把握台程序设计一、试验目的把握Java命令行参数的使用方法。把握Java程序与文件之间的根本输入输出操作二、试验任务输入依据给定的JavaApplication程序,写出运行结果。编写JavaApplication程序,实现文件输入功能。编写JavaApplication程序,实现文件输出功能。三、试验内容JavaApplication程序,用文字简述运行结果。1:importjava.util.Properties;2:importjava.util.Enumeration;3:publicclassTestp{4: publicstaticvoidmain(String[]args){5: Propertiesps=System.getProperties;6: Enumerationpn=pertyNames;7: while(pn.hasMoreElements){8: StringpName=(String)pn.nextElement;9: StringpValue=ps.getProperty(pName);10:System.out.println(pName+“ “+pValue);11:}12:13:}}JavaApplication程序,实现读取并输出指定文件的内容的功能。importjava.io.*;publicclassReadFile{publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderbr=newBufferedReader(newFileReader(“ReadFile.java“));Strings=br.readLine;while(s!=null){System.out.println(s);s=br.readLine;}br.close;}}程序,实现接收键盘输入的数据,并写入到指定文件中的功能。importjava.io.*;publicclassWriteFile2{publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));BufferedWriterbw=newBufferedWriter(newFileWriter(“tt.txt“));Strings=br.readLine;while(!s.equals(“exit“)){bw.write(s);bw.newLine;s=br.readLine;}br.close;bw.close;}}7:数组与字符串一、试验目的把握利用Math类实现根本数学运算的方法。把握数组与字符串概念与使用。二、试验任务输入依据给定的JavaApplication程序,写出运行结果。依据要求编写JavaApplication程序。三、试验内容JavaApplication程序,写出运行结果,并说明程序的功能。1:publicclasstestMath{2: publicstaticvoidmain(Stringargs[]){3: finalintNUMBER=100;4: intcount=10;5: intrandomNum=0;6: intprobability[]=newint[6];7: for(inti=0;i<6;i++){8: probability[i]=0;9: }10: for(inti=0;i<NUMBER;i++){11: randomNum=(int)(Math.random*6)+1;12: probability[randomNum-1]++;13: System.out.print(randomNum+“\t“);14: if(i%count==9)15: System.out.println;16: }17: for(inti=0;i<6;i++){18: System.out.println(“\n“+(i+1)+“:\t“+probability[i]);19: }20: }21:}JavaApplication程序,实现如下的设计目标:程序运行时自动产生1~100数,并供给“重开头”和“退出”功能。试验8:Java高级I/O流程序设计一、试验目的把握JavaI/O根本原理。把握InputStream、OutputStream抽象类的根本使用方法。把握FileInputStream、FileOutputStream、DataInputStream、DataOutputStream抽象类的根本使用方法。二、试验任务阅读给定的JavaApplication程序,按要求答复以下问题并写出运行结果。按要求编写一个JavaApplication程序,并编译、运行这个程序。三、试验内容JavaApplication程序,运行该程序,说明程序的功能。1:importjava.io.*;2:publicclassCopyFile{3: publicstaticvoidmain(String[]args){4: try{5: FileInputStreamfis=newFileInputStream(“CopyFile.java“);6: FileOutputStreamfos=newFileOutputStream(“temp.txt“);7: intread=fis.read;8: while(read!=-1){9: fos.write(read);10: read=fis.read;11: }12: fis.close;13: fos.close;14: }15: catch(IOExceptione){16: System.out.println(e);17: }18: }19:}其功能是完成文件的复制:通过字节流从“copyFile.java”文件中读取数据并写入到“temp.txt”文copy功能。程序,实现如下的设计功能:运行该程序可以列出当前名目下的文件。importjava.io.*;publicclassFileList2{publicstaticvoidmain(String[]args){Filedir=newFile(“.“);Filefiles[]=dir.listFiles;System.out.println(dir);for(inti=0;i<files.length;i++){if(files[i].isFile)System.out.println(“\t“+files[i].getName);else}}}

System.out.println(“<DIR>\t“+files[i].getName);9:JavaGUI程序设计(1)一、试验目的了解Java系统图形用户界面的工作原理和界面设计步骤。把握图形用户界面的各种常用组件的使用方法。把握图形用户界面各种布局策略的设计与使用。二、试验任务阅读给定的JavaApplication程序,按要求答复以下问题并写出运行结果。按要求编写一个JavaApplication程序,并编译、运行这个程序。三、试验内容JavaApplication程序,运行该程序,说明程序的功能。1:importjava.awt.*;2:publicclassTestFlowLayout{3: publicstaticvoidmain(Stringargs[]){4: Framef=newFrame(“FlowLayout“);5: Buttonbutton1=newButton(“确定“);6: Buttonbutton2=newButton(“翻开“);7: Buttonbutton3=newButton(“关闭“);8: Buttonbutton4=newButton(“取消“);9: f.setLayout(newFlowLayout);10: f.add(button1);11: f.add(button2);12: f.add(button3);13: f.add(button4);14: f.setSize(100,100);15: f.setVisible(true);16: }17:}100*100f的尺寸被重置后,其FlowLayout型的布局也会随之发生变化,各按钮的大小不变,但其相对位置会变化。JavaApplication程序,该程序运行的运行结果如下所示。importjava.awt.*;publicclassBorderLayoutWindowextendsFrame{publicBorderLayoutWindow{setLayout(newBorderLayout);add(newButton(“BN“),“North“);add(newButton(“BS“),“South“);add(newButton(“BE“),“East“);add(newButton(“BW“),“West“);add(newButton(“BC“),“Center“);}publicstaticvoidmain(Stringargs[]){BorderLayoutWindowwindow=newBorderLayoutWindow;window.setTitle(“BorderWindowApplication“);window.pack;window.setVisible(true);}}JavaApplication程序,该程序运行的运行结果如下所示。importjava.awt.*;publicclassGridLayoutWindowextendsFrame{publicGridLayoutWindow{setLayout(newGridLayout(3,2));add(newButton(“b1“));add(newButton(“b2“));add(newButton(“b3“));add(newButton(“b4“));add(newButton(“b5“));add(newButton(“b6“));}publicstaticvoidmain(Stringargs[]){GridLayoutWindowwindow=newGridLayoutWindow;window.setTitle(“GridWindowApplication“);window.pack;window.setVisible(true);}}10:JavaGUI程序设计(2)一、试验目的了解图形用户界面的大事响应机制。把握鼠标大事编程方法。把握AWTColorFont类的使用方法。二、试验任务阅读给定的JavaApplication程序,按要求答复以下问题并写出运行结果。按要求编写一个JavaApplication程序,并编译、运行这个程序。三、试验内容JavaApplication程序,运行该程序,说明程序的执行过程。1:importjava.awt.*;2:importjava.awt.event.*;3:publicclassTestActionEvent{4: publicstaticvoidmain(Stringargs[]){5: Framef=newFrame(“Test“);6: Buttonb=newButton(“PressMe!“);7: Monitorbh=newMonitor;8: b.addActionListener(bh);9: f.add(b,BorderLayout.CENTER);10: f.pack;11: f.setVisible(true);12: }13:}1:classMonitorimplementsActionListener{2: publicvoidactionPerformed(ActionEvente){3: System.out.println(“abuttonhasbeenpressed“);4: }5:}执行过程:创立一个框架f,其标题为Test。在框架中添加了一个标签为“PressMe”的按钮b。为按钮b注册监听器bh,监听ActionEvent大事。当鼠标单击框架中的按钮b时,会触发ActionEvent大事,执行大事处理器actionPerformed(ActionEventeabuttonhasbeenpresseJavaApplication程序,该程序运行的运行结果如下所示。importjava.awt.*;publicclassMenuTest{publicstaticvoidmain(Stringargs[]){Framefr=newFrame(“Menu“);MenuBarmb=newMenuBar;fr.setMenuBar(mb);Menum1=newMenu(“File“);Menum2=newMenu(“Edit“);Menum3=newMenu(“Help“);mb.add(m1);mb.add(m2);mb.setHelpMenu(m3);MenuItemm11=newMenuItem(“New“);MenuItemm12=newMenuItem(“Save“);MenuItemm13=newMenuItem(“Load“);MenuItemm14=newMenuItem(“Quit“);m1.add(m11);m1.add(m12);m1.add(m13);m1.addSeparator;m1.add(m14);fr.pack;fr.setVisible(true);}}JavaApplication程序,该程序运行的运行结果如下所示。importjava.awt.*;publicclassMenuTest{publicstaticvoidmain(Stringargs[]){Framefr=newFrame(“Menu“);MenuBarmb=newMenuBar;fr.setMenuBar(mb);Menum1=newMenu(“File“);Menum2=newMenu(“Format“);Menum3=newMenu(“Help“);Menum4=newMenu(“进制“);mb.add(m1);mb.add(m2);mb.setHelpMenu(m3);MenuItemm21=newMenuItem(“中文“);MenuItemm41=newMenuItem(“二进制“);MenuItemm42=newMenuItem(“八进制“);MenuItemm43=newMenuItem(“十进制“);m2.add(m21);m2.add(m4);m4.add(m41);m4.add(m42);m4.add(m43);fr.pack;fr.setVisible(true);}}试验11:Java多线程一、试验目的了解线程的概念。学习简洁的多线程编程。二、试验任务阅读给定的JavaApplication程序,按要求答复以下问题并写出运行结果。按要求编写一个JavaApplication程序,并编译、运行这个程序。三、试验内容JavaApplication程序,运行该程序,并简要分析程序的运行结果。1:classSimpleThreadextendsThread{2: publicSimpleThread(Stringstr){3: super(str);//调用其父类的构造方法4: }5: publicvoidrun{//run方法6: for(inti=0;i<10;i++){7: System.out.println(i+““+getName);8: //打印次数和线程的名字9: try{10: sleep((int)(Math.random*1000));11: //线程睡眠,把把握权交出去12: }13: catch(InterruptedExceptione){}14: }15:16:17:18:}

System.out.println(“DONE!“+getName);//线程执行完毕}1:publicclassTwoThreadsTest{2: publicstaticvoidmain(Stringargs[]){3: newSimpleThread(“First“).start;4: //第一个线程的名字为First5: newSimpleThread(“Second“).start;6: //其次个线程的名字为Second7: }8:}Test.java的程序源代码,运行该程序,并简要分析程序的运行结果。试验12:Java网络程序设计一、试验目的把握网络编程的根本概念。把握包中常用网络编程工具类的功能和使用。把握Socket编程的根本方法和步骤。二、试验任务阅读给定的JavaApplication程序,按要求答复以下问题并写出运行结果。三、试验内容JavaApplication程序,运行该程序,写出程序的运行结果。1:/*FileName:ParseURL.java2:*这是一个简洁的关于URL的实例3:*该实例的功能是解析命令行参数4:*中指定的URL地址5:*/6:.*;7:importjava.io.*;8:publicclassParseURL{9: publicstaticvoidmain(String[]args)throwsException{10: URLaURL=newURL(“://localhost:200/text.txt#BOTTOM“);11: System.out.println(aURL);12: System.out.println(“protocol=“+aURL.getProtocol);13: System.out.println(“host=“+aURL.getHost);14: System.out.println(“filename=“+aURL.getFile);15: System.out.println(“port=“+aURL.getPort);16:17: 18:}

System.out.println(“ref=“+aURL.getRef);下面给出的Java源代码分别是效劳器端程序和客户端程序,两个程序之间可以进展JavaApplication程序,然后分别运行这两个程序,并写出程序的运行结果〔提示:首先在一个MS-DOS窗口运行效劳器端程序,然后在另一个MS-DOS窗口再运行客户端程序。1:/*FileName:TCPSingleUserServer.java2:*这是一个简洁的基于TCP连接效劳程序3:*该效劳程序的功能格外简洁,只是简洁4:*的显示并且向客户端回送客户端发送来5:*的信息,直到客户端发送完毕标记END6:*/7:importjava.io.*;8:.*;9:publicclassTCPSingleUserServer{10: //设置效劳器的端口号,它应当大于102411: publicstaticfinalintPORT=8080;12: publicstaticvoidmain(String[]args)throwsIOException{13: ServerSocketserver=newServerSocket(PORT);14: System.out.println(“Started:“+server);15: try{16: //等待承受用户连接17:18:19:20:21:

Socketsocket=server.accept;try{System.out.println(“Connectionaccepted:“+socket);BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream));PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream)),true);22:23:24:25:26:27:

while(true){Stringstr=in.readLine;if(str.equals(“END“))break;System.out.println(“Echoing:“+str);out.println(str);}28:}29:finally{30:System.out.println(“closing...“);31:socket.close;32:}33:}34:finally{35:server.close;36:}37:39:}}1:/*FileName:TCPSingleUserClient.java2:*这是一个简洁的基于TCP连接客户程序3:*该客户程序的功能格外简洁,只是简洁4:*向效劳器发送消息,并且接收从效劳器5:*发送回来的消息,将它在屏幕上显示6:*/7:.*;8:importjava.io.*;9:publicclassTCPSingleUserClient{10: publicstaticvoidmain(String[]args)throwsIOException{11: //getByNamenull作为参数12: //来指定本地效劳器的地址13:14:15:16:17:18:19:20:21:22:23:24:25:26:27:28:29:30:31:32:

InetAddressaddr=InetAddress.getByName(null);//同样的,也可以使用如下的代码来实现同样的功能//InetAddressaddr=InetAddress.getByName(““);//InetAddressaddr=InetAddress.getByName(“localhost“);System.out.println(“addr=“+addr);Socketsocket=newSocket(addr,TCPSingleUserServer.PORT);try{System.out.println(“socket=“+socket);BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream));PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream)),true);for(inti=0;i<10;i++){out.println(“SendingLine“+i+“ “);Stringstr=in.readLine;System.out.println(str);}out.println(“END“);}finally{System.out.println(“closing.“);socket.close;33: }34: }35:}13:JavaApplet程序设计一、试验目的了解Applet程序的运行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论