itatjava第三第五复赛答案Word文件下载.docx
《itatjava第三第五复赛答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《itatjava第三第五复赛答案Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
![itatjava第三第五复赛答案Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/31/45b73f2b-889e-46bc-9c24-2478a52267c5/45b73f2b-889e-46bc-9c24-2478a52267c51.gif)
))。
Strings。
while((s=in.readLine())!
=null){
System.out.println(s)。
读取文件本身的类Ex1.java的源代码如下:
****************************************************************
importjava.io.File。
/**
*@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())!
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.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}。
file.writeInt(a[i])。
RandomAccessFilefile1=newRandomAccessFile(f,"
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循环读出数组数据显示在屏幕上。
publicclassaa{
publicstaticvoidmain(Stringags[]){
Strings1="
youareastudent"
s2="
howareyou"
if(s1.equals(s2)){
System.out.println("
s1和s2相同。
}else{
s1和s2不同。
Strings3="
22030219851022024"
Strings4="
220302"
if(s3.startsWith(s4))
{
System.out.println(s3+"
的前缀为"
+s4)。
}else
的前缀不为"
if(s3.endsWith(s4))
的后缀为"
的后缀不为"
Strings5="
你"
Strings6="
我"
if(pareTo(s6)<
0)
\"
+s5+"
比\"
+s6+"
大"
}elseif(pareTo(s6)==0){
和\"
等"
小"
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<
s99.length。
i++){
s99[i]=s9.charAt(i)。
System.out.println(s99[i])。
Strings92="
char[]arr=s92.toCharArray()。
arr.length。
System.out.println(arr[i])。
6、编写客户/服务器程序,客户端Client.java使用DatagramSocket对象将数据包发送到服务器,请求获取服务器端的图像(考生可自选图像文件)。
服务器端Server.java将图像文件包装成数据包,并使用DatagramSocket对象将该数据包发送到客户端。
首先将服务器端的程序编译通过,并运行起来,等待客户的请求。
程序的运行效果如下图所示:
客户端
服务器端
服务端代码:
packagedatasocket。
importjava.io.*。
import.*。
publicclassFortuneServer1extendsThread{
DatagramSocketServerSocket。
publicFortuneServer1(){
super("
FortuneServer1"
try{
ServerSocket=newDatagramSocket(1121)。
FortuneServerupandrunning..."
}catch(SocketExceptione){
System.err.println("
Exception:
couldn'
tcreatedatagramsocket"
System.exit
(1)。
publicvoidrun(){
if(ServerSocket==null)
return。
while(true){
InetAddressaddress。
intport。
DatagramPacketpacket。
byte[]data=newbyte[16000]。
packet=newDatagramPacket(data,data.length)。
ServerSocket.receive(packet)。
address=packet.getAddress()。
port=packet.getPort()。
FileinFile=newFile("
/q1.jpg"
FileInputStreaminStream=newFileInputStream(inFile)。
if(inStream.read(data)<
=0){
System.err.println("
Error:
treadfortunes"
}
packet=newDatagramPacket(data,data.length,address,port)。
ServerSocket.send(packet)。
}catch(Exceptione){
System.err.println("
"
+e)。
e.printStackTrace()。
publicstaticvoidmain(String[]args){
FortuneServer1server=newFortuneServer1()。
server.start()。
客户端代码:
importjava.awt.Image。
importjava.awt.Toolkit。
importjava.awt.event.ActionEvent。
importjava.awt.event.ActionListener。
importjava.awt.event.WindowAdapter。
importjava.awt.event.WindowEvent。
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(){
DatagramSocketsocket。
DatagramPacketpacket。
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){
hostcouldnotbefound"
}catch(Exceptione){
e.printStackTrace()。
label=newJLabel(newImageIcon(image))。
publicstaticvoidmain(Stringargs[]){
newFortuneClient()。
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
getMessage()。
this.add(label)。
label.setVisible(true)。
1、某人有5张3分和4张5分的邮票,请编写一个程序,
计算由这些邮票中的1张或若干张可以得到多少种不同的邮资,
并按照邮资从小到大顺序显示。
(20分)
2、采用Java多线程技术编写程序,其中包括两个线程:
A和B,其中A线程准备休眠一小时,B线程每隔一秒输入3句“起床”后,
吵醒休眠的线程A。
(25分)
3、利用Java的GUI编程,编写一个窗体,
包含两个文本框和一个命令按钮。
其中一个文本框接收用户输入的一行字符串,
回车后在另一个文本框中重复输出三行,单击命令按钮可清空两个文本框的所有内容。
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"
"
mportjava.util.*。
publicclassT1{
publicstaticvoidmain(Stringargs[]){
ArrayListal=newArrayList()。
=5。
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())。
他们从小到大的依次书序是:
for(Objecto:
al){
System.out.print(o+"
-"
\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{
我是A:
我要先睡一个小时"
a.wait(1000*3600)。
我是A:
我被吵醒了"
catch(Exceptione){e.printStackTrace()。
staticclassThreadTwoextendsThread{
publicThreadTwo(Objecto1){
booleanflag=true。
Scannersc=newScanner(System.in)。
while(flag){
sleep(1000)。
我是线程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.KeyEvent。
importjava.awt.event.KeyListener。
importjavax.swing.JTextArea。
importjavax.swing.JTextField。
publicclassT3{
JFrameframe。
JTextFieldjtf。
JTextAreajtf2。
JButtonbutton。
publicT3(){
frame=ne