《车票销售管理系统.doc》由会员分享,可在线阅读,更多相关《车票销售管理系统.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、编号 学生实训报告20102011学年 第 二 学期实 习 类 别 开发实训学 生 姓 名周宏义专 业软件开发与测试学 号091311706指 导 教 师陈纯毅学 院 软件学院2011年 7 月 起 止 周1719周 数3实习地点软件学院专业实验室实训目的:通过一些实际的开发案例,培养学生分析和解决实际问题的能力,培养学生综合应用基本概念,基本原理,和技术方法的能力,真正做到学以致用,使课本上抽象的理论,方法与具体的实践应用相结合。实训要求:实践设计以实际应用中的小型题目为主,要求学生独立完成或合作完成。要求学生能根据不同的题目类型选择一种或两种开发模式,完成从系统定义,指定开发计划,需求分析
2、,设计,编码/测试,直至运行/维护的软件生存期的全过程。实训进度安排及主要内容:第一周:(1)需求分析;(2)数据库设计(使用SQL Server);(3)总体设计;模块定义、模块结构图,各模块功能描述、模块流程图(使用Visio画图);第二周:(4)详细设计:要求有数据录入、修改、删除、查询、汇总、报表功能;第第第三周:(5)运行测试,测试用例、结果;(6)撰写开发文档,含总结;成绩:指导教师/带队教师(签字)年 月 日车票销售管理系统摘要随着现代信息技术的高速发展,越来越多的操作都依靠计算机来完成。我国铁路系统的规模不断扩大,乘客的要求也不断提高,这对铁路部门的管理工作、售票系统的工作提出
3、了更高的要求。我们惯用的手工操作管理已经不能适应现代化的要求。因此,当务之急是针对铁路售票工作的特点和要求开发出更完善的铁路售票系统,提高铁路部门的工作效率,并能为乘客提供及时、快速的服务。随着铁路系统改革的深入展开,工作的计算机化已成为主导趋势。计算机化管理不仅可以节约大量的人力物力,而且可以大大提高工作效率,为铁路系统创造更大的效益。本软件正是为了适应这种趋势而开发的,目的是研究售票系统所需的各项技术和方案。铁路售票系统涉及多方面的技术,主要有ADO技术、Microsoft SQL Sever、数据库的操作、注册表的操作、基于vc的两层开发、MFC一些控件的使用等。在本篇论文中,介绍了铁路
4、售票系统的各项功能及其实现方法。它主要包括车票的查询、售票、退票及车票系统的数据更新设置等。关键字: 铁路售票系统 VC ADO 数据库 SQL目录一、 系统需求分析- 031.1.管理员管理模块- 031.2.普通用户模块- 03二、 数据库设计- 04三、 总体设计- 063.1.车票销售管理系统- 063.2.系统数据流图- 08四、 详细设计- 114.1.数据库详细设计- 114.2.系统界面设计- 14五、 调试分析- 18六、 总结- 19七、 致谢- 20八、 参考文献- 20九、 附录- 21一、系统需求分析考察市长途汽车站、火车站售票业务,设计车站售票管理系统。系统要求为:
5、首先根据调查该系统应该提供两种管理模块:1.管理员管理模块。对于该模块应该包含一下功能:A:管理车辆服务人员(如司机,列车乘务员等)的信息。例如增加人员,包括基本信息和职务,工作地方等信息。在员工退休的时候,应删除其信息,因此应该同时包括删除用户的功能。B:增加、删除和修改车辆的信息(包括长途汽车和火车)。其中包含一些车辆的基本信息,如车辆编号,起始站,终止站,开车时间,到站时间和表示现在状况的信息。同时在增加和修改模块可以对上面这些信息进行修改和删除。C:车辆发车调度安排。在此模块中可以安排车辆的发车日期和发车时车辆的一些相关信息,如车辆已坐多少人,可作多少人等信息。D:车辆路线安排。不管是
6、汽车还是火车,它们都有一条相应的行驶路线。在该模快可以设置一辆车的行驶路线,包括经过站,经过时间等信息。E:订单处理。该系统支持用户订票业务,因此作为管理员,应该提供处理订单的功能。其中包括确认订单,删除订单。F:票价管理,站点管理。包含不同车次,不同类型的票价的录入和删除。以及站点信息的录入删除。G:数据备份。为了防止由于某种原因造成后台数据库数据的丢失,因此为系统管理员提供定期备份数据库信息的功能。2.普通用户模块。A:订票。为方便用户获得车票,为用户提供订票业务,用户可以在此按车次和发车日期进行订票。同时需要输入一些附加信息,如姓名,定票数量等信息。B:购票,退票。管理人员根据用户提供的
7、信息,为用户提供即时售票,退票服务。C:查询信息。用户为了获取车辆信息,需要专门为用户提供查询车辆信息的服务。用户可以根据车次的编号或者起始和终止站查询车辆的信息如时刻表信息,车站信息。为了保护系统后台信息的安全,提供给普通用户和管理员的是不同的功能模块,不同的用户只能访问自己所有权力访问的信息。他们之间相互独立但也有着联系,用户可以下定单,管理员可以处理点单。二、数据库设计根据需求分析有:管理人员要处理的信息有,人员信息,车次信息,车辆调度信息,车票信息,订单处理信息等。因此应为系统提供至少一下表:1管理人员信息,则需要一个人员信息表,用以存放人员信息。2管理车次信息,则需要车次信息表,存放
8、车次信息。3车辆调度,则需要发车日期安排表,车辆线路设置表,站点表。4订单处理,则需要订单表,存放订单的信息。.该系统分为管理员模块和不同用户模块,因此为了提供不同用户只能登录不同的功能模块,则用密码设置其登录模块。因此设置了一个用户登录信息表,用以存放用户登录名和密码。E-R图由于火车和长途汽车有些不同,应此这里给出了两种E_R图,上图是关于火车的,下图是关于汽车的。最后分析得到所有的表的信息如下:火车,汽车票销售所需的表及其属性:火列(车次号,起始站,终止站,发车时间,到站时间,状态,车厢数)车站(车站编号,车站名称)经过(车次号,车站编号,经过时间,经过次序)工作人员(人员编号,车次号,
9、姓名,性别,职务)火车票(车票编号,车次号,起始站编号,终止站编号,车厢号,座号,价格,发车时间)车厢(车厢编号,车次号,车厢序号,可坐人数,可站人数)订单(订单号,订票人姓名,车次号,时间,票数,附加信息)汽车(车次号,起始站,终止站,发车时间,到站时间,可坐人数,状态)发车安排(日期,车次,坐车厢,已坐数,站车厢,已站人数)用户登录信息表(登录帐号,登录密码,用户类型)由于与汽车相关的实体有相同的属性,则我们将它们合为一个表。例如:我们可以看到两个订票单表和工作人员表完全相同,因此在设计是可以把这两个表设计为一个。发车安排表,车票表也可以合二为一。同时为了区分管理员和用户,需要为该系统提供
10、一个用户登录信息表,用以区分不同的用户,从而为不同的使用着提供不同的功能。三、总体设计1.车票销售管理系统:系统可以分为两个部分,一个是前台销售模块,另一个是后台车辆等信息的管理模块。第一个模块只为外部用户使用,而管理人员可以在第二个模块系统中对车辆信息进行管理,从而使得非管理人员只能读取信息,而不能更改信息。车票销售管理系统总体结构 后台管理模块各个功能的描述:车次管理模块:管理员可以根据实际需要进行车次的管理,如果在一个时段,该车的运营状况非常紧张,则可以增加该车次。车辆服务人员:该模块可以最为人员管理的模块,管理员可以通过此模块对一个车辆安排服务人员,或调正用户的工作地点。车辆路线管理:
11、该模块可以为一辆车设置一个路线,使车辆根据以定义好的路线行使。但有的时候,由于某种原因,车辆的行车路线需要改变,则可以通过该模块,对车辆的行车路线重新设置。车辆状态信息查询模块:通过该模块,管理人员可以查看一辆车的状态,是否正在运行,还是其他情况。车票信息管理:通过该模块,管理人员可以对车票信息修改,或着增加。如需要修改车票价格等。查询模块功能描述:关于前台售票系统,需要为用户设置查询车辆的功能,应此需要在售票系统中为用户提供一个查询子系统,该系统分为两种查询方法,一种是按车次编号查询,另一种是按站点查询。 查询子模块 查询模块功能描述:在售票系统中关于售票,为了方便个人和团体购票,系统提供了
12、两种售票方式,一种是为个人用户提供的售票机制,一种是为团体售票设计的售票机制。由于个人和团体购票在价格等方面有差别,因此不经要在售票中区分开,还要在退票方面进行区分。因此在退票方面也分为个人和团体。订票子模块功能描述:在售票系统中为了方便用户购票,系统提供了订票功能,用户(包括个人和团体)都可以通过该模块进行订票。从而购买到需要的票。销售子模块 退票子模块 订票子模块2.系统数据流图:1.前台购票处理总数据流图由于前台的处理中各个模块的功能比较复杂,因此给出其各个模块的数据流图。a. 查询处理数据流图:b. 用户订票模块数据流图: c.用户购票模块数据流图:d.用户退票模块数据流图:2.后台处
13、理模块数据流图:四、详细设计1.数据库详细设计:1.1数据库表结构用户登录信息表:UserLoad字段名字段类型长度主/外键字段值约束登录帐号UnoVarchar10PNot null登录密码UpswVarchar10Not null用户类型UstyVarchar10Not null列车表:Train字段名字段类型长度主/外键字段值约束车次号 TnoVarchar50PNot null起始站 TbnameVarchar50Not null终止站 TenameVarchar50Not null状态 TstateVarchar50Not null车厢数 TscInt 4Not null发车时Tbt
14、imeDatetime8Not null到站时TetimeDatetime8Not null火车票表:TrainTicket字段名字段类型长度主/外键字段值约束车次号 TnoVarchar50FNot null价格 TTpMoney4Not null类型TTStyVarchar50团体,个人票类型TTTstyVarchar50坐票,站票,卧铺车站表:Station字段名字段类型长度主/外键字段值约束车站编号SnoVarchar10PNot null车站名称SnameVarchar10Not null经过站表:Pstation字段名字段类型长度主/外键字段值约束车次号TnoVarchar10FN
15、ot null车站编号SnoVarchar10FNot null经过时间PtimeDatetime8Not null经过次序PnoInt4Not null人员信息表:Personnel字段名字段类型长度主/外键字段值约束人员编号 PenoVarchar10PNot null车次号 TnoVarchar10FNot null姓名 PenameVarchar10Not null性别PesexVarchar10男,女职务 PedutyVarchar10Not null订单表:Order字段名字段类型长度主/外键字段值约束订单号 OnoVarchar10PNot null订票人姓名OnameVarch
16、ar10FNot null车次号 TnoVarchar10Not null车次时间TtimeDatatime8Not null附加信息 OinfVarchar10团体,个人票数 Otsumint4null票类型 TstyVarchar50坐票,站票,卧铺车厢表:Compartment字段名字段类型长度主/外键字段值约束车厢编号CpnoVarchar10PNot null车次号TnoVarchar10FNot null可坐人数CspsitInt4 null可站人数CspstandInt 4 null汽车表:Bus字段名字段类型长度主/外键字段值约束车次号 BnoVarchar50PNot nul
17、l起始站 BbsVarchar50Not null终止站 BesVarchar50Not null发车时间 BstDatetime8Not null到站时间 BetDatetime8Not null价格 BpMoney4Not null发车安排:GoAnPai字段名字段类型长度主/外键字段值约束车次号 TnoVarchar50PNot null发车时间TGtimeDatetime8Not null可坐TSCPnoInt4Null已坐TSnoInt4Null可站TSSnoInt4Null已站TSsumInt4Null1.2数据库的建立。 数据库的建立可以通过企业管理器直接建立,然后按照上面的表结
18、构建立系统需要的所有表格。或者通过SQL语句在查询分析器中进行。其所需要的SQL语句为:CREATE TABLE BTicket (Bno char (10) PRIMARY KEY,Bbs char (10),Bes char (10),Bst datetime,Bet datetime,Bcsp int,Bp int ) CREATE TABLE Compartment (Cpno char (10) PRIMARY KEY,Tno char (10) ,Cspsit int,Cspstand int, FOREIGN KEY (Tno) REFERENCES Train (Tno)CRE
19、ATE TABLE GoAnPai (TGtime datetime PRIMARY KEY, Tno char (10),TCSPno int,TSno int,TSSno int,TSsum int, FOREIGN KEY (Tno) REFERENCES Train (Tno) CREATE TABLE Orderinfo (Ono char (10) PRIMARY KEY,Oname char (10),Tno char (10),Ttime datetime,Otsum int ,Otime datetime,Oinf char (10) CHECK(TTsty IN( 个人,
20、团体),Tsty char (10) CHECK (TTTsty IN( 坐票, 卧铺),Ostate char (10), FOREIGN KEY (Tno) REFERENCES Train (Tno) CREATE TABLE Personnel (Peno char (10) PRIMARY KEY,Tno char (10),Pename char(10),Pesex char(10) CHECK (Pesex IN(女, 男),Peduty char(10),Peage int, FOREIGN KEY(Tno) REFERENCES Train (Tno)CREATE TABLE
21、 Pstation (Tno char (10) ,Sno char (10),Ptime datetime,Pno int, FOREIGN KEY (Tno) REFERENCES Train (Tno), FOREIGN KEY (Sno) REFERENCES Station (Sno) CREATE TABLE Station (Sno char (10) PRIMARY KEY,Sname char (10) CREATE TABLE Train (Tno char (10) PRIMARY KEY,Tbname char (10),Tename char (10),Tbtime
22、char (10),Tetime char (10),Tsc int,Tstate char (10) )CREATE TABLE TrainTicket (Tno char (10) PRIMARY KEY,TTP money,TTsty char CHECK(TTsty IN( 个人, 团体),TTTsty char (10) CHECK (TTTsty IN( 坐票, 站票, 卧铺), FOREIGN KEY (Tno) REFERENCES Train (Tno)CREATE TABLE UserLoad (Uno char(10) PRIMARY KEY,Upsw char(20),
23、Usty char(10) )2.系统界面设计:为了管理不同用户使用不同的功能模块,为系统提供了一个登录系统,用户通过用户名和密码进行登录,系统根据用户名和密码判断用户的类型,登录必要的模块。其中为了方便,设置了两个帐号,以为管理员(用户名为admin,密码为1987),另一个为用户(用户名为guest,密码为空)。2.1.系统登录设计:主界面分为管理员界面(下2)2.2.1管理员增加工作人员信息。通过增加人员信息界面向数据库中增加人员信息。管理员在输入人员信息后,单击确定,将信息加入数据库。其中存在这一些约束,如:人员编号不能重复,工作车次号一定要存在。2.2.2修改删除人员信息。管理人员信
24、息不仅能增加,也要能够修改人员信息,以防止用户工作岗位后职务的变更,获退休等情况。在次模块中用户在人员编号中输入人员编号,单击查询,找到已经存在的人员信息。如需修改,在单击删除,否则点击修改,此时确定变为可用,其它文本框亦变为可用,输入更新后的信息,单击确定,则更新了人员的信息。2.3增加车辆信息(火车)。由于此系统可以同时管理汽车和火车,但是又由于两者之间存在这差别,因此分两部分。管理员在输入了车次信息后,单击确定则增加了该车的信息。注意车次号不能重复。2.4增加车辆信息(汽车)。和上边的差不多,管理员在输入车次信息后单击确定。同时也要注意车次不能重复。2.5修改删除车次信息。当一个车里需要
25、某些变更是,则可以更改其信息。和修改删除人员信息相同,先输入车辆编号,单击查询找到该车信息,单击修改,则可以修改,删除则可以删除。2.6处理用户订单。此系统支持订票业务。因此为管理员增加了一个处理用户订单的功能,登录该界面是,系统自动讲为处理的订单显示给管理员,管理员审核该订单后,点击确认,处理此订单。2.7删除订单。管理员为了清理系统数据,需要删除一部分过期的数据。则可通过此删除已过期的订单信息。管理员登录该界面是系统自动加载已经处理过的过期订单,选择要删除的,点击删除,在删除成功。2.8发车安排。由于一辆车可以多个发车时间,因此在此可以安排其的出动时间。其中可以包含发车时间的车辆信息,如:
26、已坐人数,已站人数。而对于汽车只需要已坐人数。2.9路线设计。每一辆车都有自己的行车路线。则在增加了车次的信息后,需要为其设计一个行车路线。开始输入车次所经过的站点数,单击OK(注意,如果是汽车,开始选择汽车复选框)。则可以输入数据信息,输入一个后单击确定继续输入所有经过的站点的信息,知道输入了所有的车站后。退出。2.10站点的录入和票价的录入。这里可以录入一些必要站点和票价信息。用户输入完整的数据后,单击确定就可以增加该信息了。2.11用户订票。不同用户登录该系统后可一通过该模块订购需要日期的车票。用户输入订单信息,单击确定,则提交了订单,等待管理员的审核。注意:车次要是已经存在的车次,日期
27、不能小于订票日期。同时提交后会显示一定的信息给用户。2.12购票,退票。用户不经可以在次系统中订票,也可以立即进行购票,用户只要输入必要的信息,单击确定就可以购买到票。但是如果信息不合格,则显示出错信息。如:发车日期已经过了,该日该车已经坐满了。同时如果用户要退票则可以在退票模块中退票,只要输入必要的信息,单击确定。同时,如果过期,则不退。2.13查询信息。该查询分为两种方式查询,一种是按车次号进行查询,一中是按车站进行查询。 按车次号进行查询,用户输入车次号,单击查询,如果存在相应的车次,则为用户显示相应的信息,如经过的站点和经过时间。否则,显示错误提示信息。 按站点进行查询,用户输入起始站
28、和终止站,单击查询。则为用户显示必要的信息。如:所有经过这两个车站的车次信息,如车次号,车次起始终止站,始发终止时间等。否则显示错误提示信息。五、调试分析调试分析:l 数据库设计方面:1. 数据库设计时,各个实体之间的属性必须是相对不可分割的整体。一个实体如果拥有一个可以分割的实体,则将该属性单独分为一个实体进行设计。2. E-R图向关系模型转换时,其中的1 :1,1 :n,m :n联系,有多中转换方法。尽可能使用简单的转化方法。该合并的合并,该分开的分开。3. 各个表中的属性值,要根据要求设置字段的格式,如:价格,设置为Money类型,日期用Datetime类型,票数用int类型等等。4.
29、向数据库中输入数据要符合数据库表设计是定义的数据类型,否则将出项数据格式不正确的错误提示。数据库各个表之间通过外键产生联系,如果一个表字段是另一个表的外键,在使用时要满足参照完整性,即在被参照表中存在该字段的值。负责产生错误。l 系统设计方面:1. 本系统使用ADO操作数据库。在使用前要增加ADO库文件msado15.dll,然后使用:CoInitialize(NULL)初始化OLE/COM环境,否则将无法使用ADO所提供的函数。如果出现无法连接数据源,则说明没有注册数据源。2. 自编写使用记录集获取数据库数据的时候,如果已经有一个打开的记录集在再次打开是出项了错误,因此在重复打开同一个记录集
30、时应该确保该记录集对象没有打开。可以使用close()关闭。3. VC中使用的日期控件所用的变量类型是CTIME类型。而在程序中使用时转换为需要的类型。如先转化为CString类型,然后转换为_variant_t类型。或者_bstr_t类型。4. 使用SQL语句进行操作时,要注意条件表达式中的表示方法,如:字符串类型要加单引号,数字类型不加,否则在执行查询语句是会出错误。 六、总结经过为期一个月的软件开发,基本上实现了铁路售票系统的大部分功能。通过对本系统的设计与开发,使我深刻的解了各种控件的和函数的深层次的功能,让我对VC编程工具有了更深一步的认识。但由于时间仓促,在的功能开发中仍有很多不尽
31、人意的地方。在软件的开发过程中,综合运用了大学四年所学的知识,查阅了大量的相关资料翻阅了很多文献,并在软件开发过程中通过请教他人,进一步拓宽了编程视野,提高了知识水平。铁路售票系统所涉及的技术主要以对数据库的操作为核心的,主要是ADO技术和一些控件的使用。通过开发实践活动,我们取得了一定的成果。这主要表现在:l 实现了通过ADO对数据库的操作。l 实现了通过函数对注册表的读取和写入。l 在程序中实现了数据源的动态配置。l 熟悉了对SQL Server的操作。数据库设计是一件相对复杂的事情,在设计一个数据库前应该仔细的对系统要出操作的数据进行分析,即分析该系统建立的数据库所有需要使用到的实体,该
32、实体拥有那些属性,各种属性应该设置数据类型。然后分析各种实体之间的联系,构造出各种对象之间的关系图。然后按照数据库的设计步骤尽行数据库设计。再次可以在企业管理器中建立数据库,也可以在查询分析器中使用SQL语句建立数据库。使用Visual C+开发数据库应用程序的时候,可以使用ODBC,DAO,RDO,OLEDB和ADO,同时结构化的查询语句(SQL)也在数据库应用程序开发中起着关键的作用。设计好数据库后,可以输入一点数据,作为日后建立系统时作为调试时使用。同时,在设计一个系统前,首先应该做好它的需求分析,即先分析该系统要实现什么功能,然后将该系统分为一定量的模块。再分析各个模块的功能具体如何进
33、行操作,操作步骤和流程,及各个功能对数据如何处理和处理后是否会造成数据库内的数据错误等。在编写程序是一定要注意数据格式的正确性,不同格式之间可以通过默认的转换去实现,或者进行强制性的格式转换,但是有的数据格式是不能一次性转换过去的。我们可以先将其转换为一种格式,然后再转换为需要的格式。为了方便用户操作,在设计界面的时候,可以让一些控件禁止,当用户的操作满足一定的条件后在使这些控件变为可用。这样就不会让用户产生错觉,看着可以用但却因为某种条件不满足,在使用时出现错误。在这里只是一个单机版的,还可以设置成网络版本。使处于不同的地方的用户能够同时使用该系统进行操作。由于时间仓促和水平有限,因此错误和
34、不足在所难免,恳请各位老师和专家批评指正。七、致谢在这次毕业设计中,我从指导老师身上学到了很多东西。陈纯毅老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。无论在理论上还是在实践中,都给与我很大的帮助。最后, 我在此对给与我极大帮助的陈纯毅老师,给我提供操作平台的长春理工大学软件学院以及孙云鹏等同学等所有对此软件的开发提供过帮助的人表示由衷的感谢。八、参考文献1 俞海英 数据库应用教程 北京:清华大学出版社,2008.2 Microsoft ADO 程序员参考3 郑阿奇 丁有和 Visual C+ 应用教程人民邮电出版社4 侯俊杰 深入浅出MFC 华中科技大学出版社九、附录
35、1.添加车辆信息void CADDCBUS:OnAdd() / TODO: Add your control notification handler code hereUpdateData();_bstr_t query; int temp1;if(tembool)Rest_Add_Bus-Close();tembool=false; if(m_Bno.IsEmpty()AfxMessageBox(请输入车辆的编号!);return;m_Bno.TrimRight( );m_Bno.TrimLeft( );VARIANT v;CString temp;_bstr_t strsql=selec
36、t * from BTicket;V_VT(&v)=VT_DISPATCH;V_DISPATCH(&v)=(IDispatch*)theApp.m_pConn;V_DISPATCH(&v)-AddRef(); Rest_Add_Bus-put_CursorLocation(adUseClient);HRESULT hr=Rest_Add_Bus-Open(strsql, v, adOpenKeyset, adLockOptimistic, adCmdText);if (!SUCCEEDED(hr)return ;/打开记录集失败query=select * from BTicket where
37、 Bno=;temp1=FindBusIsExist(query,m_Bno); if(temp1=3) /不存在相同的车号Rest_Add_Bus-AddNew();/添加新的记录Rest_Add_Bus-PutCollect(Bno,_variant_t(m_Bno); Rest_Add_Bus-PutCollect(Bbs,_variant_t(m_Bbs);Rest_Add_Bus-PutCollect(Bes,_variant_t(m_Bes);temp=ToStringCTime(m_Bbtime);Rest_Add_Bus-PutCollect(Bst,_variant_t(te
38、mp);temp=ToStringCTime(m_Betime);Rest_Add_Bus-PutCollect(Bet,_variant_t(temp);temp.Format(%d,m_Bp);Rest_Add_Bus-PutCollect(Bp,_variant_t(temp);temp.Format(%d,m_Cspe);Rest_Add_Bus-PutCollect(Bcsp,_variant_t(temp);Rest_Add_Bus-Update();/将记录插入到数据/m_Bno=;m=;m_Tbtime=;m_state=;m_estation=;m_cpsum=0;m_bst
39、ation=;UpdateData(false);MessageBox(添加成功);m_dbGrid.SetRefDataSource(LPUNKNOWN)Rest_Add_Bus);/CDialog:OnOK();else if(temp1=1)MessageBox(打开记录集失败!);else if(temp1=2)MessageBox(存在该编号的车辆!);/m_Bno= ;UpdateData(false); elseMessageBox(添加失败!);2.买票void CBuyTT:Open_Anpai_Info()UpdateData();_bstr_t query;HRESULT
40、 hr;VARIANT v;CString str;string userinfo;str=ToStringCTime(m_Tbtiem);query=select * from GoAnPai where Tno=+m_Tno+ and TGtime=;query=query+str+;V_VT(&v)=VT_DISPATCH;V_DISPATCH(&v)=(IDispatch*)theApp.m_pConn;V_DISPATCH(&v)-AddRef(); Rest_Find_AnPai_Info-put_CursorLocation(adUseClient); hr=Rest_Find_AnPai_Info-Open(query, v, adOpenKeyset, adLockOptimistic, adCmdText);if (!SUCCEEDED(hr)MessageBox(打开失败!); /获取现有信息 int no_sit_no,sum_sit_no;int no_stand_no,sum_stand_no; us