c++网上图书销售_第1页
c++网上图书销售_第2页
c++网上图书销售_第3页
c++网上图书销售_第4页
c++网上图书销售_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、网上图书销售系统1课程设计的目的传统的图书销售管理方法,都是通过人工统计和计算的管理方式进行的。这样的管理 方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及,打破了书 店管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易产生的问题, 使管理员能够有序的、全面的对图书销售和库存进行管理。网上图书销售系统可以完成书店的日常管理,如图书录入、图书销售、销售统计、查询库 存等功能,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高了书店的管 理效率和准确性。2功能描述本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动化管理, 通过本系统可以

2、达到以下目标:图书录入,包括图书的基本信息,如分类、进价、售价、作者等。图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。(3)销售统计,包括按图书类型、书名、作者、出版社等进行统计。(4)查询库存,对指定的某本图书剩余库存量进行查询。(5)售完图书查询,对已售完图书进行查询。3方案论证3.1 概要设计模块功能分配如下:用户登陆功能:管理员登陆模块(M1)。(2)图书录入功能:图书录入模块(M2)。图书销售功能:图书销售模块(M3)。(4)销售统计功能:销售统计模块(M4)。(5)查询图书库存功能:查询库存模块(M5)。(6)售完图书查询功能:售完图书查询模块(M6)图书销营管理

3、系统售完图书查询模块(ME查询重存盘WAV销售统计模块(M1Y图书录入覆(M2V管理员登录模块(M 一t图1图书销售管理系统功能模块图3.2 详细设计3.2.1 程序流程图(1)在登录界面输入用户名和密码,登录成功后进入主界面。(2)添加图书信息,保存”按钮对应的方法为 RAddBookDlg:OnSave()。开始图 3 RAddBookDlg:OnSave()方法的流程图(3)实现图书销售功能,销售”按钮对应的方法为RSaleBookDlg:OnOK()图4 RSaleBookDlg:OnOK()方法的流程图3.3.2数据描述(1)数据库概要说明数据库中包括管理员信息表、图书基本信息表、图

4、书类型表、图书销售记录表等4个数据表。图5所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数 据表。可以清晰地反应数据库信息。名引所石者区型创建日鼾IslFwd.dbP用户2006-09-09 13:49:06db4用尸2008-09-D9 13 49:06| EookTnf odbo用尸2DOS-OS-M 13:49:06OlaokCat pjorjrdbo用户20Q6-09-D9 13 49:0&图5数据表结构图(2)主要数据表的结构表1 Pwd (管理员信息表)字段名数据类型字段大小描述IDint4管理员帐号Passwordnvarchar50r密码表2 Bo

5、okInfo (图书基本信息表)字段名数据类型字段大小描述BookIDint4图书编号BookNamenvarchar50图书名称CategorylDint4图书类型编号Authornvarchar50作者Publishernvarchar50出版社PublishDatesmalldatetime4出版日期Purchasefloat8进价Pricefloat8售价Stockint4库存本数Discountint4折扣BarCodenvarchar50条形码表3 BookCategory (图书类型表)字段名数据类型长度描述CategoryIDint4图书类型编号CategoryNamenvar

6、char8图书类型名称表4 BookSale (图书销售记录表)字段名数据类型长度描述IDint4销售记录编号BookIDint4图书编号SalePricefloat8实际售价SaleDatesmalldatetime4销售日期4程序说明(1)打开程序,选择 使用书店身份登录”,输入密码“111:进入主对话框,如图所示:书店管理集式nPrllx系就值)功能比)查看 帮助Qi)图灵奖演讲集KTL开发指南“in日皿Etrr技术内幕 希腾神话放聿 数字信号处理 就廿何平十班程文计计文告蛛计化篁算化类合算类机机关轮类机Egbert L., Nun FitterHeffi冷新张瓦建羽三nC布华西电子工业

7、出版社 电子工业出版社 清华大学出版社 京华出康社国防工业出版社 上海文艺出版社 人民邮电出版社2005-4-11Q02000-31-1543.013993-7-1230.0纵斤9-11Z0.UI2002-7-112出力2UD4-1-12008-9-1£5.0绛。13默绪图8系统自动显示现有图书信息(4)在功能菜单下进入图书销售对话框,卖出一本 C+教程,如图5.4。点击返回按钮 后,系统会显示当前所有图书剩余库存信息,如图所示:图9图书销售(5)点击结束销售后,系统会自动显示当前所有图书的库存信息,C+教程的库存量已 减少一本,如图所示:鹏书店富理模式回区系统付 功能宴 查看婚 帮

8、助电)序号I书名1 AO图灵弊演讲集2 AI历发指南3 阳n期”WT技术内幕4 希腊神话故等5 数字信号处理B魅力何来7C”教程类化算西化类合算种文计计立名鳏计类类材类 类机机关教类机作者出版社出版日期库存由)进价Robert L.电3H业出版社2005-4-1104UQRon Pat ton电子工业出版社EQ00-U-15物EHelen Cu .洁华大学出版壮193-7-12so. a施瓦布京华出版社20039-110.0冷建华国防工业出版社S0O2-7-11220.0靳羽西上海文艺出版社2004-1-1E立口张三人民邮电出版社2008-112弭口公)|檎圈里目国<-41效字图10完成

9、销售后的库存信息(6)在功能菜单下进入销售统计对话框,查询全部销售清单,并给出已售出图书总本数,如图所示:图11查询所有图书销售清单(7)在功能菜单下进入查询库存对话框, 查询魅力何来这本书的库存信息,如图所示:修书后食现卷工图12查询图书库存信息(8)再售出魅力何来2本后,在功能菜单下进入售完图书列表功能,查询已售完的图 书的信息如图所示:图13查询售完图书列表(9)在出售图书时,若无对应图书信息或图书库存为零,将出售失败,并给出提示信息, 如图所示:图14图书销售失败5效果及存在问题程序还是存在一些不足之处。比如程序没有直接提供修改密码的功能,系统管理员密 码保存在数据库的Pwd表中,若要

10、修改密码,可以到数据库中直接修改。由于时间仓促, 没有优化设计,还存在一些垃圾和重复代码,也没有进行全面的测试,需要进一步的改进。 本系统规模小,实现的功能简单,但稍加改动和完善,完全可以应用到普通书店的销售管 理中。6结果分析及心得体会本次课程设计完成的是图书销售管理系统,我基本完成了所要求的几个功能,包括图 书录入、图书销售、销售统计、查询库存等功能。通过本次课程设计,自己对Visual C+6.0 的基本知识有了一个很好的巩固和学习,特别是Visual C+6.0中的MFC ,它的功能是非常强大的,使用它制作图形界面很方便。而且自己还进一步熟悉了SQL数据库的知识,包括建表、查询、修改等

11、操作,以及学习了 Visual C+6.0怎样连接数据库。开始做这个课程设计的时候,感觉到自己只有一些理论知识,无法动手来操作。通过 认真的学习来解决这一问题,这也提高了实际操作的能力。在编写程序的过程中,也发现 自己还是存在着很多的缺点,对 Visual C+6.0和MFC的知识和使用不是很熟悉,操作数 据库也不熟练,还需要自己多加练习来达到熟练的目的,以后还要努力学习锻炼自己。首 先要感谢的是本次课程设计的指导老师对我的耐心指导,我才顺利地完成了这次课程设计。可以说这很大程度上归功于老师的帮助,这也给了我很大的鼓励,使我有信心完成该题目。 另外还要感谢的就是我的同学们,在这次课程设计中他们

12、给了我很多细心的帮助。参考文献1揣锦华.面向对象程序设计与VC+实践.M.西安电子科技大学出版社,20052张建宏,汤练兵,马德骏.计算机程序设计基础.M.科学出版社,20063陈清华.Visual C+课程设计案例精选与编程指导.M.东南大学出版社,20044陈维兴、林小茶,C+面向对象程序设计教程.M.清华大学出版社5谭浩强,C语言程序设计,清华大学出版社.M.2000年.6陈维兴、陈昕、林小茶,C+面向对象程序设计习题解答与实验指导,M.清华大学出版社,2005年7刘振安、刘燕君、孙忱,C+语言课程设计,M.机械工业出版社,2007年 8严华峰.Visual C+课程设计案例精编.M.北

13、京:中国水利水电出版社,2002 9张宏军,党留群,赵天巨.Visual C+ 6.0编程案例精解.M.北京:电子工业出版社, 200510郑阿奇,丁有和.Visual C+教程.M.北京:机械工业出版社,2006附录:BOOL RAddBookDlg:OnInitDialog()CDialog:OnInitDialog();/ TODO: Add extra initialization hereGetBookGategory();return TRUE; / return TRUE unless you set the focus to a control/ EXCEPTION: OCX

14、Property Pages should return FALSEvoid RAddBookDlg:OnSave()/ TODO: Add your control notification handler code here UpdateData(TRUE);if(!IsValidInput()return ;if(IDYES != AfxMessageBox(" 确定要保存吗?",MB_YESNO) 放弃保存 return ;if(SaveData()AfxMessageBox("保存成功!");保存后重置数据m_bHasNewBook = tru

15、e;OnReset();GetDlgItem(IDC_BK_CATEGORY)->SetFocus();elseAfxMessageBox("保存失败!");bool RAddBookDlg:IsValidInput() CString str = "0123456789”;if(m_strBookCategory.IsEmpty() | m_strBookCategory.FindOneOf(str) != -1) AfxMessageBox("输入有误!图书类型不能为空或包含数字。”);GetDlgItem(IDC_BK_CATEGORY)-&

16、gt;SetFocus();return false;if(m_strBookName.IsEmpty()AfxMessageBox("输入有误!书名不能为空。");GetDlgItem(IDC_BK_NAME)->SetFocus();return false;if(m_strAuthor.IsEmpty() | m_strAuthor.FindOneOf(str) != -1) AfxMessageBox("输入有误!作者名称不能为空或包含数字。”);GetDlgItem(IDC_BK_AUTHOR)->SetFocus();return fals

17、e;if(m_strPublisher.IsEmpty()| m_strPublisher.FindOneOf(str) != -1) AfxMessageBox("输入有误!出版社名称不能为空或包含数字。”);GetDlgItem(IDC_BK_PUBLISHER)->SetFocus();return false;if(m_dPurchase <= 0)AfxMessageBox("图书进价应为正值!");GetDlgItem(IDC_BK_PURCHASE)->SetFocus();return false;if(m_dPrice <

18、= 0 )AfxMessageBox("图书售价应为正值!");GetDlgItem(IDC_BK_PRICE)->SetFocus();return false;if( m_lDiscount < 0 | m_lDiscount > 100)AfxMessageBox("图书折扣应为 0-100之间正值!");GetDlgItem(IDC_BK_DISCOUNT)->SetFocus();return false;if(m_lStock <1)AfxMessageBox("图书数量应为正值!");Get

19、DlgItem(IDC_BK_STOCK)->SetFocus();return false;if(m_strBarcode.IsEmpty() | m_strBarcode.GetLength() > 15) AfxMessageBox("条形码应为15位整数!");GetDlgItem(IDC_BK_BARCODE)->SetFocus();return false;/ AfxMessageBox(m_strBookName + "rn" +/m_strBookCategory + "rn" +/m_strAut

20、hor + "rn" +/m_strPublisher + "rn"+/m_strBarcode );return true;void RSaleBookDlg:OnOK()/ TODO: Add extra validation hereif(!m_bReadySale)m_bReadySale = FindBook();elseUpdateData(TRUE);CString strMsg;,m_strBookNamestrMsg.Format("是否出售?n 书名:sn 价格:.2f ,m_dSalePrice);if(IDYES = A

21、fXMessageBox(strMsg,MB_YESNO) ModifyStock();/修改图书库存SaveSaleRecord(); 记录销售记录 Init(); UpdateData(FALSE);GetDlgItem(IDC_SBK_NAME)->SetFocus(); m_editDiscount.EnableWindow(FALSE); CDialog:OnOK(); bool RSaleBookDlg:FindBook() / TODO: Add your control notification handler code here UpdateData(TRUE);CSt

22、ring strSql;_variant_t var;double dPurchase;if(!m_strBookName.IsEmpty()strSql.Format("SELECT * FROM BookInfo WHERE BookName = "%s" and Stock >0", m_strBookName);else if(!m_strBarCode.IsEmpty()strSql.Format("SELECT * FROM BookInfo WHERE BarCode = "%s" and Stock &

23、gt;0", m_strBarCode);elseAfxMessageBox("请输入书名或条码!"); GetDlgItem(IDC_SBK_NAME)->SetFocus(); return false; CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp(); try pApp->m_pRecordset->Open(strSql.AllocSysString(),pApp->m_pConnection.GetInterfacePtr() adLockOptimistic,adCmdText

24、);if(pApp->m_pRecordset->adoEOF)AfxMessageBox("查无此书!请输入书名或条码无误。");pApp->m_pRecordset->Close();return false;var = pApp->m_pRecordset->GetCollect("BookID");if(var.vt != NULL)m_lBookID = var.lVal;var = pApp->m_pRecordset->GetCollect("Discount");if(v

25、ar.vt != NULL)m_lDiscount = var.lVal;var = pApp->m_pRecordset->GetCollect("Price");if(var.vt != NULL)m_dPrice = var.dblVal;var = pApp->m_pRecordset->GetCollect("Purchase");if(var.vt != NULL)dPurchase = var.dblVal;var = pApp->m_pRecordset->GetCollect("CategoryID");if(var.vt != NULL)m_lCategory = var.lVal;pApp->m_pRecordset->Close();ca

温馨提示

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

评论

0/150

提交评论