还剩41页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
本科实验报告课程名称J__a语言程序设计实验项目实验一J__a语言基础实验地点专业班级学号学生姓名指导教师实验名称实验1J__a语言基础实验目的和要求目的通过实验,掌握J__a语言程序设计的基本方法学会J__a语言中标示符的命名、运算符和表达式的应用熟练地掌握J__a程序流程控制语句的应用实验内容编写应用程序计算100含100以内所有偶数的和“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数编写程序,求所有的水仙花数编写一个程序,求1-100间的素数有一函数x(x1)Y=3x-2(1≤x10)4x(x≥10)写一程序,给定x值,输出y值使用for循环语句,编写程序输出以下图案☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行判断年是否为闰年的条件是
①若年号可以被4整除,而不能被100整除,则是闰年;
②若年号可以被400整除,也是闰年主要仪器设备台式或笔记本计算机实验记录
(1)publicclasssum{publicstaticvoid__inString[]args{inti=100;intsum=0;System.out.println2+4+6+8+...+100=;fori=1;i=100;i++{ifi%2==0sum+=i;}System.out.printlnsum;}}结果
(1)
(2)
(4)
(2)publicclassshuixianhuan{publicstaticvoid__inString[]args{inta;intb;intc;intsum;System.out.println请输出所有的水仙花数;fora=0;a10;a++forb=0;b10;b++forc=0;c10;c++{sum=100*a+10*b+1*c;if100*a+10*b+1*c==a*a*a+b*b*b+c*c*csum100{System.out.printlnsum;}}}}
(3)publicclasssushu{publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubintj;forinti=2;i=100;i++{forj=2;ji;j++ifi%j==0break;ifjicontinue;elseSystem.out.printlni;}}}结果
(3)
(4)importj__a.util.*;publicclasshanshu{publicstaticvoid__inString[]argsthrowsEx__ption{Scannerinput=newScannerSystem.in;System.out.println请输入x的值;intx=input.nextInt;inty;ifx1{y=x;}elseifx=10{y=4*x;}elsey=3*x-2;System.out.println计算结果为+y;}}
(5)publicclasstuan{publicstaticvoid__inString[]args{intn=4;forinti=1;i=n;i++//控制行数{forintk=n-1;k=i;k--//打印空格{System.out.print;}forintj=1;j=2*i-1;j++{System.out.print☆;}System.out.println;}forinti=n-1;i=1;i--{forintk=i;k=n-1;k++{System.out.print;}forintj=1;j=2*i-1;j++{System.out.print☆;}System.out.println;}}}结果
(5)
(6)publicclassrunnian{publicstaticvoid__inString[]args{forinti=1990;i=2100;i++{ifi%400==0{System.out.printlni+年是闰年;}ifi%4==0i%100!=0{System.out.printlni+年是闰年;}}}}结果
(6)遇到的问题和解决方法基本没有遇到什么问题,都是一些经典的算法,只是还不熟练心得体会通过实验一,对J__a编程有了基本的了解,可以编写一些小程序,需要注意的是要多练习,还不是很熟实验名称实验二数组和字符串编程实验目的和要求目的通过实验,掌握J__a语言中数组、字符串程序设计的基本方法
(2)较熟练地掌握J__a程序数组的应用、字符串处理操作的方法应用实验内容编写一个程序,在控制台输入10个数,按大小顺序输出求一个3*3矩阵对角元素之和输入一段字符串,统计其中有多少个单词(单词用空格隔开)主要仪器设备台式或笔记本计算机实验记录
(1)importj__a.util.*;publicclassdaxiaoshu{publicstaticvoid__inString[]argsthrowsEx__ption{int[]num=newint
[10];Scannerinput=newScannerSystem.in;System.out.println请输入数字;forinti=0;i10;i++{num[i]=input.nextInt;}Arrays.sortnum;//对数组进行升序排列System.out.println从小到大输出;forintj=0;jnum.length;j++{System.out.printnum[j]+;}}}结果
(1)
(2)
(3)
(2)importj__a.util.*;publicclassjuzhen{publicstaticvoid__inString[]args{Scannerin=newScannerSystem.in;System.out.println请输入一个3*3矩阵;intsum=0;int[][]a=newint
[3]
[3];forinti=0;i3;i++{forintj=0;j3;j++{a[i][j]=in.nextInt;ifi==jsum+=a[i][j];}System.out.print\n;}System.out.println对角线和为+sum;}}
(3)importj__a.util.*;publicclassword{publicstaticvoid__inString[]argsthrowsEx__ption{intwords=0;System.out.println请输入字符串;Scannersca=newScannerSystem.in;Strings1=sca.nextLine;System.out.printlns1;String[]split=s
1.split;System.out.println长度为+split.length;}}遇到的问题和解决方法与实验一比起来,实验二就没有那么顺利了,不断地查资料,请教同学,最终编出了程序心得体会通过实验二,充分了解了J__a语言的魅力,只是编程不是很顺利,对一些方法还是不熟悉,需要多加练习实验名称实验三J__a面向对象程序设计实验目的和要求掌握J__a面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素实验内容创建一个复数类complex,以附属进行数学运算、复数具有如下格式RealPart+I__ginaryRart*I其中,I为-1的平方根要求如下利用浮点变量表示此类的私有数据提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法提供两复数加、减、乘的运算方法按格式ab打印复数其中a为实部,b为虚部创建银行账号Account类,实现存款balan__的存deposit、取withdraw和查询getbalan__等功能编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在my__ths包中编程实现以下简单__管理,具体要求如下实现描述__的类Supper__cket类,具有货架属性记录系统中现有商品,定义盘点商品的函数check盘点各类商品的数量并输出盘点结果,查询商品的函数query,并显示查询结果;定义商品类Goods,具有商品名称Name,商品__Pri__,商品产地Produ__r等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)__in函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作提示:
①__货架可以使用商品数组数组大小100表明存放100个商品
②注意实现商品查询的多态性,要求可以根据商品的名称或产地或__查询商品的数量主要仪器设备台式或笔记本计算机实验记录
(1)publicclassComplex{publicstaticvoid__inString[]a{Complexb=newComplex25;Complexc=newComplex3-4;System.out.printlnb+++c+=+b.addc;System.out.printlnb+-+c+=+b.minusc;System.out.printlnb+*+c+=+b.multiplyc;}}classComplex{privatedoublem;//实部privatedoublen;//虚部publicComplexdoublemdoublen{this.m=m;this.n=n;}publicComplexaddComplexc{returnnewComplexm+c.mn+c.n;}publicComplexminusComplexc{returnnewComplexm-c.mn-c.n;}publicComplexmultiplyComplexc{returnnewComplexm*c.m-n*c.nm*c.n+n*c.m;}publicStringtoString{Stringrtr_str=;ifn0rtr_str=+m+++n+i+;ifn==0rtr_str=+m+;ifn0rtr_str=+m+n+i+;returnrtr_str;}}结果
(1)
(2)
(2)classAccount{publicStringaccount;publicdoublebalan__=0;publicAccountStringaccountdoublebalan__//构造方法{this.account=account;this.balan__=balan__;}publicvoiddepositdoublemoney{this.balan__+=money;}publicdoublegetbalan__{returnthis.balan__;}publicvoidwithdrawdoublemoney{ifmoneythis.balan__System.out.println金额不足,请重新输入;else{this.balan__-=money;System.out.println你取了+money+元;}}}publicclassAccount{publicstaticvoid__inStringargs[]{Accounta=newAccount****400;System.out.println账户余额为+a.getbalan__+元;a.deposit500;System.out.println你存入+a.getbalan__+元;System.out.println账户余额为+a.getbalan__+元;a.withdraw300;}}
(3)packagemy__ths;inte_____Num{publicvoid__x;publicvoidMin;}publicclassinte_____implementsNum{intabc;publicinte_____intaintbintc{this.a=a;this.b=b;this.c=c;}publicvoid__x{int__x;__x=aba:b;__x=__xc__x:c;System.out.println三个数中最大值是+__x;}publicvoidMin{intmin;min=aba:b;min=mincmin:c;System.out.println三个数中最小值是+min;}publicstaticvoid__inStringargs[]{inte_____qr=newinte_____8413;qr.__x;qr.Min;}}结果
(3)
(4)packagecn.test.supper__cket.pojo;publicclassGoods{privateStringname;privatedoublepri__;privateintnumber;privateintsale;privateStringadd;privateintshowMe;publicStringgetName{returnname;}publicvoidsetNameStringname{this.name=name;}publicdoublegetPri__{returnpri__;}publicvoidsetPri__doublepri__{this.pri__=pri__;}publicintgetNumber{returnnumber;}publicvoidsetNumberintnumber{this.number=number;}publicintgetSale{returnsale;}publicvoidsetSaleintsale{this.sale=sale;}publicStringgetAdd{returnadd;}publicvoidsetAddStringadd{this.add=add;}publicintgetShowMe{returnshowMe;}}packagecn.test.supper__cket1;importj__a.util.Hash__p;importj__a.util.Iterator;importj__a.util.__p;importcn.test.supper__cket.pojo.Goods;publicclassSupper__rket{privateGoodsgoods;private__pStringGoods__rket=newHash__pStringGoods;publicGoodsgetGoods{returngoods;}publicvoidsetGoodsGoodsgoods{this.goods=goods;}publicbooleanappendGoodsgoods{if__rket.getgoods.getName!=null{__rket.getgoods.getName.setNumber__rket.getgoods.getName.getNumber+1;}else{goods.setNumber1;__rket.putgoods.getNamegoods;}returntrue;}publicbooleandeleteStringname{if__rket.getname!=null{if__rket.getname.getNumber==0{System.out.println已经没货了;__rket.getname.setNumber1;}__rket.getname.setNumber__rket.getname.getNumber-1;}else{System.out.println没有这种商品!;}returntrue;}publicvoidquery{if__rket.size0{Iteratoriter=__rket.values.iterator;forinti=0;i__rket.size;i++{Goodsemp=Goodsiter.next;System.out.println商品名称+emp.getName;System.out.println商品__+emp.getPri__;System.out.println商品数量+emp.getNumber;System.out.println商品上架情况+Y.equalsemp.getAdd已上架:未上架;System.out.println商品信息+emp.getShowMe;}}else{System.out.println__什么都没有了!;}}publicvoiddoSaleStringname{if__rket.getname!=null{if__rket.getname.getNumber2{System.out.println__rket.getname.getName+最后一件售出了!;if__rket.getname.getNumber==0{System.out.println已经没货了!;__rket.getname.setNumber1;}}__rket.getname.setNumber__rket.getname.getNumber-1;}else{System.out.println没有这种商品!;}}publicvoiddoAddStringname{if__rket.getname!=null{ifY.equals__rket.getname.getAdd{System.out.println__rket.getname.getName+已经上架;}else{__rket.getname.setAddY;}}}publicbooleanfindGoodsStringname{if__rket.getname!=null{returntrue;}returnfalse;}}}packagecn.test.test;importj__a.util.Scanner;importcn.test.supper__cket
1.Supper__rket;importcn.test.supper__cket.pojo.Goods;publicclassDemoTest{publicstaticvoid__inString[]args{Supper__rket__cket=newSupper__rket;Scannersc=newScannerSystem.in;showMunesc__cket;}publicstaticvoidshowMuneScannerscSupper__rket__cket{whiletrue{System.out.println***********************************;System.out.println**********__测试菜单**************;System.out.println***1增加新的商品******************;System.out.println***2减少已有商品******************;System.out.println***3现有商品列表******************;System.out.println***4商品货物出售******************;System.out.println***5商品上架操作******************;System.out.println请输入你要的操作序号(1-5);inti=sc.nextInt;switchi{case1:Goodsgoods=newGoods;__keGoodsgoodssc__cket;__cket.appendgoods;break;case2:System.out.println请输入要减少的商品名称;Stringname=sc.next;__cket.deletename;break;case3:__cket.query;break;case4:System.out.println请输入要出售的商品名称;name=sc.next;__cket.doSalename;break;case5:System.out.println将商品标记为上架;name=sc.next;__cket.doAddname;break;}}}publicstaticGoods__keGoodsGoodsgoodsScannerscSupper__rket__cket{System.out.println请输入要添加的商品名称;goods.setNamesc.next;Stringname=goods.getName;if__cket.findGoodsname{returngoods;}System.out.println请输入商品的价钱;goods.setPri__sc.nextDouble;System.out.println请输入产品的相关信息~;returngoods;}}结果遇到的问题和解决方法实验三进行的比较艰难,不能很好的建立起框架,在过程中也不断遇到问题经过请教同学,上网查资料,最终得出答案,但是答案也用了很长时间去理解对基本知识的掌握还是不扎实,今后得多加练习心得体会通过实验三,开始初步接触J__a的一些长程序,发现在编写程序时候不能很好的建立起框架,正题比较混乱,在请教同学上网查资料后才终于得出答案,看懂了资料的程序,试着去自己理思路,对所学的知识有了进一步的了解,从__系统这个程序中学到了很多东西实验名称实验四J__a异常处理实验目的和要求目的掌握异常的概念,以及如何定义、抛出和捕获处理异常实验内容1做实验之前要求思考以下问题,作为预习内容;错误和异常有何区别?查看J__a异常类的关系图异常是如何抛出、捕获和处理的?J__a捕获和处理异常的结构式怎样的?Try语句如何嵌套?Trow语句有何作用?Finally程序快的作用是什么?2运行下面的程序,理解异常的抛出、捕获与处理Importj__a.io.*;publicclassvoid__inStringargs[]{publicstaicvoid__inStringargs[]{forinti=0;i4;i++{intk;try{switchi{case0://dividedbyzerointzero=0;k=911;//zerobreak;case1://nullpointerintb[]=null;k=b
[0];break;case2://arrayindexoutofboundintc[]=newint
[2];k=c
[9];break;case3://stringindexoutofboundcharch=abc.charAt99;break;}}catchEx__ptione{System.out.println\nTestcase#+i+\n;System.out.printlne;}}}}3)在实验三中的__、商品类中创建一个自定义异常类要求在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFund_____ption)提示产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件确定产生异常的方法,应该在sale方法中产生异常InsufficientFundsEx__ption处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理要定义好自己的异常主要仪器设备台式或笔记本计算机实验记录答错误是程序运行过程中产生的,如除数为零、文件不能打开,数组下标超过界限,内存不够用等异常是程序运行中打断正常程序流程的任何不正常情况用throw、throws抛出异常,将要异常监控的程序段放在try代码块中,如果try代码块中发生异常,抛出的异常会被捕获抛出的异常用catch捕获try-catch-finallythrow语句用于抛出异常,finally字句为异常处理提供一个统一的出口,使得在控制流转到其他部分以前,能够对程序的状态作统一的管理结果publicclassyichan__huli{publicstaticvoid__inString[]args{try{Shopsh=newShop100;sh.sale200;System.out.println销售成功!;}catchInsufficientFund_____ptione{System.out.printlne.toString;}}}classShop{intnum;Shopintnum{this.num=num;}publicvoiddepositeintdAmount{num+=dAmount;}publicvoidsaleintdAmountthrowsInsufficientFund_____ption{ifnumdAmountthrownewInsufficientFund_____ption;num=num-dAmount;}}classInsufficientFund_____ptionextendsEx__ption{InsufficientFund_____ption{super商品销售数量大于库存额!;}}结果遇到的问题和解决方法在运行程序后理解了异常的捕获与处理,但是在实际的例子里却不会捕获异常,还需要不断练习心得体会通过这次实验,对J__a里异常的捕获与处理有了进一步的了解,知道了如何去捕获处理异常,对今后的编程起到了一定的作用实验名称实验五多线程编程实验目的和要求目的1现成的概念、线程的生命周期2多线程的编程扩展Thread类与使用Runnable接口3使用多线程机制实现动画实验内容1运行下面的程序,理解用创建Thread子类的方法实现多线程//S09_01_Thread.J__aImportj__a.util.*;classS09_01_ThreadextendsThread{intpauseTime;Stringname;publicS09_01_ThreadintxStringn{pauseTime=x;name=n;}publicvoidrun{whiletrue{try{system.out.printlnname+:+newDateSystem.currentTimeMillis;Tread.sleeppauseTime;}catchEx__ptione{System.out.printlne;}}}staticpublicvoid__inStringsrgs[]{S09_01_Threadtp1=newS09_01_Thread1000Fast;tp
1.start;S09_01_Threadtp2=newS09_01_Thread3000Slow;tp
2.start;}}2运行下面的程序,理解用实现Runnable接口的方法实现多线程//S09_02_Thread.J__aImportj__a.util.*;classS09_02_ThreadimplementsRunnable{intpauseTime;Stringname;publicS09_02_ThreadintxStringn{pauseTime=x;name=n;}publicvoidrun{whiletrue{try{system.out.printlnname+:+newDateSystem.currentTimeMillis;Tread.sleeppauseTime;}catchEx__ptione{System.out.printlne;}}}staticpublicvoid__inStringsrgs[]{Threadt1=newThreadnewS09_02_Thread1000Fast;t
1.start;Threadt2=newThreadnewS09_02_Thread3000Slow;t
2.start;}}3创建简单的程序ThreeThread.j__a,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)主要仪器设备台式或笔记本计算机实验记录结果
(1)
(2)
(3)importj__a.util.*;publicclassL09_03_ThreeThreadextendsThread{intpauseTime;Stringname;publicL09_03_ThreeThreadintxStringn{pauseTime=x;name=n;}publicvoidrun{whiletrue{try{System.out.printlnname+:+newDateSystem.currentTimeMillis;}catchEx__ptione{System.out.printlne;}}}publicstaticvoid__inString[]args{L09_03_ThreeThreadtp1=newL09_03_ThreeThread1000Fast;tp
1.start;L09_03_ThreeThreadtp2=newL09_03_ThreeThread2000Midle;tp
2.start;L09_03_ThreeThreadtp3=newL09_03_ThreeThread3000Slow;tp
3.start;}}结果
(3)遇到的问题和解决方法基本没有遇到什么问题,根据例子编写线程心得体会通过这次实验,对线程的概念有了进一步的了解,每次程序执行的结果都不相同,对线程有了进一步的了解实验名称实验六图形用户界面编程实验目的和要求目的掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘__的处理;掌握布局控制的方法实验内容1编写一个Applet程序响应鼠标__,当鼠标__发生时,在状态条显示相应的时间信息提示使用showStatus字符串方法2完成图6-1所示的GUI布局管理,不需要实现功能3试设计一窗口,内含一个按钮开始运行时,按钮显示“ClickMe”字样,当按钮按下时,按钮显示为“ClickMeAgain”字样,再按一次,则按钮显示“ClickMe”字样,依次循环4仿照Windows2000/XP系统提供扫雷游戏编写一个类似功能和界面的扫雷程序5编写一个简易文本编辑器,参考界面如图6-2所示要求包含基本的打开、保存、新建等功能包含菜单,能够对文本的字体类型和颜色进行设置,力求界面美观主要仪器设备台式或笔记本计算机实验记录
(1)importj__a.awt.*;importj__a.awt.event.*;publicclassL08_07implementsMouseMotionListenerMouseListenerWindowListener{privateFramefrm;privateTextFieldtf;publicstaticvoid__inStringargs[]{L08_07_ListenerImpDemotwo=newL08_07_ListenerImpDemo;two.go;}publicvoidgo{frm=newFrame三个监听器;frm.addnewLabel拖曳鼠标North;tf=newTextField30;frm.addtfSouth;//使用缺省的布局管理器frm.addMouseMotionListenerthis;//注册监听器MouseMotionListenerfrm.addMouseListenerthis;//注册监听器MouseListenerfrm.addWindowListenerthis;//注册监听器WindowListenerfrm.setSize300200;frm.setVisibletrue;}publicvoidmouseDraggedMouseEvente{//实现mouseDragged方法Strings=鼠标当前坐标:X=+e.getX+\tY=+e.getY;tf.setTexts;}publicvoidmouseMovedMouseEvente{}//对其不感兴趣的方法可以方法体为空publicvoidmouseClickedMouseEvente{}publicvoidmouseEnteredMouseEvente{Strings=鼠标进入了;tf.setTexts;}publicvoidmouseExitedMouseEvente{Strings=鼠标离开了;tf.setTexts;}publicvoidmousePressedMouseEvente{}publicvoidmouseReleasedMouseEvente{}publicvoidwindowClosingWindowEvente{System.exit1;//为了使窗口能正常关闭,程序正常退出,需要实现windowClosing方法}publicvoidwindowOpenedWindowEvente{}//对其不感兴趣的方法可以方法体为空publicvoidwindowIconifiedWindowEvente{}publicvoidwindowDeiconifiedWindowEvente{}publicvoidwindowClosedWindowEvente{}publicvoidwindowActivatedWindowEvente{}publicvoidwindowDeactivatedWindowEvente{}}2importj__a.awt.*;publicclassL08_02extendsFrame{staticFramefrm=newFrameFileChooseDemo;staticPanelpnl=newPanelnewGridLayout14115;staticPanelpn2=newPanelnewGridLayout;staticPanelpn3=newPanelnewGridLayout51;staticPanelpn4=newPanelnewGridLayout51;staticPanelpn5=newPanelnewGridLayout61;staticPanelpn6=newPanelnewGridLayout61;staticCheckboxchb1=newCheckboxOpentrue;staticCheckboxchb2=newCheckboxS__efalse;staticCheckboxchb3=newCheckboxCustomfalse;staticCheckboxchb4=newCheckboxDefaultFilteringtrue;staticCheckboxchb5=newCheckboxAddJPGandGIFFiltersfalse;staticCheckboxchb6=newCheckboxShowHiddenFilesfalse;staticCheckboxchb7=newCheckboxShowExtensiontrue;staticCheckboxchb8=newCheckboxShowFileViewtrue;staticCheckboxchb9=newCheckboxShowPreViewtrue;staticCheckboxchb10=newCheckboxShowControlButtonstrue;staticCheckboxchb11=newCheckboxJustSelectFilesfalse;staticCheckboxchb12=newCheckboxJustSelectDirectoriesfalse;staticCheckboxchb13=newCheckboxSelectFilesorDirectoriesfalse;staticCheckboxchb14=newCheckboxSingleSelectiontrue;staticCheckboxchb15=newCheckboxMultiSelectionfalse;staticCheckboxchb16=newCheckboxMetalfalse;staticCheckboxchb17=newCheckboxMotiffalse;staticCheckboxchb18=newCheckboxWindowstrue;staticButtonb1=newButtonRemoveFilter;staticButtonb2=newButtonAddFilter;staticButtonb3=newButtonShowFileChooser;staticLabellab1=newLabelDialogType;staticLabellab2=newLabelFilterControls;staticLabellab3=newLabelDisplayOption;staticLabellab4=newLabelFileandDirectoryOptions;publicstaticvoid__inStringargs[]{frm.setLayoutnewBorderLayout55;TextFieldtext=newTextFieldDialog;CheckboxGroupq1=newCheckboxGroup;CheckboxGroupq2=newCheckboxGroup;CheckboxGroupq3=newCheckboxGroup;CheckboxGroupq4=newCheckboxGroup;frm.addNorthpnl;frm.add__nterpn2;pnl.addpn3;pnl.addpn4;pnl.addpn5;pnl.addpn6;chb
1.setCheckboxGroupq1;chb
2.setCheckboxGroupq1;chb
3.setCheckboxGroupq1;chb
4.setCheckboxGroupq2;chb
5.setCheckboxGroupq2;chb
11.setCheckboxGroupq3;chb
12.setCheckboxGroupq3;chb
13.setCheckboxGroupq3;chb
14.setCheckboxGroupq3;chb
15.setCheckboxGroupq3;chb
16.setCheckboxGroupq4;chb
17.setCheckboxGroupq4;chb
18.setCheckboxGroupq4;pn
3.addlab1;pn
3.addchb1;pn
3.addchb2;pn
3.addchb3;pn
3.addtext;pn
4.addlab2;pn
4.addb1;pn
4.addb2;pn
4.addchb4;pn
4.addchb5;pn
5.addlab3;pn
5.addchb6;pn
5.addchb7;pn
5.addchb8;pn
5.addchb9;pn
5.addchb10;pn
6.addlab4;pn
6.addchb11;pn
6.addchb12;pn
6.addchb13;pn
6.addchb14;pn
6.addchb15;pn
2.addchb16;pn
2.addchb17;pn
2.addchb18;pn
2.addb3;frm.setSize600200;frm.setVisibletrue;}}
(3)importj__a.awt.*;importj__a.awt.event.*;publicclassL08_03extendsFrameimplementsMouseListener{staticL08_03frm=newL08_03;staticButtonbtn=newButtonClickMe;staticinta=0;publicstaticvoid__inStringargs[]{btn.addMouseListenerfrm;frm.setLayoutnewFlowLayout;frm.setTitle按钮测试;frm.setSize300200;frm.addbtn;frm.setVisibletrue;}publicvoidmousePressedMouseEvente{}publicvoidmouseReleasedMouseEvente{}publicvoidmouseExitedMouseEvente{}publicvoidmouseEnteredMouseEvente{}publicvoidmouseClickedMouseEvente{a++;ifa%2!=0btn.setLabelClickMeAgain;elsebtn.setLabelClickMe;}}
(4)importj__a.awt.*;importj__a.awt.event.*;importj__ax.swing.*;publicclassBombextendsJButton{publicintab;publicintBombRoundCount;publicbooleani__omb;publicbooleanisClicked;publicintBombFlag;publicbooleanisRight;publicBombintxinty{BombFlag=0;a=x;b=y;BombRoundCount=0;i__omb=false;isClicked=false;isRight=false;}}class__inBombextendsJFrameimplementsActionListener.MouseListener{publicJTextFieldtext;publicLabelnowBombsetBomb;publicintBlockNumBombNum;publiclconicon_bomb=newI__geIconBomb.gif;publicIconicon_bomb_big=newI__geIconbomb_big.gif;publicIconicon_flag=newI__geIconflag.gif;publicIconicon_question=newI__geIconquestion.gif;publicJButtonstart=newJButton开始;publicPanelMenuPanel=newPanel;publicPanel__inPanel=newPanel;publicBomb[][]bombButton;public__inBomb;{super扫雷游戏制作;BlockNum=64;BombNum=10;Containerc=getContentPane;c.setBackgroundColor.gray;c.setLayoutnewBorderLayout;text=newJTextField103;nowBomb=newLabel当前雷数++BombNum+;setBomb=newLabel设置地雷数;start.addActionListenernewActionListener{publicvoidactionPerfomedActionEvente{BombNum=Integer.parseInttext.getText.trim;ifBombNum=10BombNum50replay;else{JOptionPanemsg=newJOptionPane;JOptionPane.showMessageDialognull你设置的地雷数太多了,请重设!错误2;}}}MenuPanel.addsetBomb;MenuPanel.addtext;MenuPanel.addstart;MenuPanel.addnowBomb;c.addMenuPanel.North;__inPanel.setLayoutnewGridLayoutint__th.sqrtBlockNumint__th.sqrtBlockNum;bombButton=newBomb[int__th.sqrtBlockNum][];forinti=0;iint__th.sqrtBlockNum;i++{bombButton[i]=newBomb[int__th.sqrtBlockNum];}forinti=0;iint__th.sqrtBlockNum;i++{forintj=0;jint__th.sqrtBlockNum;j++{bombButton[i][j]=newBombij;bombButton[i][j].setForegroundColor.gray;bombButton[i][j].addActionListenerthis;bombButton[i][j].addMouseListenerthis;}forinti=0;iint__th.sqrtBlockNum;i++{forintj=0;jint__th.sqrtBlockNum;j++__inPanel.addbombButton[i][j];c.add__inPanel__nter;startBomb;setSize400400;setLocation350200;setResizablefalse;}publicvoidstartBomb{forinti=0;iBombNum;i++{intx=int__th.random*int__th.sqrtBlockNum-1;inty=int__th.random*int__th.sqrtBlockNum-1;ifbombButton[x][y].i__omb==truei--;elsebombButton[x][y].i__omb=true;}}publicvoidreplay{nowBomb.setText当前雷数++BombNum+;forinti=0;iint__th.sqrtBlockNum;i++{forintj=0;jint__th.sqrtBlockNum;j++{bombButton[i][j].i__omb=false;bombButton[i][j].isClicked=false;bombButton[i][j].setEnabledtrue;bombButton[i][j].setText;bombButton[i][j].setIconnull;}startBomb;}publicvoidisWin{intfindBomb=0;forinti=0;iint__th.sqrtBlockNum;i++{forintj=0;jint__th.sqrtBlockNum;j++{ifbombButton[i][j].i__omb==truebombButton[i][j].isRight=truefindBomb++;}iffindBomb==Integer.parseInttext.getText.trim{JOptionPanemsg=newJOptionPane;JOptionPane.showMessageDialogthis你挖了所有的雷,你胜利了!你胜利了2;}}publicvoidCountRoundBomb{forinti=0;iint__th.sqrtBlockNum;i++{forintj=0;jint__th.sqrtBlockNum;j++{intcount=0;ifbombButton[i][j].i__omb!=true{ifi-1=0j-1=0{ifbombButton[i-1][j-1].i__omb==true{count+=1;}}ifi-1=0{ifbombButton[i-1][j].i__omb==true{count+=1;}}ifi-1=0j+1=int__th.sqrtBlockNum-1{ifbombButton[i-1][j+1].i__omb==true{count+=1;}}ifj-1=0{ifbombButton[i][j-1].i__omb==true{count+=1;}}ifi=0j+1=int__th.sqrtBlockNum-1{ifbombButton[i][j+1].i__omb==true{count+=1;}}ifj-1=0i+1=int__th.sqrtBlockNum-1{ifbombButton[i+1][j-1].i__omb==true{count+=1;}}ifi+1=int__th.sqrtBlockNum-1{ifbombButton[i+1][j].i__omb==true{count+=1;}}ifj+1=int__th.sqrtBlockNum-1i+1=__th.sqrtBlockNum-1{ifbombButton[i+1][j+1].i__omb==true{count+=1;}}bombButton[i][j].BombRoundCount=count;}}publicvoidisNullBomb[][]bombButtonBombClickedButton{intij;i=ClickedButton.num_x;j=ClickedButton.num_y;ifClickedButton.i__omb==true{}else{}ifi-1=0j-1=0{ifbombButton[i-1][j-1].i__omb==falsebombButton[i-1][j-1].isClicked==falsebombButton[i-1][j-1].isRight==false{bombButton[i-1][j-1].setTextbombButton[i-1][j-1].BombRoundCount+;bombButton[i-1][j-1].setEnabledfalse;bombButton[i-1][j-1].isClicked=true;}}ifi-1=0{ifbombButton[i-1][j].i__omb==falsebombButton[i-1][j].isClicked==falsebombButton[i-1][j].isRight==false{bombButton[i-1][j].setTextbombButton[i-1][j].BombRoundCount+;bombButton[i-1][j].setEnabledfalse;bombButton[i-1][j].isClicked=true;}}ifi-1=0j+1=int__th.sqrtBlockNum-1{ifbombButton[i-1][j+1].i__omb==falsebombButton[i-1][j+1].isClicked==falsebombButton[i-1][j+1].isRight==fales{bombButton[i-1][j+1].setTextbombButton[i-1][j+1].BombRoundCount+;bombButton[i-1][j+1].setEnabledfalse;bombButton[i-1][j+1].isClicked=true;}}ifj-1=0{ifbombButton[i][j-1].i__omb==falsebombButton[i][j-1].isClicked==falsebombButton[i][j-1].isRight==false{bombButton[i][j-1].setTextbombButton[i][j-1].BombRoundCount+;bombButton[i][j-1].setEnabledfalse;bombButton[i][j-1].isClicked=true;}}ifi=0j+1=int__th.sqrtBlockNum-1{ifbombButton[i][j+1].i__omb==falsebombButton[i][j+1].isClicked==falsebombButton[i][j+1].isRight==false{bombButton[i][j+1].setTextbombButton[i][j+1].BombRoundCount+;bombButton[i][j+1].setEnabledfalse;bombButton[i][j+1].isClicked=true;}}ifj-1=0i+1=int__th.sqrtBlockNum-1{ifbombButton[i+1][j-1].i__omb==falsebombButton[i+1][j-1].isClicked==falsebombButton[i+1][j-1].isRight==false{bombButton[i+1][j-1].setTextbombButton[i][j+1].BombRoundCount+;bombButton[i+1][j-1].setEnabledfalse;bombButton[i+1][j-1].isClicked=true;}}ifi+1=int__th.sqrtBlockNum-1{ifbombButton[i+1][j].i__omb==falsebombButton[i+1][j].isClicked==falsebombButton[i+1][j].isRight==false{bombButton[i+1][j].setTextbombButton[i][j+1].BombRoundCount+;bombButton[i+1][j].setEnabledfalse;bombButton[i+1][j].isClicked=true;}}ifj+1=int__th.sqrtBlockNum-1i+1=int__th.sqrtBlockNum-1{ifbombButton[i+1][j+1].i__omb==falsebombButton[i+1][j+1].isClicked==falsebombButton[i+1][j+1].isRight==false{bombButton[i+1][j+1].setTextbombButton[i][j+1].BombRoundCount+;bombButton[i+1][j+1].setEnabledfalse;bombButton[i+1][j+1].isClicked=true;}}ifi-1=0j-1=0isNullbombButtonbombButton[i-1][j-1];ifi-1=0isNullbombButtonbombButton[i-1][j];ifi-1=0j+1=int__th.sqrtBlockNum-1isNullbombButtonbombButton[i-1][j+1];ifj-1=0isNullbombButtonbombButton[i][j-1];ifi=0j+1=int__th.sqrtBlockNum-1isNullbombButtonbombButton[i][j+1];ifj-1=0i+1=int__th.sqrtBlockNum-1isNullbombButtonbombButton[i+1][j-1];ifi+1=int__th.sqrtBlockNum-1isNullbombButtonbombButton[i+1][j];ifj+1=int__th.sqrtBlockNum-1i+1=int__th.sqrtBlockNum-1isNullbombButtonbombButton[i+1][j+1];publicvoidactionPerformedActionEvente{CountRoundBomb;ifBombe.getSour__.i__omb==falseBombe.getSour__.isClicked==false{Bombe.getSour__.setTextBombe.getSour__.BombRoundCount+;Bombe.getSour__.isClicked=true;Bombe.getSour__.setIconnull;Bombe.getSour__.setEnablefalse;ifBombe.getSour__.BombRoundCount==0isNullbombButton.Bombe.getSour__;isWin;}elseifBombe.getSour__.i__omb==true{forinti=0;iint__th.sqrtBlockNum;i++forintj=0;jint__th.sqrtBlockNum;j++{ifbombButton[i][j].i__omb==truebombButton[i][j].setIconicon_bomb}Bombe.getSour__.setIconicon_bomb_big;JOptionPanemsg=newJOptionPane;JOptionPane.showMessageDialogthis你踩到地雷了,按确定重来你踩到地雷了2;replay;}}publicvoidmouseClickedMouseEvente{BombbombSour__=Bombe.getSour__;booleanright=SwingUtilities.isRightMouseButtone;ifright==truebombSour__.isClicked==false{bombSour__.BombFlag=bombSour__.BombFlag+1%3;ifbombSour__.BombFlag==1{ifBombNum0bombSour__.isRight==false{bombSour__.setIconicon_flag;bombSour__.isRight=true;BombNum--;}isWin;nowBomb.setText当前雷数++BombNum+;}elseifbombSour__.BombFlag==2{ifBombNum!=0||BombNum==0bombSour__.getIcon==icon_flagBombNum++;bombSour__.setIconicon_question;nowBomb.setText当前雷数++BombNum+;}elseifbombSour__.BombFlag==0{bombSour__.setIconnull;bombSour__.isRight=false;}}}publicvoidmouseEnteredMouseEvente{}publicvoidmouseReleasedMouseEvente{}publicvoidmouseExitedMouseEvente{}publicvoidmousePressedMouseEvente{}publicclass__in{publicstaticvoid__inStringargs[]{new__inBomb.show;}
(5)importj__a.awt.*;importj__ax.swing.*;importj__a.awt.event.*;importj__ax.swing.event.*;importj__a.util.*;//Dateneededimportj__a.io.PrintWriter;publicclassL08_05extendsJFrame{JTextAreajta;classnewlimplementsActionListener{publicvoidactionPerformedActionEvente{jta.setText;}}classopenlimplementsActionListener{publicvoidactionPerformedActionEvente{JFileChooserjf=newJFileChooser;jf.showOpenDialogL08_
05.this;}}classs__elimplementsActionListener{publicvoidactionPerformedActionEvente{JFileChooserjf=newJFileChooser;jf.showS__eDialogL08_
05.this;}}classprintlimplementsActionListener{publicvoidactionPerformedActionEvente{PrintWriterp=newPrintWriterNotePad.this;}}classexitlimplementsActionListener{publicvoidactionPerformedActionEvente{System.exit0;//退出}}classcopylimplementsActionListener{publicvoidactionPerformedActionEvente{jta.copy;}}classpastelimplementsActionListener{publicvoidactionPerformedActionEvente{jta.paste;}}classcutlimplementsActionListener{publicvoidactionPerformedActionEvente{jta.cut;}}classdatelimplementsActionListener{publicvoidactionPerformedActionEvente{Dated=newDate;jta.appendd.toString;}}publicS65{jta=newJTextArea2440;JScrollPanejsp=newJScrollPanejta;JMenuBarjmb=newJMenuBar;JMenumFile=newJMenuFile;JMenumEdit=newJMenuEdit;JMenuItemmNew=newJMenuItemNewKeyEvent.VK_N;mNew.addActionListenernewnewl;mFile.addmNew;JMenuItemmOpen=newJMenuItemOpenKeyEvent.VK_O;mOpen.addActionListenernewopenl;mFile.addmOpen;JMenuItemmS__e=newJMenuItemS__e;mS__e.addActionListenernews__el;mFile.addmS__e;mFile.addSeparator;JMenuItemmPrint=newJMenuItemPrint;mPrint.addActionListenernewprintl;mFile.addmPrint;mFile.addSeparator;JMenuItemmExit=newJMenuItemExit;mExit.addActionListenernewexitl;mFile.addmExit;mFile.setMnemonicKeyEvent.VK_F;JMenuItemjmi;jmi=newJMenuItemCopy;jmi.addActionListenernewcopyl;mEdit.addjmi;jmi=newJMenuItemCut;jmi.addActionListenernewcutl;mEdit.addjmi;jmi=newJMenuItemPaste;jmi.addActionListenernewpastel;mEdit.addjmi;mEdit.addSeparator;jmi=newJMenuItemFind;mEdit.addjmi;jmi=newJMenuItemFindNext;mEdit.addjmi;mEdit.addSeparator;jmi=newJMenuItemSelectAll;mEdit.addjmi;jmi=newJMenuItemDate/Time;jmi.addActionListenernewdatel;mEdit.addjmi;jmb.addmFile;jmb.addmEdit;this.setJMenuBarjmb;this.getContentPane.addjsp;this.setSize200200;this.setVisibletrue;}publicstaticvoid__inStrings[]{newS65;}}结果
(1)
(2)
(3)
(4)
(5)遇到的问题和解决方法图形用户界面编写起来很费劲,查阅了很多资料,不断请教同学,上网查资料,最终编写出来了心得体会通过这次实验,对J__a实现图形用户界面有了进一步的了解,在真正编写程序时候才知道并不是想象中的那么简单,很费劲,尤其是关于J__a去实现小游戏的制作,很是艰难,在不断查资料,终于算是完成了实验名称实验七输入与输出实验目的和要求目的1掌握J__a两种基本输入/输出流类的使用2掌握J__a文件类型的使用3掌握文件的输入、输出方法实验内容1编写程序,实现从键盘输入字符串并在屏幕上输出2利用J__a文件类File的方法,获取磁盘文件的文件名、长度、大小等特性3编写程序,利用J__a字符流文件输入/输出类,实现将源程序__到另一个文件中
(4)编写一个程序,比较两个文件的内容是否相同
(5)编写一个程序,求2~200之间的素数,并将结果保存在文件prime.dat中再从该文件中读取内容并在屏幕上显示出来主要仪器设备台式或笔记本计算机实验记录
(1)importj__a.util.*;publicclassStringBuffer{publicstaticvoid__inString[]args{Scannerin=newScannerSystem.in;String__=newString;__=in.nextLine;System.out.println__.toString;}}结果
(2)importj__a.io.File;importj__a.io.FileInputStream;importj__a.io.FileNotFoundEx__ption;importj__a.io.IOEx__ption;publicclassGetFileMessage{publicstaticvoid__inString[]args{Filefile=newFileD:/;getMessagefile;}privatestaticvoidgetMessageFilefile{File[]files=file.listFiles;iffiles==null{files=newFile
[0];}forinti=0;ifiles.length;i++{iffiles[i].isDirectory{System.out.printlnfiles[i].getPath;getMessagefiles[i];}else{try{intlength=newFileInputStreamfiles[i].__ailable;System.out.printlnfiles[i].getName+长度:+length+大小:+length/1024+KB;}catchFileNotFoundEx__ptione{e.printStackTra__;}catchIOEx__ptione{e.printStackTra__;}}}}}结果
(3)importj__a.io.BufferedReader;importj__a.io.BufferedWriter;importj__a.io.File;importj__a.io.FileInputStream;importj__a.io.FileOutputStream;importj__a.io.IOEx__ption;importj__a.io.InputStreamReader;importj__a.io.OutputStreamWriter;publicclasswenjian{publicstaticvoid__inString[]argsthrowsIOEx__ption{Stringinfile=args
[1].toString;Stringfileout=result.___;try{Filef=newFilefileout;FileOutputStreamfout=newFileOutputStreamf;BufferedWriterbw=newBufferedWriternewOutputStreamWriterfout;BufferedReaderbr=null;Filefile=newFileinfile;iffile.exists{FileInputStreamfin=newFileInputStreamfile;br=newBufferedReadernewInputStreamReaderfin;}Stringstr=br.readLine;intn=0;whilestr!=null!str.isEmpty{n++;str=br.readLine;bw.writestr+\n;}bw.flush;bw.close;br.close;}catchEx__ptione{e.printStackTra__;}}}
(4)importj__a.io.*;importj__a.lang.String;importj__a.util.Scanner;publicclasscompare{publicstaticvoid__inString[]args{try{Scannerreadr=newScannerSystem.in;System.out.println输入第一个文件的路径及文件名:;Stringfile1=readr.next;System.out.println输入第二个文件的路径及文件名:;Stringfile2=readr.next;FileReaderinOne1=newFileReaderfile1;BufferedReaderinTwo1=newBufferedReaderinOne1;Strings1=null;inti=0;booleanb=true;FileReaderinOne2=newFileReaderfile2;BufferedReaderinTwo2=newBufferedReaderinOne2;Strings2=null;whiles1=inTwo
1.readLine!=null{i++;whiles2=inTwo
2.readLine!=null{ifs
1.equalss2!=true{System.out.println第+i+行:+s1+和+s2+内容不一样;b=false;}}break;}ifb{System.out.println文件内容一样;}}catchIOEx__ptione{System.out.printlne;}}}结果
(5)importj__a.io.*;publicclassprime{voidgetprimeintmintninta[]{intijk;fori=mk=0;i=n;i++{forj=2;j=i/2;j++{ifi%j==0break;}ifji/2a[k++]=i;}}publicstaticvoid__inString[]args{Fileprimefile=newFileprime
1.dat;primep=newprime;inta[]=newint
[50];inti=0c;p.getprime2200a;try{DataOutputStreamout=newDataOutputStreamnewFileOutputStreamprime
1.dat;DataInputStreamin=newDataInputStreamnewFileInputStreamprime
1.dat;whilea[i]!=0{out.writea[i];i++;}whilec=in.read!=-1{System.out.printc+;}in.close;out.close;}catchIOEx__ptione{e.printStackTra__;}}}结果遇到的问题和解决方法进行的不是很顺利,在实验开始之前以为很简单,但是在真正编写时候遇到了很多问题,期间不断请教同学,查资料,看书,才得以出结果心得体会通过这次实验收获还是挺大的,知道了J__a的输入输出机制,J__a的输入输出并不像想象中的那么简单,通过实验也增进了对j__a输入输出的理解,对用J__a进行其他的编程起到了一定的作用实验名称实验八网络编程实验目的和要求目的掌握TCP编程Sodket的概念和编程方法掌握URL类的使用URL的概念和编程实验内容
(1)使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的hello请求时会回应一个hello,对客户端的其他请求不响应2使用Socket编程,客户机发送数据到服务器,服务器将接收到的数据返回给客户机
(3)设计图形用户界面的客户端程序和服务器端程序,实现客户端读取服务器段内容,要求支持客户端的多线程操作主要仪器设备台式或笔记本计算机实验记录
(1)packagecn.server;importj__a.net.*;importj__a.io.*;publicclassServer{publicstaticvoid__inStringargs[]{try{ServerSocketss=newServerSocket8888;whiletrue{Sockets=ss.ac__pt;PrintWriterout=newPrintWriters.getOutputStream;BufferedReaderin=newBufferedReadernewInputStreamReaders.getInputStream;//输入流Stringstr=in.readLine;ifstr.equalshello{System.out.printlnTheServerre__iveahello;out.printlnhello;}out.close;s.close;in.close;}}catchIOEx__ptione{}}}packagecn.server;importj__a.net.*;importj__a.io.*;publicclassClient{Socketsocket=null;DataInputStreaminStream=null;DataOutputStreamoutStream=null;publicClient{try{init;waitData;}catchEx__ptione{System.out.printlne.toString;}}voidinitthrowsEx__ption{socket=newSocket
127.
0.
0.18888;inStream=newDataInputStreamsocket.getInputStream;outStream=newDataOutputStreamsocket.getOutputStream;socket.setSoTimeout3000;}voidwaitData{whiletrue{try{byte[]b=newbyte
[1024];Stringstr=;//从键盘读取字符串intm=System.in.readb;str=newStringb00m-1;System.out.printlnTheclientinputastring:+str;outStream.writeBytesstr;//将字符串写入输出流中Stringstr1=inStream.readLine;//客户端读取信息System.out.printlnTheclientre__iveastring:+str1;}catchSocketEx__ptione{break;}catchEx__ptione{System.out.printlne.toString;break;}}}publicstaticvoid__inString[]args{newClient;}}
(1)
(2)
(2)packagecn.test.supper__cket.pojo;importj__a.io.*;importj__a.net.*;publicclassServer{publicstaticvoid__inStringargs[]{try{ServerSocketserver=null;try{server=newServerSocket8443;}catchEx__ptione{System.out.printlnError:+e;System.exit-1;}Socketclient=null;try{client=server.ac__pt;}catchEx__ptione{System.out.println接受请求失败!;System.exit-1;}Stringline;BufferedReaderis=newBufferedReadernewInputStreamReaderclient.getInputStream;//输入流PrintWriteros=newPrintWriterclient.getOutputStream;BufferedReadersin=newBufferedReadernewInputStreamReaderSystem.in;System.out.printlnClient:+is.readLine;line=sin.readLine;whileline!=null!line.trim.equalsbye{os.printlnline;os.flush;System.out.printlnServer:+line;System.out.printlnClient:+is.readLine;line=sin.readLine;}os.close;is.close;client.close;server.close;System.out.println服务器退出运行;}catchEx__ptione{System.out.printlnError:+e;}}}packagecn.test.supper__cket.pojo;importj__a.io.*;importj__a.net.*;publicclassClient{publicstaticvoid__inString[]args{Socketserver=null;try{Stringreadline;server=newSocket
127.
0.
0.18443;System.out.println请输入信息;BufferedReadersin=newBufferedReadernewInputStreamReaderSystem.in;PrintWriteros=newPrintWriterserver.getOutputStream;BufferedReaderis=newBufferedReadernewInputStreamReaderserver.getInputStream;readline=sin.readLine;whilereadline!=null!readline.trim.equalsbye{os.printlnreadline;os.flush;System.out.printlnClient:+readline;System.out.printlnServer:+is.readLine;readline=sin.readLine;}os.close;is.close;server.close;System.out.println客户端停止运行!;}catchIOEx__ptione{e.printStackTra__;System.out.println出现异常+e;}}}
(3)importj__a.net.*;importj__a.io.*;publicclassshiyan8-3{publicstaticvoid__inString[]argsthrowsEx__ption{ServerSocketserver=newServerSocket8000;Sockets=server.ac__pt;System.out.printlnserverisok!;MyServerThread[]se=newMyServerThread
[2];se
[0]=newMyServerThreads;se
[1]=newMyServerThreads;se
[0].start;se
[1].start;server.close;}}classMyServerThreadextendsThread{privateSockets;publicMyServerThreadSockets{this.s=s;}publicvoidrun{PrintWriteros=null;try{os=newOutputStreamWriters.getOutputStream;}catchIOEx__ptione{e.printStackTra__;}StringBufferpas=newStringBuffer;Stringword;BufferedReaderbr=null;try{br=newBufferedReadernewInputStreamReadernewFileInputStreamD:/myworkspa__/lab7/test.___;}catchFileNotFoundEx__ptione{e.printStackTra__;}try{whileword=br.readLine!=null{pas.appendword+\r\n;}}catchIOEx__ptione{e.printStackTra__;}os.printlnpas;os.flush;os.close;}}遇到的问题和解决方法课堂上老师演绎了一个例子,但是到自己编写时候错误还是很多,不断请教同学,查资料,最终算是完成了吧心得体会通过这次实验,充分了解到用J__a也可以实现网络编程,在编写过程中不断地看书,力求读懂书上的例子,通过上网查资料,请教同学,最终完成相信这次编程对未来的网络编程也会起到很大的作用。