1、长 沙 学 院课 程 设 计 说 明 书题目 汽车租赁管理系统系(部) 数学与计算机科学系专业(班级)姓名学号指导教师 潘怡起止日期 2015.6.152015.6.26课程设计任务书课程名称:数据库系统原理课程设计设计题目:汽车租赁管理系统已知技术参数和设计要求:题目:汽车租赁管理系统1、某汽车租赁公司汽车租赁管理系统需要如下信息:工作人员信息包括:工号、姓名、性别、联系电话等。客户信息包括:身份证号、姓名、性别、所在单位、联系电话等。车辆信息包括:车牌号、品牌、颜色、座位数、日租价格、日租超公里价格、月租价格、租赁状态、购入日期等。车辆类别信息包括:分类号,库存数。其业务规则描述如下:一个
2、工作人员可以对很多辆车辆进行管理,一辆车也可以被多个工作人员管理;一辆车只能属于一种车辆类别,而一种车辆类别可以包含多辆车;一个客户可以租多辆不同的车。2、系统功能的基本要求:可以实现对车辆、租赁客户的查询,可以查询汽车、客户租赁历史记录。可以按类别统计汽车的租赁金额和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好,能模拟客户对汽车的租借、归还业务。各阶段具体要求:1、需求分析阶段 定义数据项的含义和取值 定义目标系统的数据流2、概念结构设计阶段 画出实体模型 E-R 图3、逻辑结构设计阶段 将实体模型转化为关系模型 给出每个关系的主关键字和函数依赖集 分析你所设计的关系数据库模式
3、是否属于 3NF4、物理设计阶段 确定所有字段的名称、类型、宽度、小数位数及完整性约束 确定数据库及表的名称及其组成 确定索引文件和索引关键字5、数据库安全及维护设计阶段 设计一个适合的数据库安全策略(用户身份认证、访问权限、视图) 为了实现复杂的数据完整性约束,设计适当的触发器 设计一个适合的数据库备份策略6、实施阶段 要求所有操作必须在查询分析器中用 SQL 语句或系统存储过程完成。 对于学有余力的同学,可以使用嵌入式 SQL 语句结合高级语言开发完成。设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。(2)论文:要求撰写不少于 3000 个文字的文档,详细说明各阶段具体要求
4、。工作计划:安排两周时间进行课程设计,软件开发步骤如下,第一周完成 14,第二周完成 58,论文同步进行;1) 选定题目2) 需求分析3) 概念结构设计4) 逻辑结构设计5) 物理设计6) 数据库安全及维护设计7) 数据库上机实现8) 答辩计划时间 指导老师 班级1516 周 杨刚 13 软件 1 班1516 周 潘怡 13 软件 2 班1516 周 何可可 13 软件 3 班1516 周 刘钢钦 13 软件 4 班注意事项 提交文档 长沙学院课程设计任务书 (每学生 1 份) 长沙学院课程设计论文 (每学生 1 份) 长沙学院课程设计鉴定表 (每学生 1 份)指导教师签名: 日期: 教研室主
5、任签名: 日期: 系主任签名: 日期: 长沙学院课程设计鉴定表姓名 学号 专业 班级设计题目 汽车租赁管理系统 指导教师 潘怡指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级: 答辩小组长签名: 日期: 教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名: 日期: 说明 课程设计成绩分“优秀” 、 “良好” 、 “及格” 、 “不及格”四类;目 录一、引言 .81.1 编写目的 .81.2 参考资料 .8二、 需求规约 .82.1 业务描述 .82.2 需求分析 .92.2.1 用例规约 .9三、 环境说明 .113.1 数据库环境 .113.2 开发环境 .1
6、1四、 数据库的命名规则 .124.1 数据库对象命名规则 .124.2 数据项编码规则 .12五、 逻辑设计 .125.1 实体与关系的属性 .125.2 ER 图 .13六、 物理设计 .136.1 表汇总 .136.2 表 TABLE_WORKER.146.3 表 TABLE_CUSTOMER .146.4 表 TABLE_CAR.156.5 表 TABLE_CARCLASS.166.6 表 TABLE_RECORD.166.7 表 TABLE_CAR_WORKER .176.8 存储过程 .176.8.1 proc_insert_Worker .176.8.2 proc_insert_
7、Customer.186.8.3 proc_insert_Car.196.8.4 proc_insert_CarClass .206.8.5 proc_insert_Record.216.8.6 proc_find_AllCarClass .226.8.7 proc_find_Cars.236.8.8 proc_find_Car .236.8.9 proc_find_Customer .246.8.10 proc_find_CustomerRecord.246.8.11 proc_find_CarRecord.256.8.12 proc_find_CustomerFavorite .256.9
8、 函数 .266.9.1 func_CreateRecordNO.266.9.2 func_IdToAge.266.10 触发器 .276.10.1 Trigger_insertCar_addCarClassCnt.276.10.2 Trigger_deleteCar_subtractCarClassCnt .276.10.3 Trigger_updateCar .286.10.4 Trigger_updateRecordReturnDate.28七、 运行结果 .297.1 租赁汽车 .297.2 资料查询 .307.3 订单查询 .307.4 查询一类汽车 .317.5 还车登记 .317
9、.6 统计某一年龄最喜欢的类型 .32八、 总结 .32九、 附录 .339.1 存储过程代码 .339.1.1 proc_insert_Car.339.1.2 proc_insert_CarClass .336.1.3 proc_insert_Customer.349.1.4 proc_insert_Record.349.1.5 proc_insert_Worker .349.1.6 proc_find_AllCarClass .359.1.7 proc_find_Car .359.1.8 proc_find_Cars.359.1.9 proc_find_CarRecord.369.1.10
10、 proc_find_Customer .369.1.11 proc_find_CustomerFavorite .369.1.12 proc_find_CustomerRecord.379.2 管理系统代码 .379.2.1 menu.h.379.2.2 usersql.h .389.2.3 main.cpp.399.2.4 menu.cpp.399.2.5 usersql.cpp .48一、引言1.1 编写目的本文是汽车租赁管理系统设计文档的组成部分,编写设计文档的目的是:明确数据库的表名、字段名,明确表之间的关系,分析功能的详细需求。本文档的读者对象是需求人员、系统设计人员、开发人员和测
11、试人员。1.2 参考资料表 1.1 参考资料资料名称 作者 文件编号、版本数据库系统概论 王珊、萨师煊 2006 年 5 月第 4 版C+ GUI Qt 4 编程Jasmin BlanchetteMark summerfield2013 年 5 月第 1 版SQL Server 2008编程入门经典Robert Vieria 2010 年 1 月第 1 版二、 需求规约2.1 业务描述2.1.1 创建背景系统名称:汽车租赁管理系统。系统的开发者:xxx。系统的用户:租车客户以及租赁公司的工作人员。2.1.2 业务规则工作人员可以对很多辆车辆进行管理,一辆车也可以被多个工作人员管理;一辆车只能属
12、于一种车辆类别,而一种车辆类别可以包含多辆车;一个客户可以租多辆不同的车。2.2 需求分析2.2.1 用例规约表 2.1 用户登录用例名称: 用户登录摘要用例 ID: T-LOGIN-1角色: 客户或工作人员用例说明: 汽车租赁系统的登录模块前置条件: 客户或工作人员运行该系统基本事件流: 1. 客户或工作人员输入教务处帐号和密码2. 点击登录其它事件流: 1. 用户不存在2. 帐号或密码错误后置条件: 登录成功并跳转到相关页面表 2.2 车辆信息查询用例名称: 查询车辆信息用例 ID: T-FIND-1角色: 客户或工作人员用例说明: 使用汽车租赁系统查询车辆信息前置条件: 从功能菜单选择进
13、入车辆查询信息页面基本事件流: 输入要查询的品牌其它事件流: 输入的品牌不存在后置条件: 显示该品牌的所有类别的车辆供选择表 2.3 客户信息查询用例名称: 查询客户信息用例 ID: T-FIND-2角色: 客户或工作人员用例说明: 使用汽车租赁系统查询客户信息前置条件: 从功能菜单进入客户信息查询页面基本事件流: 输入要查询客户的身份证号其它事件流: 如果角色为客户的话,用户只能查询自己的信息后置条件: 显示查询结果表 2.4 汽车历史租赁记录查询用例名称: 查询汽车的历史租赁记录用例 ID: T-FIND-3角色: 工作人员用例说明: 使用汽车租赁系统查询汽车的历史租赁记录前置条件: 从功
14、能菜单进入汽车历史租赁记录查询页面基本事件流: 输入要查询汽车的车牌号其它事件流: 输入的车牌号不存在后置条件: 显示查询结果表 2.5 客户历史租赁记录查询用例名称: 查询客户的历史租赁记录用例 ID: T-FIND-4角色: 客户或工作人员用例说明: 使用汽车租赁系统查询客户的历史租赁记录前置条件: 从功能菜单进入客户历史租赁记录查询页面基本事件流: 输入要查询客户的身份证号其它事件流: 1. 输入的身份证号不存在2. 角色是客户的话只能查询其本身后置条件: 显示查询结果表 2.6 某一年龄对汽车的喜好用例名称: 统计某一年龄对汽车的喜好用例 ID: T-COUNT-1角色: 工作人员用例说明: 使用汽车租赁系统统计某一年龄对汽车的喜好前置条件: 从功能菜单进入喜好统计页面基本事件流: 输入要查询的年龄其它事件流: 输入的年龄非法后置条件: 显示某一年龄最喜爱结果品牌