打印票据--java

news/2024/11/29 23:32:13/

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();}}

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


http://www.ppmy.cn/news/382125.html

相关文章

web应用票据打印实现(四)

上一篇中&#xff0c;我们已经通过iText生成了共打印的pdf文档&#xff0c;如果没有特别的要求&#xff0c;利用浏览器的pdf插件来预览和打印已经能供满足我们Web应用在浏览器端实现票据套打的要求了。但在我们的项目中&#xff0c;客户要求一次操作之后连续进行打印&#xff0…

web应用票据打印实现(一)

许多web应用的开发中都会涉及到票据打印的功能。常用的Web打印实现的方式有&#xff1a; 1.浏览器打印接口 调用window.print()方法&#xff0c;调用打印机功能打印当前窗口的内容&#xff0c;与单击浏览器的打印按钮效果一致。示例代码如下&#xff1a; <html> …

怎么在一张A4纸上打印2张发票?

平时我们在打印发票时&#xff0c;直接打开会被放大到铺满整张A4纸&#xff0c;这样就会失真&#xff0c;那么应该怎么设置才能让一张A4纸上打印2张发票呢&#xff1f; 1、Word格式 方式1&#xff1a;首先新建一个Word文档后&#xff0c;插入2张发票&#xff0c;并适当排版在…

票据打印, 银行账单打印, 标签印刷, 文档打印, 条码打印, 批量打印, 包装纸打印与设计,可变数据打印,数据库印刷,HMI报表打印,VC++源码库解决方案

票据打印, 银行账单打印, 标签印刷, 文档打印, 条码打印, 批量打印, 包装纸打印与设计&#xff0c;可变数据打印&#xff0c;数据库印刷&#xff0c;HMI报表打印&#xff0c;VC源码库解决方案 -- 全球领先、100%源码全开放、可用于HMI组态报表打印的解决方案&#xff01;   使…

精锐万能票据打印专家

精锐万能票据打印专家是由昆明灵豚科技有限公司面向票据处理市场推出专业票据打印软件。利用该软件可轻松打印现金支票、转帐支票、旅行支票、转账支票、贷记凭证、电汇凭证、信汇凭证、进账单、现金结款单、快递单、汇/本票申请书、收据、各种证件等格式 精锐万能票据打印专家…

Java调用热敏票据打印机打印小票

package com.yc.printer; /** * 源辰信息 * 商品信息 * author navy * 2017年5月23日 */ public class GoodsInfo { private String gname; //商品名称 private String price; //商品单价 private String num; //商品数量 private String total; //小计 Override public Strin…

简单打印-80pos小票模板

设计模板参考 简单打印-双排标签102*30模板设计 简单打印-快递单套打 知识点: 排版横线技巧排版横线上方覆盖居中标签公式应用 自动计算价格 更多功能 请自行挖掘 数据&#xff1a; {"setting": [{"action": "preview","template"…

热敏打印机ESCPOS指令封装类,票据打印从此轻松,佳博系列实测通过

开发背景 接到一个任务&#xff0c;要用热敏打印机打印小票。本人用的是市面上比较常见的佳博热敏打印机。用过票据打印机的人都知道&#xff0c;在小票上打印与普通的打印纸上打印不一样。要通过发送ESCPOS 指令给打印机来完成打印任务&#xff0c;所以控制热敏打印可以看作是…