java接口作业——万能打印程序

java接口作业——万能打印程序

java接口作业——万能打印程序_第1张图片

没实现具体操作,就很抽象的。。。阿巴阿巴看看就好。

package Allprint;

//打印接口
public interface Print {
    public void  ready_to_print();//准备打印
    public void printing();//正在打印
    public void print_end();//打印结束
    public void addpt();
}

package Allprint;

//适配器
public abstract class Print_USB implements Print{
	//准备打印
    public void ready_to_print()
    {
    	
    }
    //正在打印
    public void printing()
    {
    	
    }
    //打印完毕
    public void print_end()
    {
    	
    }
    //添加文件
    public void addpt()
    {
    	
    }
    
}

package Allprint;

//Word 文件类型
public class Word extends Print_USB{
	
	
    public void ready_to_print()
    {
    	System.out.println("Word文档准备打印");
    }
    
    public void printing()
    {
    	System.out.println("Word 文档正在打印中");
    }
    
    public void print_end()
    {
    	System.out.println("Word文件打印完毕");
    }
    
    public void addpt()
    {
    	System.out.println("Word文件加入打印队列");
    }
}

package Allprint;

//Pdf 文件类型
public class Pdf extends Print_USB{

    public void ready_to_print()
    {
    	System.out.println("PDF文件准备打印");
    }
    
    public void printing()
    {
    	System.out.println("PDF文件正在打印中");
    }
    
    public void print_end()
    {
    	System.out.println("PDF文件打印完毕");
    }
    
    public void addpt()
    {
    	System.out.println("PDF文件加入打印队列");
    }

}

package Allprint;

//XLS 文件类
public class Xls extends Print_USB{


    public void ready_to_print()
    {
    	System.out.println("XLS文件准备打印");
    }
    
    public void printing()
    {
    	System.out.println("XLS文件正在打印中");
    }
    
    public void print_end()
    {
    	System.out.println("XLS文件打印完毕");
    }
    public void addpt()
    {
    	System.out.println("Xls文件加入打印队列");
    }
}

package Allprint;

//操作的电脑
public class Computer {
	
    private Print[] ptt=new Print[200];
    private int Print_num=0;
    
    public void add(Print pt)
    {
    	 Print_num++;
    	 ptt[Print_num]=pt;
    	 pt.addpt();
    }
    
    //查询准备打印的文件
    public void ck_ready_to_print()
    {
    	for(int i=0;i<ptt.length;i++)
    	{
    		if(ptt[i]!=null)
    		{
    			ptt[i].ready_to_print();
    		}
    	}
    }
    
    //查询正在打印的文件
    public void ck_printing()
    {
    	for(int i=0;i<ptt.length;i++)
    	{
    		if(ptt[i]!=null) 
    		{
    			//正在打印
    			ptt[i].printing();
    			
    			//其他函数....
    			
    			//结束打印
    			ptt[i].print_end();
    			break;//只找到现在打的一份即可
    		}
    	}
    }
    
    //查询目前有多少文件等待打印
    public void wait_num(int a)
    {
    	if(a==1)
    	{
    		System.out.println("目前有 "+Print_num+" 份文件等待打印");
        	ck_ready_to_print();
    	}
    	else 
    	{
    		System.out.println("目前打印文件是");
    		ck_printing();
    	}
    	 
    }
}

package Allprint;

import java.util.Scanner;

//测试类
public class Tsxt {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    
		Computer p=new Computer();
		
		Scanner input= new Scanner(System.in);
		while(true)
		{
		System.out.println("选择操作编号");
		System.out.println("查询目前打印文件(1) 添加打印文件(2)");
		int n=input.nextInt();
		switch(n)
		{
	    	case 1:
	    		{   
	    			System.out.println("查询打印队列(1)查询目前打印文件(2)");
	    			int cs1=input.nextInt();
	    			p.wait_num(cs1);break;
	    		
	    		}
	    	case 2:
	    	    {
	    	    	 System.out.println("填写要添加的文件序号");
	    	    	 System.out.println("Word(1) Pdf(2) Xls(3)");
	    		     int cs2=input.nextInt();
	    		     switch(cs2)
	    		     {
	    		         case 1:p.add(new Word());break;
	    		         case 2:p.add(new Pdf());break;
	    		         case 3:p.add(new Xls());break;
	    		     }
		        }
		
	   }
    }
	}

}

你可能感兴趣的:(Java,java,接口,抽象类)