本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
Harbin Institute of Technology at Weihai
数据库系统课程设计报告
设计题目: 美发店会员管理系统
班 级: 110420215
组 号: 8
学 号: 110420215
姓 名: 周超
验收日期: 2012.08.24
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
哈尔滨工业大学(威海)计算机学院
二零一二年八月
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
数据库系统课程设计任务书
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
工作量 (本项主要说明课程设计的工作量体现之所在,具体的设计模块)设计者在本次设计中的主要工作有 设计进度的把握和任务的分配。资料的查询及相关技术的选择。 参与数据库需求分析,概要设计。 参与应用程序的需求分析,概要设计。 商家模块所有功能的代码编写,调试。 程序整体的调试,模块之间的通信等。
工作计划安排 第一周: 1~2:课题的选定,课题分析。实现语言的确定:VC++ MFC 与 SQL SERVER 2000。接口技术的确定:ODBC 技术。 2~4:数据库需求分析,概念设计,逻辑设计,物理设计。 5~7:相关技术资料的查询与学习。对应用程序做需求分析。 第二周: 1~5:完成应用程序个模块代码的编写和调试。 5~7:完成各模块之间的调用和通信,对系统整体进行调试和优化。 同组设计者及分工 (本项主要说明小组成员的分工情况,要分工明确,详细给出各成员所 要完成的设计工作组员 陈兆卿:设计进度的把握和任务的分配。资料的查询及相关技术的选择。 参与数据库需求分析,概要设计。参与应用程序的需求分析,概要设 计。商家模块所有功能的代码编写,调试(包括子模块:订单模块, 菜单模块,信息修改模块,销售信息模块等) 。程序整体的调试,模 块之间的通信等。 组员 王怡东:参与数据库需求分析,概要设计。参与应用程序的需求分析,概要设 计。买家模块所有功能的代码编写和调试(包括子模块:订购模块, 查询模块,订单模块,信息修改模块等)参与程序整体的调试,模块 之间的通信等。 组员 张金狮:参与数据库需求分析,概要设计。参与应用程序的需求分析,概要设 计。完成数据库的建立。登录注册模块和管理员模块的代码编写与调 试(包括子模块:注册信息获取模块,注册信息删除模块等) 。参与 程序整体的调试,模块之间的通信等。
说明:课程设计报告每人一份,组内成员不能内容相同,每个人都从自己的角度去写。
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
目 录
1 绪 论..................................................................................................... 1
1.1 1.2 1.3 1.4
项目简介 ...................................................................................................... 1 设计目的 ...................................................................................................... 1 设计内容 ...................................................................................................... 1 应用范围 ...................................................................................................... 1
2 需求分析 .............................................................................................. 2
2.1 数据需求 ...................................................................................................... 2 2.2 事务需求 ...................................................................................................... 2 2.3 2.4 2.5 2.6
详细功能分析 .............................................................................................. 2 数据字典 ...................................................................................................... 3 开发运行环境 .............................................................................................. 3 安全保障 ...................................................................................................... 3
3 概念设计 .............................................................................................. 4
3.1 实体及联系抽象 .......................................................................................... 4 3.2 E-R图 ........................................................................................................... 4 3.3 关系模式 ...................................................................................................... 6
4 逻辑设计 .............................................................................................. 7
4.1 各表功能 ...................................................................................................... 7 4.2 各表结构 ...................................................................................................... 7 4.3 表关系图 ...................................................................................................... 8
5 物理设计 .............................................................................................. 9
5.1 5.2 5.3 5.4
物理存储 ...................................................................................................... 9 完整性约束 .................................................................................................. 9 视图设计 ...................................................................................................... 9 触发器设计 ................................................................................................ 10
6 系统实现与维护 ................................................................................ 11
6.1 模块1 ......................................................................................................... 11 6.2 模块2 ......................................................................................................... 17 6.3 模块3 ......................................................................................................... 28
7 总 结............................................................................................... 337
7.1 系统实现程度 .......................................................................................... 337 7.2 问题及难点 .............................................................................................. 337 7.3 收获与体会 .............................................................................................. 337
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
1 绪 论
1.1 项目简介
本系统主要实现网上订餐功能,为买家和卖家提供一个信息交互的平台。主要面向对象为大学生和周边饭店。
1.2 设计目的
方便同学们订餐,方便卖家统计订餐信息和计划送餐。
提高从 订餐者获得订餐信息——订餐者订餐——饭店收到定餐信息——饭店完成餐饮的制作——饭店制定送餐计划——饭店完成送餐任务 事务链的效率,以实现饭店更快捷的服务。
1.3 设计内容
主要包括:买家和卖家的注册和登录;买家对菜品及供应饭店的查询与菜品的订购,订单的查询及确认,注册信息的修改。卖家菜品的增、删、改、查,订单的查询与确认、注册信息的修改及销售信息的统计;管理员的相关操作。
1.4 应用范围
本系统适用于理论研究。即用来对平台功能的增减,修改及相关算法优化等做研究。
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
2 需求分析
2.1 数据需求
系统需要处理哪些数据
总体分为用户输入的数据和从数据库中获得的数据。 主要数据类型包括:
CString类型数据、double类型数据、int类型数据和CTime类型数据。
2.2 事务需求
系统涉及哪些人员,各能做什么事务
买家:注册、登录、菜品查询、订购、订单查询及确认和注册信息修改。 买家:注册、登录、菜品的增删改查,订单的查询及确认,销售信息查询。 管理员:对买家及卖家的信息部分查询和删除。
2.3 详细功能分析
模块图
模块图
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
2.4 数据字典
2.5 开发运行环境
DBMS:sql server 2000 personal 开发工具:Visual Studio 6.0 编程语言:C++
使用技术:ODBC,MFC Windows xp sp3;
2.6 安全保障
如何保障系统的安全性
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
3
概念设计
3.1 实体及联系抽象
实体:顾客(买家)属性:顾客ID 顾客扥牢固密码 顾客姓名 顾客联系方式 顾客联系地址 类型均为VARCHAR(10)
饭店(卖家)属性:饭店ID 饭店登录密码 饭店名称 饭店联系方式 饭店联系地址 类型均为VARCHAR(10)
菜品信息 菜品ID 菜品名称 菜品类型 类型均为VARCHAR(10)
联系:菜 单(二元联系) 属性:菜品ID(VARCHAR(10)) 菜品所属饭店ID(VARCHAR(10)) 菜品价格(float) 菜品评价(int ) 菜品简介(VARCHAR(10)) 订 单(三元联系) 属性:订单ID(VARCHAR(10)) 顾客ID(VARCHAR(10)) 饭店ID(VARCHAR(10)) 菜单ID(VARCHAR(10)) 下单时 间(datetime) 送餐时间(datetime) 结束时间(datetime) 状态(smallint)
3.2 E-R图
采用从下到上的策略,先画出各部分E-R图,最后合成总的E-R图,并注意做优化
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
哈尔滨工业大学(威海)数据库系统课程设计报告
5 / 42
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
3.3 关系模式
把E-R图转换为关系模式,并画出关系模式图。尽量规范到3NF。
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
4 逻辑设计
4.1 各表功能
给出数据库所有表的名称及各自功能 CUST 储存顾客(买家)信息 REST 储存饭店(卖家)信息
DISHES 储存存在菜品的自然属性 RD 储存饭店拥有菜品的具体信息 ORDER 储存订单相关的全部信息
4.2 各表结构
给出各表的详细字段组成,包括数据类型、长度、主外码、约束等。
create table CUST (
CID varchar(10) not null, CNA varchar(10) not null,
CPASSWORD varchar(16) not null, CTEL varchar(50) not null, CADD varchar(100) not null, primary key (CID),
check (len(CPASSWORD)>=5))
create table DISHES ( DID varchar(10) not null, DNA varchar(10) not null, STYLE varchar(10) not null, primary key (DID) )
create table REST (
RID varchar(10) not null, RNA varchar(10) not null,
RPASSWORD varchar(16) not null, RTEL varchar(50) not null, RADD varchar(100), primary key (RID),
check (len(RPASSWORD)>=5) )
create table "ORDER" ( ONO varchar(10) not null, RID varchar(10) not null, DID varchar(10) not null, CID varchar(10) not null, STIME datetime not null, DTIME datetime not null, ETIME datetime,
STATE smallint not null,
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
foreign key(RID) references REST(RID), foreign key(DID) references DISHES(DID), foreign key(CID) references CUST(CID), check (STATE between 0 and 3))
create table RD (
RID varchar(10) not null, DID varchar(10) not null, MARKS int,
REMARKS varchar(100), PRICE float,
primary key (RID,DID),
foreign key(RID) references REST(RID), foreign key(DID) references DISHES(DID), check (MARKS>0))
4.3 表关系图
在SQL Server中直接找到关系图并截取出来。
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
5 物理设计
5.1 物理存储
给出数据库文件的存储位置、如何备份、还原等 \\数据库 还原数据库名字为:FMDATABASE
5.2 完整性约束
check (len(CPASSWORD)>=5)) check (len(RPASSWORD)>=5) check (STATE between 0 and 3)) check (MARKS>0))
5.3 视图设计
CREATE VIEW dbo.VIEW_ALL AS
SELECT dbo.DISHES.DID, dbo.DISHES.DNA, dbo.DISHES.STYLE, dbo.RD.PRICE, dbo.RD.MARKS, dbo.RD.REMARKS, dbo.REST.RID, dbo.REST.RNA,
dbo.REST.RTEL, dbo.REST.RADD FROM dbo.DISHES INNER JOIN
dbo.RD ON dbo.DISHES.DID = dbo.RD.DID INNER JOIN dbo.REST ON dbo.RD.RID = dbo.REST.RID
CREATE VIEW dbo.VIEW_LINKALL AS
SELECT dbo.[ORDER].ONO, dbo.DISHES.DNA, dbo.RD.PRICE, http://A, dbo.[ORDER].RID,
dbo.[ORDER].DTIME,
dbo.RD.MARKS,
dbo.[ORDER].STIME,
dbo.[ORDER].ETIME, dbo.[ORDER].STATE FROM dbo.[ORDER] INNER JOIN
dbo.DISHES ON dbo.[ORDER].DID = dbo.DISHES.DID INNER JOIN
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
dbo.REST ON dbo.[ORDER].RID = dbo.REST.RID INNER JOIN dbo.RD ON dbo.REST.RID = dbo.RD.RID AND dbo.DISHES.DID = dbo.RD.DID INNER JOIN dbo.CUST ON dbo.[ORDER].CID = dbo.CUST.CID
CREATE VIEW dbo.VIEW_ORDERLIST AS
SELECT dbo.[ORDER].ONO, dbo.DISHES.DNA, dbo.RD.PRICE, dbo.REST.RNA,
dbo.RD.DID, dbo.DISHES.STYLE, dbo.RD.MARKS, dbo.[ORDER].STIME, dbo.[ORDER].DTIME,
dbo.[ORDER].ETIME,
dbo.REST.RID FROM dbo.[ORDER] INNER JOIN
dbo.DISHES ON dbo.[ORDER].DID = dbo.DISHES.DID INNER JOIN dbo.REST ON dbo.[ORDER].RID = dbo.REST.RID INNER JOIN
dbo.RD ON dbo.REST.RID = dbo.RD.RID AND dbo.DISHES.DID =
dbo.RD.DID
CREATE VIEW dbo.VIEW_RSELLINFO AS
SELECT DNA, STYLE, PRICE, MARKS, RID, DID FROM dbo.VIEW_ORDERLIST
CREATE VIEW dbo.VIEWDISHESSTYLE AS
SELECT DISTINCT STYLE FROM dbo.DISHES
dbo.[ORDER].STATE,
dbo.[ORDER].CID,
5.4 触发器设计
本人亲自书写的实验报告VC++数据库课程设计报告,攫夺不侵犯别人版权
6 系统实现与维护
6.1
模块1
菜单管理界面截图
void CRestView::OnInitialUpdate() {
… …
if (m_viewallSet.IsOpen()==TRUE) { }
m_viewallSet.Open(); if (!m_viewallSet.IsEOF()) {
m_viewallSet.MoveFirst();
while (!m_viewallSet.IsEOF())
m_viewallSet.Close();
m_viewallSet.m_strFilter="RID ='"+CPublic::ERID+"'";