中南大学电子信息数据库课程设计报告.docx

上传人:b****0 文档编号:9950625 上传时间:2023-05-22 格式:DOCX 页数:39 大小:3.80MB
下载 相关 举报
中南大学电子信息数据库课程设计报告.docx_第1页
第1页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第2页
第2页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第3页
第3页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第4页
第4页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第5页
第5页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第6页
第6页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第7页
第7页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第8页
第8页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第9页
第9页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第10页
第10页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第11页
第11页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第12页
第12页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第13页
第13页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第14页
第14页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第15页
第15页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第16页
第16页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第17页
第17页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第18页
第18页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第19页
第19页 / 共39页
中南大学电子信息数据库课程设计报告.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

中南大学电子信息数据库课程设计报告.docx

《中南大学电子信息数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《中南大学电子信息数据库课程设计报告.docx(39页珍藏版)》请在冰点文库上搜索。

中南大学电子信息数据库课程设计报告.docx

中南大学电子信息数据库课程设计报告

工程学院

课设题目:

鲜花荐购系统

 

 

一、课程设计目的

培养学生熟练掌握一种大型数据库系统的开发环境如ORACLE9i/10g/11g(或更高版本)或SQLSERVER2005/2008/2010(或更高版本),对其底层的数据库触发器与程序过程有深入的了解,了解并基本掌握面向数据库的C/S模式的通用开发工具如VB、PB或DELPHI或直接用语言C#或Java开发C/S模式的系统;或者采用ASP、JSP、PHP等开发技术来开发B/S模式的系统,熟悉开发一个小型应用系统的过程及主要技术。

其中基于.Net平台与J2EE平台工具套件中同时支持B/S模式与C/S模式的开发。

二、课程设计内容及要求

(一)、开发任务概述

本次设计主要是开发商品荐购系统。

其业务需求如下:

某大型网购公司已积累了稳定的用户群,为了与用户加强联系、广泛收集商品信息、给用户更好的价格,特推出商品荐购系统,即由用户推荐网上其它门店的商品明细(含价格),系统管理员通过系统获取荐购的商品信息后会通过各种渠道进行核对(主要是人工方法,系统辅助商品比较分析),如果信息属实,系统管理员会给用户(会员)增长积分(标准为1-10分),并根据会员积分的情况进行升级(如原来0分为初级会员,荐购成功积累大于等于10分,升级为1级会员,如积累100分及以上,则为10级会员,其它级别依此类推),再根据会员级别允许会员以级别相应折扣购买推荐的或其它用户推荐的商品,如初级为全价,1级为9折、5级为5折可购买自荐商品或其它用户荐购商品;6级为4折、9级为1折可购买自荐商品;10级及以上直接免费获得自荐商品。

商品荐购系统的功能主要包括:

1.用户或会员操作功能:

(1)用户注册、用户登录、用户信息维护等;

(2)商品搜索、比较、排名、推荐等;

2.管理员操作功能:

(1)推荐商品采纳、会员积分、会员升级;

(2)商品类别维护、类似商品信息统一等;

(3)商品搜索、比较、排名;

(4)操作日志记录、查询与维护等。

可采用C/S模式也可以采用B/S模式,还可以采用C/S模式与B/S模式相结合的汇合模式如管理员功能中商品类别维护、类似商品信息统一等;操作日志记录、查询与维护等用C/S模式,其它功能用B/S模式等,混合模式只要实现部分功能其程序部分的成绩将是良好及以上。

最好以某一实际的商品为参考,尽量不重复!

商品类别重复的,将考虑成绩降档,先由同学将开发技术与商品类别对象于18周二上午报上来(可报2-3个),由指导老师协调后于18周三反馈给大家。

每种类型的商品其描述属性不完全一样,请注意数据表结构的设计。

商品可为车辆、衣服、图书、运动器材、食品、电子设备、鲜花、手机等等,还可以冠以不同的厂家或公司如:

通用汽车、红旗轿车、山河智能轻型飞机、唯品会衣服、李宁运动服装、三星手机、联想电脑等等。

(二)、要求

(一)、总体要求

1.完成设计、程序编制、调试与检查验收

2.书写完整的课程设计报告(至少20页),需求分析(要做什么事情如功能需求、信息需求、做到什么程度如性能需求、有哪些难点或关键技术),系统设计(功能模型、信息模型、数据库设计、典型处理流程或算法、典型的后台处理如触发器或过程所涉及到的逻辑等)、系统实现及关键技术、总结与展望等章节。

3、数据库与大型程序的对象命名规则一定为XXX_班号(+)学号尾4位。

例如car_master_10104即表示车辆主要信息表,为1班,学号尾数是0104设计的表结构,cloth_Detail_42309即表示衣服信息明细表,为4班,学号尾数是2309设计的表结构,对象(包括大的程序对象及程序名等)如果不能体现班级及学号等信息,则视为程序不合要求,程序部分成绩可能不合格。

(二)、课程设计要求

(1)提出技术方案,主要包括开发与运行模式选择、开发工具、数据库管理系统及其主要的特性保证。

(课程设计报告中体现)

(2)对系统的功能和数据进行需求分析、总体设计和详细设计,并提交设计报告。

报告中数据库设计部分要包含系统E-R图、数据字典、表、视图、索引、文件组织结构等的定义和描述,还需要包括对象命名法。

(3)程序实现各项功能,在课程设计报告中要反映实现过程中采用的关键技术和主要程序流程以及主要的操作界面。

(4)数据库后台最好有触发器与多个过程,数据结构中最好有主明细结构(即主表与明细表联动)。

三、前后台设计概述

(一)、后台数据库设计概述

根据任务描述,本次数据库课程设计的主要任务是建立一个商品荐购系统,我选的课题是鲜花荐购系统。

其主要功能分为管理员和用户会员两个部分,从数据库后台来讲,管理员和用户会员实质上是拥有不同权限的用户,他们只是对数据库中的表有着不一样的操作权限,比如:

对商品主表,管理员有着查询、修改、删除、更新等等功能,而用户只能查询。

对其他的表也一样。

在数据库部分我一共设计了五个表来完成任务的基本内容:

(1)用户信息表,其主要属性有用户ID、用户名、密码、权限、、积分等级、优惠信息等;

(2)本店商品信息主表,其主要属性有商品ID、商品品种、商品名、单价、销量、产商等;

(3)推荐商品表,其主要属性有推荐ID、用户ID、用户名、推荐商品品种、推荐商品名、单价、推荐理由等;

(4)采纳商品表,其主要属性有采纳ID、用户ID、用户名、推荐ID、推荐商品品种、推荐商品名、单价、推荐理由等;

(5)购买商品表,其主要属性有购物ID、用户ID、用户名、商品品种、商品名、商品单价、总价格、优惠价格等;

(二)、前台客户端设计概述

在本次课程设计中,我选择的是C/S模式下的delphi软件来设计前台的界面,用到版本是delphi7.0,前台主要设计的功能如下图所示:

鲜花荐购系统

 

用户功能部分

管理员功能部分

 

购买商品

用户中心

商品推荐

商品查询

推荐商品采纳

日志管理

用户信息管理

本店商品管理

 

其中管理员功能部分,本店商品管理包括商品信息查询,商品排序,商品下架等功能;用户信息管理包括修改用户信息,积分管理,等级管理等;日志管理包括查询推荐日志,购买日志,采纳日志等。

用户功能部分,商品查询主要是以不同的方式查询本店商品;可以有排序功能;商品推荐功能,购买商品功能包括,购买本店商品,与购买推荐采纳商品,用户中心部分,包括修改密码,修改用户信息。

(三)、课设环境

1、操作系统:

Windows7

2、数据库设计系统:

SQLsevers2008

3、前台设计:

delphi7.0

4、使用的语言:

delphi与SQL语言,采用C/S模式

四、后台数据库详细设计

性别

年龄

密码

用户名

(一)、系统数据库E-R图

优惠

密码

姓名

E_mail

ID

地址

会员

管理

管理员

nm

等级

积分

采纳

nn

ID

n

管理

mnnn

购买

推荐

购买

管理

推荐理由

ID

时间

用户ID

mmmm

产商

推荐商品

m

产商

商品名

ID

品种

是否采纳

单价

ID

用户名

单价

用途

推荐理由

采纳商品

商品名

本店商品

推荐时间

月销量

单价

商品名

用途

采纳时间

总销量

销量

品种

时令

推荐ID

销量

品种

用户名

用途

产商

用户ID

 

年龄

密码

性别

用户名

续:

优惠

密码

姓名

E_mail

ID

地址

会员

管理

管理员

nm

等级

积分

nn

 

查看

管理

备注

ID

用户ID

加入时间

mm

用户名

购买商品

优惠价格

品种

是否优惠

商品名

单价

购买数量

总价格

 

(二)、主要表的详细设计

1、用户信息表(命名为:

Flower_users_21329)

列名

数据类型

是否为空

用户ID

Int

否,主键(自增)

用户名

varchar(10)

密码

varchar(10)

用户权限

varchar(10)

是(管理员为管理员)

年龄

int

性别

varchar(10)

E_mail

varchar(50)

地址

varchar(50)

用户等级

char(10)

用户积分

char(10)

优惠信息

varchar(30)

2、本店商品信息表(命名为:

Flower_main_21329)

列名

数据类型

是否为空

鲜花ID

Int

否,主键(自增)

鲜花品种

varchar(10)

鲜花名

varchar(10)

鲜花单价

int

鲜花用途

varchar(20)

鲜花时令

varchar(20)

本月销量

int

总销量

bigint

产商

varchar(10)

3、推荐商品表(命名为:

Flower_reco_21329)

列名

数据类型

是否为空

推荐鲜花ID

int

否,主键(自增)

用户ID

int

否,外键(来自users)

用户名

varchar(10)

推荐鲜花品种

varchar(10)

推荐鲜花名

varchar(10)

推荐鲜花单价

int

推荐鲜花用途

varchar(10)

推荐理由

varchar(10)

产商

varchar(10)

推荐时间

varchar(20)

是否已采纳

char(4)

4、采纳商品表(命名为:

Flower_adop_21329)

列名

数据类型

是否为空

采纳ID

Int

否,主键(自增)

推荐鲜花ID

int

否,外键(来自Reco)

用户ID

int

否,

用户名

varchar(10)

推荐鲜花品种

varchar(8)

推荐鲜花名

varchar(10)

推荐鲜花单价

int

推荐鲜花用途

varchar(10)

推荐理由

varchar(10)

产商

varchar(10)

推荐时间

varchar(20)

采纳时间

varchar(20)

在本店销量

int

5、购买鲜花表(命名为:

Flower_buy_21329)

列名

数据类型

是否为空

购物ID

int

否,主键(自增)

用户ID

Int

否,外键(来自users)

用户名

varchar(10)

购买鲜花名

varchar(10)

购买鲜花品种

varchar(10)

购买鲜花单价

int

购买数量

int

总价格

char(10)

是否优惠

char(10)

优惠后价格

char(10)

加入购物车时间

varchar(20)

备注

varchar(50)

(三)、表之间的关系图

 

五、前台客户端详细设计

(一)、用户部分

欢迎界面

1、主要窗体流程图:

用户登录窗体

注册窗体

用户权限是否为空

 

管理员窗体

是否

用户荐购系统主窗体

购买窗体

推荐窗体

用户中心窗体

 

购物车窗体

修改密码窗体

 

2、窗体详细功能

注册窗体

登录窗体

(1)登录窗体

用户名或密码错误

用户名和密码是否正确

 

用户荐购系统主窗体

(2)、注册窗体

注册窗体

带*号为必填

带*号是否填好

两次密码必须一致

密码与确认密码是否相同

 

注册成功

用户中心窗体

登录窗体

推荐窗体

(3)、用户荐购主窗体

用户荐购主窗体

购买窗体

显示

查询本店商品

排序

按鲜花品种查询

按价格区间查询

按鲜花名模糊查询

 

按单价低到高

按月销量

按总销量

(4)、用户中心窗体

用户荐购主窗体

返回

用户中心窗体

显示用户信息

修改密码窗体

成功

修改可改用户信息

(5)、修改密码窗体

用户中心窗体

修改密码窗体

原始密码错误

两次密码输入不一致

原始密码是否输入正确

 

新密码是否输入一致

 

密码修改成功

 

(6)、推荐窗体

返回

用户荐购主窗体

推荐窗体

显示

带*号为必填

带*号是否已填

请确认

是否确认

推荐成功

(7)、购买窗体

用户荐购主窗体

显示

显示

购买窗体

请输入信息

已采纳商品信息

本店商品信息

带*号是否以填

是否选择购买类别

请选择购买类别

选择本店商品

是否

是否自荐

购买成功可看购物车

用户荐购主窗体

是否

无优惠是否购买

返回

购买窗体

(8)、购物信息窗体

购物窗体

返回

购物信息窗体

 

显示已购物信息

 

(二)、管理员部分

1、主要窗体流程图:

欢迎界面

用户登录窗体

用户权限是否为空

用户荐购窗体

日志管理窗体

管理员主窗体

 

推荐采纳窗体

2、窗体详细功能

(1)登录窗体

登录窗体

用户名或密码错误

用户名和密码是否正确

 

欢迎回来

管理员主窗体

 

(2)、管理员主窗体

日志管理窗体

管理员主窗体

推荐采纳窗体

显示

信息查询

 

采纳商品

本店商品

用户信息

购买信息

推荐商品

排序

 

排序

 

按价格排低销量商品

下架商品

 

(3)、推荐采纳窗体

返回

管理员主窗体

 

无法采纳

推荐采纳窗体

显示

显示

显示

用户信息

有无推荐信息

采纳信息

推荐信息

采纳

 

该变推荐信息是否已采纳列值

为用户加积分

推荐信息

显示

(4)、日志管理窗体

管理员主窗体

返回

显示在

日志管理窗体

查询

 

购买日志

推荐日志

采纳日志

六、客户端与后台数据库的连接

本次课程设计我用delphi7.0完成对前台客户端部分的设计,分为用户功能部分,和管理员功能部分,前台与后台数据库的连接是本次课程设计的难点,如果前台和后来连接不起来,那么前台所有的功能都无法实现,这是因为所有的前台功能都是基于后台数据库的基础而实现的,在delphi中有专门用于与底层数据库连接的控件,这些控件在程序运行时,是隐藏的。

此次课设我用到用来连接数据库的控件是ADO控件,主要用到ADOQUERY控件,来连接数据库,用Datasource控件来使数据显示在DBGrids控件上。

Adoquery控件为

设置其属性connectionstring弹出窗口

选择UseConnectionString点击build弹出窗口

选择服务器名称lovless_pc,输入登录信息,选择数据库flower_jiangou_20821,测试连接,若测试成功,则确定即可。

将Datasource控件

的dateset属性值设为adoquery控件的名字,将DBGrids控件的connection属性值设为Datasource的名字,即可将数据库的信息显示在DBGrids控件上。

七、设计结果展示

1、欢迎界面

欢迎界面的显示时间在Flower_project1_21329源程序代码中用sleep(2000)函数来设置,其中2000表示2秒。

 

2、登录界面

用户名或密码错误时报错

正确登录

 

3、注册界面在登录界面单击注册按钮

用户名已存在

两次密码输入不一致

注册成功

4、荐购主窗体界面

按花名模糊查询

按价格区间查询

按鲜花品种查询

排序

5、用户中心界面

显示当前用户信息

修改用户信息

6、密码修改界面

原始密码输入错误

两次密码输入不一致

 

修改成功

 

7、购买界面

购买本店商品

 

8、查看购物车界面

9、退出系统

10、管理员界面

登录

查看用户信息

 

查看本店商品信息

 

查看购买信息

 

11、日志管理界面

12、退出系统

八、课程设计心得

(一)、课设中遇到的问题

1、程序设计部分的问题:

 

. 起初着手程序设计的时候,不清楚有关数据库的程序设计结构应该如何组织,后来在参考了一些资料后,懂得应该要将逻辑和具体实现分开,也就是在程序设计时,应该将数据库的连接、数据库系统的一系列操作与图形界面的UI设计分开。

 

  在设计数据库处理时,由于之前从未写过关于数据库处理的程序,导致此次无从下手,后来在查阅相关资料后,将数据库的连接与数据库的处理分开,分别建立两个类,这样能更清楚地区分数据库的实际处理与逻辑。

2、数据库与前台连接的问题:

起初在一直不会如何将前台与后台数据库连接起来,对于相关书籍上的ADO控件的使用也一直是云里雾里,后来在不断的尝试与查阅书籍中根据书本中的范例,与老师同学的指导下,将数据库与前台连接成功。

 

 

(二)、心得体会

经过此次课程设计,使我对数据库与delphi语言程序设计,都有了更深入的学习,更加深刻地体会到有关数据库的程序设计在实际工程项目中的运用;另外,对delphi图形界面开发,也有了较深的体会。

 最初,拿到题目,感觉无从下手,不知道应该从哪个方面着手进行课程设计,后来在与同学讨论商量过后,开始从基本的delphi程序设计开始入手,也就是从最基本的图形界面开发着手,由于此次课程设计使用的是纯delphiMFC的程序设计,而之前对于图形界面的设计几乎为零,故UI部分花了过多的时间来设计。

在真正涉及代码的编写的时候,遇到的一个很严重的问题,就是程序代码的结构组织,不知道应该怎样组织程序的代码结构,在参阅了有关delphi程序设计,以及delphi数据库编程的书籍后,书中部分章节介绍了有关数据库开发的例子,参照这些例子编写代码,其结构相对来说就清楚多了,这使得我明白,站在巨人肩膀上能使自己少走弯路。

  在编写代码时,遇到的另一个问题是关于代码重利用的问题,在整个系统开发之初,由于没有进行需求分析,而是全凭个人喜好一个个模块逐一编写代码,在编写了几个功能模块之后,自己忽然发觉有相当一部分代码是可以重利用的,但是以前写的代码对于现在这个模块却有部分改动,以至于如果要重用代码则要对先前的程序进行改动,这就是基于类似螺旋式开发的弊端,真正正确的做法是在编写代码之前做好需求分析。

  在书写数据库处理部分代码时,起初不知道应该每执行一次操作之前先连接数据库,在执行此次操作后则应该断开连接,这样的后果是在使用一次数据库过后,没有重新连接数据库,导致查询或者更新数据库异常。

课程设计能够圆满结束,首先得感谢老师教育我们理论知识,没有这些理论知识就不可能有我们的这次动手实践机会。

再一个就要感谢老师利用课后时间帮助我们,辅导我们,解决课程设计中疑惑与问题。

老师的耐心辅导是我们坚持的不懈动力。

最后还要感谢在这次课程设计中给予我帮助的同学,谢谢大家!

 

九、各个模块的源代码

见工程文件夹Flower_project1_21329中,工程执行工程文件:

programProject1;

uses

windows,

Forms,

Formloginin'Formlogin.pas'{login},

FormMainin'FormMain.pas'{mainform},

welcomein'welcome.pas'{welcomeform},

FormEnrollin'FormEnroll.pas'{EnrollForm},

FormManagerin'FormManager.pas'{ManagerForm},

publicvarin'publicvar.pas',

FormInfoin'FormInfo.pas'{infoForm},

FormPassin'FormPass.pas'{passform},

FormRecoin'FormReco.pas'{RecoForm},

FormBuyin'FormBuy.pas'{BuyForm},

FormAffiin'FormAffi.pas'{AffiForm},

FormAdoptin'FormAdopt.pas'{adoptform},

formdatain'formdata.pas'{dataForm};

{$R*.res}

begin

welcomeform:

=twelcomeform.Create(application);

welcomeform.Show;

welcomeform.Update;

sleep(4000);

welcomeform.close;

welcomeform.free;

Application.Initialize;

Application.CreateForm(Tlogin,login);

Application.CreateForm(Tmainform,mainform);

Application.CreateForm(Twelcomeform,welcomeform);

Application.CreateForm(TEnrollForm,EnrollForm);

Application.CreateForm(TManagerForm,ManagerForm);

Application.CreateForm(TinfoForm,infoForm);

Application.CreateForm(Tpassform,passform);

Application.CreateForm(TRecoForm,RecoForm);

Application.CreateForm(TBuyForm,BuyForm);

Application.CreateForm(TAffiForm,AffiForm);

Application.CreateForm(Tadoptform,adoptform);

Application.CreateForm(TdataForm,dataForm);

Application.Run;

end.

其中各窗体的命名规则为:

Flower_Project1_21329.dpr…………...为delphi工程文件

Flower_Project1_21329.exe…………...为生成的可执行文件

FormAdopt.pas………………………..为采纳窗体编程文件

FormAffi.pas…………………………..为购买信息查询窗体编程文件

FormBuy.pas……………………………为购买商品编程文件

formdata.pas……………………………为日志管

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2