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相关推荐

  1. springboot的java打印票据-4

    java打印 经过前几次的配置与解析,现在来说下java打印.java的api打印可以有字符串,画线,图片等.我们这里只用这两种. 1.打印字符串与图片 来看下打印类的结构.   这里在服务层初始化这 ...

  2. 【Android】Android 集成佳博80打印机打印票据

    文章目录 [Android]Android 集成佳博80打印机打印票据 1.集成佳博80打印机依赖 2.规范调用接口 3.使用到的相关对象以及工具类 4.MainActivity初始化接口 5.Uni ...

  3. Android手机蓝牙连接热敏打印机 打印票据

    手机蓝牙连接热敏打印机 打印票据 话不多说上代码: 项目地址:可直接作为项目依赖 引用 allprojects {repositories {...maven { url 'https://jitpa ...

  4. 《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java

    <LeetCode力扣练习>剑指 Offer 29. 顺时针打印矩阵 Java 一.资源 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matr ...

  5. 《LeetCode力扣练习》剑指 Offer 06. 从尾到头打印链表 Java

    <LeetCode力扣练习>剑指 Offer 06. 从尾到头打印链表 Java 一.资源 题目: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入: ...

  6. 双层循环嵌套打印矩形 java

    双层循环嵌套打印矩形 java public class testone {public static void main(String[] args) {// 打印多行内容 假设打印line_num ...

  7. 如何优雅地打印一个Java对象?

    你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下). 在一个月黑风高的夜晚,我思前想后,觉得再也不能 ...

  8. 【Android】Android 集成商米内置打印机打印票据

    文章目录 [Android]Android 集成商米内置打印机打印票据 1.集成商米打印依赖 2.规范接口接口 3.使用到的相关对象以及工具类 4.MainActivity初始化接口 5.Uniapp ...

  9. 中创易票通打印票据支票 非凡软件

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

最新文章

  1. 如何搭建基于容器的工业互联网PaaS平台
  2. Asp.net Mvc 多级控制器 路由重写 及 多级Views目录 的寻找视图的规则 (多级路由) 如:Admin/Test/Index...
  3. 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )
  4. acid四大特性_深入理解MySQL的ACID四大特性原理
  5. T-SQL LIKE子句 模糊查询
  6. ​我敢说,这是最全的常用设计模式汇总
  7. apache mysql 登陆_Apache站点,注册登陆功能的实现
  8. js验证固定电话、手机号码(代码大全)
  9. 【python】-- 类的继承(新式类/经典类)、多态
  10. Golang入门~搭建Beego
  11. IT技术人需要具备哪些才能成功
  12. Prototype使用$w()函数
  13. linux精简版远程登录,Linux下定制SSH来简化远程访问的方法
  14. Android 客户端Socket 与 Java服务端ServerSocket
  15. Collections集合
  16. 刘鹏教授接受新华日报财经客户端采访:智能制造应用落地生根,“江苏智造”进入快速增长期...
  17. 四足机器人—matlab机器人工具箱DH建模
  18. AAAI 2021-TextGAIL:Generative Adversarial Imitation Learning for Text Generation
  19. Effective C++条款40:明智而审慎地使用多重继承(Use multiple inheritance judiciously)
  20. 近视了也没关系,以后可以做手术修复,真的对吗?

热门文章

  1. Activiti6.0流程引擎学习——(11)使用IDEA编码实现的请假流程
  2. python定时器库_python定时器示例代码
  3. Nginx+Tomcat 实现反向代理
  4. css3 实现 太极图
  5. MongoDB 常用命令总结
  6. fzu 2231 平行四边形数
  7. SpringBoot + Activiti6简单教程包含任意跳转节点
  8. 如何生成小程序太阳码
  9. c语言中英文翻译 毕业设计,c语言中英文翻译资料 本科毕业论文.doc
  10. 如何从一个普通的屌丝逆袭为一个程序员屌丝?(连载)