《2022年数据库--售票系统共享》由会员分享,可在线阅读,更多相关《2022年数据库--售票系统共享(42页珍藏版)》请在金锄头文库上搜索。
1、大型数据库课程设计报告课题: 铁路票务系统专业班级:计科 07101 学号:200717010124 姓名:毕 于 通指导教师 : 屠 添 翼目录评阅意见:评定成绩:指导老师签名:年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 42 页 - - - - - - - - - 目录摘要. 错误!未定义书签。1. 课程设计的目的与意义 . 22. 需求分析 . 33. 系统设计 . 54. 系统实现 . 11 5. 系统调试 . 18 6. 小结. 24 附录源代码 .
2、25 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计2 1. 课程设计的目的与意义1.1 、课程设计的目的数据库课程设计是数据库系统原理实践环节的及为重要的一部分. 其目的是: (1) 培养学生能够应用数据库系统原理在需求分析的基础上对系统进行概念设计, 学会设计局部 ER,全局 ER图;(2) 培养学生能够应用数据库系统在概念设计的基础上应用关系规范化理论对系统进行逻辑设计 , 学会
3、在 ER图基础上设计出易于查询和操作的合理的规范化关系模型;(3) 培养学生能够应用SQL语言对所设计的规范化关系模型进行物理设计,并且能够应用事务处理 , 存储过程 , 触发器以保证数据库系统的数据完整性, 安全性 , 一致性 , 保证数据共享和防止数据冲突;(4) 培养学生理论与实际相结合能力, 培养学生开发创新能力; (5)培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势;(6) 提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。1.2、课程设计的意义目前,我国在计算机应用、计算机软件和电子类相关专业的人才培养方面,取得了
4、长足的发展,但同时也让我们深刻地感觉到缺乏实际开发设计项目的经验,不善与综合运用所学理论,对知识的把握缺乏融会贯通的能力.尤其是我们计算机专业大学生, 由于缺乏具体项目经验, 毕业之后普遍感到知识不能转化为能力。课程设计可以锻炼我们理论联系实际的能力,为今后工作做铺垫。信息时代已经来临 ,信息处理的利器 计算机应用于火车站售票的日常管理为火车站售票的现代化带来了从未有过的动力和机遇,为火车站票务管理领域的飞速发展提供了无限潜力。 采用计算机管理信息系统已成为火车站票务管理科学化和现代化的重要标志, 给火车站票务带来了明显的经济效益和社会效益。计名师资料总结 - - -精品资料欢迎下载 - -
5、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计3 算机已经成为人们生活不可却小的一部分。铁路票务管理是一件比较负责但又非常重要的事情, 它是涉及国家铁路运输的正常工作、国民经济的发展和人民生活水平及质量的大事情。随着经济的发展,交通运输越来越便捷,为了提高效率,减轻劳动强度, 设计开发高效的铁路信息查询系统就显得颇为重要。火车售票管理中包含许多内容, 有铁路乘客运输的运力问题,有订票管理问题等等。 铁路信息查询系统是企业信息决策和管理
6、的重要的组成部分,是一种典型的信息管理系统(MIS) ,其开发主要包括后台的数据库的建立、维护以及前端的相应应用程序的开发两个方面的内容, 数据库的建立和维护主要要求其管理数据的一致性、完整性、安全性等特点, 而前台的应用程序开发则要求做到各项功能要完备、操作要简便、易学易用等特点。 本课程设计专门要解决这些问题,由于铁路火车票务管理的复杂性, 本设计与开发也仅是一个尝试性的工作,但其中有很多重要的思想和方法,涉及一些重要的程序代码, 对于研究开发该类程序的工程人员可以起一个抛砖引玉的作用。2. 需求分析2.1. 需求分析的任务随着旅游业的逐渐的成熟发达,铁路客运量大幅度的提高,各大省市的列车
7、都显著的增加, 这些都对列车票务管理系统提出了更高的要求,所以要不断的完善更新列车票务管理系统, 提高列车售票系统的工作效率。 随着科学的不断进步,计算机应用已经遍布整个社会的每个角落。目前社会正处于健保发展方兴未艾的时代,各火车站莫不兢兢业业地改善本身的体制或管理方式,以适应健保越来越严格的规范。列车在我国的人员流动、物资运输中占据着举足轻重的地位。全国有大量的人员通过搭乘火车到达目的地。而与火车的特殊性及可能经过多个城市, 每个城市的车站可以出售此火车的车票。而且同一车站可能有多辆车经过。许多希望以最快的方式选择自己想来乘坐的那一趟列车。所以以人工的方式是不可能实现这种功能的。 一种可行的
8、方案是基于客户端服务器的体系结构。服务器为数据库系统,存储所有必要的信息。客户端通过连接到服务的应用程序快速、准确地完成相应的工作,通过网上订购,可以达到高效、便捷的购票。列车票务管理系统的实施, 将会在一定程度上促进铁路客运生产力和生产关系的变革,增强市场竞争能力,提高铁路部门的工作效率,提升管理水平,减少劳动强度,方名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计4 便广大旅客购票,
9、有一定的社会和经济效益。2.2. 系统需要实现的功能和操作如下:(1).查询:可以通过起点站与终点站在进行查询,也可根据具体的车次输入进行查询,同时每次查询都会显示车次号, 点击即可显示该趟列车所进过站点的详细信息,其中包括所到达每个站的到达时间与出发时间。(2).客户注册、注销:由于要进行网上订购车票,用户需注册,填写有关信息, 由物流公司负责送车票到客户手中。 如果用户不再使用本系统可以选择注销,从而从数据库中删除其有关记录。(3).订票业务:本系统为网上订票,用户经过查询车次信息、票务信息,找到自己所需的车票通过所关联的账户进行订购。(4).退票业务:根据客户提供的情况(车次、时间、)为
10、客户办理退票手续,退票时按票价的 80%退给客户金额, 若所退票额能满足他的要求, 则为他办理退票手续,同时在数据库中进行更新。(5) .更新功能:该系统随时跟据车辆的变化情况进行更新,增加车辆时可以在系统中插入该车的详细信息, 同时也能根据需要修改某趟车经过的站点与发车时间,当某趟车停止、开行时可以删除该趟车的信息。同时包括对列车信息、站点信息、管理人员信息、订票记录等的更新功能。(6) .车票配送 :客户在订购了车票之后 ,管理人员通过后台管理订票记录,然后根据客户的要求选择物流公司及时为其配送车票。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
11、- - - - - - 名师精心整理 - - - - - - - 第 5 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计5 3. 系统设计3.1 总体设计1. 功能设计:该铁路票务系统流程主要包括客户操作、管理人员操作、 主管操作:客户操作:查询操作:可以按照车次或始发站、 终点站两种方式进行查询, 只需要输入关键信息即可查到所需的车次的有关信息,包括车的类型、所剩票的类型、数量、票价等。注册操作:网上订票,需要与客户的银行账号、电话、地址等有关信息关联,只有进行注册之后才可以进行订票操作。订票操作:客户进行注册后, 可以方便地进行订票, 可以选
12、择支付方式与送票方式,以达到最快速、高效地完成车票的订购。退票操作:由于一些原因, 可能造成客户要求退票, 系统根据具体的情况判定是否可以退票,进行退票。注销操作:客户可能因为某些原因要进行注销操作,系统根据客户请求完成客户注销,删除数据库中的该客户有关信息。2. 功能模块图铁路票务系统客户模块注册注销退票订票查询名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计6 3. 局部 ER图(以
13、客户为主体)客户列车车票物流公司票务信息送票订购属于统计查询数量途径站点车次车类型起始站终点站里程起始时间到达时间车票类型 1账号数量姓名编号车票类型 2住址密码电话身份证号日期名称支付账号支付类型剩余数量nmmn11nn1n车票编号车票编号车票编号3.2 详细设计: 3.2.1逻辑结构设计用户(用户账号,密码)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计7 用户详细信息(用户账号,
14、姓名,性别,电话,地址,支付方式)支付类型(类型编号,支付类型)网上银行(银行编号,银行名称)订票记录(用户编号,车票编号,数量,订票日期)票务信息(车票编号,剩余数量,日期)票类型 1(票类型编号 1,票类型名称 1)票类型 2(票类型编号 2,票类型名称 2)物流公司(物流公司编号,物流公司名称) 3.2.2数据库物理设计用户表:用户详细信息表:字段名称数据类型宽度可否为空是否为主键说明ID8 char 20 否是用户账号Name char 20 否否姓名Sexno int 1 否否性别编号tel char 11 否否电话Address char 30 否否地址zhifuno int 1
15、否否支付方式支付类型表:字段名称数据类型宽度可否为空是否为主键说明zhifuno int 1 否是类型编号zhifu char 20 否否支付类型网上银行:字段名称数据类型宽度可否为空是否为主键说明ID8 char 20 否是用户账号password char 16 否否用户密码名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计8 字段名称数据类型宽度可否为空是否为主键说明Bankno i
16、nt 1 否是银行编号Bank char 20 否否银行名称订票记录:字段名称数据类型宽度可否为空是否为主键说明ID8 char 20 否是用户帐号ID char 20 否是车票编号num int 1 否否数量Date datetime 1 否否订票日期票务信息表:字段名称数据类型宽度可否为空是否为主键说明ID char 20 否是车票编号num1 int 1 否否剩余数量Date1 datetime 1 否否日期票类型 1 表:字段名称数据类型宽度可否为空是否为主键说明Type1 int 1 否是票类型编号 1 Type1na char 20 否否票类型名称 1 票类型 2 表:字段名称数据
17、类型宽度可否为空是否为主键说明Type2 int 1 否是票类型编号 2 Type2na char 20 否否票类型名称 2 物流公司(物流公司编号,物流公司名称)字段名称数据类型宽度可否为空是否为主键说明transno Int 1 否是物流公司编号transna Char 20 否否物流公司名称名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计9 3.2 系统数据库设计3.2.1.该系统
18、由两部分组成:登录部分和车次车票部分。(1).登录部分:该部分分为管理员与乘客登录,管理员登录时需要设定账号与密码,只有输入正确的账号与密码才能登陆,同时系统的功能管理员都能操作,乘客不需要账号与密码,但是乘客只有查询的操作权限。(2).车次车票部分:该部分又分为四个子系统:查询系统:可以查询车次基本信息与车次详细。购票系统:用于乘客购票,同时显示剩余票数与票价。更新系统:当车次信息有变化时,管理员可以根据情况插入和删除车次信息。退票系统:用于乘客需要退票时,且退票时只退票价的80%。该系统 ER 图如图 3.1:n 图 3.2管理员账号密码管理火车车次出发站目的站座位类型始发时间终点到达时间
19、显示站点到达时间出发时间票价剩余票数n 1 n 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计10 该系统流程图如下:图 3.2开始选择登录类型管理员乘客更新系统类型账号正确输入账号和密码错误查询系统购票系统退票系统操作返回查询系统操作结束退出退出返回名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
20、 - - - - - 第 11 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计11 4. 系统实现设计的火车站售票系统主要分为五个模块:5.1.登陆模块。在登陆系统中,所需要的功能就是对输入的账号和密码与数据库中的账号信息进行匹配查询。其实现使用了 text控件, adodc控件, , option 控件, command控件以及 label 控件。主要代码如下:Private Sub Command1_Click() If Option1.Value = True Then 判断是否是管理员登陆If Text1.Text = Then 如果账号
21、中输入为空则显示请输入账号 MsgBox 请输入账号 ElseIf Text2.Text = Then 如果密码框输入为空则显示请输入密码 MsgBox 请输入密码 ElseIf Text1.Text Then 当账号框中输入不为空Dim strsql As String strsql = select * from 表 3 Where id= + + Text1 + 从数据库中找到账号等于账号框中输入的数据时With Adodc1 ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path
22、+ db3.mdb;Persist Security Info=False .RecordSource = strsql .Refresh End With If Adodc1.Recordset.EOF = True Then MsgBox 账号信息错误 ElseIf Text2.Text Adodc1.Recordset.Fields(passnum) Then MsgBox 密码错误 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 42 页 - - - - - -
23、 - - - 湖南文理学院计算机学院大型数据库课程设计12 ElseIf Text2.Text = Adodc1.Recordset.Fields(passnum) Then 当密码框中输入的数据与数据库的密码相符时Form1.Hide Form2.Show End If End If ElseIf Option2.Value = True Then 如果选择为游客登录则跳转到游客查询界面Form3.Show Form1.Hide End If End Sub 另外为了美化界面,增加登陆界面的功能,添加了time 控件,将计算机系统时间显示在lable 控件中,具体代码如下:Private S
24、ub Timer1_Timer() Label4.Caption = Now End Sub 5.2.主菜单 即管理员登陆进入后的操作菜单。本界面中用到了command控件。作用是跳转到操作员所需要的界面。主要代码示例如下:Private Sub Command1_Click() 当前主菜单隐藏,更新系统显示。Form2.Hide Form4.Show End Sub 5.3.更新系统更新系统中主要要求对数据库中的表的数据进行修改,主要包括插入,修改,删除。在这些功能的实现中我们使用了adodc控件, option 控件,label 控件, datagrid控件。主要代码如下:Private
25、Sub Command1_Click() 如果选择的为火车基本信息,则让datagrid控件中显示火车基本信息的表。 并实现插入功能。 反之则对火车详细信息表进行插入操作。If Option1.Value = True Then 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计13 Set DataGrid1.DataSource = Adodc1 Adodc1.Recordset.A
26、ddNew ElseIf Option2.Value = True Then Set DataGrid1.DataSource = Adodc2 Adodc2.Recordset.AddNew End If End Sub Private Sub Command2_Click() 允许在 datagrid 中对数据进行更新DataGrid1.AllowUpdate = True End Sub Private Sub Command3_Click() 如果选择的为火车基本信息,则让datagrid控件中显示火车基本信息的表。 并实现删除功能。 反之则对火车详细信息表进行删除操作。If Opti
27、on1.Value = True Then Adodc1.Recordset.Delete ElseIf Option2.Value = True Then Set DataGrid1.DataSource = Adodc2 Adodc2.Recordset.Delete End If End Sub Private Sub Command4_Click() 使用户不能对 datagrid 中数据进行更新,防止出错。DataGrid1.AllowUpdate = False End Sub 5.4.查询系统在本系统中主要是要求用户能对火车进行查询,包括车次查询,名师资料总结 - - -精品资料
28、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计14 站点查询以及详细查询。 另外要求不能对数据进行修改。为了实现这些功能, 我们用到了 datagrid 控件,adodc控件, label 控件, command控件, text 控件。具体代码如下:Private Sub Command1_Click() 对输入的两个站点进行查询。查询进过输入的两个站点的所有火车。 为了实现这个对两个站点间的查询,我们使用了子查询
29、语句。Dim strsql As String strsql = select * from 表 2 where 车次 in(select 车次 from 表 2 Where 站点in ( + Text1 + , + Text2 + ) group by 车次 having count(*)=2) and 站点in ( + Text1 + , + Text2 + ) order by 编号 asc With Adodc2 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3
30、.mdb;Persist Security Info=False .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 .Refresh End With End Sub Private Sub Command2_Click() 对Dim strsql As String strsql = select * from 表 2 Where 车次 = + + Text3 + order by 编号asc With Adodc2 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _
31、& Data Source= + App.Path + db3.mdb;Persist Security Info=False .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 .Refresh 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计15 End With End Sub Private Sub Command3
32、_Click() 对输入的车次进行查询,输出该车次的信息。Dim strsql As String strsql = select * from 表 2 order by 编号 asc With Adodc2 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3.mdb;Persist Security Info=False .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 .Refresh End With
33、End Sub Private Sub Form_Load() 使 datagrid中输出的数据不能进行修改。DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False End Sub 5.5.购票退票系统在该系统中要实现的功能是支持售票员对游客购票的车次的查询,以及购票的操作,其中包括对票价的显示,座位数的加减,尤其是实时对数据库的车票情况的更新, 以及购买硬座、 硬卧、软卧、站票这不同车票的区别。为此,我们使用了label 控件, frame 控件, text 控件, o
34、ptions 控件, datagrid控件,adodc控件以及 command控件。具体功能实现如下:(查询的实现与查询系统的相似,不在这里列出) Private Sub Command1_Click() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计16 实 现 乘 客 购 票 的 显 示 , 以 及 实 时 对 数 据 库 中 的 车 票 信 息 进 行 更 新 。Label9.
35、Caption = Text2.Text Label11.Caption = Text1.Text Label10.Caption = Text3.Text Label12.Caption = Adodc1.Recordset.Fields( 发车时间 ) If Option1.Value = True Then Label13.Caption = Option1.Caption Adodc1.Recordset.Fields( 软卧剩余票数) = Adodc1.Recordset.Fields( 软卧剩余票数 ) - 1 Label17.Caption = Adodc1.Recordset.
36、Fields( 软卧剩余票数 ) ElseIf Option2.Value = True Then Label13.Caption = Option2.Caption Adodc1.Recordset.Fields( 硬卧剩余票数 ) = Adodc1.Recordset.Fields( 硬卧剩余票数 ) - 1 Label17.Caption = Adodc1.Recordset.Fields( 硬卧剩余票数 ) ElseIf Option4.Value = True Then Label13.Caption = Option4.Caption Adodc1.Recordset.Fields
37、( 硬座剩余票数 ) = Adodc1.Recordset.Fields( 硬座剩余票数 ) - 1 Label17.Caption = Adodc1.Recordset.Fields( 硬座剩余票数 ) End If Label14.Caption = Text4.Text Label15.Caption = Adodc1.Recordset.Fields( 车次类型 ) Label16.Caption = Date End Sub Private Sub Command3_Click() 通过 option 控件,查询出不同座位价格并把价格显示到 text 控件中。If Option1.V
38、alue = True Then Label20.Caption = (Text4.Text) * 0.8 Adodc1.Recordset.Fields(软卧剩余票数 ) = Adodc1.Recordset.Fields(软卧剩余票数) + 1 Label17.Caption = Adodc1.Recordset.Fields( 软卧剩余票数 ) ElseIf Option2.Value = True Then Label20.Caption = (Text4.Text) * 0.8 Adodc1.Recordset.Fields(硬卧剩余票数 ) = Adodc1.Recordset.F
39、ields(硬卧剩余票数) + 1 Label17.Caption = Adodc1.Recordset.Fields( 硬卧剩余票数 ) ElseIf Option4.Value = True Then 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计17 Label20.Caption = (Text4.Text) * 0.8 Adodc1.Recordset.Fields(硬座剩
40、余票数 ) = Adodc1.Recordset.Fields(硬座剩余票数) + 1 Label17.Caption = Adodc1.Recordset.Fields( 硬座剩余票数 ) End If End Sub Private Sub Option1_Click() 选择软卧,并把软卧的剩余票数输出。Dim a As Double, b As Double Adodc1.Recordset.MoveFirst a = Adodc1.Recordset.Fields( 软卧票价 ) Adodc1.Recordset.MoveNext b = Adodc1.Recordset.Field
41、s( 软卧票价 ) Text4.Text = b - a Label17.Caption = Adodc1.Recordset.Fields( 软卧剩余票数 ) End Sub 5.6.此外,在系统设计过程中,我们发现如果直接使用adodc控件对数据库进行关联,将使得我们设计的软件只能在指定的路径中才能运行,为此,我们查阅了相关资料,在软件设计过程中动态设置我们数据库的路径,从而使软件能在不同的路径中正常运行,代码如下:With Adodc1 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App
42、.Path + db3.mdb;Persist Security Info=False .Refresh End With名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计18 5. 系统调试5.1.登陆系统图 5.1:此为密码输入错误提示。图 5.2:此为密码输入正确后跳转到主菜单的界面。图 5.3:此为选择乘客后正确跳转到查询的界面。图 5.1 图 5.2 名师资料总结 - - -精
43、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计19 图 5.3 5.2.查询系统图 5.4:此为输入长沙到常德的站点查询后正确查询出的信息。图 5.5:此为输入 1374 车次后正确查询出的车次信息。图 5.6:此为点击详细查询后正确输出的信息。图 5.4 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
44、 第 20 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计20 图 5.5 图 5.6 5.3.更新系统图 5.7:此为未更新前显示信息。图 5.8:此为插入 1234 车次后显示信息。图 5.9:此为删除 1234 车次后显示信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计21 图 5.7 图 5.8 图 5.9 5.4.购票系统
45、。图 5.10:此为输入站点,车次后过滤出的车次信息。图 5.11:此为在图十的基础上选择软座后显示的票价及剩余票数信息。图 5.12:此为点击确定购买后显示的信息,包括对剩余票数的更新信息。图 5.10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计22 图 5.11 图 5.12 5.5.退票系统图 5.13:此为初始状态。图 5.14:此为在输入与购票系统相同信息后输出的退还现
46、金数目。图 5.13 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计23 图 5.14 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计24 6. 小结对于此次课程设计我感慨
47、颇多,的确,从拿到题目到完成整个编程,从理论到实践,在整整两个星期的日子里, 学到的很多理论知识, 在这次课程设计实习中更具体的体现了出来, 在实践过程中, 不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的, 只有理论知识是远远不够的, 只有把所学到的理论知识与实践相结合起来, 从理论中得出结论, 将结论辅助与理论, 才能真正学到知识并写出有用的程序,所以提高自己的实际动手能力和独立思考的能力是十分重要的。在设计的过程中遇到很多的问题,可以说得是困难重重, 由于对以前所学过的知识理解得不够深刻, 掌握得不够牢固。导致自己
48、在程序设计过程中经常出错,致使程序无法运行或无法实现要求的步骤。还有很多是些小问题, 这都是由于我粗心大意而造成的, 所以我认识到设计程序一定要仔细,容不得丝毫的马虎和粗心大意。当然还有其他的问题,尤其是关于文件的操作,是我们最大的问题,不过,经过老师的讲解和改错之后,也开始懂得设计和运用了。在本次实践中,我认识到了团队的重要性,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。 某个人的离群都可能导致导致整项工作的失败。只有一个人知道原理是远远不够的,必须让每个人都知道, 否则一个人的错误, 就有可能导致整个工作失败。 团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我
49、们这一点, 这也是非常宝贵的。 我很清楚的知道团结协作的力量是伟大的, 如果是我一个人孤军奋战的话, 肯定不能在规定时间内完成这次课程设计的要求内容, 因此我很怀念这两个星期的合作, 想起我们一起查阅资料,一起讨论设计程序的思路, 成功的时候一起分享喜悦, 失败的时候互相鼓励, 我坚信, 在这两个星期的时间里面, 我们的友情和团结精神在历练中经受住了考验,变的更加顽强,我们是一个集体的思想已经深入人心!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 42 页 - - -
50、 - - - - - - 湖南文理学院计算机学院大型数据库课程设计25 附录源代码from1(登陆界面 ): Private Sub Command1_Click() If Option1.Value = True Then If Text1.Text = Then MsgBox 请输入账号 ElseIf Text2.Text = Then MsgBox 请输入密码 ElseIf Text1.Text Then Dim strsql As String strsql = select * from 表 3 Where id= + + Text1 + With Adodc1 .Connectio
51、nString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3.mdb;Persist Security Info=False .RecordSource = strsql .Refresh End With If Adodc1.Recordset.EOF = True Then MsgBox 账号信息错误 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 42 页 - - - -
52、 - - - - - 湖南文理学院计算机学院大型数据库课程设计26 ElseIf Text2.Text Adodc1.Recordset.Fields(passnum) Then MsgBox 密码错误 ElseIf Text2.Text = Adodc1.Recordset.Fields(passnum) Then Form1.Hide Form2.Show End If End If ElseIf Option2.Value = True Then Form3.Show Form1.Hide End If End Sub Private Sub Command2_Click() End E
53、nd Sub Private Sub Form_Load() End Sub Private Sub Timer1_Timer() Label4.Caption = Now End Sub 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计27 from2(主菜单) : Private Sub Command1_Click() Form2.Hide Form4.Show End Sub
54、Private Sub Command2_Click() Form2.Hide Form5.Show End Sub Private Sub Command3_Click() End End Sub Private Sub Command4_Click() Form2.Hide Form5.Show End Sub 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计28 Private
55、Sub Command5_Click() Form2.Hide Form3.Show End Sub from3(查询系统) : Private Sub Command1_Click() Dim strsql As String strsql = select * from 表 2 where 车次 in(select 车次 from 表 2 Where 站点 in ( + Text1 + , + Text2 + ) group by 车次 having count(*)=2) and 站点 in ( + Text1 + , + Text2 + ) order by 编号 asc With A
56、dodc2 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3.mdb;Persist Security Info=False .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 42 页 - - - - - - - - - 湖南文理学院计
57、算机学院大型数据库课程设计29 .Refresh End With End Sub Private Sub Command2_Click() Dim strsql As String strsql = select * from 表 2 Where 车次 = + + Text3 + order by 编号 asc With Adodc2 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3.mdb;Persist Security Info=False .RecordSou
58、rce = strsql Set DataGrid1.DataSource = Adodc2 .Refresh End With End Sub Private Sub Command3_Click() Dim strsql As String strsql = select * from 表 2 order by 编号 asc With Adodc2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大
59、型数据库课程设计30 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3.mdb;Persist Security Info=False .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 .Refresh End With End Sub Private Sub Form_Load() DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False Da
60、taGrid1.AllowUpdate = False End Sub Private Sub Label4_Click() Form1.Show Form3.Hide End Sub Private Sub Label5_Click() End 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 31 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计31 End Sub from4(更新系统) : Private Sub Command1_
61、Click() If Option1.Value = True Then Set DataGrid1.DataSource = Adodc1 Adodc1.Recordset.AddNew ElseIf Option2.Value = True Then Set DataGrid1.DataSource = Adodc2 Adodc2.Recordset.AddNew End If End Sub Private Sub Command2_Click() DataGrid1.AllowUpdate = True End Sub Private Sub Command3_Click() If O
62、ption1.Value = True Then Adodc1.Recordset.Delete ElseIf Option2.Value = True Then 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 32 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计32 Set DataGrid1.DataSource = Adodc2 Adodc2.Recordset.Delete End If End Sub Private Sub
63、Command4_Click() DataGrid1.AllowUpdate = False End Sub Private Sub Form_Load() strsql = select * from 表 1 With Adodc1 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3.mdb;Persist Security Info=False .RecordSource = strsql .Refresh End With strsql1 = select * fr
64、om 表 2 With Adodc2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 33 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计33 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3.mdb;Persist Security Info=False .RecordSource = strsql1 .Ref
65、resh End With DataGrid1.AllowUpdate = False End Sub Private Sub Label1_Click() End End Sub Private Sub Label2_Click() Form2.Show Form4.Hide End Sub Private Sub Option1_Click() Set DataGrid1.DataSource = Adodc1 End Sub 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 34
66、 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计34 Private Sub Option2_Click() Set DataGrid1.DataSource = Adodc2 End Sub from5(购票退票系统) : Private Sub Command1_Click() Label9.Caption = Text2.Text Label11.Caption = Text1.Text Label10.Caption = Text3.Text Label12.Caption = Adodc1.Recordset.Fields( 发车时间
67、) If Option1.Value = True Then Label13.Caption = Option1.Caption Adodc1.Recordset.Fields(软卧剩余票数 ) = Adodc1.Recordset.Fields(软卧剩余票数 ) - 1 Label17.Caption = Adodc1.Recordset.Fields( 软卧剩余票数 ) ElseIf Option2.Value = True Then Label13.Caption = Option2.Caption Adodc1.Recordset.Fields(硬卧剩余票数 ) = Adodc1.Re
68、cordset.Fields(硬卧剩余票数 ) - 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 35 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计35 Label17.Caption = Adodc1.Recordset.Fields( 硬卧剩余票数 ) ElseIf Option4.Value = True Then Label13.Caption = Option4.Caption Adodc1.Recordset.Fie
69、lds(硬座剩余票数 ) = Adodc1.Recordset.Fields(硬座剩余票数 ) - 1 Label17.Caption = Adodc1.Recordset.Fields( 硬座剩余票数 ) ElseIf Option5.Value = True Then Label13.Caption = Option5.Caption Adodc1.Recordset.Fields(硬座剩余票数 ) = Adodc1.Recordset.Fields(硬座剩余票数 ) - 1 Label17.Caption = Adodc1.Recordset.Fields( 硬座剩余票数 ) End I
70、f Label14.Caption = Text4.Text Label15.Caption = Adodc1.Recordset.Fields( 车次类型 ) Label16.Caption = Date End Sub Private Sub Command2_Click() Dim strsql As String strsql = select * from 表 2 where 车次 in( & Text1.Text & ) and 站点 in ( + Text2 + , + Text3 + ) order by 编号 asc 名师资料总结 - - -精品资料欢迎下载 - - - -
71、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 36 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计36 With Adodc1 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3.mdb;Persist Security Info=False .RecordSource = strsql Set DataGrid1.DataSource = Adodc1 .Refres
72、h End With End Sub Private Sub Command3_Click() If Option1.Value = True Then Label20.Caption = (Text4.Text) * 0.8 Adodc1.Recordset.Fields(软卧剩余票数 ) = Adodc1.Recordset.Fields(软卧剩余票数 ) + 1 Label17.Caption = Adodc1.Recordset.Fields( 软卧剩余票数 ) ElseIf Option2.Value = True Then Label20.Caption = (Text4.Text
73、) * 0.8 Adodc1.Recordset.Fields(硬卧剩余票数 ) = Adodc1.Recordset.Fields(硬卧剩余票数 ) + 1 Label17.Caption = Adodc1.Recordset.Fields( 硬卧剩余票数 ) ElseIf Option4.Value = True Then 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 37 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计37 La
74、bel20.Caption = (Text4.Text) * 0.8 Adodc1.Recordset.Fields(硬座剩余票数 ) = Adodc1.Recordset.Fields(硬座剩余票数 ) + 1 Label17.Caption = Adodc1.Recordset.Fields( 硬座剩余票数 ) ElseIf Option5.Value = True Then Label20.Caption = (Text4.Text) * 0.8 Adodc1.Recordset.Fields(硬座剩余票数 ) = Adodc1.Recordset.Fields(硬座剩余票数 ) + 1
75、 Label17.Caption = Adodc1.Recordset.Fields( 硬座剩余票数 ) End If End Sub Private Sub Command4_Click() Dim strsql As String strsql = select * from 表 2 where 车次 in(select 车次 from 表 2 Where 站点 in ( + Text2 + , + Text3 + ) group by 车次 having count(*)=2) and 站点 in ( + Text2 + , + Text3 + ) order by 编号 asc Wit
76、h Adodc1 .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0; _ & Data Source= + App.Path + db3.mdb;Persist Security Info=False 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 38 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计38 .RecordSource = strsql Set DataGrid1.D
77、ataSource = Adodc1 .Refresh End With End Sub Private Sub Form_Load() DataGrid1.AllowUpdate = False End Sub Private Sub Label2_Click() Form2.Show Form5.Hide End Sub Private Sub Label3_Click() End End Sub Private Sub Option1_Click() Dim a As Double, b As Double Adodc1.Recordset.MoveFirst 名师资料总结 - - -精
78、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 39 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计39 a = Adodc1.Recordset.Fields( 软卧票价 ) Adodc1.Recordset.MoveNext b = Adodc1.Recordset.Fields( 软卧票价 ) Text4.Text = b - a Label17.Caption = Adodc1.Recordset.Fields( 软卧剩余票数 ) End Sub Pri
79、vate Sub Option2_Click() Dim a As Double, b As Double Adodc1.Recordset.MoveFirst a = Adodc1.Recordset.Fields( 硬卧票价 ) Adodc1.Recordset.MoveNext b = Adodc1.Recordset.Fields( 硬卧票价 ) Text4.Text = b - a Label17.Caption = Adodc1.Recordset.Fields( 硬卧剩余票数 ) End Sub Private Sub Option4_Click() Dim a As Doubl
80、e, b As Double Adodc1.Recordset.MoveFirst a = Adodc1.Recordset.Fields( 硬座票价 ) Adodc1.Recordset.MoveNext 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 40 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计40 b = Adodc1.Recordset.Fields( 硬座票价 ) Text4.Text = b - a Label17.
81、Caption = Adodc1.Recordset.Fields( 硬座剩余票数 ) End Sub Private Sub Option5_Click() Dim a As Double, b As Double Adodc1.Recordset.MoveFirst a = Adodc1.Recordset.Fields( 硬座票价 ) Adodc1.Recordset.MoveNext b = Adodc1.Recordset.Fields( 硬座票价 ) Text4.Text = b - a Label17.Caption = Adodc1.Recordset.Fields( 硬座剩余
82、票数 ) End Sub名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 41 页,共 42 页 - - - - - - - - - 湖南文理学院计算机学院大型数据库课程设计41 参考文献1 王听讲 .VisualBasic6.0 数据库开发实例 .机械工业出版社, 2000.1 2 清宏计算机工作室, VisualBasic 编程技巧网络与数据库篇, 机械工业出版社,2001.5 3 张宏林,孔艳,王哲等, VisualBasic6.0 开发数据库,人民邮电出版社,1999.11名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 42 页,共 42 页 - - - - - - - - -