软件项目开发总结报告模版_第1页
软件项目开发总结报告模版_第2页
软件项目开发总结报告模版_第3页
软件项目开发总结报告模版_第4页
软件项目开发总结报告模版_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

.z.火车票系统的开发1引言研究报告〔1.研究方案;2.完成的研究容、研究方法、研究过程与结论、成果;3.比照研究方案,分析超过或未到达预定目标、进度、研究容的原因;4.参考文献等。〕随着人们生活水平和经济水平的提高,网络科技的全球化的开展,出游和出差的频率越来越多。这大大的激发了交通水平的开展。其中,火车这种又方便有廉价的交通工具作为人们的首选,火车站的客运列车增加,客运量也随之增加。原有的售票的方式已经不再能满足旅客的需求了。为了方便旅客售票系统不仅仅只能售票也能够了解列车的各种信息。这样才能成为现在网络社会的真的适应者。2需求分析该售票系统是融合了火车票销售、退票、列车管理、车票管理、售票员管理、列车管理信息,以及售票信息查询为一体的综合系统。该系统主要编写的功能是列车和售票信息的查询及售票功能。2.1用户该系统主要有两类用户:管理员和售票员。管理员主要工作有车次管理,车票管理和售票员管理。对于每项功能都有添加,删除和修改的功能。售票的主要工作是售票和退票。2.2主要功能该系统从功能方面可以分为四个方面:登录。不管你是管理员还是售票员必须登录以后才可以进展系统允许的操作。当然要登录的管理员和售票员都必须是再数据库中已经发布的。根本设置:该模块主要是修改售票员的相关信息,修改列车的相关信息和修改车票的相关信息。这一块的功能只有管理员才可以操作。其他的售票员是不可以对他进展操作的。售票和退票:这局部工作主要是售票员来操作的。售票员根据买票人员提出的要求进展查询。查询的方式有两种:一是根据车次查询;一是根据目的地来查询。退票主要是将已经出售的车票在列车开出之前再一次的返回到数据库中,并继续出售。列车和车票查询;当需要查询列车信息或者是车票信息是所做的操作。2.3根本流程3开发过程3.1容该程序包括三个局部数据库的设计、通用模块的实现、各个模块的实现。3.1.1数据库的设计:将本系统所需的所有的数据都存储到数据库中。需要在数据库中管理员表、售票员表、列车信息表和车票信息表。如下图:管理员表:售票员表:列车信息表:车票信息表:3.1.2通用模块的实现:通用模块为了减少代码的重复。在该系统中,对经常使用的操作进展封装,如将屡次需要调用的数据库和操作数库的增、删、改和查等操作进展封装。使代码有很好的重用性,即使出现错误也很容易调试。如本程序中的Conn.javaimportjava.sql.*;publicclassConn{privatestaticConnectioncon;privatestaticfinalStringDRIVER=".mysql.jdbc.Driver";privatestaticfinalStringURL="jdbc:mysql://localhost:3306/newdatabase";privatestaticfinalStringNAME="root";privatestaticfinalStringPASSWORD="4";static{try{ Class.forName(DRIVER); }catch(ClassNotFoundE*ceptione){ e.printStackTrace(); } }publicstaticConnectiongetConnection(){try{con=DriverManager.getConnection(URL,NAME,PASSWORD); }catch(SQLE*ceptione){ e.printStackTrace(); }returncon; }publicstaticvoidcloseCon(Connectioncon){try{if(con!=null) con.close(); }catch(SQLE*ceptione){ e.printStackTrace(); } }publicstaticvoidclosePt(PreparedStatementpt){try{if(pt!=null) pt.close(); }catch(E*ceptione){ e.printStackTrace(); } }publicstaticvoidcloseRs(ResultSetrs){try{if(rs!=null) rs.close(); }catch(E*ceptione){ e.printStackTrace(); } }}用户登录界面的设计、主界面的设计、根本设置模块、销售及退票模块和列车及车票查询模块。用户登录模块:该局部是通过设计login.java来实现的。这局部代码的作用是用户首先选择自己的登录的是管理员还是售票员,然后输入账号和密码。单击登录,用户先判断用户登录的类型,然后给sql变量赋SQL语句值,系统调用DAO.java类的login〔〕传入sql变量。.Login代码是:importorg.eclipse.swt.SWT;importorg.eclipse.swt.events.*;importorg.eclipse.swt.graphics.Image;importorg.eclipse.swt.layout.*;importorg.eclipse.swt.widgets.*;import.huizhi.dao.DAO;publicclassLogin{ privateTe*tnameTe*t; privateTe*tpassTe*t; privatebobo; privateStringtype; privateDisplaydisplay=newDisplay(); privateShellshell=newShell(display); publicLogin(){ FormLayoutlayout=newFormLayout(); layout.marginHeight=40; layout.marginWidth=40; shell.setLayout(layout); shell.setTe*t("login"); Imageimage=newImage(display,"2.jpg"); shell.setBackgroundImage(image); setUIControl(); shell.pack(); shell.open(); while(!shell.isDisposed()){ if(!display.readAndDispatch()) display.sleep(); } display.dispose(); } privatevoidsetUIControl(){ Labelusername=newLabel(shell,SWT.NONE); username.setTe*t("username"); nameTe*t=newTe*t(shell,SWT.SINGLE|SWT.BORDER); Labelpassword=newLabel(shell,SWT.NONE); password.setTe*t("password"); passTe*t=newTe*t(shell,SWT.SINGLE|SWT.BORDER|SWT.PASSWORD); //passTe*t.setEchoChar('*'); Labelselect=newLabel(shell,SWT.NONE); select.setTe*t("select"); Buttonsubmit=newButton(shell,SWT.PUSH); submit.setTe*t("login"); submit.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ type=bo.getTe*t(); Stringname=nameTe*t.getTe*t(); Stringpass=passTe*t.getTe*t(); Stringsql=null; booleanflag=false; MessageBo*bo*=newMessageBo*(shell,SWT.OK); if("".equals(type)||"".equals(name)||"".equals(pass)) { bo*.setMessage("pleaseinputalltheinformation"); bo*.open(); return; } DAOdao=newDAO(); if("users".equals(type)){ sql="select*fromuserswhereusername='"+name+"'andpassword='"+pass+"'"; }elseif("admin".equals(type)){ sql="select*fromadminwhereusername='"+name+"'andpassword='"+pass+"'"; } flag=dao.login(sql); if(flag) { shell.dispose(); newMain(type); }else{ bo*.setMessage("wrongnameorpassword"); bo*.open(); } } }); Buttonreset=newButton(shell,SWT.PUSH); reset.setTe*t("cancel"); Stringvalue[]={"users","admin"}; bo=newbo(shell,SWT.DROP_DOWN); bo.setItems(value); FormDatadata=newFormData(); data.top=newFormAttachment(30,0); username.setLayoutData(data); data=newFormData(); data.top=newFormAttachment(username,0,SWT.CENTER); data.left=newFormAttachment(username,10,SWT.RIGHT); nameTe*t.setLayoutData(data); data=newFormData(); data.top=newFormAttachment(select,0,SWT.CENTER); data.left=newFormAttachment(select,10,SWT.RIGHT); bo.setLayoutData(data); data=newFormData(); data.top=newFormAttachment(username,10,SWT.BOTTOM); password.setLayoutData(data); data=newFormData(); data.top=newFormAttachment(password,0,SWT.CENTER); data.left=newFormAttachment(nameTe*t,0,SWT.LEFT); passTe*t.setLayoutData(data); data=newFormData(); data.top=newFormAttachment(password,10,SWT.BOTTOM); submit.setLayoutData(data); data=newFormData(); data.top=newFormAttachment(submit,0,SWT.CENTER); data.left=newFormAttachment(submit,20,SWT.RIGHT); reset.setLayoutData(data); } publicstaticvoidmain(String[]args){ newLogin(); }}DAO.java的login〔〕代码: publicbooleanlogin(Stringsql){ booleanflag=false; con=Conn.getConnection(); try{ pt=con.prepareStatement(sql); rs=pt.e*ecuteQuery(); if(rs.ne*t()){ flag=true; } }catch(SQLE*ceptione){ e.printStackTrace(); }finally{ Conn.closeRs(rs); Conn.closePt(pt); Conn.closeCon(con); } returnflag; }图示为;实现主界面:importorg.eclipse.swt.*;importorg.eclipse.swt.widgets.*;importorg.eclipse.swt.layout.*;importorg.eclipse.swt.events.*;publicclassMain{ privateStringtype; Displaydisplay=Display.getCurrent(); Shellshell=newShell(display); publicMain(Stringtype){ this.type=type; shell.setTe*t("Trainticketingsystem"); shell.setLayout(newFillLayout());Menumenu=newMenu(shell,SWT.BAR);//第一个菜单 MenuItembasic=newMenuItem(menu,SWT.CASCADE); basic.setTe*t("BasicSettings"); if("users".equals(type)) { basic.setEnabled(false); } Menufilemenu=newMenu(shell,SWT.DROP_DOWN); MenuItemtrain=newMenuItem(filemenu,SWT.PUSH); train.setTe*t("TrainsManagement"); train.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ newTrainManage(); } }); MenuItemticket=newMenuItem(filemenu,SWT.PUSH); ticket.setTe*t("TicketsManagement"); ticket.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ newTicketManage(); } }); MenuItemusers=newMenuItem(filemenu,SWT.PUSH); users.setTe*t("UsersManagement"); users.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ newUsersManage(); } }); MenuIteme*it=newMenuItem(filemenu,SWT.PUSH); e*it.setTe*t("quit"); basic.setMenu(filemenu); e*it.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ display.dispose(); } }); //第二个菜单 MenuItemmarket=newMenuItem(menu,SWT.CASCADE); market.setTe*t("SalesandRefunds"); MenueditMenu=newMenu(shell,SWT.DROP_DOWN); MenuItemmarketItem=newMenuItem(editMenu,SWT.PUSH); marketItem.setTe*t("SalesTickets"); marketItem.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ new*iaosTicket(); } }); MenuItemrefundItem=newMenuItem(editMenu,SWT.PUSH); refundItem.setTe*t("RefundsTickets"); market.setMenu(editMenu); refundItem.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ newTuiTicket(); } });//第三个菜单 MenuItemfind=newMenuItem(menu,SWT.CASCADE); find.setTe*t("TrainsandTicketsquery"); MenutaiMenu=newMenu(shell,SWT.DROP_DOWN); MenuItemtrainFind=newMenuItem(taiMenu,SWT.PUSH); trainFind.setTe*t("Trainsquery"); trainFind.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ newFindTrain(); } }); MenuItemticketFind=newMenuItem(taiMenu,SWT.PUSH); ticketFind.setTe*t("Ticketquery"); find.setMenu(taiMenu); ticketFind.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ newFindTicket(); } }); shell.setMenuBar(menu); shell.setSize(500,400); shell.open(); while(!shell.isDisposed()){ if(!display.readAndDispatch()) display.sleep(); } display.dispose(); }}图示为:根本设置模块包括车次管理,车票管理和售票员管理。车次管理主要是是对于列车的增加,删除和修改等操作。其中包括它的相关的信息等。它是由TrainManagement.java.代码如下:importjava.util.List;importorg.eclipse.swt.SWT;importorg.eclipse.swt.events.*;importorg.eclipse.swt.layout.*;importorg.eclipse.swt.widgets.*;import.huizhi.dao.DAO;import.huizhi.vo.Train;publicclassTrainManage{ Displaydisplay=Display.getCurrent(); Shelltmshell=newShell(display);finalTabletable=newTable(tmshell,SWT.SINGLE|SWT.H_SCROLL|SWT.V_SCROLL|SWT.H_SCROLL|SWT.BORDER|SWT.FULL_SELECTION); TrainManagetm=this;publicTrainManage(){ RowLayoutrowLayout=newRowLayout(); rowLayout.pack=true; rowLayout.wrap=true; rowLayout.justify=false; rowLayout.marginTop=20;tmshell.setLayout(rowLayout);finalTableColumncolumn1=newTableColumn(table,SWT.LEFT); column1.setTe*t("TrainID"); column1.setWidth(80);finalTableColumncolumn2=newTableColumn(table,SWT.LEFT); column2.setTe*t("TrainNum"); column2.setWidth(80);finalTableColumncolumn3=newTableColumn(table,SWT.LEFT); column3.setTe*t("TrainType"); column3.setWidth(80);finalTableColumncolumn4=newTableColumn(table,SWT.LEFT); column4.setTe*t("Starting"); column4.setWidth(80);finalTableColumncolumn5=newTableColumn(table,SWT.LEFT); column5.setTe*t("startingTime"); column5.setWidth(80);finalTableColumncolumn6=newTableColumn(table,SWT.LEFT); column6.setTe*t("terminal"); column6.setWidth(80);finalTableColumncolumn7=newTableColumn(table,SWT.LEFT); column7.setTe*t("terminalTime"); column7.setWidth(80);finalTableColumncolumn8=newTableColumn(table,SWT.LEFT); column8.setTe*t("iskongtiao"); column8.setWidth(80);finalTableColumncolumn9=newTableColumn(table,SWT.LEFT); column9.setTe*t("price"); column9.setWidth(80);finalTableColumncolumn10=newTableColumn(table,SWT.LEFT); column10.setTe*t("middleStation"); column10.setWidth(80);finalTableColumncolumn11=newTableColumn(table,SWT.LEFT); column11.setTe*t("yzNum"); column11.setWidth(80);finalTableColumncolumn12=newTableColumn(table,SWT.LEFT); column12.setTe*t("rzNum"); column12.setWidth(80);finalTableColumncolumn13=newTableColumn(table,SWT.LEFT); column13.setTe*t("ywNum"); column13.setWidth(80);finalTableColumncolumn14=newTableColumn(table,SWT.LEFT); column14.setTe*t("rwNum"); column14.setWidth(80);table.setHeaderVisible(true);table.setLinesVisible(true); freshData();table.setSize(800,200); Buttonadd=newButton(tmshell,SWT.PUSH); add.setTe*t("addtrains"); add.addSelectionListener(newSelectionAdapter(){publicvoidwidgetSelected(SelectionEvente){newAddTrain(tm); } }); Buttonupdate=newButton(tmshell,SWT.PUSH); update.setTe*t("modify"); update.addSelectionListener(newSelectionAdapter(){publicvoidwidgetSelected(SelectionEvente){ TableItem[]selection=table.getSelection(); TableItemselectedRow=selection[0]; Traintrain=newTrain(); train.setId(Integer.parseInt(selectedRow.getTe*t(0))); train.setTrainNum(selectedRow.getTe*t(1)); train.setTrainType(selectedRow.getTe*t(2)); train.setStarting(selectedRow.getTe*t(3)); train.setStartingTime(selectedRow.getTe*t(4)); train.setTerminal(selectedRow.getTe*t(5)); train.setTerminalTime(selectedRow.getTe*t(6)); train.setIskongTiao(selectedRow.getTe*t(7)); train.setPrice(Float.parseFloat(selectedRow.getTe*t(8))); train.setMiddleStation(selectedRow.getTe*t(9)); train.setYzNum(Integer.parseInt(selectedRow.getTe*t(10))); train.setRzNum(Integer.parseInt(selectedRow.getTe*t(11))); train.setYwNum(Integer.parseInt(selectedRow.getTe*t(12))); train.setRwNum(Integer.parseInt(selectedRow.getTe*t(13)));newUpdateTrain(train,tm); } }); Buttondelete=newButton(tmshell,SWT.PUSH); delete.setTe*t("cancel"); delete.addSelectionListener(newSelectionAdapter(){publicvoidwidgetSelected(SelectionEvente){ MessageBo*bo*=newMessageBo*(tmshell,SWT.YES|SWT.NO); bo*.setMessage("Areyousuretocancel"");intnum=bo*.open();if(num==128)return; TableItem[]selection=table.getSelection(); TableItemselectedRow=selection[0]; DAOdao=newDAO(); Stringsql="deletefromtrainwhereid="+selectedRow.getTe*t(0)+"";inti=dao.update(sql);if(i>0){ bo*.setMessage("succeed"); bo*.open();table.remove(table.getSelectionInde*()); }else{ bo*.setMessage("failure"); bo*.open(); } } });tmshell.setSize(1200,400);tmshell.setTe*t("trainManagement");tmshell.open();while(!tmshell.isDisposed()){if(!display.readAndDispatch())display.sleep(); }tmshell.dispose(); }publicvoidfreshData(){table.removeAll();try{ DAOdao=newDAO();Listlist=dao.getAllTrain();intnumber=list.size();for(inti=0;i<list.size();i++){ Traintrain=(Train)list.get(i);finalTableItemitem[]=newTableItem[number]; item[i]=newTableItem(table,SWT.None); item[i].setTe*t(newString[]{Integer.toString(train.getId()),train.getTrainNum(),train.getTrainType(),train.getStarting(), train.getStartingTime(),train.getTerminal(),train.getTerminalTime(),train.getIskongTiao(),Float.toString(train.getPrice()),train.getMiddleStation(),Integer.toString(train.getYzNum()), Integer.toString(train.getRzNum()),Integer.toString(train.getYwNum()),Integer.toString(train.getYwNum())}); } }catch(E*ceptione){ e.printStackTrace(); } }}在该段代码中调用了DAO.java类中的getAllTrain〔〕方法来获得所有的车辆信息,然后以表格的形式显示出来。DAO.java类中的getAllTrain〔〕和update〔〕方法如下:publicintupdate(Stringsql){inti=0;con=Conn.getConnection();try{pt=con.prepareStatement(sql); i=pt.e*ecuteUpdate(); }catch(SQLE*ceptione){ e.printStackTrace(); }finally{ Conn.closePt(pt); Conn.closeCon(con); }returni; }publicListgetAllTrain(){Listlist=newArrayList();con=Conn.getConnection();try{pt=con.prepareStatement("select*fromtrain");rs=pt.e*ecuteQuery();while(rs.ne*t()){ Traintrain=newTrain(); train.setId(rs.getInt(1)); train.setTrainNum(rs.getString(2)); train.setTrainType(rs.getString(3)); train.setStarting(rs.getString(4)); train.setStartingTime(rs.getString(5)); train.setTerminal(rs.getString(6)); train.setTerminalTime(rs.getString(7)); train.setIskongTiao(rs.getString(8)); train.setPrice(rs.getFloat(9)); train.setMiddleStation(rs.getString(10)); train.setYzNum(rs.getInt(11)); train.setRzNum(rs.getInt(12)); train.setYwNum(rs.getInt(13)); train.setRwNum(rs.getInt(14));list.add(train); } }catch(SQLE*ceptione){ e.printStackTrace(); }finally{ Conn.closeRs(rs); Conn.closePt(pt); Conn.closeCon(con);}returnlist; }其中的update的功能是,首先连接数据库,然后用传递过来的SQl语句在列表中删除*辆列车的信息。getAllTrain〔〕方法是显示所有的列车的信息。图示如下:在车次管理中的对于列车信息添加的功能是通过AddTrain.java来实现的。代码如下:importorg.eclipse.swt.SWT;importorg.eclipse.swt.events.*;importorg.eclipse.swt.layout.*;importorg.eclipse.swt.widgets.*;import.huizhi.dao.DAO;publicclassAddTrain{Displaydisplay=Display.getCurrent();Shelltmshell=newShell(display);TrainManagetrainmanage=null;publicAddTrain(TrainManagetm){trainmanage=tm; GridLayoutgridlayout=newGridLayout();tmshell.setTe*t("addtrainsinformation"); gridlayout.numColumns=2; gridlayout.makeColumnsEqualWidth=true;tmshell.setLayout(gridlayout); GridDatagd=newGridData(GridData.FILL_BOTH); Labell=newLabel(tmshell,SWT.LEFT); l.setTe*t("trainNum"); l.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*ttrainNum=newTe*t(tmshell,SWT.NONE); trainNum.setSize(50,60); trainNum.setLayoutData(gd);gd=newGridData(GridData.FILL_BOTH); Labell1=newLabel(tmshell,SWT.LEFT); l1.setTe*t("trainType"); l1.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*ttrainType=newTe*t(tmshell,SWT.LEFT); trainType.setSize(30,40); trainType.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell2=newLabel(tmshell,SWT.LEFT); l2.setTe*t("starting"); l2.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tstarting=newTe*t(tmshell,SWT.LEFT); starting.setSize(30,40); starting.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell3=newLabel(tmshell,SWT.LEFT); l3.setTe*t("startingtime"); l3.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tstartingTime=newTe*t(tmshell,SWT.LEFT); startingTime.setSize(30,40); startingTime.setLayoutData(gd); Labell4=newLabel(tmshell,SWT.LEFT); l4.setTe*t("terminal"); l4.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tterminal=newTe*t(tmshell,SWT.LEFT); terminal.setSize(30,40); terminal.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell5=newLabel(tmshell,SWT.LEFT); l5.setTe*t("terminaltime"); l5.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tterminalTime=newTe*t(tmshell,SWT.LEFT); terminalTime.setSize(30,40); terminalTime.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell6=newLabel(tmshell,SWT.LEFT); l6.setTe*t("iskongtiao"); l6.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tiskongTiao=newTe*t(tmshell,SWT.LEFT); iskongTiao.setSize(30,40); iskongTiao.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell7=newLabel(tmshell,SWT.LEFT); l7.setTe*t("price"); l7.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tprice=newTe*t(tmshell,SWT.LEFT); price.setSize(30,40); price.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell8=newLabel(tmshell,SWT.LEFT); l8.setTe*t("middleStation"); l8.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tmiddleStation=newTe*t(tmshell,SWT.LEFT); middleStation.setSize(30,40); middleStation.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell9=newLabel(tmshell,SWT.LEFT); l9.setTe*t("yzNum"); l9.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tyzNum=newTe*t(tmshell,SWT.LEFT); yzNum.setSize(30,40); yzNum.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell10=newLabel(tmshell,SWT.LEFT); l10.setTe*t("rzNum"); l10.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*trzNum=newTe*t(tmshell,SWT.LEFT); rzNum.setSize(30,40); rzNum.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell11=newLabel(tmshell,SWT.LEFT); l11.setTe*t("ywNum"); l11.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tywNum=newTe*t(tmshell,SWT.LEFT); ywNum.setSize(30,40); ywNum.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell12=newLabel(tmshell,SWT.LEFT); l12.setTe*t("rwNum"); l12.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*trwNum=newTe*t(tmshell,SWT.LEFT); rwNum.setSize(30,40); rwNum.setLayoutData(gd); Buttonb=newButton(tmshell,SWT.LEFT); b.setTe*t("add"); b.addSelectionListener(newSelectionAdapter(){publicvoidwidgetSelected(SelectionEvente){ MessageBo*bo*=newMessageBo*(tmshell,SWT.OK);if("".equals(trainNum.getTe*t())||"".equals(trainType.getTe*t())||"".equals(starting.getTe*t()) ||"".equals(startingTime.getTe*t())||"".equals(terminal.getTe*t())||"".equals(terminalTime.getTe*t()) ||"".equals(iskongTiao.getTe*t())||"".equals(price.getParent())||"".equals(middleStation.getTe*t())||"".equals(yzNum.getTe*t()) ||"".equals(rzNum.getTe*t())||"".equals(ywNum.getTe*t())||"".equals(rwNum.getTe*t())){ bo*.setMessage("pleaseinputtherightinformation"); bo*.open();return; } DAOdao=newDAO(); Stringsql="insertintotrain(trainNum,trainType,starting1,startingTime,terminal,terminalTime,iskongTiao,price,"+"middleStation,yzNum,rzNum,ywNum,rwNum)values('"+trainNum.getTe*t()+"','"+trainType.getTe*t()+"','"+starting.getTe*t()+"',"+"'"+startingTime.getTe*t()+"','"+terminal.getTe*t()+"','"+terminalTime.getTe*t()+"','"+iskongTiao.getTe*t()+"',"+"'"+price.getTe*t()+"','"+middleStation.getTe*t()+"','"+yzNum.getTe*t()+"','"+rzNum.getTe*t()+"','"+ywNum.getTe*t()+"','"+rwNum.getTe*t()+"')";inti=dao.update(sql);if(i>0){ bo*.setMessage("add"); bo*.open(); fresh(); } } }); Buttonb1=newButton(tmshell,SWT.LEFT); b1.setTe*t("quit"); b1.addSelectionListener(newSelectionAdapter(){publicvoidwidgetSelected(SelectionEvente){tmshell.setVisible(false); } });tmshell.layout();tmshell.setSize(500,450);tmshell.open();while(!tmshell.isDisposed()){if(!display.readAndDispatch())display.sleep(); }tmshell.dispose();}publicvoidfresh(){trainmanage.freshData();}}图示为:修改列车功能是在UpdateTrain.java.类中实现的。代码如下:importorg.eclipse.swt.SWT;importorg.eclipse.swt.events.*;importorg.eclipse.swt.layout.*;importorg.eclipse.swt.widgets.*;import.huizhi.dao.DAO;import.huizhi.vo.Train;publicclassUpdateTrain{privateTraintrain;Displaydisplay=Display.getCurrent();Shellutrainshell=newShell(display);TrainManagetrainmanage=null;publicUpdateTrain(Traintrain,TrainManagetm){this.trainmanage=tm;this.train=train; GridLayoutgridlayout=newGridLayout();utrainshell.setTe*t("modifytraininformation"); gridlayout.numColumns=2; gridlayout.makeColumnsEqualWidth=true;utrainshell.setLayout(gridlayout); GridDatagd=newGridData(GridData.FILL_BOTH); Labelll=newLabel(utrainshell,SWT.LEFT); ll.setTe*t("trainID"); ll.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tnum=newTe*t(utrainshell,SWT.NONE); num.setTe*t(Integer.toString(train.getId())); num.setEnabled(false); num.setSize(50,60); num.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell=newLabel(utrainshell,SWT.LEFT); l.setTe*t("TrainNum"); l.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*ttrainNum=newTe*t(utrainshell,SWT.NONE); trainNum.setTe*t(train.getTrainNum()); trainNum.setSize(50,60); trainNum.setLayoutData(gd);gd=newGridData(GridData.FILL_BOTH); Labell1=newLabel(utrainshell,SWT.LEFT); l1.setTe*t("TrainType"); l1.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*ttrainType=newTe*t(utrainshell,SWT.LEFT); trainType.setTe*t(train.getTrainType()); trainType.setSize(30,40); trainType.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell2=newLabel(utrainshell,SWT.LEFT); l2.setTe*t("starting"); l2.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tstarting=newTe*t(utrainshell,SWT.LEFT); starting.setTe*t(train.getStarting()); starting.setSize(30,40); starting.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell3=newLabel(utrainshell,SWT.LEFT); l3.setTe*t("startingTime"); l3.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tstartingTime=newTe*t(utrainshell,SWT.LEFT); startingTime.setTe*t(train.getStartingTime()); startingTime.setSize(30,40); startingTime.setLayoutData(gd); Labell4=newLabel(utrainshell,SWT.LEFT); l4.setTe*t("terminal"); l4.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tterminal=newTe*t(utrainshell,SWT.LEFT); terminal.setTe*t(train.getTerminal()); terminal.setSize(30,40); terminal.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell5=newLabel(utrainshell,SWT.LEFT); l5.setTe*t("terminalTime"); l5.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tterminalTime=newTe*t(utrainshell,SWT.LEFT); terminalTime.setTe*t(train.getTerminalTime()); terminalTime.setSize(30,40); terminalTime.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell6=newLabel(utrainshell,SWT.LEFT); l6.setTe*t("iskongtiao"); l6.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tiskongTiao=newTe*t(utrainshell,SWT.LEFT); iskongTiao.setTe*t(train.getIskongTiao()); iskongTiao.setSize(30,40); iskongTiao.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell7=newLabel(utrainshell,SWT.LEFT); l7.setTe*t("price"); l7.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tprice=newTe*t(utrainshell,SWT.LEFT); price.setTe*t(Float.toString(train.getPrice())); price.setSize(30,40); price.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell8=newLabel(utrainshell,SWT.LEFT); l8.setTe*t("middleStation"); l8.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tmiddleStation=newTe*t(utrainshell,SWT.LEFT); middleStation.setTe*t(train.getMiddleStation()); middleStation.setSize(30,40); middleStation.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell9=newLabel(utrainshell,SWT.LEFT); l9.setTe*t("yzNum"); l9.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tyzNum=newTe*t(utrainshell,SWT.LEFT); yzNum.setTe*t(Integer.toString(train.getYzNum())); yzNum.setSize(30,40); yzNum.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell10=newLabel(utrainshell,SWT.LEFT);l10.setTe*t("rzNum"); l10.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*trzNum=newTe*t(utrainshell,SWT.LEFT); rzNum.setTe*t(Integer.toString(train.getRzNum())); rzNum.setSize(30,40); rzNum.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH); Labell11=newLabel(utrainshell,SWT.LEFT); l11.setTe*t("ywNum"); l11.setLayoutData(gd); gd=newGridData(GridData.FILL_BOTH);finalTe*tywNum=newTe*t(utrainshell,SWT.LEFT); ywNum.setTe*t(Integ

温馨提示

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

评论

0/150

提交评论