火车票销售系统实验报告.doc_第1页
火车票销售系统实验报告.doc_第2页
火车票销售系统实验报告.doc_第3页
火车票销售系统实验报告.doc_第4页
火车票销售系统实验报告.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验内容: 使用JAVA编写一个火车票销售系统完成订票,改签,查询,退票功能。实验目的: 通过使用JAVA语言编写这次火车票销售系统,来完善这学期所学习的JAVA知识和理论。总结这学期得学习中自己对各个知识点的掌握情况实验过程:1. 主界面如图所示: 通过主界面可以实现订票,退票,改签,查询和退出功能。2. 订票界面如图所示: 通过订票界面我们可以实现查询车次,出发时间,终点站,软卧座位,普快火车和车票数量功能。3. 退票界面如图所示: 通过退票界面,你可以通过输入编号等进行退票。讨论分析: 这次的编写让我们感觉很是吃力,设置的功能中订票,查询等功能因为数据库的原因所以有很多都不能使用!但是这是我们组全体的成员的努力的结晶,在编写的过程中,我们仍然学到了很多东西,找到了很多自己掌握不牢和没掌握的知识。在这次程序设计完成之后,我相信我们会对JAVA知识有一个更加全面的了解。主要代码: 数据库连接代码:package com.qdlg.trainticketmanger.model;import java.sql.Connection;import java.sql.DriverManager;public class DBConnection /* * * return */public static Connection getConn()String url=jdbc:mysql:/localhost:3306/TrainTicketManager;String user=root;String password=;Connection conn = null;try Class.forName(com.mysql.jdbc.Driver); conn=DriverManager.getConnection(url,user,password); return conn; catch (Exception e) e.printStackTrace();return conn;/* * * param args */public static void main(String args) Connection conn = null;conn=getConn();if(conn=null)System.out.println(连接数据库失败!);elseSystem.out.println(连接数据库成功!);界面代码:package com.qdlg.trainticketmanger.frame;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.JToolBar;import javax.swing.border.EtchedBorder;import javax.swing.border.TitledBorder;import javax.swing.JOptionPane;import com.qdlg.trainticketmanger.service.TicketManager;public class BackFrame extends JFrameprivate static final long serialVersionUID = 1L;HandleControlButton handel=new HandleControlButton();JToolBar toolBar=new JToolBar();JButton but_exit=new JButton( EXIT );JButton but_reback = new JButton( 退 票 );JButton but_alter=new JButton( 改 签 );JTextField ticketNumber=new JTextField(6); JTextField endStation=new JTextField(6);JTextField trainNumber=new JTextField(6); JTextField firstStation=new JTextField(6);public BackFrame() setTitle(火车站售票系统模拟-退票界面);Toolkit toolkit = Toolkit.getDefaultToolkit();Dimension wndSize = toolkit.getScreenSize();setBounds(wndSize.width / 4, wndSize.height / 4, 600,180);setResizable(false);JPanel panel1 = new JPanel();panel1.setBorder(new TitledBorder(new EtchedBorder(), );panel1.add( new JLabel(车票编号:);panel1.add(ticketNumber);panel1.add( new JLabel(车次:);panel1.add(trainNumber);panel1.add( new JLabel(出发站:);panel1.add(firstStation);panel1.add( new JLabel(到达站:);panel1.add(endStation);but_reback.addActionListener(handel);but_alter.addActionListener(handel);toolBar.add(but_reback);toolBar.add(but_alter);toolBar.add(but_exit);but_exit.addActionListener(new ActionListener()public void actionPerformed(ActionEvent event) dispose(););ImageIcon imageIcon=new ImageIcon(pictraincheck.gif);JPanel panel2 = new JPanel();panel2.add(new JLabel(imageIcon);Box top=Box.createVerticalBox();top.add(Box.createVerticalStrut(5);top.add(panel2);top.add(Box.createVerticalStrut(2);top.add(panel1);top.add(Box.createGlue();JPanel panel = new JPanel();panel.setBorder(new TitledBorder(new EtchedBorder(), );add(new JLabel( ),BorderLayout.SOUTH);add(top,BorderLayout.CENTER);add(toolBar, BorderLayout.NORTH);add(new JLabel( ), BorderLayout.EAST);add(new JLabel( ), BorderLayout.WEST);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true); class HandleControlButton implements ActionListener public void actionPerformed(ActionEvent e) Object source = e.getSource();if (source = but_reback) TicketManager ticketManager=new TicketManager();boolean isdelete=ticketManager.delete(String)ticketNumber.getText(),(String)trainNumber.getText(); if(isdelete)JOptionPane.showMessageDialog(null,Success,INF, JOptionPane.INFORMATION_MESSAGE);elseJOptionPane.showMessageDialog(null,Fail,INF, JOptionPane.INFORMATION_MESSAGE); else if (source = but_alter) TicketBookFrame ticketBookFrame =new TicketBookFrame();ticketBookFrame.setTicketInf(String)trainNumber.getText(),(String)firstStation.getText(),(String)endStation.getText();ticketBookFrame.showResult();public static void main(String args) new BackFrame();package com.qdlg.trainticketmanger.frame;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.SQLException;import java.util.List;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.JToolBar;import javax.swing.border.EtchedBorder;import javax.swing.border.TitledBorder;import javax.swing.event.TableModelEvent;import javax.swing.event.TableModelListener;import javax.swing.table.DefaultTableModel;import com.qdlg.trainticketmanger.model.Ticket;import com.qdlg.trainticketmanger.model.TicketSale;import com.qdlg.trainticketmanger.model.TrainInf;import com.qdlg.trainticketmanger.service.TicketManager;import com.qdlg.trainticketmanger.service.TicketSaleManager;import com.qdlg.trainticketmanger.service.TrainManager;public class TicketBookFrame extends JFrame implements TableModelListener /* * */private static final long serialVersionUID = 1L;HandleControlButton handel = new HandleControlButton();JToolBar toolBar = new JToolBar();JButton but_exit = new JButton( 关 闭 );JButton but_select = new JButton( 查 询 );/JButton but_alter = new JButton( 改 签 );JButton but_back = new JButton( 退 票 );JButton outTicket = new JButton( 出 票 );JTextField trainNumber = new JTextField(6);/JTextField trainDate = new JTextField(6);JTextField startStation = new JTextField(4);JTextField endStation = new JTextField(4);JComboBox trainDate = new JComboBox();JComboBox grade = new JComboBox();JComboBox type = new JComboBox();JComboBox clientNumber = new JComboBox();Object tableCells = new Object1613;int materialIds = new int21;JTable table;JScrollPane scrollpane;Box top;Box top1 = Box.createVerticalBox();JPanel panel5 = new JPanel();JPanel panel4 = new JPanel();JPanel panel8 = new JPanel();JPanel panel1 = new JPanel();JLabel label_trainNumber = new JLabel(车次: );JLabel label_trainDate = new JLabel(发车日期: );JLabel label_startStation = new JLabel(出发站: );JLabel label_endStation = new JLabel(到达站: );JLabel label_clientNumber = new JLabel(购票数量: );JLabel label_type = new JLabel(类型: );/学票/军人/残疾/普通JLabel label_grade = new JLabel(级别: );/软座/硬座/软卧/硬卧DefaultTableModel dataModel;int tableRow = 16;/* * 构造函数 */public TicketBookFrame() scrollpane = setJTable();for (int i = 0; i 16; i+) tableCellsi0 = i + 1;setTitle(售票界面);Toolkit toolkit = Toolkit.getDefaultToolkit();Dimension wndSize = toolkit.getScreenSize();setBounds(wndSize.width / 8, wndSize.height / 8, 850, 500);/toolBar.add(but_alter);toolBar.add(but_back);toolBar.add(but_select);toolBar.add(outTicket);toolBar.add(but_exit);panel1.add(label_trainNumber);panel1.add(trainNumber);panel1.add(label_trainDate);panel1.add(trainDate);panel1.add(label_startStation);panel1.add(startStation);panel1.add(label_endStation);panel1.add(endStation);panel1.add(label_type);panel1.add(type);panel1.add(label_grade);panel1.add(grade);panel1.add(label_clientNumber);panel1.add(clientNumber);/初始化grade.addItem(硬座);grade.addItem(软座);grade.addItem(硬卧);grade.addItem(软卧);type.addItem(普);type.addItem(学);type.addItem(军);type.addItem(残);for (int i = 1; i 30; i+) clientNumber.addItem(i);trainDate.addItem(2008.9.+i);top1.setBorder(new TitledBorder(new EtchedBorder(), );JPanel panel2 = new JPanel();JPanel panel3 = new JPanel();panel4.add(new JLabel(- 售 票 界 面 -);top1.add(panel4);top1.add(panel1);top1.add(Box.createVerticalStrut(1);top1.add(panel2);top1.add(panel3);top = Box.createVerticalBox();top.add(Box.createVerticalStrut(10);top.add(top1);panel5.add(new JLabel(- 火 车 票 信 息 统 计 表 -);top.add(panel5);top.add(scrollpane);top.add(Box.createGlue();but_exit.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) dispose(););outTicket.addActionListener(handel);but_select.addActionListener(handel);but_back.addActionListener(handel);add(toolBar, BorderLayout.NORTH);add(top, BorderLayout.CENTER);public void showResult() JButton but_stor = new JButton( 保存 );but_stor.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) dispose(););add(new JLabel( ), BorderLayout.SOUTH);add(new JLabel( ), BorderLayout.EAST);add(new JLabel( ), BorderLayout.WEST);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);public void setTicketInf(String trainNumber1, String startStation1,String endStation1) trainNumber.setText(trainNumber1);startStation.setText(startStation1);endStation.setText(endStation1);public JScrollPane setJTable() dataModel = setTableModel();dataModel.addTableModelListener(this);JTable table = new JTable(dataModel);setTable(table);/给系统属性赋值/设置选项得内容/List materials=materialManager.findAll();JScrollPane scrollpane = new JScrollPane(table);setScrollpane(scrollpane);return scrollpane;/ 初始化DefaultTableModelpublic DefaultTableModel setTableModel() / TableModeldataModel = new DefaultTableModel() private static final long serialVersionUID = 1L;/ dataModel = new AbstractTableModel() / 获得Table的列数public int getColumnCount() return 13;/ 获得Table的行数public int getRowCount() return tableRow;/ 返回每一个表格的内容public Object getValueAt(int row, int col) return tableCellsrowcol;public String getColumnName(int column) String colNames = 序号, 车票编号, 车次, 发车日期, 发车时间,出发站, 到达站, 价格, 车厢编号, 座位编号, 类型, 级别, 售票车站 ;return colNamescolumn;/ 设置是否可进行编辑public boolean isCellEditable(int rowIndex, int columnIndex) if (columnIndex = 0) return false; else return true;public void setValueAt(Object value, int row, int column) fireTableCellUpdated(row, column);return dataModel;public void getTicketInf(List list) /tableCells = new Objectlist.size()9;/this.tableCells=tableCells;/this.tableRow = list.size();for (int i = 0; i list.size(); i+) tableCellsi0 = i + 1;tableCellsi1 = list.get(i).getTicketNumber();tableCellsi2 = trainNumber.getText();tableCellsi3 = list.get(i).getTrainDate();tableCellsi4 = list.get(i).getTrainTime();tableCellsi5 = list.get(i).getStartStation();tableCellsi6 = list.get(i).getEndStation();tableCellsi7 = list.get(i).getPrice();tableCellsi8 = list.get(i).getCarriageNum();tableCellsi9 = list.get(i).getSeatNum();tableCellsi10 = list.get(i).getType();tableCellsi11 = list.get(i).getGrade();tableCellsi12 = 青岛;class HandleControlButton implements ActionListener public void actionPerformed(ActionEvent e) Object source = e.getSource();TicketSaleManager ticketSaleManager=new TicketSaleManager();if (source = outTicket) Ticket ticket = new Ticket();ticket.setTrainNumber(trainNumber.getText();/车次ticket.setTrainDate(String)trainDate.getSelectedItem();/日期ticket.setStartStation(startStation.getText();/出发站ticket.setEndStation(endStation.getText();/终点站ticket.setGrade(String) grade.getSelectedItem();/类型ticket.setType(String) type.getSelectedItem();/人群 ticket.setClientNumber(Integer)clientNumber.getSelectedItem();/票数量List traininfs = null;TrainManager trainManager = new TrainManager();TicketManager ticketManager = new TicketManager();try Integer userId = ticketManager.findUserId()+1;traininfs = trainManager.findByStation(ticket.getStartStation(), ticket.getEndStation(), ticket.getTrainNumber();/价格处理if(ticket.getGrade().equals(硬座)ticket.setPrice(Math.abs(traininfs.get(0).getYzprice()- traininfs.get(1).getYzprice();else if(ticket.getGrade().equals(软座)ticket.setPrice(Math.abs(traininfs.get(0).getRzprice()- traininfs.get(1).getRzprice();else if(ticket.getGrade().equals(硬卧)ticket.setPrice(Math.abs(traininfs.get(0).getYwprice()- traininfs.get(1).getYwprice();else if(ticket.getGrade().equals(软卧)ticket.setPrice(Math.abs(traininfs.get(0).getRwprice()- traininfs.get(1).getRwprice();if(!ticket.getType().equals(普)ticket.setPrice(ticket.getPrice()/2+1); ticket.setTrainTime(traininfs.get(0).getRestartTime();ticket.setUserId(userId);TicketSale ticketSale=null; for(int i=0 ;i100|ticketSale.getRZSale()100|ticketSale.getYWSale()100|ticketSale.getRWSale()100) ticket.setCarriageNum(0);/无座ticket.setSeatNum(0); else if (ticket.getGrade().equals(硬座) ticket.setCarriageNum(ticketSale.getYZSale()/10+1);ticket.setSeatNum(ticketSale.getYZSale() % 10+1);ticketSale.setYZSale(ticketSale.getYZSale()+1); else if (ticket.getGrade().equals(软座) ticket.setCarriageNum(ticketSale.getRZSale() / 10+1);ticket.setSeatNum(ticketSale.getRZSale() % 10+1);ticketSale.setRZSale(ticketSale.getRZSale()+1); else if (ticket.getGrade().equals(硬卧) ticket.setCarriageNum(ticketSale.getYWSale() / 10+1);ticket.setSeatNum(ticketSale.getYWSale() % 10+1);ticketSale.setYWSale(ticketSale.getYWSale()+1); else if (ticket.getGrade().equals(软卧) ticket.setCarriageNum(ticketSale.getRWSale() / 10+1);ticket.setSeatNum(ticketSale.getRWSale() % 10+1);ticketSale.setRWSale(ticketSale.getRWSale()+1); /shezhipiaobianhao ticket.setTicketNumber(00+ticketManager.getIdId();ticketSaleManager.update(ticketSale); ticketManager.addTicket(ticket); /List list = ticketManager.findByUserIdId(userId); TicketBookFrame.this.getContentPane().remove(top);/top.add(setJTable();getTicketInf(list);TicketBookFrame.this.getContentPane().add(top,BorderLayout.CENTER);TicketBookFrame.this.validate();TicketBookFrame.this.repaint(); catch (SQLException e1) e1.printStackTrace();else if(source=but_select)dispose();else if(source=but_back)new BackFrame();dispose();/ 访问器public JTable getTable() return table;public void setTable(JTable table) this.table = table;public JScrollPane getScrollpane() return scrollpane;public void setScrollpane(JScrollPane scrollpane) this.scrollpane = scrollpane;public int getTableRow() return tableRow;public void setTableRow(int tableRow) this.tableRow = tableRow;public static void main(String args) new TicketBookFrame().showResult();public void tableChanged(TableModelEvent e) / TODO Auto-generated meth

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论