itatjava第三第五复赛答案.docx
- 文档编号:8509143
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:17
- 大小:62.50KB
itatjava第三第五复赛答案.docx
《itatjava第三第五复赛答案.docx》由会员分享,可在线阅读,更多相关《itatjava第三第五复赛答案.docx(17页珍藏版)》请在冰豆网上搜索。
itatjava第三第五复赛答案
操作题:
(请将编写好的源程序以题号命名,例如第1题的源程序保存为“1.java”)
1、编写一个Java应用程序,计算并输出一维数组(9.8,12,45,67,23,1.98,2.55,45)中的最大值和最小值。
(本题20分)
publicclassitat1{
publicstaticvoidmain(Stringags[]){
doublea[]={9.8,12,45,67,23,1.98,2.55,45}。
doublemax=a[0]。
doublemin=a[0]。
for(inti=0。
i i++){ if(a[i]>max){ max=a[i]。 } if(a[i] min=a[i]。 } } System.out.println("最大值为: "+max)。 System.out.println("最小值为: "+min)。 } } 2、编写一个Java应用程序,该程序使用FileInputStream类,实现从磁盘读取本应用程序源代码文件,并将文件内容显示在屏幕上。 (本题20分) importjava.io.BufferedReader。 importjava.io.FileReader。 importjava.io.IOException。 publicclassitat2{ publicstaticvoidmain(Stringags[])throwsIOException{ BufferedReaderin=newBufferedReader(newFileReader("d: /hello.txt"))。 Strings。 while((s=in.readLine())! =null){ System.out.println(s)。 } } } 读取文件本身的类Ex1.java的源代码如下: **************************************************************** importjava.io.BufferedReader。 importjava.io.File。 importjava.io.FileReader。 /** *@authorGodwin *@version2010-05-16 */ publicclassEx1{ publicstaticvoidmain(String[]args)throwsException{ BufferedReaderbr=newBufferedReader(newFileReader(newFile(System .getProperty("user.dir") +File.separator+"Ex1.java")))。 Strings。 while((s=br.readLine())! =null){ System.out.println(s)。 } } } *************************************** 3、编写一个Java应用程序,利用RandomAccessFile类,把几个int型整数(1,2,3,4,5,6,7,8,9,10)写入到一个名字为tom.dat文件中,然后按相反顺序读出这些数据并显示在屏幕上。 (注意,一个int型数据占4个字节)(本题30分) packageitat。 importjava.io.File。 importjava.io.RandomAccessFile。 publicclassqq{ publicstaticvoidmain(String[]args)throwsException{ Stringdirectory="D: /test123"。 Stringname="tom.dat"。 Filef=newFile(directory,name)。 RandomAccessFilefile=null。 file=newRandomAccessFile(f,"rw")。 inta[]={1,2,3,4,5,6,7,8,9,10}。 for(inti=0。 i i++){ file.writeInt(a[i])。 } RandomAccessFilefile1=newRandomAccessFile(f,"rw")。 for(inti=0。 i i++){ intj=file1.readInt()。 System.out.println(j)。 } } } 4、编写一个JavaGUI应用程序,采用Java多线程技术,模拟自由落体和平抛运动: 一个球自由落下,一个球水平抛出。 (本题30分) (自由落体物理公式: h=g*t2/2;平抛运动物理公式: h=g*t2/2,x=26*t; h代表高度,t代表时间,g代表重力加速度=9.8m/s2) 附加题: 5、编写一个Java应用程序,实现如下功能: 1)判断两个字符串是否相同,s1=”youareastudent”,s2=”howareyou”; 2)判断字符串”22030219851022024”的前缀、后缀是否和某个字符串”220302”相同; 3)按字典顺序比较两个字符串”你”和”我”的大小关系; 4)将数字型字符串”100”和”123.678”转换为数字; 5)将字符串”FEDCBA”存放到数组中,调用for循环读出数组数据显示在屏幕上。 (本题20分) publicclassaa{ publicstaticvoidmain(Stringags[]){ Strings1="youareastudent",s2="howareyou"。 if(s1.equals(s2)){ System.out.println("s1和s2相同。 ")。 }else{ System.out.println("s1和s2不同。 ")。 } Strings3="22030219851022024"。 Strings4="220302"。 if(s3.startsWith(s4)) { System.out.println(s3+"的前缀为"+s4)。 }else { System.out.println(s3+"的前缀不为"+s4)。 } if(s3.endsWith(s4)) { System.out.println(s3+"的后缀为"+s4)。 }else { System.out.println(s3+"的后缀不为"+s4)。 } Strings5="你"。 Strings6="我"。 if(pareTo(s6)<0) { System.out.println("\""+s5+"\"比\""+s6+"\"大")。 }elseif(pareTo(s6)==0){ System.out.println("\""+s5+"\"和\""+s6+"\"等")。 }else { System.out.println("\""+s5+"\"比\""+s6+"\"小")。 } Strings7="100"。 Strings8="123.678"。 intnum1=Integer.parseInt(s7)。 Doublenum2=Double.parseDouble(s8)。 System.out.println(num1)。 System.out.println(num2)。 Strings9="FEDCBA"。 chars99[]=newchar[6]。 for(inti=0。 i i++){ s99[i]=s9.charAt(i)。 System.out.println(s99[i])。 } Strings92="FEDCBA"。 char[]arr=s92.toCharArray()。 for(inti=0。 i i++){ System.out.println(arr[i])。 } } } 6、编写客户/服务器程序,客户端Client.java使用DatagramSocket对象将数据包发送到服务器,请求获取服务器端的图像(考生可自选图像文件)。 服务器端Server.java将图像文件包装成数据包,并使用DatagramSocket对象将该数据包发送到客户端。 首先将服务器端的程序编译通过,并运行起来,等待客户的请求。 (本题30分) 程序的运行效果如下图所示: 客户端 服务器端 服务端代码: packagedatasocket。 importjava.io.*。 import.*。 publicclassFortuneServer1extendsThread{ DatagramSocketServerSocket。 publicFortuneServer1(){ super("FortuneServer1")。 try{ ServerSocket=newDatagramSocket(1121)。 System.out.println("FortuneServerupandrunning...")。 }catch(SocketExceptione){ System.err.println("Exception: couldn'tcreatedatagramsocket")。 System.exit (1)。 } } publicvoidrun(){ if(ServerSocket==null) return。 while(true){ try{ InetAddressaddress。 intport。 DatagramPacketpacket。 byte[]data=newbyte[16000]。 packet=newDatagramPacket(data,data.length)。 ServerSocket.receive(packet)。 address=packet.getAddress()。 port=packet.getPort()。 FileinFile=newFile("D: /q1.jpg")。 FileInputStreaminStream=newFileInputStream(inFile)。 if(inStream.read(data)<=0){ System.err.println("Error: couldn'treadfortunes")。 } packet=newDatagramPacket(data,data.length,address,port)。 ServerSocket.send(packet)。 }catch(Exceptione){ System.err.println("Exception: "+e)。 e.printStackTrace()。 } } } publicstaticvoidmain(String[]args){ FortuneServer1server=newFortuneServer1()。 server.start()。 } } 客户端代码: packagedatasocket。 importjava.awt.Image。 importjava.awt.Toolkit。 importjava.awt.event.ActionEvent。 importjava.awt.event.ActionListener。 importjava.awt.event.WindowAdapter。 importjava.awt.event.WindowEvent。 import.*。 importjavax.swing.ImageIcon。 importjavax.swing.JButton。 importjavax.swing.JFrame。 importjavax.swing.JLabel。 publicclassFortuneClientextendsJFrameimplementsActionListener{ /** * */ privatestaticfinallongserialVersionUID=2567338201545440156L。 Imageimage=null。 privateJButtonbutton=newJButton("获取图像")。 privateJLabellabel=newJLabel()。 publicFortuneClient(){ this.setTitle("Iamaclient")。 this.setSize(500,500)。 this.setLocationRelativeTo(null)。 this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0)。 } })。 this.add(button,"North")。 button.addActionListener(this)。 this.setVisible(true)。 } publicvoidgetMessage(){ try{ DatagramSocketsocket。 DatagramPacketpacket。 byte[]data=newbyte[16000]。 socket=newDatagramSocket()。 packet=newDatagramPacket(data,data.length,InetAddress .getByName("127.0.0.1"),1121)。 socket.send(packet)。 packet=newDatagramPacket(data,data.length)。 socket.receive(packet)。 image=Toolkit.getDefaultToolkit().createImage(packet.getData(), 0,packet.getData().length)。 socket.close()。 }catch(UnknownHostExceptione){ System.err.println("Exception: hostcouldnotbefound")。 }catch(Exceptione){ System.err.println("Exception: "+e)。 e.printStackTrace()。 } label=newJLabel(newImageIcon(image))。 } publicstaticvoidmain(Stringargs[]){ newFortuneClient()。 } publicvoidactionPerformed(ActionEvente){ //TODOAuto-generatedmethodstub getMessage()。 this.add(label)。 label.setVisible(true)。 this.setVisible(true)。 } } 1、某人有5张3分和4张5分的邮票,请编写一个程序, 计算由这些邮票中的1张或若干张可以得到多少种不同的邮资, 并按照邮资从小到大顺序显示。 (20分) 2、采用Java多线程技术编写程序,其中包括两个线程: A和B,其中A线程准备休眠一小时,B线程每隔一秒输入3句“起床”后, 吵醒休眠的线程A。 (25分) 3、利用Java的GUI编程,编写一个窗体, 包含两个文本框和一个命令按钮。 其中一个文本框接收用户输入的一行字符串, 回车后在另一个文本框中重复输出三行,单击命令按钮可清空两个文本框的所有内容。 (25分) 4、编写一个Java应用程序,运行后,首先列出当前工作目录, 然后把当前目录下面的所有后缀为java的文件取出 (设置一个过滤器进行文件名后缀的过滤)。 (30分) 附加题: 5、使用堆栈结构输出,其中=2+2,=3,=8。 (20分) 6、访问Access2003数据库,在Access数据库中创建学生表(T_Student)表并配置ODBC驱动源, 学生表的结构和示例数据如下所示: T_Student表: 字段名称说明数据类型约束备注 S_ID学号Integer主键 S_Name姓名Varchar(10)不允许空 S_Email邮箱Varchar(30) S_Score英语成绩Integer 表数据示例: S_IDS_NameS_EmailS_Score 1001JerryJerry@80 1002MikeMike@90 1003JohnJohn@78 使用Java语言编写程序,要求如下: 1)使用JDBC-ODBC桥驱动程序; 2)查询出表中所有记录,并按照主键升序显示。 参考提示代码: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")。 Connectionconn=DriverManager.getConnection("jdbc: odbc: student","","")。 (30分) mportjava.util.*。 publicclassT1{ publicstaticvoidmain(Stringargs[]){ ArrayListal=newArrayList()。 for(inti=0。 i<=5。 i++){ for(intj=0。 j<=4。 j++){ if((i*3+j*5)! =0&&! al.contains(i*3+j*5)){ al.add(i*3+j*5)。 } } } Collections.sort(al)。 System.out.println("总共的邮资数是: "+al.size())。 System.out.println("他们从小到大的依次书序是: ")。 for(Objecto: al){ System.out.print(o+"-")。 } System.out.println("\b")。 } } 2importjava.util.*。 publicclassT2{ publicstaticvoidmain(String[]args){ Objecto1=newObject()。 ThreadTwot2=newThreadTwo(o1)。 ThreadOnet1=newThreadOne(o1,t2)。 t1.start()。 //为确保t1先运行我让t2在t1的run方法里面启动 } staticclassThreadOneextendsThread{ Objecta。 Threadt。 publicThreadOne(Objecto1,Threadt2){ a=o1。 t=t2。 } publicvoidrun(){ t.start()。 synchronized(a){ try{ System.out.println("我是A: 我要先睡一个小时")。 a.wait(1000*3600)。 System.out.println("我是A: 我被吵醒了")。 } catch(Exceptione){e.printStackTrace()。 } } } } staticclassThreadTwoextendsThread{ Objecta。 publicThreadTwo(Objecto1){ a=o1。 } publicvoidrun(){ booleanflag=true。 Scannersc=newScanner(System.in)。 ArrayListal=newArrayList()。 try{ synchronized(a){ while(flag){ sleep(1000)。 System.out.println("我是线程B: 起床")。 al.add (1)。 System.out.println()。 if(al.size()==3){ a.notify()。 flag=false。 } } } }catch(Exceptione){ e.printStackTrace()。 } } } } 3 importjava.awt.GridLayout。 importjava.awt.event.ActionEvent。 importjava.awt.event.ActionListener。 importjava.awt.event.KeyEvent。 importjava.awt.event.KeyListener。 importjavax.swing.JTextArea。 importjavax.swing.JButton。 importjavax.swing.JFrame。 importjavax.swing.JTextField。 publicclassT3{ JFrameframe。 JTextFieldjtf。 JTextAreajtf2。 JButtonbutton。 publicT3(){ frame=ne
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- itatjava 第三 第五 复赛 答案