当前位置:文档之家› 网上书店管理信息系统

网上书店管理信息系统

山东理工大学计算机学院课程设计(数据库系统原理)网上书店管理信息系统班级姓名学号指导教师二○一一年一月十三日课程设计任务书及成绩评定课题名称网上书店管理信息系统Ⅰ、题目的目的和要求通过数据库系统原理课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力,具体掌握的基本能力有以下几方面:1、学习和巩固《数据库系统原理》的基本知识。

2、关系数据库管理系统的基本使用方法。

3、熟悉SQL语言的主要功能及SQL语句的使用操作。

4、熟悉数据库管理系统的设计过程,培养解决实际问题的能力。

5、小型数据库应用系统的设计方法。

要求独立完成该课题设计。

Ⅱ、设计进度及完成情况Ⅲ、主要参考文献及资料[1]王珊,萨师煊主编.数据库系统概论(第四版).北京:高等教育出版社,2006.5[2]何志丹著深入浅出 Visual c++入门、进阶与应用实例人民邮电出版社[3] 维埃拉著,董明译 SQL Server 2005 高级程序设计人民邮电出版社[4] 李俊民著精通 SQL——结构化查询语言详解人民邮电出版社学科部主任___________Ⅳ、成绩评定设计成绩:指导老师:二○一一年月日目录第一章系统概述 (2)第二章系统分析 (2)第三章功能分析 (7)第四章系统实现 (8)第五章调试过程中的问题及系统测试情况 (15)第六章结束语 (20)1第一章概述目前社会上信息管理系统发展飞速,越来越多的企事业单位都引入了信息管理软件来管理自己日益增长的各种信息。

各种网店也相继采用了不同的管理系统来管理商品信息,取得了很大的成效,网上书店管理系统也在功能上不但完善和加强,为了使书店管理更加规范化,程序化,科学化,我们研发了这次的网上书店管理系统。

本系统的功能是为管理者提供方便的管理、为顾客提供快捷的购买。

系统的主要子模块有图书管理,顾客管理等,可实现日常图书进货、发货业务,最终达到提高工作效率的目的。

顾客可以进入图书查询界面通过图书类别、图书名称、图书编号、折扣额度等四种方式查询图书,查到满意的图书后可点击购买。

管理者可以通过登录管理界面实现对图书的添加、修改、删除操作以及发货和查看顾客信息,管理员可以维护客户注册信息、维护图书信息、处订定单信息、维护系统公告、网上售书。

第二章系统分析§2.1需求分析2.1.1系统需求书店管理系统需要满足来自三个方面需求:第一,书店工作人员通过计算机来管理各类图书,进行图书分类编号,调整图书结构,增加图书库存,适应读者的需求。

第二,工作人员对读者的需求情况能作好全面的掌握,及时得到历史销售记录。

第三,也是书店的核心工作,对图书的销售管理。

2.1.1功能需求基于系统需求分析,该系统需要实现以下基本功能:1、主界面管理本系统的使用用户分两种:管理员和顾客。

管理员具有使用本系统的所有功能,而顾客需要具有日常书店的管理功能即可。

主界面中需要顾客注册、顾客登录和管理员登录和三个功能,可以分别进入各自功能界面。

2、添加功能新顾客可以通过此模块填写自己的各项信息。

顾客可以通过此模块完成购卖书籍等操作。

管理员可以管理界面中输入书籍的各项信息。

3、修改功能管理员可以通过次模块来管理各类图书信息,包括图书信息的修改。

在进行图书的修改时,根据用户选定的书进行修改,即列出所有用户选定的信息,在这个基础上进行图书信息的修改。

4、删除功能管理员可以通过此模块完成对图书信息的删除等操作5、查询功能通过查询功能,顾客可以对书籍按不同方式进行查询。

管理员可以查询书籍的信息和销售情况。

6、显示功能通过此功能,可以将所需信息显示的列表框中。

便于顾客和管理员观察使用数据库。

根据功能分析的结果,网上书店管理系统主模块图如图2.1所示。

§2.2数据字典2.2.1一数据项2.2.2数据结构§2.3概念结构设计(E—R图)图2.2图书信息ER图图2.3 顾客信息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 userm_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.I sEmpty()||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 所示的查询界面中查到满意的图书后点击购买,即可进入购买图书界面,确认图书并选择付款方式和送货方式,如下图 4.6 所示:图 5.6 购买图书界面5.2.3 添加新书管理员在如图 4.3 所示的管理界面中选择“书籍信息管理”,进入如下图 5.7 所示的书籍信息管理界面:图 5.7 书籍信息管理界面在编辑框中输入各项信息后点击“添加”,即可成功添加图书信息,如下图 4.8 所示:图 4.8 添加图书§5.3修改功能展示管理员在如图 5.7 所示的书籍信息管理界面中选中要修改的图书,相关各项信息即可显示在下方的编辑框中,在编辑框中修改信息后点击“修改”即可成功修改 book 表中图书信息,如下图 5.9 所示:图 5.9 修改图书信息§5.4删除功能展示5.4.1 图书信息删除管理员在如图 5.7 所示的书籍信息管理界面中选中要删除的图书,点击删除按钮即可删除该图书,如下图 5.10 所示图 5.10 删除图书点击确定后可以看到该图书在列表框中消失。

相关主题