《Java基础程序设计》编程题_第1页
《Java基础程序设计》编程题_第2页
《Java基础程序设计》编程题_第3页
《Java基础程序设计》编程题_第4页
《Java基础程序设计》编程题_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第一章

1.请使用Eclipse编写一个程序,程序运行后,在控制台输出“这是我的第•个Java程序”。

publicclassFirstJava{

publicstaticvoidmain(String[]args){

System.out.printIn("这是我的第•个Java程序”);

第二章

1.请编写一个程序,计算100以内所有奇数的和。

提示:

1)使用循环语句实现自然数1〜99的遍历。

2)在遍历过程中,通过条件判断当前遍历的数是否为偶数,如果是,就continue,如果是奇数进

行会加运算。

publicclassDemo01{

publicstaticvoidmain(String[]args){

intsum-0;

for(intx=1;x<100;x++)(

if(x%2==0){

continue;

}

sum+=x;

)

System,out.printIn(*'sum="+sum);

)

}

2.定义一个函数,找出数组中的最大数或最小数。

publicclassDemo02{

publicstaticvoidmain(String[]args){

int[]array={5,L0,-8,-2,-500,50,200};

//最大数

intmax=array[0|;

for(inti=1;i<array.length;i++){

if(array[i]>max){

max=array[i];

}

)

System.out.printIn("数组中最大的数是:"+max);

〃最小数

intmin=array[0|;

for(inti■1;i<array.length;i++){

if(array[i]<min){

min=array[i];

}

}

System.out.printIn("数组中最小的数是:"+min);

}

}

第三章

1.编写•个程序,要求创建•个Student类,添加name和age属性,为该属性自动添加相应的

getter和setter方法,并给出有参和无参的构造方法。

publicclassStudent{

privateStringname;

privateintage;

publicStudent(){

)

publicStudent(Stringname,intage)(

super();

=name;

this.age"age;

)

publicStringgetNameO(

returnname;

)

publicvoidsetName(Stringname){

-name;

)

publicintgetAge(){

returnage;

)

publicvoidsetAge(intage){

this.age=age;

)

)

2.编写一个类,类中定义一个静态方法,用于求两个整数的和。

请按照以下要求设计一个测试类DemoOl,并进行测试。要求如下:

1)DcmoOl类中有一个静态方法gct(in(b)该方法用户返回参数a、b两个整数的和;

2)在main()方法中调用get方法并输出计算结果。

publicclassDemo01{

publicstaticintgetSumdnta,intb){

returna+b;

}

publicstaticvoidmain(String[]args){

intresult=DemoOl.getSum(2,3);

System.out.printin(result);

}

)

第四章

1.定义一个抽象类Car,在该类中包含一个抽象方法run()o分别定义一个Bike类和Bus类维承自

Car,在重写的run()方法中分别输出一句话。定义测试类,调用Bike类和Bus类中的方法。

abstractclassCar(

abstractvoidrun();

)

classBikeextendsCar{

voidrun()(

System.out.printIn("自行车在行驶");

)

)

classBusextendsCar{

voidrun()(

System.out.printin("公交车在行驶”);

}

)

publicclassDemoOl{

publicstaticvoidmain(String[]args){

Bikebike=newBLke();

bike.run();

Busbus=newBus();

bus.run();

)

)

classMainBoard{

publicvoidPCICardStart(PCIp){

p.start();

)

publicvoidPCICardstop(PCIp){

p.stopO;

)

}

//电脑

classComputer{

privatePCI(]pciArr=newPCI[4];//电脑上的PCI插槽

publicvoidadd(PCIusb){//向电脑上安装一个PCI设备

for(inti=0;i<pciArr.length;i++)(〃循环遍历所有插槽

if(pciArr[i)-null)(//如果发现一个空的

pciArr[i]=usb;//将usb设备装在这个插槽上

break;//装上之后结束循环

)

}

)

publicvoidturnOn(){//电脑的开机功能

for(inti=0;i<pciArr.length;i++){//循环遍历所有插槽

if(pciArr[i]!=null){//如果发现有设备

pciArr[i].start();//将PCI设备启动

}

)

System.out.printin("电脑开机成功");

)

publicvoidturnOff(){//电脑的开机功能

for(inti=0;i<pciArr.length;i++){//搐环遍历所有插槽

if(pciArr[i]!=null)(//如果发现有设备

pciArr[i].stop();〃将PCI设备启动

)

}

System.out.printIn("电脑关机成功“);

)

publicstaticvoidmain(String[]args){

Computerc=newComputer();

c.add(newGraphics());

c.add(nevjNetxvorkCard());

c.add(newSoundCard());

c.turnOn();

c.turnOff();

)

第五章

1.编写一个程序,获取一个已知文件的扩展名。

publicclassDemo01{

publicstaticvoidmain(String[]args){

System.out.printin(getExtname("Person.java"));

}

publicstaticStringgetExtname(Stringfilename){

intindex=filename.lastlndexOf

Stringextname=filename.substring(index+1);

returnextname;

}

}

2.编写一个程序,接收一个字符串,将字符串中每个单词的苜字母改为大写。

publicclassDemo02{

publicstaticvoidmain(String[]args){

StringBuffersbn=newStringBuffer("hellowworldandhappynewyear");

StringBufferss=newStringBuffer;

Strings=sbn.toString();

String[]sb-s.split("");

for(inti=0;i<sb.longth;i++){

sb[i]=sb[i].substring(0,1).toUpperCaseO+sb[i].substring(1);

)

for(inti=0;i<sb.length;i++){

ss.append(sb[i]);

ss.append("":;

}

System.out.printIn(ss);

}

}

第八草

1.编写一个程序,向ArrayList集合中添加5个对象,然后使用迭代器输出集合中的对象.

publicclassDemo01{

publicstaticvoidmain(String[]args){

Listlist=newArrayList();

list.add(•'zhangsan");

list.addC'lisi");

list.add("wangwu"t;

list.add("zhaoliu',);

Iteratorit=liss.iterator();

while(it.hasNext()){

Objectobject=(Object)it.next();

System.out.printIn(object);

)

2.编写一个程序,向Properties集合存入5个配置项,并迭代出所有的配置项。

publicclassDemo02{

publicstaticvoidmain(String[]args){

Propertiesprops=newProperties();

props.setProperty("username","zhangsan");

props.setProperty("password'*,"1234560);

props.setProperty("email","zhangsan@");

Enumeratione=pertyNames();

while(e.hasMoreElements()){

Stringname=(String)e.nextElement():

Stringvalue=props.getProperty(name);

System.out.prmtln(name+"="+value);

)

)

)

第七章

编写一个程序,使用定义数组的方式将D盘中的程序拷贝到E盘中。

publicclassDemo01{

publicstaticvoidmain(String[]args)throwslOException{

//创建输入流与源文件相关联

Inputstreamin=newFileInputstream("D:\\jdk-7u60-windows-i586.exe")

//创建输出流与目标文件相关联

Outputstreamout■

newFileOutputStream("E:\\jdk-7u60-windows-i586.exe");

longstart=System.currentTimeMillis();

copyByBuffer(in,out);

longend=System.currentTimeMillis();

System.out.printin("耗时:"+(end-start)+"玄秒");

in.close();

out.close();

}

//定义byte数组作为缓冲区进行拷贝

privatestaticvoidcopyByBuffer(Inputstreamin,Outputstreamout)

throwslOException{

byte[]buffer=newbyte[1024];

intlen;

while((len»in.read(buffer))!«-l){

out.write{buffer,0,len);

}

}

}

2.编写一个程序,遍历出指定目录下所有的.java文件,并将其绝对路径存入一个list集合中输

出。

publicclassDemo02(

publicstaticvoidmain(String[]args){

//创建一个File对象封装路径d:

Filedir=

newFile("D:WeclipseWorkspaceWJavaBasicWorkspace\\test\\srcH);

//创建一个List集合用于存放路径

List<String>list=newArrayList<String>();

//调用方法

listAllJavaFiles(dir,list);

//输出

for{Stringfilename:list)

System.out.printIn(filename);

}

staticvoidlistAllJavaFiles(Filedir,List<String>list){

//获得dir目录中所有的子文件

File[]files=dir.listFiles();

//如果数组为null说明dir是不可打开的目录或者不是目录

if(files==null)(

return;

}

//遍历数组获得子文件

for(Filefile:files){

//判断

if(file.isDirectory()){

//说明文件是目录需要递归调用

listAllJavaFiles(file,list);

}else{

//说明是标准文件

//判断是不是java文件如果是存入list

if(file.getName().endsWith(".java"))

list.add(file.getAbsolutePath());

)

)

)

)

)

第八章

1.设计一个窗体,窗体中有一个按钮,当单击按钮时,可以添加其它按钮,并按数字依次出

现,当单击数字按钮时,被单击按钮消失,此窗体带关闭功能。

publicclassDemo01{

staticintnum=1;

publicstaticvoidmain(String[]args){

//初始化一个frame

Frameframe=newFrame("myframe");

//设置大小

frame.setsize(300.300);

//设苴位置

frame.setLocation(100,100);

//设置布局管理

frame.setLayout(newFlowLayout());

//添加一个按钮

Buttonbtn=newButton("按钮");

frame.add(btn);

frame.setvisible(二rue);

//添加事件监听器监听窗口事件

//通过继承WindowAdapter(适自己渊)来实现WindowListener

frame.addVIindowListener(newWindowAdapter(){

publicvoidw.ndowClosing(WindowEvente){

e.getWindow().dispose();

)

});

//为按钮添加事件鼠标事件事件源是按钮

btn.addMouseListener(newMouseAdapter(){

publicvoidmousedicked(MouseEvente)(

//鼠标雅击了

//获得事件源btn

Buttonbtn=(Button)e.getComponent(:;

//获得btn所在的容器frame

Frameframe"(Frame)btn.getParent();

//添加一个新的btn

ButtonnewBtn=newButton("按钮”+num++);

frame.add:newBtn);

//刷新frame的显示

frame.setvisible(true);

//为newBtn添加事件

newDtn.addMouseListener(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente){

Buttonbtn"(Button)e.getComponent();

btn.getParent().remove(btn);

}

!);

}

1);

}

}

2.编写一个小游戏:设计一餐体,窗体中上下有两个名称为“你来点我啊!!”!!!!!”的按钮,当

鼠标移动到上面按钮时,上面按钮消失,下面的显示;移动到下面时,下面消失,上面的显示。

publicclassDemo02(

staticintnum-1;

publicstaticvoidmain(String[]args){

//初始化一个frame

finalFrameframe-newFrame("myframe");

//设置大小

frame.setSize(300.300);

//设置位置

frame.setLocation(100,100);

//添加一个按钮

finalButtonbtnl=newButton("你来点我啊!!!!!!!!!");

frame.add(btnl,BorderLayout.NORTH);

finalButtonbtn2=newButton("你来点我啊!!!!!!!!!");

frame.add(btn2,BorderLayout.SOUTH);

btn2.setVisible(false);

frame.setVisible(Lrue);

//添加事件监听器,监听窗口事件,

〃通过继承WindoivAdapter(适配器)来实现WindowListeier

frame.addWindowListener(newWindowAdapter()(

publicvoidwmdowClosing(WindowEvente){

e.getWindow().dispose();

}

!);

btnl.addMouseListener(newMouseAdapter(){

publicvoidmouseEntered(MouseEvente)(

btnl.setVisible(false);

btn2.setVisible(true);

frame.setVisible(true);

}

});

btn2.addMouseListener(newMouseAdapter(){

publicvoidmouseEntered(MouseEvente){

btn2.setVisible(false);

btnl.setVisible(true);

frame.setVisible(true);

}

});

}

)

第九章

1.已知在数据库jdbc中有一个名称为user的表,表中包含三个字段id,name,password0要求

使用JDBCUlils工具类编写一个程序,使程序执行后,可以向user表中插入一条数据。

(1)JDBCUtils的代码如下:

importjava.sql.

/**

*工具类

publicclassJDBCUtils{

//加载驱动,并建立数据库连接

publicstaticConnectiongetConnection()throwsSQLException,

ClassNotFoundException{

Class.forName("con.mysql.jdbc.Driver'1);

Stringurl="jdbc:mysql://localhost:3306/jdb3";

Stringusername-"root";

Stringpassword="itcast";

Connectionconn=DriverManager.getConnection(urlzusername,password);

returnconn;

)

//关闭数据库连接,择放资源

publicstaticvoidrelease(Statementstmt,Connectionconn){

if(stmtJ=null)(

try{

stmt.close();

}catch(SQLExceptione)(

e.printStackTrace();

}

stmt=null;

}

if(conn!-null)(

try{

conn.close();

}catch(SQLExceptione){

e.printStackTrace();

}

conn=null;

}

}

publicstaticvoidrelease{ResultSetrs,Statementstmt.Connectionconn)(

if(rs!=null)(

try{

rs.close();

}catch(SQLExceptione){

e.printStackTrace();

}

rs=null;

)

release(stmt,conn);

)

)

(2)实体类User的代码如下:

publicclassUser(

privateintid;

privateStringname;

privateStringpassword;

publicintgetld(){

returnid;

}

publicvoidsetld(intid){

this.id=id;

)

publicStringgetName(){

returnname;

)

publicvoidsetName(Stringname){

=name;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

)

<3)UnuuDau的代码如下;

importjava.sql.

publicclassUserDao{

//添加数据

publicvoidaddUser(Useruser){

Connectionconn=null;

Statementstmt=null;

try(

//获得数据的连接

conn=JDBCUtils.getConnection();

//获得Statement对象

stmt=conn.createStatement();

//发送SQL语句

Stringsql="INSERTINTOuser(id,name,password)"VALUES("

+user.getld()+",'+user.getName()+

+user.getPassword()+"')";

intnum=stmt.executeUpdate(sql);

if(num>0){

System.out.printin("插入数据成功!");

}

}catch(Exceptione){

e.printStackTrace();

}finally{

JDBCUtils.release(stmt,conn);

)

}

(4)测试类UserTest的代码如下:

publicclassUserTest{

publicstaticvoidmain(String[]args){

UserDaouserDao=newUserDao();

Useruser-newUser();

user.setld(l);

user.setName("itcast");

user.setPassword(*1234");

userDao.addUser(user);

}

)

第十章

1.编写•个程序,创建两个线程,要求分别输出26个字母。在输结果时,要显示是哪个线程输出

的字母。

publicclassDemo01(

publicstaticvoidmain(String[]args){

Testtl-newTes二("线程一");

Testt2=newTes二("线程二”);

tl.start();

t2.start();

}

)

classTestextendsThread(

privatecharch-'a,;

publicTest(Stringname)(

setName(name);

}

publicvoidrun(){

chartemp;

for(inti-0;i<26;i++)(

temp=(char)(ch+i);

System.out.prmtln(this.getName()+":n+二emp);

)

)

)

2.编写•个程序,使用Runnable接口的方式创建三个线程,分别输出从0到10的数,每个

线程之间延迟500毫秒,要求渝出的结果如下所示:

线程一:0,1,2,3,4,5,6,7,8,9,10

线程三:0,1,2,3,4.5.6,7,8,9.10

线程二:0,1,2,3,4,567,8,9,10

classMyThreadimplementsRunnable{

Objectlock-newObject();//定义任意一个对象,用作同步代码块的锁

publicvoidrun(){

synchronized(lock)(//定义同步代码块

System.out.println();

try{

System.out.print(Thread.currentThreadO.getName()+

for(inti=0;i<=10;i++){

System.out.print(i);

if(i!=10){

System.out.print

}

)

Thread.sleep(500);//经过的线程休眠500烹秒

}catch(InterruptedExceptione){

e.printStackTrace();

}

}

)

)

publicclassDemo02{

publicstaticvoidmain(String[]args){

MyThreadmyThread-newMyThread();

newThread(myThread,*").start();

newThread(myThread,"线程二").start;

newThread(myThread,"线程三").start();

)

第十一章

1.简述TCP/IP协议的层次结构。

TCP/IP协议的层次结构比较简单,共分为四层,分别是链路层、网络层、传输层和应用层。

其中链路层也称为网络接口层,该层负责监视数据在主机和网络之间的交换。网络层也称网

络互联层,是整个TCP/IP协议的核心,它主要用于将传输的数据进行分组,将分组数据发送

到目标计算机或者网络。传输层主要使网络程序进行通信,在进行网络通信时,可以采用

TCP协议,也可以采用UDP协议。应用层主要负责应用程序的协议,例如HTTP协议、FTP

协议等。

2.简述你对IP地址的认识。

要想使网络中的计算机能够进行通信,必须为每台计算机指定一个标识号,通过这个标识号

来指定接收数据的计算机或者发送数据的计算机。在TCP/IP协议中,这个标识号就是IP地

址,它可以唯一标识一台计算机,目前,1P地址广泛使用的版本是IPv4,它是由4个字节大小

的二进制数来表示,由于二进制形式表示的IP地址非常不便记忆和处理,因此通常会将IP

地址写成卜进制的形式,每个字节用一个卜进制数字(0-255)表示,数字间用符号分开,如

“"。

1.编写一个程序,实现多线程的UDP网络通信。要求如下:

1)编写数据接收类ReceiveThread,该类实现了Runnable接口,重写run()方法实现不断

接受客户端发送数据的功能。

2)编写数据发送类SendThread.该类同样实现了Runnable接口,重写run。方法实现通过

键盘录入数据,将数据向接收端发送的功能。

3)编写测试类TcsiUDP.在main。方法中,同时启动接收端和发送端程序。

(1)数据接收类的代码如下所示:

importjava.io.lOExcoption;

import.Datagrampacket;

import.DatagramSocket;

publicclassReceiveT上readimplementsRunnable{

publicvoidrun(){

try(

//创建接收端Socket对象

DatagramSocketds=newDatagramsocket(10086);

//创建数据包

while(true){

byte[]bys-newbyte[1024];

DatagramPacketdp=newDatagramPacket(bys,bys.length);

//接收数据

ds.receive(dp);

//解析数据

Stringip-dp.getAddress().getHostAddress();

Strings=newString(dp.getData(),0,dp.getLength());

System.out.println("接收端:从"+ip+"主机接收到的数据是:"+s

if("bye".equals(s))(

System.out.printin(”******聊天室关闭******");

ds.close();

break;

)

}

}catch(lOExceptione){

e.printStackTrace();

}

}

}

<2)数据发送类的代码如下所示:

importjava.io.BufferedReader;

importjava.io.lOException;

importjava.io.InputStreamReader;

import.DatagramPacket;

import.Datagramsocket;

import.InetAcdress;

publicclassSendThreadimplementsRunnable(

publicvoidrun(){

try(

//创建发送端Sccket对象

Datagramsocketds=newDatagramsocket();

//封装键盘录入

BufferedReaderbr=newBufferedReader(newInputStreamReader(

System.in));

//创建数据,并可包

Stringline=null;

while((line=br.readLine())!=null){

byte[]bys■line.getBytes();

DatagramPacketdp=newDatagramPacket(bys,bys.length,

IretAddress.getByName("localhost"),10086);

ds.send(dp);

if("bye".equals(line)){

//糅放资源

br.close();

ds.close();

break;

}

//释放资源

br.close();

ds.close();

}catch(lOExceptione){

e.printStackTrace();

}

温馨提示

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

最新文档

评论

0/150

提交评论