网上书店管理信息系统_数据库课程设计.doc_第1页
网上书店管理信息系统_数据库课程设计.doc_第2页
网上书店管理信息系统_数据库课程设计.doc_第3页
网上书店管理信息系统_数据库课程设计.doc_第4页
网上书店管理信息系统_数据库课程设计.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东理工大学计算机学院课 程 设 计(数据库系统原理)网上书店管理信息系统班 级姓 名学 号指导教师二一一年一月十三日课程设计任务书及成绩评定课题名称网上书店管理信息系统、题目的目的和要求 通过数据库系统原理课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力,具体掌握的基本能力有以下几方面: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.52何志丹 著 深入浅出 Visual c+入门、进阶与应用实例 人民邮电出版社 3 维埃拉 著,董明 译 SQL Server 2005 高级程序设计 人民邮电出版社 4 李俊民著 精通 SQL结构化查询语言详解 人民邮电出版社 学科部主任_、成绩评定设计成绩: 指导老师: 二一一年 月 日20目 录第一章 系统概述2第二章 系统分析2第三章 功能分析7第四章 系统实现8第五章 调试过程中的问题及系统测试情况15第六章 结束语20第一章 概述目前社会上信息管理系统发展飞速,越来越多的企事业单位都引入了信息管理软件来管理自己日益增长的各种信息。各种网店也相继采用了不同的管理系统来管理商品信息,取得了很大的成效,网上书店管理系统也在功能上不但完善和加强,为了使书店管理更 加规范化,程序化,科学化,我们研发了这次的网上书店管理系统。 本系统的功能是为管理者提供方便的管理、为顾客提供快捷的购买。系统的主要子模块有图书管理,顾客管理等,可实现日常图书进货、发货业务,最终达到提高工作效率的目的。顾客可以进入图书查询界面通过图书类别、图书名称、图书编号、折扣额度等四种方式查询图书,查到满意的图书后可点击购买。管理者可以通过登录管理界面实现对图书的添加、修改、删除操作以及发货和查看顾客信息, 管理员可以维护客户注册信息、维护图书信息、处订定单信息、维护系统公告、网上售书。第二章 系统分析2.1需求分析2.1.1系统需求 书店管理系统需要满足来自三个方面需求:第一,书店工作人员通过计算机来管理各类图书,进行图书分类编号,调整图书结构,增加图书库存,适应读者的需求。第二,工作人员对读者的需求情况能作好全面的掌握,及时得到历史销售记录。第三,也是书店的核心工作,对图书的销售管理。2.1.1功能需求基于系统需求分析,该系统需要实现以下基本功能:1、主界面管理本系统的使用用户分两种:管理员和顾客。管理员具有使用本系统的所有功能,而顾客需要具有日常书店的管理功能即可。主界面中需要顾客注册、顾客登录和管理员登录和三个功能,可以分别进入各自功能界面。2、添加功能新顾客可以通过此模块填写自己的各项信息。顾客可以通过此模块完成购卖书籍等操作。管理员可以管理界面中输入书籍的各项信息。3、修改功能管理员可以通过次模块来管理各类图书信息,包括图书信息的修改。在进行图书的修改时,根据用户选定的书进行修改,即列出所有用户选定的信息,在这个基础上进行图书信息的修改。4、删除功能管理员可以通过此模块完成对图书信息的删除等操作5、查询功能通过查询功能,顾客可以对书籍按不同方式进行查询。管理员可以查询书籍的信息和销售情况。6、显示功能通过此功能,可以将所需信息显示的列表框中。便于顾客和管理员观察使用数据库。根据功能分析的结果,网上书店管理系统主模块图如图2.1所示。网上书店管理系统修改功能主页面管理添加功能删除功能查询功能显示功能图2.1系统主模块图2.2数据字典2.2.1一数据项图书数据字典属性名存储代码类型长度备注书籍编号bnonchar10主码书籍类别bkindnchar20书籍名称bnamenchar40书籍价格bpricenchar10书籍简介bintrovarchar80书籍折扣bdisint库存数量bstockint顾客数据字典属性名存储代码类型长度备注顾客编号cnoint主码顾客密码cpasschar10是顾客姓名cnamechar10否顾客性别csexchar10否顾客年龄cagechar10否顾客住址caddnchar20是联系电话cphonechar10是管理员数据字典属性名存储代码类型长度备注管理员登录名mnochar10主码管理员密码mpasschar10订单表数据字典属性名存储代码类型长度备注订单号onoint主码书籍编号bnonchar10顾客编号cnoint顾客姓名cnamechar20顾客住址caddnchar10联系电话cphonechar10付款方式opaynchar10发货方式oconveynchar102.2.2数据结构数据结构名组成图书信息书籍编号、书籍类别、书籍名称、书籍价格、书籍简介、书籍折扣、库存数量顾客信息顾客编号、顾客密码、顾客姓名、顾客性别、顾客年龄、顾客住址、联系电话管理员信息管理员登录名、管理员密码订单表订单号、图书编号、顾客编号、顾客姓名、顾客地址、联系电话、付款方式、发货方式2.3概念结构设计(ER图)根据对网上书店的需求分析,画出如下实体的ER图和实体之间的关系ER图。图书书籍类别书籍名称书籍价格书籍编号书籍简介书籍折扣库存数量图2.2图书信息图顾客顾客密码顾客姓名顾客年龄顾客性别顾客住址顾客编号联系电话图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 * from customer where cno=; mSqlStr=mSqlStr + m_no; mSqlStr=mSqlStr + and cpass=; mSqlStr=mSqlStr + m_password; mSqlStr=mSqlStr + ; if(!customer.Open(AFX_DB_USE_DEFAULT_TYPE,mSqlStr) AfxMessageBox(customer 表打开失败!); return; if(!customer.IsBOF() /Open all function for user 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); Cgkcx a; a.DoModal(); else AfxMessageBox(密码输入错误!!); return; 4.3添加功能本软件的添加功能使用 AddNew()函数,应用在顾客注册、顾客购书、管理员添加新书等模块。 1)顾客注册:新顾客在主界面中点击注册后即可进入注册界面填写自己的各项信息,完成后点击确定,信息添加到 customer 表中,并利用触发器自动生成顾客编号作为登录名。相关代码如下: setcustomer c; 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=男; else c.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=男; else c.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); Cxxqr a; a.DoModal(); 2)顾客购书:顾客在查询界面中选择想要购买的图书后点击购买可进入购买界面,选择付款方式、送货方式并确认后,相关信息添加到 orders 表中,并利用触发器自动生成订单号。相关代码如下: Csetorders order; setbook book; order.Open(); order.AddNew(); UpdateData(TRUE); if(m_zhifu=0)order.m_opay=网银支付; else order.m_opay=货到付款; if(m_songhuo=0 )order.m_oconvey=快递; else order.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); CString temp; temp .Format(购买成功!); AfxMessageBox(temp); EndDialog(IDCANCEL); Cgkcx a; a.DoModal(); 3)管理员添加新书:管理员在管理界面中输入各项信息后点击添加,图示信息即可被添加到 book 表中,相关代码如下: setbook a,b; a.Open(); a.AddNew(); UpdateData(TRUE); if(m_no.IsEmpty()|m_kind.IsEmpty()|m_name.IsEmpty()|m_price.IsEmpty()|m_intro.IsEmpty()|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; CString aa,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()函数,主要应用在管理员对图书信息的修改方面,其中图书编号不可修改,若修改则出现错误提示,相关代码如下: setbook a; 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; CString aa,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); int n=m_list.GetSelectionMark(); setbook b;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)发货:管理员查看订单后选中要发送的图书,点击发货即可在 o rders 表中将该订单删除,相关代码如下: int n=m_list.GetSelectionMark(); /创建订单记录集 Csetorders order;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); setbook book; if(m_fangshi!=0&m_fangshi!=1&m_fangshi!=2&m_fangshi!=3) AfxMessageBox(请选择查询类别!); return; /出现问题:不能读取 m_kind,原因:IsEmpty()少了小括号 if(m_fan gshi=1) if(m_name.IsEmpty() AfxMessageBox(请输入图书名称!); return; setbook book; if(book.IsOpen() book.Close(); CString tmp; tmp.Format(%s% ,m_name); m_name=tmp; book.m_strFilter.Format(bname LIKE %s,m_name); book.Open(); m_list.DeleteAllItems(); int i=0; if(book.IsEOF() MessageBox( 目前暂没有您要的书目!, 提示,MB_OK); return; while(!book.IsEOF() CString aa,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_fan gshi=3) if(m_dis=0) AfxMessageBox(请输入查询内容!); return; if(book.IsOpen() book.Close(); book.m_strFilter.Format(bdis=%d,m_dis); book.Open(); m_list.DeleteAllItems(); int i=0; if(book.IsEOF() MessageBox( 目前暂没有您要的书目!, 提示,MB_OK); return; while(!book.IsEOF() CString aa,bb; m_list.InsertItem(i,book.m_bno,0); m_list.SetItemText(i,1,boo k.m_bkind); m_list.SetItemText(i,2,boo k.m_bname); m_list.SetItemText(i,3,boo k.m_bprice); m_list.SetItemText(i,4,boo k.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(); 4.6显示功能在本软件中多次将信息显示在列表框中,以图书信息管理界面中显示图书信息为例,相关代码如下: BOOL Cxsrk:OnInitDialog() CDialog:OnInitDialog(); DWORD dwExStyle = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |LVS_EX_HEADERDRAGDROP |LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT; m_list.SetExtendedStyle(dwExStyle); m_list.InsertColumn(0,编号,LVCFMT_CENTER,50,0); m_list.InsertColumn(1,类别,LVCFMT_CENTER,100,0); m_list.InsertColumn(2,名称,LVCFMT_CENTER,200,0); m_list.InsertColumn(3,价格,LVCFMT_CENTER,60,0); m_list.InsertColumn(4,简介,LVCFMT_CENTER,200,0); m_list.InsertColumn(5,折扣,LVCFMT_CENTER,50,0); m_list.InsertColumn(6,库存,LVCFMT_CENTER,50,0); setbook a; a.Open();int i=0;while(!a.IsEOF() CString aa,bb; m_list.InsertItem(i,a.m_bno,0); m_list.SetItemText(i,1,a.m_bkind); m_list.SetItemText(i,2,a.m_bname); m_list.SetItemText(i,3,a.m_bprice); m_list.SetItemText(i,4,a.m_bintro); aa.Format(%d,a.m_bdis); m_list.SetItemText(i,5,aa); bb.Format(%d,a.m_bstock); m_list.SetItemText(i,6,bb); i+; a.MoveNext(); a.Close(); return TRUE; / return TRUE unless you set the focus to a control 第五章 调试过程中的问题及系统测试情况5.1主界面展示 主界面如下图 4.1 所示,有“顾客登录”,“管理员登录”和“现在注册”三个按钮: 图 5.1 主界面 顾客输入正确的登录名和密码后点击确定即可进入顾客查询界面,如下图 5.2 所示: 图 5.2 顾客查询界面 管理员输入正确的登录名和密码后点击确定即可进入管理界面,如下图 5.3 所示: 图 5.3 管理内容选择界面 新顾客点击“现在注册”即可进入注册界面,如下图 5.4 所示: 图 5.4 顾客注册界面 5.2添加功能展示 5.2.1 顾客注册 顾客在如上图 4.4 所示的顾客注册界面中输入各项信息且两次输入相同密码后点击确定,系统自动生成顾客编号作为登录名,和密码等显示给顾客,如下图 5.5 所示: 图 5.5 注册信息确认界面 5.2.2 顾客购书 顾客在如图 4.3 所示的查询界面中查到满意的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论