1、软件项目开发总结报告模版精编WORD版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】软件项目开发总结报告模版精编WORD版火车票系统的开发1引言研究报告(1.研究计划;2.完成的研究内容、研究方法、研究过程与结论、成果;3.比照研究计划,分析超过或未达到预定目标、进度、研究内容的原因;4.参考文献等。)随着人们生活水平和经济水平的提高,网络科技的全球化的发展,出游和出差的频率越来越多。这大大的激发了交通水平的发展。其中,火车这种又方便有便宜的交通工具作为人们的首选,火车站的客运列车增加,客运量也随之增加。原有的售票的方式已经不
2、再能满足旅客的需求了。为了方便旅客售票系统不仅仅只能售票也能够了解列车的各种信息。这样才能成为现在网络社会的真的适应者。2需求分析该售票系统是融合了火车票销售、退票、列车管理、车票管理、售票员管理、列车管理信息,以及售票信息查询为一体的综合系统。该系统主要编写的功能是列车和售票信息的查询及售票功能。2.1用户该系统主要有两类用户:管理员和售票员。管理员主要工作有车次管理,车票管理和售票员管理。对于每项功能都有添加,删除和修改的功能。售票的主要工作是售票和退票。2.2主要功能该系统从功能方面可以分为四个方面:登录。不管你是管理员还是售票员必须登录以后才可以进行系统允许的操作。当然要登录的管理员和
3、售票员都必须是再数据库中已经发布的。基本设置:该模块主要是修改售票员的相关信息,修改列车的相关信息和修改车票的相关信息。这一块的功能只有管理员才可以操作。其他的售票员是不可以对他进行操作的。售票和退票:这部分工作主要是售票员来操作的。售票员根据买票人员提出的要求进行查询。查询的方式有两种:一是根据车次查询;一是根据目的地来查询。退票主要是将已经出售的车票在列车开出之前再一次的返回到数据库中,并继续出售。列车和车票查询;当需要查询列车信息或者是车票信息是所做的操作。2.3基本流程3开发过程3.1内容 该程序包括三个部分数据库的设计、通用模块的实现、各个模块的实现。 3.1.1 数据库的设计: 将
4、本系统所需的所有的数据都存储到数据库中。需要在数据库中管理员表、 售票员表、列车信息表和车票信息表。如图所示:管理员表:售票员表:列车信息表:车票信息表:3.1.2通用模块的实现:通用模块为了减少代码的重复。在该系统中,对经常使用的操作进行封装,如将多次需要调用的数据库和操作数库的增、删、改和查等操作进行封装。使代码有很好的重用性,即使出现错误也很容易调试。如本程序中的Conn.javaimport java.sql.*;public class Conn private static Connection con; private static final String DRIVER = c
5、om.mysql.jdbc.Driver; private static final String URL =jdbc:mysql:/localhost:3306/newdatabase; private static final String NAME=root; private static final String PASSWORD=021702190804; static try Class.forName(DRIVER); catch (ClassNotFoundException e) e.printStackTrace(); public static Connection ge
6、tConnection() try con=DriverManager.getConnection(URL,NAME,PASSWORD); catch (SQLException e) e.printStackTrace(); return con; public static void closeCon(Connection con) try if(con!=null) con.close(); catch (SQLException e) e.printStackTrace(); public static void closePt(PreparedStatement pt) try if
7、(pt!=null) pt.close(); catch (Exception e) e.printStackTrace(); public static void closeRs(ResultSet rs) try if(rs!=null) rs.close(); catch (Exception e) e.printStackTrace(); 用户登录界面的设计、主界面的设计、基本设置模块、销售及退票模块和列车及车票查询模块。 用户登录模块:该部分是通过设计login.java来实现的。这部分代码的作用是用户首先选择自己的登录的是管理员还是售票员,然后输入账号和密码。单击登录,用户先判断用
8、户登录的类型,然后给sql变量赋SQL语句值,系统调用DAO.java类的login()传入sql变量。.Login 代码是:import org.eclipse.swt.SWT;import org.eclipse.swt.events.*;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.layout.*;import org.eclipse.swt.widgets.*;import com.huizhi.dao.DAO;public class Login private Text nameText; private
9、 Text passText; private Combo combo; private String type; private Display display = new Display(); private Shell shell = new Shell(display); public Login() FormLayout layout = new FormLayout(); layout.marginHeight =40; layout.marginWidth =40; shell.setLayout(layout); shell.setText(login); Image imag
10、e = new Image(display,2.jpg); shell.setBackgroundImage(image); setUIControl(); shell.pack(); shell.open(); while (!shell.isDisposed() if (!display.readAndDispatch() display.sleep(); display.dispose(); private void setUIControl() Label username = new Label(shell, SWT.NONE); username.setText(username)
11、; nameText = new Text(shell, SWT.SINGLE | SWT.BORDER); Label password = new Label(shell, SWT.NONE); password.setText(password); passText = new Text(shell, SWT.SINGLE | SWT.BORDER| SWT.PASSWORD); / passText.setEchoChar(*); Label select=new Label(shell, SWT.NONE); select.setText( select ); Button subm
12、it = new Button(shell,SWT.PUSH); submit.setText(login ); submit.addSelectionListener(new SelectionAdapter() public void widgetSelected(SelectionEvent e) type=combo.getText(); String name=nameText.getText(); String pass=passText.getText(); String sql=null; boolean flag=false; MessageBox box=new Messa
13、geBox(shell,SWT.OK); if(.equals(type)|.equals(name)|.equals(pass) box.setMessage(please input all the information); box.open(); return ; DAO dao=new DAO(); if(users.equals(type) sql=select * from users where username=+name+ and password=+pass+; else if(admin.equals(type) sql=select * from admin wher
14、e username=+name+ and password=+pass+; flag=dao.login(sql); if(flag) shell.dispose(); new Main(type); else box.setMessage(wrong name or password); box.open(); ); Button reset = new Button(shell, SWT.PUSH); reset.setText(cancel); String value=users,admin; combo=new Combo(shell,SWT.DROP_DOWN); combo.s
15、etItems(value); FormData data = new FormData(); data.top = new FormAttachment(30,0); username.setLayoutData(data); data = new FormData(); data.top = new FormAttachment(username,0,SWT.CENTER); data.left = new FormAttachment(username,10, SWT.RIGHT); nameText.setLayoutData(data); data = new FormData();
16、 data.top = new FormAttachment(select,0,SWT.CENTER); data.left = new FormAttachment(select,10, SWT.RIGHT); combo.setLayoutData(data); data = new FormData(); data.top = new FormAttachment(username,10, SWT.BOTTOM); password.setLayoutData(data); data = new FormData(); data.top = new FormAttachment(pass
17、word,0,SWT.CENTER); data.left = new FormAttachment(nameText,0,SWT.LEFT); passText.setLayoutData(data); data=new FormData(); data.top=new FormAttachment(password,10,SWT.BOTTOM); submit.setLayoutData(data); data=new FormData(); data.top=new FormAttachment(submit,0,SWT.CENTER); data.left=new FormAttach
18、ment(submit,20,SWT.RIGHT); reset.setLayoutData(data); public static void main(String args) new Login(); DAO.java的login()代码: public boolean login(String sql) boolean flag=false; con=Conn.getConnection(); try pt=con.prepareStatement(sql); rs=pt.executeQuery(); if(rs.next() flag=true; catch (SQLExcepti
19、on e) e.printStackTrace(); finally Conn.closeRs(rs); Conn.closePt(pt); Conn.closeCon(con); return flag; 图示为;实现主界面:import org.eclipse.swt.*;import org.eclipse.swt.widgets.*;import org.eclipse.swt.layout.*;import org.eclipse.swt.events.*;public class Main private String type; Display display=Display.g
20、etCurrent(); Shell shell=new Shell(display); public Main(String type) this.type=type; shell.setText(Train ticketing system); shell.setLayout(new FillLayout(); Menu menu=new Menu(shell,SWT.BAR); /第一个菜单 MenuItem basic=new MenuItem(menu,SWT.CASCADE); basic.setText(Basic Settings); if(users.equals(type)
21、 basic.setEnabled(false); Menu filemenu=new Menu(shell,SWT.DROP_DOWN); MenuItem train=new MenuItem(filemenu,SWT.PUSH); train.setText(Trains Management); train.addSelectionListener(new SelectionAdapter() public void widgetSelected(SelectionEvent e) new TrainManage(); ); MenuItem ticket=new MenuItem(f
22、ilemenu,SWT.PUSH); ticket.setText(Tickets Management); ticket.addSelectionListener(new SelectionAdapter() public void widgetSelected(SelectionEvent e) new TicketManage(); ); MenuItem users=new MenuItem(filemenu,SWT.PUSH); users.setText(Users Management); users.addSelectionListener(new SelectionAdapt
23、er() public void widgetSelected(SelectionEvent e) new UsersManage(); ); MenuItem exit=new MenuItem(filemenu,SWT.PUSH); exit.setText(quit); basic.setMenu(filemenu); exit.addSelectionListener(new SelectionAdapter() public void widgetSelected(SelectionEvent e) display.dispose(); ); /第二个菜单 MenuItem mark
24、et=new MenuItem(menu,SWT.CASCADE); market.setText(Sales and Refunds); Menu editMenu=new Menu(shell,SWT.DROP_DOWN); MenuItem marketItem=new MenuItem(editMenu,SWT.PUSH); marketItem.setText(Sales Tickets); marketItem.addSelectionListener(new SelectionAdapter() public void widgetSelected(SelectionEvent
25、e) new XiaosTicket(); ); MenuItem refundItem=new MenuItem(editMenu,SWT.PUSH); refundItem.setText(Refunds Tickets); market.setMenu(editMenu); refundItem.addSelectionListener(new SelectionAdapter() public void widgetSelected(SelectionEvent e) new TuiTicket(); ); /第三个菜单 MenuItem find=new MenuItem(menu,
26、SWT.CASCADE); find.setText(Trains and Tickets query); Menu taiMenu=new Menu(shell,SWT.DROP_DOWN); MenuItem trainFind=new MenuItem(taiMenu,SWT.PUSH); trainFind.setText(Trains query); trainFind.addSelectionListener(new SelectionAdapter() public void widgetSelected(SelectionEvent e) new FindTrain(); );
27、 MenuItem ticketFind=new MenuItem(taiMenu,SWT.PUSH); ticketFind.setText(Ticket query); find.setMenu(taiMenu); ticketFind.addSelectionListener(new SelectionAdapter() public void widgetSelected(SelectionEvent e) new FindTicket(); ); shell.setMenuBar(menu); shell.setSize(500,400); shell.open(); while(!
28、shell.isDisposed() if(!display.readAndDispatch() display.sleep(); display.dispose(); 图示为:基本设置模块包括车次管理,车票管理和售票员管理。车次管理主要是是对于列车的增加,删除和修改等操作。其中包括它的相关的信息等。它是由TrainManagement.java.代码如下:import java.util.List;import org.eclipse.swt.SWT;import org.eclipse.swt.events.*;import org.eclipse.swt.layout.*;import
29、org.eclipse.swt.widgets.*;import com.huizhi.dao.DAO;import com.huizhi.vo.Train;public class TrainManage Display display=Display.getCurrent(); Shell tmshell=new Shell(display); final Table table=new Table(tmshell,SWT.SINGLE|SWT.H_SCROLL|SWT.V_SCROLL|SWT.H_SCROLL|SWT.BORDER|SWT.FULL_SELECTION); TrainManage tm=this; public TrainManage() RowLa
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1