1、程序答题总结实验题 4 写一程序统计纯文本文件“Early-Precaution.txt”的大写字母、小写字母个数,并将所有小写字母转换为大写字母,输出到result.txt。代码:import java.io.*;public class Getchar FileReader fr; public static void main(String args) FileReader fr; try fr = new FileReader(F:Early-Precaution.txt); File file = new File(F:result.txt); FileWriter fos =new
2、 FileWriter(file); BufferedReader br = new BufferedReader(fr); BufferedWriter bw = new BufferedWriter(fos); String aline; int k=0; int m=0; while(aline = br.readLine()!=null) String str = new String (aline); char s = new charstr.length(); s=str.toCharArray(); for(int i=0;i=a& si=A & si=Z) m+; String
3、 STR = str.toUpperCase(); bw.write(STR + n); br.close(); bw.close(); 小写字母的个数为:); ; 大写字母的个数为:); ; catch (IOException e) / TODO Auto-generated catch block e.printStackTrace(); 实验题 5对象输入与输出流将Student类的一个实例写到文件中student.txt中,并从student.txt中读取这个实例,代码:package objectobject;import java.io.*;public class ReadOb
4、ject public static void main(String args) Student stu=null; try FileInputStream fi=new FileInputStream(c:date.ser); ObjectInputStream si=new ObjectInputStream(fi); stu=(Student) si.readObject(); si.close(); ID: +stu.id+ name:+ stu.name+ age:+stu.age+ dept.:+stu.department); catch(Exception e) ; pack
5、age objectobject;import ;class Student implements Serializable private static final long serialVersionUID = 1L; int id; int age; String name; String department;public Student(int id, String name,int age,String department) this.id=id; this.name=name; this.age=age; this.department =department; package
6、 objectobject;import java.io.*;public class WriteObject public static void main(String args) Student stu=new Student(981036,Li Ming,16,CSD); try FileOutputStream fo=new FileOutputStream(c:date.ser); ObjectOutputStream so=new ObjectOutputStream(fo); so.writeObject(stu); so.close(); catch(Exception e)
7、 任务一:火车售票假设有火车票1000张,创建10个线程模拟10个售票点,每个售票点100毫秒买一张票。打印出售票过程,注意使用synchronized确保同一张票只能卖出一次。代码:public class Taskone public static void main(String args) Yx t = new Yx(); new Thread(t,1).start(); new Thread(t,2).start(); new Thread(t,3).start(); new Thread(t,4).start(); new Thread(t,5).start(); new Thre
8、ad(t,6).start(); new Thread(t,7).start(); new Thread(t,8).start(); new Thread(t,9).start(); new Thread(t,10).start(); public class Yx extends Thread int ticket = 200; String name = ; public void run() while (true) synchronized (name) if (ticket = 0) break; 第 + Thread.currentThread().getName() + 售票点卖
9、出第 + ticket- + 张票); try Thread.sleep(100); catch (InterruptedException e) e.printStackTrace(); 任务二:银行存款假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次100元将钱到入。试编写一个程序,模拟实际作业。代码: class CBank private static int sum=0; public static void add(int n) int tmp=sum; tmp=tmp+n; / 累加汇款总额 try Thread.sleep(
10、int)(10000*Math.random(); / 小睡几秒钟 catch(InterruptedException e) sum=tmp; sum= +sum); class CCustomer extends Thread / CCustomer类,继承自Thread类 public void run() / run() method for(int i=1;i=4;i+) CBank.add(1000); / sum= +CBank); / 将1000元分三次汇入 public class bank public static void main(String args) CCust
11、omer c1=new CCustomer(); CCustomer c2=new CCustomer(); c1.start(); c2.start(); 任务三:生产者和消费者问题生产者生产面包,消费者消费面包,“生产”和“消费”各代表一个进程,当生产者没有生产出面包的时候,消费者不能消费面包。当消费者没有消费完面包的时候,生产者不能再生产。代码:package Product;public class ThreadA extends Thread Water water; public ThreadA(Water waterArg) water = waterArg; public vo
12、id run() 开始生产); for (int i = 1; i = 1; i-) / 循环5侧 try Thread.sleep(1000); / 休眠1秒,模拟1分钟 + 个); catch (InterruptedException e) e.printStackTrace(); water.setWater(false); / 设置水塘无水状态 消费完毕。); 任务一:InetAddress类练习使用InetAddress类的方法获取;获取本地机的名称和IP地址。代码:package Lab8;import ;public class InetAddressDemo public s
13、tatic void main(String args)throws Exception InetAddress locAdd = null ; InetAddress pku = null ; locAdd = InetAddress.getLocalHost() ;/ 得到本机 ; pku = InetAddress.getByName(); 学校IP地址: + pku.getHostAddress() ; 本机的IP地址: + locAdd.getHostAddress() ; 本机的名称+locAdd.getHostName(); 任务二:Socket类和ServerSocket类练习
14、:利用Socket类和ServerSocket类编写一个C/S程序,实现C/S通信。客户端向服务器端发送“Time”命令,服务器端接受到该字符串后将服务器端当前时间返回给客户端;客户端向服务器端发送“Exit”命令,服务器端向客户端返回“Bye”后退出。代码:package Lab8;import java.io.*;import .*;import java.util.*;public class Server implements Runnablepublic ServerSocket ss;public Socket s;public InputStream is;public Outp
15、utStream os;public Server() 服务器已启动!); try ss=new ServerSocket(8002); s=ss.accept(); is=s.getInputStream(); os=s.getOutputStream(); Thread t=new Thread(this); t.start(); while(true) Scanner a = new Scanner(System.in); String b = a.next(); os.write(b.getBytes(); catch (IOException e) e.printStackTrace
16、(); public void run() while(true) try while (s.isConnected() Thread.sleep(50); byte buy = new byte100; int len; len = is.read(buy); String string = new String(buy, 0, len); if(string.equals(Time) Calendar c = Calendar.getInstance(); String str=现在时间是:+c.get(Calendar.HOUR_OF_DAY)+:+c.get(Calendar.MINU
17、TE)+:+c.get(Calendar.SECOND); ; os.write(str.getBytes(); else if(string.equals(Exit) os.write(Bye!.getBytes(); os.flush(); 连接已经断开!); System.exit(0); else ; is.close(); os.close(); s.close(); ss.close(); catch (Exception e) e.printStackTrace(); public static void main(String args) new Server();任务三:Da
18、tagramSocket类和DatagramPacket类练习编写一个数据报通信程序,实现简单的聊天功能。基本要求:两人一组编写完整程序。为了给大家减轻负担,Swing部分的代码已给出。(请同学们到作业管理系统下载Lab8.zip中的UDPmessage.java)代码:任务四:传输对象输入与输出流现有一个Student类,程序实现:从服务器端传输一个Student对象到客户端,基本要求:使用Socket类和ServerSocket类实现。代码:package Lab8;import ; import ; import ; import ; import ; public class Obje
19、ctServer public static void main(String args) ServerSocket server = null; Socket s = null; OutputStream ops= null; ObjectOutputStream oos =null; Student stu=new Student(10090,小明,20); try server = new ServerSocket(9001); s = server.accept(); ops = s.getOutputStream(); oos = new ObjectOutputStream(ops); oos.writeObject(stu); oos.close(); s.close(); server.close(); catch (IOException e) e.printStackTrace();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1