IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 打印票据--java -> 正文阅读

[Java知识库]打印票据--java


import java.util.Random;
class commodity{ //商品
	private String type,size;
	public commodity(String s)    { type=s;}
	public String getType()       { return type; }
	public String getSize()       { return size; }
	public double price()         { return 0; }
	public void  addNumber(int n) { ;}
	public void deleteNumber()    { ;}
	public int getNumber()        { return 0;}
}
class Usb extends commodity{
	private double p=100; 
	private String size ="Inspire T10";
	public static int number;
	public void addNumber(int n)  { number+=n;}
	public void deleteNumber()    { number--;}
	public String getSize()       { return size; }
	public int getNumber()        { return number;}
	public Usb()                  { super("U盘"); }
	public double price()         { return p; }
	public String toString()      
	{ return getType()+"\t"+getSize()+"\t"+getNumber()+"\t"+price()+"\t"+price()*getNumber();   }
	public static Usb Create()    { return new Usb(); }
}
class Screen extends commodity{
	private double p=2000;
	private String size ="Inspire T11";
	public static int number;
	public void addNumber(int n)  { number+=n;}
	public void deleteNumber()    { number--;}
	public int getNumber()        { return number;}
	public String getSize()       { return size; }
	public Screen()               { super("显示器"); }
	public double price()         { return p; }
	public String toString()      
	{ return getType()+"\t"+getSize()+"\t"+getNumber()+"\t"+price()+"\t"+price()*getNumber();   }
	public static Screen Create() { return new Screen(); }
}
class Music extends commodity{
	private double p=300;
	private String size ="Inspire T12";
	public static int number;
	public void  addNumber(int n) { number+=n;}
	public void deleteNumber()    { number--;}
	public int getNumber()        { return number;}
	public String getSize()       { return size; }
	public Music()                { super("一对音箱"); }
	public double price()         { return p; }
	public String toString()      
	{ return getType()+"\t"+getSize()+"\t"+getNumber()+"\t"+price()+"\t"+price()*getNumber();   }
	public static Music Create()  { return new Music(); }
}
class shoppingCart{
	private commodity[] commodities;
	private int totalnum;//商品总数量
	private int cartlen=30; //购物车最大容量
	public shoppingCart () {
		commodities = new commodity[cartlen];
	}
	public void filtrate() {//过滤掉重复的
		commodity[] com=new commodity[cartlen];
		com[0]=commodities[0];
		int i,j,k; i=0;j=0;
		while(i<totalnum) {
			k=0; i++;
			while(k<=j) {
				if(com[k].getType()==commodities[i].getType())
				{ i++; break;}
				else k++;
			}
		}	
	}
	public commodity[] Filtrate() {
		commodity[] coms = new commodity[20];
		int comsTail = 0;
		int i=0;
		boolean isAdd = false;
		while(i<totalnum) {
			int j=0;
			while(j<comsTail) {
				if(commodities[i].getType()==coms[j].getType()) {
					isAdd = false;
					break;
				}
				isAdd = true;
				j++;
			}
			if(comsTail==0) {isAdd=true;}
			if(isAdd) {
				coms[comsTail] = commodities[i];
				comsTail++;
			}
			i++;
		}
		return coms;
	}
	
	public void add(commodity c,int n) {//增加
		if(totalnum+n > cartlen)
		{
			System.out.print("购物车已满");
			return ;
		}
		for(int i=totalnum;i<totalnum+n;i++)
		commodities[i]=c;
		totalnum=totalnum+n;
		c.addNumber(n);
	}
	public void delete(commodity c) {//删去
		if(find(c)==-1) {
			System.out.print("购物车中没有这个商品!");
			return ;
		}
		for(int i =find(c);i<totalnum-1;i++) {
			commodities[i]=commodities[i+1];
		}
		totalnum--;
		c.deleteNumber();
	}
	public int find(commodity c) {
		for(int i=0;i<totalnum;i++) {
			if(commodities[i].getType()==c.getType()) //不能用对象直接去比较,要比较对象的属性
				return i;
		}
		return -1;		
	}
	public void show() {
		commodity[] c = Filtrate();
		for(int i=0; i<c.length; i++)
		{
			if(c[i]==null) continue;
			System.out.println(c[i]);
		}
		double s=0;
		for(int i=0; i<totalnum; i++)
		{
			if(c[i]==null) continue;
			s=s+c[i].price()*c[i].getNumber();
		}
		System.out.println("总金额="+s);
	}
	public void printBill(String buyer) {
		Random random = new Random();
		int orderNum = random.nextInt(999999);
		System.out.print("发票抬头:"+buyer+"\n");
		System.out.print("订单号:"+orderNum+"\n");
		System.out.print("货物\t型号\t\t数量\t单价\t价格"+"\n");
	}
}
class App3{
	public static void main(String[] agrs) {
		shoppingCart sc =new shoppingCart();
		sc.add(Usb.Create(),1);
		sc.add(Screen.Create(), 1);
		sc.add(Music.Create(), 1);
		sc.printBill("小可爱");
		sc.show();
		//System.out.println("总金额="+sc.sum());
		System.out.println("增加2个U盘:");
		sc.add(Usb.Create(),2);
		//sc.printBill("小可爱");
		sc.show();
		//System.out.println("总金额="+sc.sum());
		System.out.println("删除1个U盘,1个音响:");
		sc.delete(Music.Create());
		sc.delete(Usb.Create());
		//sc.printBill("小可爱");
		sc.show();
	}
	
}

运行结果:
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:20:29  更:2021-11-09 19:22:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/24 11:44:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计