网上书店管理信息系统-数据库课程设计
本作品内容为网上书店管理信息系统-数据库课程设计,格式为 doc ,大小 929832 KB ,页数为 22页
('山东理工大学计算机学院课程设计(数据库系统原理)网上书店管理信息系统班级姓名学号指导教师二○一一年一月十三日1课程设计任务书及成绩评定课题名称网上书店管理信息系统Ⅰ、题目的目的和要求通过数据库系统原理课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力,具体掌握的基本能力有以下几方面: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学科部主任___________Ⅳ、成绩评定设计成绩:指导老师:二○一一年月日3目录第一章系统概述…………………………………………………2第二章系统分析…………………………………………………2第三章功能分析…………………………………………………7第四章系统实现…………………………………………………8第五章调试过程中的问题及系统测试情况……………………15第六章结束语……………………………………………………201第一章概述目前社会上信息管理系统发展飞速,越来越多的企事业单位都引入了信息管理软件来管理自己日益增长的各种信息。各种网店也相继采用了不同的管理系统来管理商品信息,取得了很大的成效,网上书店管理系统也在功能上不但完善和加强,为了使书店管理更加规范化,程序化,科学化,我们研发了这次的网上书店管理系统。本系统的功能是为管理者提供方便的管理、为顾客提供快捷的购买。系统的主要子模块有图书管理,顾客管理等,可实现日常图书进货、发货业务,最终达到提高工作效率的目的。顾客可以进入图书查询界面通过图书类别、图书名称、图书编号、折扣额度等四种方式查询图书,查到满意的图书后可点击购买。管理者可以通过登录管理界面实现对图书的添加、修改、删除操作以及发货和查看顾客信息,管理员可以维护客户注册信息、维护图书信息、处订定单信息、维护系统公告、网上售书。第二章系统分析§2.1需求分析2.1.1系统需求书店管理系统需要满足来自三个方面需求:第一,书店工作人员通过计算机来管理各类图书,进行图书分类编号,调整图书结构,增加图书库存,适应读者的需求。第二,工作人员对读者的需求情况能作好全面的掌握,及时得到历史销售记录。第三,也是书店的核心工作,对图书的销售管理。2.1.1功能需求基于系统需求分析,该系统需要实现以下基本功能:1、主界面管理本系统的使用用户分两种:管理员和顾客。管理员具有使用本系统的所有功能,而顾客需要具有日常书店的管理功能即可。主界面中需要顾客注册、顾客登录和管理员登录和三个功能,可以分别进入各自功能界面。2、添加功能新顾客可以通过此模块填写自己的各项信息。顾客可以通过此模块完成购卖书籍等操作。管理员可以管理界面中输入书籍的各项信息。3、修改功能管理员可以通过次模块来管理各类图书信息,包括图书信息的修改。在进行图书的修改时,根据用户选定的书进行修改,即列出所有用户选定的信息,在这个基础上进行图书信息的修改。4、删除功能管理员可以通过此模块完成对图书信息的删除等操作5、查询功能通过查询功能,顾客可以对书籍按不同方式进行查询。管理员可以查询书籍的信息和销售情况。6、显示功能通过此功能,可以将所需信息显示的列表框中。便于顾客和管理员观察使用数据库。根据功能分析的结果,网上书店管理系统主模块图如图2.1所示。2§2.2数据字典2.2.1一数据项图书数据字典属性名存储代码类型长度备注书籍编号bnonchar10主码书籍类别bkindnchar20书籍名称bnamenchar40书籍价格bpricenchar10书籍简介bintrovarchar80书籍折扣bdisint库存数量bstockint顾客数据字典属性名存储代码类型长度备注顾客编号cnoint主码顾客密码cpasschar10是顾客姓名cnamechar10否顾客性别csexchar10否顾客年龄cagechar10否顾客住址caddnchar20是联系电话cphonechar10是管理员数据字典属性名存储代码类型长度备注管理员登录名mnochar10主码管理员密码mpasschar10订单表数据字典属性名存储代码类型长度备注3网上书店管理系统修改功能主页面管理添加功能删除功能查询功能显示功能图2.1系统主模块图订单号onoint主码书籍编号bnonchar10顾客编号cnoint顾客姓名cnamechar20顾客住址caddnchar10联系电话cphonechar10付款方式opaynchar10发货方式oconveynchar102.2.2数据结构数据结构名组成图书信息书籍编号、书籍类别、书籍名称、书籍价格、书籍简介、书籍折扣、库存数量顾客信息顾客编号、顾客密码、顾客姓名、顾客性别、顾客年龄、顾客住址、联系电话管理员信息管理员登录名、管理员密码订单表订单号、图书编号、顾客编号、顾客姓名、顾客地址、联系电话、付款方式、发货方式§2.3概念结构设计(E—R图)根据对网上书店的需求分析,画出如下实体的ER图和实体之间的关系ER图。图2.2图书信息ER图图2.3顾客信息ER图4图书书籍类别书籍名称书籍价格书籍编号书籍简介书籍折扣库存数量顾客顾客密码顾客姓名顾客年龄顾客性别顾客住址顾客编号联系电话图2.4管理员信息ER图图2.5订单表信息ER图5管理员管理员登录名管理员密码订单表顾客编号书籍编号顾客姓名联系电话顾客住址订单号付款方式发货方式图2.6实体之间关系ER图§2.4逻辑结构设计(关系模式---关系)下面是把上面E-R图转化关系模式(关系的码用下划线标出):图书(书籍编号、书籍类别、书籍名称、书籍价格、书籍简介、书籍折扣、库存数量)顾客(顾客编号、顾客密码、顾客姓名、顾客性别、顾客年龄、顾客住址、联系电话)6管理员图书订单表顾客管理书-订单订单-顾客顾客性别顾客姓名顾客密码顾客编号联系电话顾客年龄顾客住址顾客编号顾客姓名书籍编号顾客住址订单号联系电话付款方式发货方式库存数量书籍折扣书籍编号书籍简介书籍类别书籍价值书籍名称管理员登录名管理员密码管理管理管理员(管理员登陆名、管理员密码)订单表(订单号、书籍编号、顾客编号、顾客姓名、顾客住址、联系电话、付款方式、发货方式)第三章功能分析网上书店新用户注册登录普通用户管理员图书查询订购图书图书管理添加图书修改图书删除图书订够查询订够修改退订第四章系统实现7§4.1数据库连接本软件使用ODBC连接数据库,基本思想为为数据库中每个表建立一个RecordSet类,当要对表中数据进行操作时,创建相关记录集,即可引用类中的响应函数进行添加、修改、删除、查询等操作。§4.2主界面主界面中显示顾客登录、管理员登录和顾客注册三个按钮,顾客输入登录名和密码后点击顾客登录后进入顾客查询界面,管理员输入登录名和密码后点击管理员登录后进入管理界面,若是新顾客,直接点击注册即可进入注册界面,各对话框之间的连接通过DoModal()函数实现,若需要进行身份验证,未输入用户名或密码则将弹出提示对话框“请输入用户名和密码!”,输入后系统将进入相应的数据库表查询是否有此信息,若无对应信息则弹出对话框提示输入信息错误,信息正确方可进入下一界面,如顾客登录时,系统使用以下代码完成身份验证功能,同时记录下用户信息以便加入订单://生成查询用户账号和密码的SQL语句mSqlStr="selectfromcustomerwherecno=\'";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()){//Openallfunctionforuserm_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();8c.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();9book.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.IsEmpty()m_dis==0m_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修改功能10修改功能使用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;11}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;12book.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())book.Close();book.m_strFilter.Format("bdis<=\'%d\'",m_dis);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();}}13§4.6显示功能在本软件中多次将信息显示在列表框中,以图书信息管理界面中显示图书信息为例,相关代码如下:BOOLCxsrk::OnInitDialog(){CDialog::OnInitDialog();DWORDdwExStyle=LVS_EX_FULLROWSELECTLVS_EX_GRIDLINESLVS_EX_HEADERDRAGDROPLVS_EX_ONECLICKACTIVATELVS_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);setbooka;a.Open();inti=0;while(!a.IsEOF()){CStringaa,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();returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}第五章调试过程中的问题及系统测试情况§5.1主界面展示主界面如下图4.1所示,有“顾客登录”,“管理员登录”和“现在注册”三个按钮:14图5.1主界面顾客输入正确的登录名和密码后点击确定即可进入顾客查询界面,如下图5.2所示:图5.2顾客查询界面管理员输入正确的登录名和密码后点击确定即可进入管理界面,如下图5.3所示:图5.3管理内容选择界面新顾客点击“现在注册”即可进入注册界面,如下图5.4所示:图5.4顾客注册界面§5.2添加功能展示5.2.1顾客注册15顾客在如上图4.4所示的顾客注册界面中输入各项信息且两次输入相同密码后点击确定,系统自动生成顾客编号作为登录名,和密码等显示给顾客,如下图5.5所示:图5.5注册信息确认界面5.2.2顾客购书顾客在如图4.3所示的查询界面中查到满意的图书后点击购买,即可进入购买图书界面,确认图书并选择付款方式和送货方式,如下图4.6所示:图5.6购买图书界面5.2.3添加新书管理员在如图4.3所示的管理界面中选择“书籍信息管理”,进入如下图5.7所示的书籍信息管理界面:图5.7书籍信息管理界面在编辑框中输入各项信息后点击“添加”,即可成功添加图书信息,如下图4.8所示:16图4.8添加图书§5.3修改功能展示管理员在如图5.7所示的书籍信息管理界面中选中要修改的图书,相关各项信息即可显示在下方的编辑框中,在编辑框中修改信息后点击“修改”即可成功修改book表中图书信息,如下图5.9所示:图5.9修改图书信息§5.4删除功能展示5.4.1图书信息删除管理员在如图5.7所示的书籍信息管理界面中选中要删除的图书,点击删除按钮即可删除该图书,如下图5.10所示图5.10删除图书点击确定后可以看到该图书在列表框中消失。5.4.2发货管理员在如图5.3所示的管理界面中选择“查看订单”即可进入如下图5.11所示的订单查看界面,选中要发送的图书后点击“发货”即可将该订单从orders表中删除:17图5.11订单查看界面§5.5查询功能展示以如图5.2所示的顾客查询中折扣额度查询为例,查询折扣在六折以下的图书,如下图5.12所示:图5.12折扣额度查询第六章结束语我的课程设计是网上书店管理系统,通过这次课程设计,使我更大程度上了解了信息管理系统的功能,提高了实践能力。是对所学知识的一次综合应用,在课程设计过程中,我遇到了很多问题,如在列表框和编辑框中显示int型和float型数据、调用别的类中生成的变量、自动生成顾客编号、自动生成订单号等等,最终在老师和同学们的帮助下,这些问题都一一得到圆满解决,系统还有以下部分有待完善:(1)数据库安全性还有待加强。(2)还可以设置级联使系统更加完善。(3)可以增加顾客对自己信息的修改权限,例如联系方式、住址等的更改。这次课程设计使我们更加熟悉的掌握了VisualC++语言和SQL语句的运用,帮助我们熟悉了更多VC++6.0和SQLServer2005的功能,提高了我们的动手能力,在实践中能够及时的18发现问题、解决问题,学到了许多解决实际问题的宝贵经验.同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。最后,衷心感谢庞老师的悉心指导和同学们的热情帮助,感谢学校给我们做课程设计的机会,使我们得到了很好的锻炼,学无止境,我们现在了解的东西还很少,还不能很好地掌握自己的专业知识,我们要谦虚的积极认真学习,不断的增强自身的能力,提高个人素质,向一个真正的IT人士发展。19',)
提供网上书店管理信息系统-数据库课程设计会员下载,编号:1700815335,格式为 docx,文件大小为22页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。