网上书店管理信息系统数据库课程设计.docx
- 文档编号:18063690
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:33
- 大小:748.50KB
网上书店管理信息系统数据库课程设计.docx
《网上书店管理信息系统数据库课程设计.docx》由会员分享,可在线阅读,更多相关《网上书店管理信息系统数据库课程设计.docx(33页珍藏版)》请在冰点文库上搜索。
网上书店管理信息系统数据库课程设计
山东理工大学计算机学院
课程设计
(数据库系统原理)
网上书店管理信息系统
班级
姓名
学号
指导教师
二○一一年一月十三日
课程设计任务书及成绩评定
课题名称
网上书店管理信息系统
Ⅰ、题目的目的和要求
通过数据库系统原理课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力,具体掌握的基本能力有以下几方面:
1、学习和巩固《数据库系统原理》的基本知识。
2、关系数据库管理系统的基本使用方法。
3、熟悉SQL语言的主要功能及SQL语句的使用操作。
4、熟悉数据库管理系统的设计过程,培养解决实际问题的能力。
5、小型数据库应用系统的设计方法。
要求独立完成该课题设计。
Ⅱ、设计进度及完成情况
日期
内容
2011.1.4
对系统进行总体分析与设计
2011.1.5
进行总体系统概括描述分析
2011.1.6
系统性能分析
2011.1.7
逻辑结构设计,画出E-R图并转化为关系模式图
2011.1.8
数据字典与相关数据定义
2011.1.9
编写各个功能模块代码与总代码
2011.1.10
代码测试与修改
2011.1.11
系统各部分功能实现
2011.1.12
整理文档与封面设计
Ⅲ、主要参考文献及资料
[1]王珊,萨师煊主编.数据库系统概论(第四版).北京:
高等教育出版社,2006.5
[2]何志丹著深入浅出Visualc++入门、进阶与应用实例人民邮电出版社
[3]维埃拉著,董明译SQLServer2005高级程序设计人民邮电出版社
[4]李俊民著精通SQL——结构化查询语言详解人民邮电出版社
学科部主任___________
Ⅳ、成绩评定
设计成绩:
指导老师:
二○一一年月日
第一章系统概述…………………………………………………2
第二章系统分析…………………………………………………2
第三章功能分析…………………………………………………7
第四章系统实现…………………………………………………8
第五章调试过程中的问题及系统测试情况……………………15
第六章结束语……………………………………………………20
第一章概述
目前社会上信息管理系统发展飞速,越来越多的企事业单位都引入了信息管理软件来管理自己日益增长的各种信息。
各种网店也相继采用了不同的管理系统来管理商品信息,取得了很大的成效,网上书店管理系统也在功能上不但完善和加强,为了使书店管理更加规范化,程序化,科学化,我们研发了这次的网上书店管理系统。
本系统的功能是为管理者提供方便的管理、为顾客提供快捷的购买。
系统的主要子模块有图书管理,顾客管理等,可实现日常图书进货、发货业务,最终达到提高工作效率的目的。
顾客可以进入图书查询界面通过图书类别、图书名称、图书编号、折扣额度等四种方式查询图书,查到满意的图书后可点击购买。
管理者可以通过登录管理界面实现对图书的添加、修改、删除操作以及发货和查看顾客信息,管理员可以维护客户注册信息、维护图书信息、处订定单信息、维护系统公告、网上售书。
第二章系统分析
§2.1需求分析
2.1.1系统需求
书店管理系统需要满足来自三个方面需求:
第一,书店工作人员通过计算机来管理各类图书,进行图书分类编号,调整图书结构,增加图书库存,适应读者的需求。
第二,工作人员对读者的需求情况能作好全面的掌握,及时得到历史销售记录。
第三,也是书店的核心工作,对图书的销售管理。
2.1.1功能需求
基于系统需求分析,该系统需要实现以下基本功能:
1、主界面管理
本系统的使用用户分两种:
管理员和顾客。
管理员具有使用本系统的所有功能,而顾客需要具有日常书店的管理功能即可。
主界面中需要顾客注册、顾客登录和管理员登录和三个功能,可以分别进入各自功能界面。
2、添加功能
新顾客可以通过此模块填写自己的各项信息。
顾客可以通过此模块完成购卖书籍等操作。
管理员可以管理界面中输入书籍的各项信息。
3、修改功能
管理员可以通过次模块来管理各类图书信息,包括图书信息的修改。
在进行图书的修改时,根据用户选定的书进行修改,即列出所有用户选定的信息,在这个基础上进行图书信息的修改。
4、删除功能
管理员可以通过此模块完成对图书信息的删除等操作
5、查询功能
通过查询功能,顾客可以对书籍按不同方式进行查询。
管理员可以查询书籍的信息和销售情况。
6、显示功能
通过此功能,可以将所需信息显示的列表框中。
便于顾客和管理员观察使用数据库。
根据功能分析的结果,网上书店管理系统主模块图如图2.1所示。
§2.2数据字典
2.2.1一数据项
图书数据字典
属性名
存储代码
类型
长度
备注
书籍编号
bno
nchar
10
主码
书籍类别
bkind
nchar
20
书籍名称
bname
nchar
40
书籍价格
bprice
nchar
10
书籍简介
bintro
varchar
80
书籍折扣
bdis
int
库存数量
bstock
int
顾客数据字典
属性名
存储代码
类型
长度
备注
顾客编号
cno
int
主码
顾客密码
cpass
char
10
是
顾客姓名
cname
char
10
否
顾客性别
csex
char
10
否
顾客年龄
cage
char
10
否
顾客住址
cadd
nchar
20
是
联系电话
cphone
char
10
是
管理员数据字典
属性名
存储代码
类型
长度
备注
管理员登录名
mno
char
10
主码
管理员密码
mpass
char
10
订单表数据字典
属性名
存储代码
类型
长度
备注
订单号
ono
int
主码
书籍编号
bno
nchar
10
顾客编号
cno
int
顾客姓名
cname
char
20
顾客住址
cadd
nchar
10
联系电话
cphone
char
10
付款方式
opay
nchar
10
发货方式
oconvey
nchar
10
2.2.2数据结构
数据结构名
组成
图书信息
书籍编号、书籍类别、书籍名称、书籍价格、书籍简介、书籍折扣、库存数量
顾客信息
顾客编号、顾客密码、顾客姓名、顾客性别、顾客年龄、顾客住址、联系电话
管理员信息
管理员登录名、管理员密码
订单表
订单号、图书编号、顾客编号、顾客姓名、顾客地址、联系电话、付款方式、发货方式
§2.3概念结构设计(E—R图)
根据对网上书店的需求分析,画出如下实体的ER图和实体之间的关系ER图。
图2.2图书信息ER图
图2.3顾客信息ER图
图2.4管理员信息ER图
图2.5订单表信息ER图
图2.6实体之间关系ER图
§2.4逻辑结构设计(关系模式---关系)
下面是把上面E-R图转化关系模式(关系的码用下划线标出):
图书(书籍编号、书籍类别、书籍名称、书籍价格、书籍简介、书籍折扣、库存数量)
顾客(顾客编号、顾客密码、顾客姓名、顾客性别、顾客年龄、顾客住址、联系电话)
管理员(管理员登陆名、管理员密码)
订单表(订单号、书籍编号、顾客编号、顾客姓名、顾客住址、联系电话、付款方式、发货方式)
第三章功能分析
第四章系统实现
§4.1数据库连接
本软件使用ODBC连接数据库,基本思想为为数据库中每个表建立一个RecordSet类,
当要对表中数据进行操作时,创建相关记录集,即可引用类中的响应函数进行添加、修改、
删除、查询等操作。
§4.2主界面
主界面中显示顾客登录、管理员登录和顾客注册三个按钮,顾客输入登录名和密码后点
击顾客登录后进入顾客查询界面,管理员输入登录名和密码后点击管理员登录后进入管理界
面,若是新顾客,直接点击注册即可进入注册界面,各对话框之间的连接通过DoModal()函
数实现,若需要进行身份验证,未输入用户名或密码则将弹出提示对话框“请输入用户名和
密码!
”,输入后系统将进入相应的数据库表查询是否有此信息,若无对应信息则弹出对话框
提示输入信息错误,信息正确方可进入下一界面,如顾客登录时,系统使用以下代码完成身
份验证功能,同时记录下用户信息以便加入订单:
//生成查询用户账号和密码的SQL语句
mSqlStr="select*fromcustomerwherecno='";
mSqlStr=mSqlStr+m_no;
mSqlStr=mSqlStr+"'andcpass='";
mSqlStr=mSqlStr+m_password;
mSqlStr=mSqlStr+"'";
if(!
customer.Open(AFX_DB_USE_DEFAULT_TYPE,mSqlStr))
{
AfxMessageBox("customer表打开失败!
");
return;
}
if(!
customer.IsBOF())
{
//Openallfunctionforuser
m_customer_no=customer.m_cno;
m_customer_name=customer.m_cname;
m_customer_phone=customer.m_cphone;
m_customer_add=customer.m_cadd;
AfxMessageBox("密码正确,欢迎登录!
");
EndDialog(IDCANCEL);
Cgkcxa;
a.DoModal();
}
else
{
AfxMessageBox("密码输入错误!
!
");
return;
}
§4.3添加功能
本软件的添加功能使用AddNew()函数,应用在顾客注册、顾客购书、管理员添加新书等
模块。
1)顾客注册:
新顾客在主界面中点击注册后即可进入注册界面填写自己的各项信息,完
成后点击确定,信息添加到customer表中,并利用触发器自动生成顾客编号作为登录名。
相
关代码如下:
setcustomerc;
c.Open();
c.AddNew();
UpdateData(TRUE);
if(m_name.IsEmpty()||m_phone.IsEmpty()||m_add.IsEmpty()||m_password.IsEmpty()||m_mima
.IsEmpty())
{
MessageBox("请输入全部信息!
");
return;
}
if(m_password!
=m_mima)
{
MessageBox("密码错误,请确认!
");
return;
}
c.m_cpass=m_password;
c.m_cname=m_name;
if(m_sex==0)
c.m_csex="男";
elsec.m_csex="女";
c.m_cage=m_age;
c.m_cphone=m_phone;
c.m_cadd=m_add;
c.m_cpass=m_password;
if(m_sex==0)
c.m_csex="男";
elsec.m_csex="女";
c.Update();
c.Requery();
m_customer_zhanghao=c.m_cno;
UpdateData(FALSE);
m_customer_xingming=m_name;
m_customer_mima=m_password;
EndDialog(IDCANCEL);
Cxxqra;
a.DoModal();
2)顾客购书:
顾客在查询界面中选择想要购买的图书后点击购买可进入购买界面,选择
付款方式、送货方式并确认后,相关信息添加到orders表中,并利用触发器自动生成订单号。
相关代码如下:
Csetordersorder;
setbookbook;
order.Open();
order.AddNew();
UpdateData(TRUE);
if(m_zhifu==0)
order.m_opay="网银支付";
elseorder.m_opay="货到付款";
if(m_songhuo==0)
order.m_oconvey="快递";
elseorder.m_oconvey="EMS";
order.m_bno=m_book_no;
order.m_cadd=m_customer_add;
order.m_cname=m_customer_name;
order.m_cno=m_customer_no;
order.m_cphone=m_customer_phone;
order.Update();
order.Requery();
m_order_no=order.m_ono;
book.Open();
book.Edit();
book.m_bstock--;
book.Update();
book.Requery();
book.Close();
UpdateData(FALSE);
CStringtemp;
temp.Format("购买成功!
");
AfxMessageBox(temp);
EndDialog(IDCANCEL);
Cgkcxa;
a.DoModal();
3)管理员添加新书:
管理员在管理界面中输入各项信息后点击添加,图示信息即可被添
加到book表中,相关代码如下:
setbooka,b;
a.Open();
a.AddNew();
UpdateData(TRUE);
if(m_no.IsEmpty()||m_kind.IsEmpty()||m_name.IsEmpty()||m_price.IsEmpty()||m_intro.IsEmpt
y()||m_dis==0||m_stock==0)
{MessageBox("请输入全部信息!
");
return;
}
if(b.IsOpen())b.Close();
if(m_no!
=_T(""))
{
b.m_strFilter.Format("bno='%s'",m_no);
b.Open();
if(b.m_bno!
=_T(""))
{
MessageBox("已经有这条记录了!
");
return;
}
}
a.m_bno=m_no;
a.m_bkind=m_kind;
a.m_bname=m_name;
a.m_bprice=m_price;
a.m_bintro=m_intro;
a.m_bdis=m_dis;
a.m_bstock=m_stock;
CStringaa,bb;
m_list.InsertItem(0,a.m_bno,0);
m_list.SetItemText(0,1,a.m_bkind);
m_list.SetItemText(0,2,a.m_bname);
m_list.SetItemText(0,3,a.m_bprice);
m_list.SetItemText(0,4,a.m_bintro);
aa.Format("%d",a.m_bdis);
m_list.SetItemText(0,5,aa);
bb.Format("%d",a.m_bstock);
m_list.SetItemText(0,6,bb);
a.Update();
a.Requery();
UpdateData(FALSE);
a.Close();
§4.4修改功能
修改功能使用Edit()函数,主要应用在管理员对图书信息的修改方面,其中图书编号不可
修改,若修改则出现错误提示,相关代码如下:
setbooka;
a.Open();
a.Edit();
UpdateData(TRUE);
if(m_no.IsEmpty())
{MessageBox("请选择图书!
");
return;
}
if(no!
=m_no)
{
MessageBox("图书编号不允许修改!
");
return;
}
m_list.DeleteAllItems();
a.m_bkind=m_kind;
a.m_bname=m_name;
a.m_bprice=m_price;
a.m_bintro=m_intro;
a.m_bdis=m_dis;
a.m_bstock=m_stock;
CStringaa,bb;
m_list.InsertItem(0,a.m_bno,0);
m_list.SetItemText(0,1,a.m_bkind);
m_list.SetItemText(0,2,a.m_bname);
m_list.SetItemText(0,3,a.m_bprice);
m_list.SetItemText(0,4,a.m_bintro);
aa.Format("%d",a.m_bdis);
m_list.SetItemText(0,5,aa);
bb.Format("%d",a.m_bstock);
m_list.SetItemText(0,6,bb);
a.Update();
a.Requery();
UpdateData(FALSE);
a.Close();
§4.5删除功能
删除功能使用Delete()函数,应用在管理员对图书信息的删除及查看订单后发货方面:
1)图书信息删除:
管理员查找到要删除的图书后选中,点击删除按钮即可将book表中
该图书信息删除,相关代码如下:
UpdateData(TRUE);
intn=m_list.GetSelectionMark();
setbookb;
if(m_no.IsEmpty())
{
MessageBox("请选择图书!
");
return;
}
b.m_strFilter.Format("bno='%s'",m_no);
b.Open();
if(b.IsEOF())
{
MessageBox("没有此记录!
");
return;
}
b.Delete();
m_list.DeleteItem(n);
b.Close();
2)发货:
管理员查看订单后选中要发送的图书,点击发货即可在orders表中将该订单删
除,相关代码如下:
intn=m_list.GetSelectionMark();
//创建订单记录集
Csetordersorder;
if(m_ono.IsEmpty())
{
MessageBox("请选择订单!
");
return;
}
order.m_strFilter.Format("ono='%s'",m_ono);
order.Open();
if(order.IsEOF())
{
MessageBox("没有此记录!
");
Return;
}
while(!
order.IsEOF())
{
order.Delete();
order.MoveNext();
}
//关闭记录集
order.Close();
m_list.DeleteItem(n);
UpdateData(FALSE);
§4.6查询功能
查询功能应用于顾客购书前对书籍的查询和管理员对书籍的查询,以顾客查询为例,顾
客查询可按照图书编号、图书类别、图书名称、折扣额度等四种方式,其中图书类别和图书
名称都可实现模糊查询,在相关表中查找到正确信息后显示在列表框内,以图书名称和折扣
额度为例,相关代码如下:
UpdateData(TRUE);
setbookbook;
if(m_fangshi!
=0&&m_fangshi!
=1&&m_fangshi!
=2&&m_fangshi!
=3)
{
AfxMessageBox("请选择查询类别!
");
return;
}
//出现问题:
不能读取m_kind,原因:
IsEmpty()少了小括号
if(m_fangshi==1)
{
if(m_name.IsEmpty())
{
AfxMessageBox("请输入图书名称!
");
return;
}
setbookbook;
if(book.IsOpen())book.Close();
CStringtmp;
tmp.Format("%%%s%%",m_name);
m_name=tmp;
book.m_strFilter.Format("bnameLIKE'%s'",m_name);
book.Open();
m_list.DeleteAllItems();
inti=0;}
if(book.IsEOF())
{
MessageBox("目前暂没有您要的书目!
","提示",MB_OK);
return;
}
while(!
book.IsEOF())
{
CStringaa,bb;
m_list.InsertItem(i,book.m_bno,0);
m_list.SetItemText(i,1,book.m_bkind);
m_list.SetItemText(i,2,book.m_bname);
m_list.SetItemText(i,3,book.m_bprice);
m_list.SetItemText(i,4,book.m_bintro);
aa.Format("%d",book.m_bdis);
m_list.SetItemText(i,5,aa);
bb.Format("%d",book.m_bstock);
m_list.SetItemText(i,6,bb);
i++;
book.MoveNext();
}
}
if(m_fangshi==3)
{
if(m_dis==0)
{
AfxMessageBox("请输入查询内容!
");
return;
}
if(book.IsOpen(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 书店 管理信息系统 数据库 课程设计