山东大学数据库课程设计火车票系统报告

数据库课程设计报告

————火车票订票系统

 

 

 

 

​​

学院:           

专业:             

班级:           

姓名:               

学号:         

 

 

 

 

 

 

 

 

 

 

 

 

 

目录

一、系统开发平台 3

二、数据库规划 3

2.1  任务陈述 3

2.2  任务目标 3

三、系统定义 3

3.1  系统边界 4

3.2  用户视图 4

四、需求分析 5

4.1  数据需求 5

4.2  事务需求 6

4.3  系统需求 7

五、数据库逻辑设计 8

5.1  E-R图 8

5.2  数据字典 11

5.3功能模块 13

六、 数据库物理设计 13

6.1安全机制 13

6.2索引 14

七、 应用程序设计 14

7.1功能模块 14

八、 测试与运行 24

8.1登陆测试 24

8.2注册测试 25

8.3忘记密码 25

8.4列车查询 26

8.5预订车票 27

8.6订单操作 27

8.7乘车人操作 29

8.8列车添加 29

8.9列车删除 30

8.10订单删除 30

九、 部分代码展示 30

9.1前端代码展示 30

9.2后端代码展示 33

十、 总结 36

 

 

 

一、系统开发平台

      题目:火车票订票系统

     开发工具:IntelliJ IDEA

     数据库:MySQL数据库

     操作系统:Windows 10

     开发语言:Java,HTML,CSS,JavaScript

     后端框架:SpringBoot

二、数据库规划

2.1  任务陈述

      做一个火车票订票系统。主要功能:车票查询(单程、连续换乘)、车次管理(车次、起止地点、到达时间、开车时间)、订票(取消、支付、退票、改签)

2.2  任务目标

      完成一个火车票订票系统,实现管理员对列车信息的设置、增添、删除,对订单的查看、删除,同时实现用户对车票信息的查询购买,以及对车票的取消、退票、改签。

三、系统定义

3.1  系统边界

      管理员:对列车信息可以增删查改,对订单可以删除

     用户:可以查询车票,预订车票等,不可以修改列车信息

3.2  用户视图

      管理员:

      (1)列车添加:编辑列车编号、起始站、终点站、发车日期、发车时间、到达时间来添加列车

      (2)列车查询及删除:根据起始站、终点站、出发日期或三个信息的组合来查询已设置的列车,得到相对应的列车信息,进而可以对其进行删除操作,若该趟列车已有相关联的订单则不允许删除该列车

      (3)订单查询及删除:可以查询到所有订单信息(取消支付订单、过期支付订单、改签订单、退票订单、未出行订单、已完成订单),可以对所有订单进行删除操作

      用户:

      (1)登陆:输入相关信息注册账号、根据用户名等信息找回账号密码、登陆账号

      (2)单程查询:单程火车票查询:根据出发站、终点站、出发日期查询火车票

      (3)连续换乘查询:连续换乘火车票查询:根据出发站、终点站、出发日期查询火车票,或根据出发站、终点站、换乘站、出发日期查询火车票

      (4)余票查询/订票:火车票余票查询、预订:选择相应的火车查看余票信息,并选择座位类型、车票类型、乘车人进行火车票的预订

      (5)个人信息:个人中心可以查看用户的基本信息:如用户类型、地址、电话号码、身份证号等

      (6)乘车人管理:编辑相关信息添加乘车人、删除乘车人

      (7)订单管理:未支付订单可以进行支付、取消操作,未出行订单可以进行退票、改签操作,还可以查看已失效订单(支付过期订单、已取消订单、已退票订单)和已完成订单

四、需求分析

4.1  数据需求

      该项目主要包括了用户、乘车人、列车、订单等多个实体。这些实体都有其唯一的编号(如顾客对应的是 user_id)用于区分。用户类数据主要包括用户编号,用户密码,用户名称,用户类型,用户身份证号,联系方式等属性。乘车人实体主要包括了用户编号、乘车人身份证号、乘车人姓名、乘车人类型、乘车人电话号码等属性。列车实体则包括了列车编号、列车类型、起始站、终点站、出发日期、出发时间、到达时间等属性。订单实体是本项目中最重要的一环,其属性包括订单时间、下单用户、乘车人、乘车人身份证号、列车编号、列车出发站、终点站、出发日期、出发时间、到达时间、车票类型、车厢号、座位号等。根据订单编号我们可以在数据库中获取到各类相关信息:如是谁下的订单,订单中的列车信息是什么,什么时候下的订单,车票车厢、座位号是多少等

4.2  事务需求

■数据录入

        a 新用户注册时录入相关信息

        b 管理员添加列车时列车信息录入

        c 用户添加订单时订单信息录入

■数据更新/删除

        d 更新/删除用户的个人信息

        e 更新/删除乘车人信息

        f 更新/删除订单信息

        g 更新列车座位信息

■数据查询

        h 查询列车的相关信息

        I 查询乘车人的相关信息

        J 查询订单的相关信息

        K 查询用户的相关信息

4.3  系统需求

4.3.1性能:

■单个记录 查询时间少于 3 秒

■多个记录查询时间少于 6 秒

■更新/保存记录时间少于 2 秒

4.3.2安全性:

■不同权限的用户所能访问到的数据库权限不同

4.3.3运行需求:

    使用浏览器界面结构,采用导航栏界面方式,尽力带给操作用户便利,对用户友好;对鼠标和键盘单独支持。正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。

4.3.4其他需求:

■系统的功能实现情况:

      用户可在本系统下实现各种用户要求的功能

■系统的容错性:

      用户输错数据都有提示信息,具有较好的容错性能。

■系统的封闭性:

      用户的封闭性较好,用户基本上在提示信息下输数据。

五、数据库逻辑设计

5.1 E-R图

5.1.1用户信息E-R图:

 

5.1.2乘车人信息E-R图:

    

5.1.3列车信息E-R图:

  • 22
    点赞
  • 265
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
火车订票系统主要涉及到火车车次信息、座位信息和订单信息的存储和处理。下面是一个简单的 C 语言数据结构设计思路: 1. 火车车次信息 每个火车车次包括车次编号、起始站、终点站和座位信息。可以用一个结构体来表示,如下所示: ``` struct train { char number[10]; // 车次编号 char start[20]; // 起始站 char dest[20]; // 终点站 int seat_left[MAX_SEAT_NUM]; // 剩余座位数 }; ``` 可以用一个数组来存储所有火车车次信息,数组的长度可以根据实际情况来确定。 2. 座位信息 座位信息包括座位号和是否已被占用。可以用一个整型数组来表示,其中 0 表示座位未被占用,1 表示座位已被占用。 3. 订单信息 每个订单包括订票人姓名、车次编号和座位号。可以用一个结构体来表示,如下所示: ``` struct order { char name[20]; // 订票人姓名 char train_number[10]; // 车次编号 int seat; // 座位号 }; ``` 可以用一个数组来存储所有订单信息,数组的长度可以根据实际情况来确定。 4. 数据结构设计 可以将所有火车车次信息、座位信息和订单信息存储在全局变量中,方便各个函数之间的访问和数据交互。可以提供如下几个函数来实现订票系统的基本功能: - 添加火车车次:输入车次编号、起始站、终点站和座位信息,将火车车次信息存储到数组中。 - 查找火车车次:输入车次编号,返回车次在数组中的索引。 - 订票:输入订票人姓名、车次编号和座位号,检查座位是否已被占用,如果未被占用,则将订单信息存储到数组中,并将座位状态设置为已占用。 - 取消订单:输入订票人姓名、车次编号和座位号,查找订单信息,如果存在,则将座位状态设置为未占用,并将订单信息从数组中删除。 - 显示订单:输入订票人姓名,查找所有订单信息,并输出车次编号和座位号。 以上就是一个简单的 C 语言数据结构设计思路,可以根据实际情况进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值