900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 模拟QQ相册上传图片or火车卖票

模拟QQ相册上传图片or火车卖票

时间:2021-10-07 05:35:09

相关推荐

模拟QQ相册上传图片or火车卖票

1.模拟QQ相册上传图片(上传指定文件夹下所有的图片)

多线程上传(每个图片开辟一个子线程)

public class dome6 extends Thread {static class qqsc extends Thread {@Overridepublic void run() {System.out.println(this.getName() + "----->图片开始上传");for (int i = 1; i <= 5; i++) {System.out.println(this.getName() + "\t" + (i * 20 + "%"));try {qqsc.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}System.out.println(this.getName() + "----->图片上传完毕");}private void Sc() throws IOException {File file = new File("D:\\Test\\");//创建文件对象String s[] = file.list();for (int i = 0; i < s.length; i++) {System.out.println(s[i]);FileInputStream inputStream = new FileInputStream("D:\\Test\\" + s[i]); //图片文件FileOutputStream outputStream = new FileOutputStream("D:\\Test1\\" + s[i]);//新目录下int a = 0;while ((a = inputStream.read()) != -1) { //outputStream.write(a);//写入}outputStream.close();//g关闭资源inputStream.close();}public static void main(String[] args) throws IOException {qqsc s = new qqsc();qqsc s1 = new qqsc();s.Sc();s.start();s1.start();}}}}

测试结果如下:

也许这是伪代码凑合凑合看吧

2.火车卖票

Ticket类(车票)

private Integer ticketNum; //票号

private String trainNum; //车次

private String Origin; //始发地

private String destination; //目的地

package dome2;public class Ticket {private Integer ticketNum; //票号private String trainNum; //车次private String Origin; //始发地private String destination; //目的地public Ticket() {}@Overridepublic String toString() {return "Ticket{" +"ticketNum=" + ticketNum +", trainNum='" + trainNum + '\'' +", Origin='" + Origin + '\'' +", destination='" + destination + '\'' +'}';}public Ticket(Integer ticketNum, String trainNum, String origin, String destination) {this.ticketNum = ticketNum;this.trainNum = trainNum;Origin = origin;this.destination = destination;}public Integer getTicketNum() {return ticketNum;}public void setTicketNum(Integer ticketNum) {this.ticketNum = ticketNum;}public String getTrainNum() {return trainNum;}public void setTrainNum(String trainNum) {this.trainNum = trainNum;}public String getOrigin() {return Origin;}public void setOrigin(String origin) {Origin = origin;}public String getDestination() {return destination;}public void setDestination(String destination) {this.destination = destination;}}

Ticketer子线程类(售票员)

private List<Ticket> tickets; //票库(多个售票员同一个票库)

//卖票方法(从集合中删除一张票)

public void sellingTickets(){

从票库删除一张票

}

重写Thread线程类的run方法

实现多线程卖票,“卖完为止”

//如果剩余有票,则调用卖票方法

//否则,票已售完

package dome2;import java.util.List;public class Ticketer extends Thread{private List<Ticket> tickets;//票库(多个售票员同一个票库)private String name;public List<Ticket> getTickets() {return tickets;}public void setTickets(List<Ticket> tickets) {this.tickets = tickets;}public void run(){System.out.println(this.getName()+"开始卖票");for (int i = 1; i <=10; i++) {System.out.println(this.getName()+"卖出"+i);}}}

测试类中创建两个子线程进行卖票

public class Test {

public static void main(String[] args) {

//票库

List<Ticket> tickets = new ArrayList<>();

for (int i = 1; i <= 20 ; i++) {

Ticket ticket = new Ticket(i,"G","郑州","重庆");

tickets.add(ticket);

}

Ticketer t1 = new Ticketer();

t1.setName("小红");

Ticketer t2 = new Ticketer();

t2.setName("小丽");

//给两个售票员设置同一个票库

t1.setTickets(tickets);

t2.setTickets(tickets);

//开始子线程进行售票

t1.start();

t2.start();

}

}

测试类就是写好的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。