第四届全国ITAT教育工程就业技能大赛复赛试题Java程序设计 B卷.docx
- 文档编号:5284191
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:15
- 大小:32.95KB
第四届全国ITAT教育工程就业技能大赛复赛试题Java程序设计 B卷.docx
《第四届全国ITAT教育工程就业技能大赛复赛试题Java程序设计 B卷.docx》由会员分享,可在线阅读,更多相关《第四届全国ITAT教育工程就业技能大赛复赛试题Java程序设计 B卷.docx(15页珍藏版)》请在冰点文库上搜索。
第四届全国ITAT教育工程就业技能大赛复赛试题Java程序设计B卷
第四届全国ITAT教育工程就业技能大赛复赛试题
Java程序设计(B卷)
1、水仙花数是指其个位、十位、百位三个数的立方和等于这个数本身。
编写一个Java应用程序,求出所有水仙花数。
(20分)
publicclassaaa{
publicstaticvoidmain(String[]args){
intb=1,s,g;
intc=0;
for(b=1;b<=9;b++){
for(s=0;s<=9;s++){
for(g=0;g<=9;g++){
intself=100*b+10*s+g;
intsum=b*b*b+s*s*s+g*g*g;
if(self==sum){
System.out.println(self);
}
}
}
}
}
}
2、编写一个Java应用程序,利用RandomAccessFile类往某个文本文件中写入20个整数(0~19),然后从该文件的第12个字节开始,将后面所有的数据(对应写入的整数)读出。
(25分)
packageITAT4;
importjava.io.IOException;
importjava.io.RandomAccessFile;
publicclasstest2{
/**
wanglong
*/
publicstaticvoidmain(Stringargs[])throwsIOException{
RandomAccessFilef=newRandomAccessFile(““iata4””,““rw””);
intdata[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
16,17,18,19};
for(inti=0;i f.writeInt(data[i]); } f.seek(12); for(longi=1;i<=17;i++){ if(f.getFilePointer()! =0){ System.out.print(““,””+f.readInt()); }else{ return; } } f.close(); } } 3、编写一个JavaGUI应用程序,窗口标题为“GridLayout”,窗口布局如下图A所示,在图A窗口中单击任意一个Button,网格的划分方式会变化为图B;在图B窗口中单击任意一个Button,网格的划分方式会变化为图A。 (25分) 图A图B packageITAT4; importjava.awt.*; importjava.awt.event.*; importjavax.swing.JFrame; classWinGridextendsFrameimplementsActionListener{ /** wanglong */ privatestaticfinallongserialVersionUID=1L; GridLayoutgrid; Buttonone=newButton(““one””); Buttontwo=newButton(““two””); Buttonthree=newButton(““three””); Buttonfour=newButton(““four””); Buttonfive=newButton(““five””); Buttonsix=newButton(““six””); inti=0; WinGrid(inta,intb){ this.setLayout(newGridLayout(a,b)); add(one); add(two); add(three); add(four); add(five); add(six); this.setSize(400,300); this.setResizable(false); this.setLocationRelativeTo(null); this.setVisible(true); this.addWindowListener(newWindowAdapter()//为了关闭窗口 { publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); one.addActionListener(this); two.addActionListener(this); three.addActionListener(this); four.addActionListener(this); five.addActionListener(this); six.addActionListener(this); } publicvoidactionPerformed(ActionEvente){ if(i==0){ i=1; this.setLayout(newGridLayout(2,3)); this.setVisible(true); }else{ i=0; this.setLayout(newGridLayout(3,2)); this.setVisible(true); } } } publicclassExample7_15{ publicstaticvoidmain(Stringargs[]){ newWinGrid(3,2); } } 4、采用Java多线程技术,设计实现一个符合生产者和消费者问题的程序。 对一个对象(枪膛)进行操作,其最大容量是12颗子弹。 生产者线程是一个压入线程,它不断向枪膛中压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。 (30分) 要求: (1)给出分析过程说明。 (10分) (2)程序输出,要模拟体现对枪膛的压入和射出操作;(10) (2)设计程序时应考虑到两个线程的同步问题。 (10) 两个线程对同一个对象的同一个成员变量进行操作,要考虑到该成员变量的属性范围,同时考虑线程的同步问题。 packageITAT4; publicclasstest4{ publicstaticvoidmain(String[]args){ xianchengx=newxiancheng(); System.out.println(““线程开始””); x.yaru.start(); x.shechu.start(); } } classqiangtang{ intzidan=0; voidadd(){ zidan++; } voidmove(){ zidan--; } intget(){ returnzidan; } } classxianchengimplementsRunnable{ Threadyaru; Threadshechu; xiancheng(){ yaru=newThread(this); yaru.setName(““压入””); shechu=newThread(this); shechu.setName(““射出””); } qiangtangq=newqiangtang(); publicvoidrun(){ while(true){ if(Thread.currentThread()==yaru){ //q.add(); if(q.get()<12){ q.add(); System.out.println(““加入一颗子弹,共有: ””+q.get()+““颗””); }else{ try{ Thread.sleep(500); }catch(InterruptedExceptione){ } } }elseif(Thread.currentThread()==shechu){ if(q.get()>0){ q.move(); System.out.println(““射出一颗子弹,共有””+q.get()+““颗””); }else{ try{ Thread.sleep(500); }catch(InterruptedExceptione){ } } } } } } 附加题: 5、 6、 7、某企业为了促销,搞抽奖宣传活动,奖品为新款手机一部,抽奖规则如下: (1)有n个盒子摆成一圈,盒子按顺时针方向依次编号为0,1,2,……,n-1。 手机随机放在其中一个盒子中。 (n为自然数) (2)从0号盒子开始摸奖,顺时针方向计数,每遇到第m个盒子就摸奖一次。 (m为自然数,m (3)直到重新摸到0号盒子为止。 例如n=5,m=3,那么摸奖经过的盒子编号依次为0,3,1,4,2,0。 请编写一个完整的程序,随机输入n,m(m 如果有,概率是多少? (概率=不被抽中的可能数/n)(30分) importjava.util.HashSet; importjava.util.Scanner; importjava.util.Set; publicclassDrawOutAward{ /** wanglong */ publicstaticvoidmain(Stringargs[]){ newDrawOutAward(); } publicDrawOutAward(){ //BufferedReaderbr=newBufferedReader(new //InputStreamReader(System.in)); Scannerscan=newScanner(System.in); intn=5; intm=3; booleanflag=true; while(flag){ System.out.print(““请输入n: ””); n=scan.nextInt(); System.out.print(““请输入m: ””); m=scan.nextInt(); if(m flag=false; else{ System.out.println(““m必须要小于n””); } } Set set.add(0); System.out.print(““摸奖过程: 0,””);//起点 for(inti=0;(i+m)%n! =0;){ intj=(i+m)%n; System.out.print(j+““,””); set.add(j); i=j; } System.out.println(0);//终点 if(n==set.size()) System.out.println(““一定会被抽中””); else{ floatresult=(n-set.size())/(float)n; System.out.println(““不被抽中的概率为: ””+result); } } } 8、采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。 客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。 (20分)(服务端程序和客户端程序分别命名为Server.java和Client.java) 9、 10、 服务端: packagesever; importjava.io.*; import.*; publicclassServer{ publicstaticvoidmain(Stringargs[]){ ServerSocketserver=null; Socketyou=null; Strings=null; DataOutputStreamout=null; DataInputStreamin=null; try{ server=newServerSocket(4332); }catch(IOExceptione1){ System.out.println(e1); } try{ System.out.println(““等待客户呼叫””); you=server.accept(); out=newDataOutputStream(you.getOutputStream()); in=newDataInputStream(you.getInputStream()); s=in.readUTF(); while(true){ System.out.println(““服务器收到: ””+s); out.writeUTF(““你好: 我是服务器””); if(! (newFile(““d: /””+s).exists())){ out.writeUTF(““文件不存在””); System.out.println(““文件不存在””); return; } out.writeUTF(““文件存在””); System.out.println(““文件已发送””); FileInputStreamfis=newFileInputStream(newFile(““d: /02.jpg””)); byte[]buf=newbyte[288072]; fis.read(buf); out.write(buf,0,288072); Thread.sleep(1000); } }catch(Exceptione){ System.out.println(““客户已断开””+e); } } } 客户端: packagesever; importjava.io.DataInputStream; importjava.io.DataOutputStream; importjava.io.FileOutputStream; importjava.io.IOException; import.*; importjavax.swing.JFrame; publicclassshowtuextendsJFrame{ /** * */ privatestaticfinallongserialVersionUID=9113050687899503448L; publicstaticvoidmain(String[]args){ try{ Strings=null; Socketmysocket; DataInputStreamin=null; DataOutputStreamout=null; mysocket=newSocket(““127.0.0.1””,4332); in=newDataInputStream(mysocket.getInputStream()); out=newDataOutputStream(mysocket.getOutputStream()); out.writeUTF(““02.jpg””); s=in.readUTF(); System.out.println(““客户收到: ””+s); s=in.readUTF(); System.out.println(““客户收到: ””+s); if(s.equals(““文件不存在””)){ System.out.println(““文件不存在””); }else{ byte[]buf=newbyte[298072]; in.readFully(buf); FileOutputStreamfos2=newFileOutputStream(““9.jpg””); fos2.write(buf,0,298072); } }catch(IOExceptionex){ } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四届全国ITAT教育工程就业技能大赛复赛试题Java程序设计 B卷 第四 全国 ITAT 教育 工程 就业 技能 大赛 复赛 试题 Java 程序设计