食堂售饭系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• messList:食堂下拉框 • machineList:售饭机下
拉框
• public void setMachineList() { • int i =
messList.getSelectedIndex(); • switch (i) { • case 0: • setMachineList(“第一食堂”); • break; • case 1: • setMachineList (“第二食堂”); • break; • case 2: • setMachineList((“第三食堂”); • break; •}
食堂售饭系统C/S
-----售饭界面及数据
目录
• 一.界面展示及液晶屏显示 • 二.乒乓按钮的实现 • 三.售饭数据的保存 • 四.插入数据库时注意的问题
一.界面展示
液晶屏显示
• 对于液晶屏的显示,采用的是贴图的方式,即 采用Lable类中的setIcon方法.
• Lbl.setIcon(new ImageIcon(“image.jpg")); • 不过事先要准备图片 • 下面是我准备的图片截图
java.sql.Timestamp(utilDate.getTime());
– System.out.println("util Date : " + utilDate); – System.out.println("sql Date : "+sqlDate); – System.out.println("sql Time : "+ sqlTime); – System.out.println("sql TimeStamp "+sqlTimeStamp);
• cardId.setText(cr.getCardId()+""); • roomId.setText(cr.getRoomId()+""); • machineNO.setText(cr.getMachineNO()+""); • consumeMoney.setText(cr.getConsumeMoney()+""); • consumeDate.setText( • new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cr.getConsumeDate()));
• 对于用户的输入,我选择用一个StringBuffer 对象暂存一下,根据其存储的字符串,来显示 消费额,以及更新余额显示
• 用一个ArrayList对象保存6个Lable对象,来 控制液晶屏的显示,代码如下:
• public void conJPanelShow() {//消费面板 • int j = consumeArrList.size();//在此j=6,即面板中
•}
Xml文件读写操作
• 读操作也采用dom4j.将xml中的数据读出,将 每一条consumeRecord中的数据存放到一 个ConsumeRecord对象中,然后将所有的对 象放入一个list中进行存储.然后将读出的数 据存入数据库.
写入数据库时注意
• 以前将日期类型的数据写入数据库时,用的 是以下方法
• + “.jpg”));//图片的命名格式为:dig+数字+.jpg
•}
•}
二.乒乓按钮的实现
• 插卡,拔卡按钮的显示只需一个变量控制即 可,来提示用户的操作
• 开关按钮和插卡拔卡类似,只是在电源为关 状态时,同时要设置某些面板为不可见状态
设置食堂及售饭机
• 两个的设置均为下拉框, 但是售饭机的设置要依 赖于食堂的选择.所以, 可能在选择食堂时,加一 个事件处理,即根据选择 的食堂,来更新售饭机下 拉框的显示.
• 当点击上传数据或者关闭电源时:关闭文件, 同时上传数据.
• 下次将记录保存到文件时,是对文件进行覆 盖.
记录式文件
• 记录式文件的写操作,即 以对象为单位进行 写操作.P291
• 必须将写入文件的类实java.io.Serializable 接口, 以告知java每次操作读写多少字节
• 记录式文件不能通过普通的文本编辑器查 看内容,须用程序实现对内容的查看.
• public class Test { • public static void main(String []args){
– java.util.Date utilDate = new java.util.Date(); – java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); – java.sql.Time sqlTime = new java.sql.Time(utilDate.getTime()); – java.sql.Timestamp sqlTimeStamp = new
• Public class ConsumeRecord{ • private int cardId; //卡号 • private int roomId; //食堂号 • private int machineNO; //机器号 • private double consumeMoney;//消费金
可以显示的位数 • int z = consumeSB.length();//consumeSB为用户
输入的消费金额位数
• for (int i = 0; i < j && i < z; i++) {
• consumeArrList.get(i).setIcon(
• new ImageIcon("res/dig" + consumeSB.charAt(z - i - 1)
额 • private Date consumeDate; //消费时间 • //getter ,setter方法
•}
• 其它三个类实现此接口
<<interface>>MyFileWriter
TextWriter
ObjectWriter
XmlWriter
文件写操作
• 文件写操作要注意的是,写完以后一定要关 流.否则文件中没有数据写入
Xml文件写操作
• 采用的是dom4j将数据写入xml文件//myRoot为根结点<consumeRecors/> • public void writeFiles(ConsumeRecord cr) { • //根结点下加入一个字节点<consumeRecord/> • Element consumeRecord = myRoot.addElement("consumeRecord"); • Element cardId = consumeRecord.addElement("cardId"); • Element roomId = consumeRecord.addElement("roomId"); • Element machineNO = consumeRecord.addElement("machineNO"); • Element consumeMoney = consumeRecord.addElement("consumeMoney"); • Element consumeDate = consumeRecord.addElement("consumeDate");
•} •}
输出结果
•wenku.baidu.com
因此
• 如果要将保存的数据精确到秒,则语句应该 为:
• Java.util.Date d = new java.util.Date(); • preparedstatement.setTimestamp(5, new
java.sql.Timestamp(d.getTime()));
谢谢!!!
•}
三.售饭数据的保存
• 售饭数据先进行写文件操作. • 由于以三种文件的方式保存,因此根据三种
文件进行写操作的共性,设计了一个公用的 接口. • public interface MyFileWriter { • public void writeFiles(ConsumeRecord cr);//将每一条消费记录写入文件 • public void closeWrite(); •}
• Java.util.Date d = new java.util.Date(); • preparedstatement.setDate(1,java.sql.Dat
e(d.getTime()); • 用这种方式插入时,不能将 小时,分钟,秒插
入,即从数据库取出时间时,只能精确到天
下面看一个小例子
相关文档
最新文档