c++网上图书销售

上传人:枕*** 文档编号:124036256 上传时间:2022-07-23 格式:DOC 页数:16 大小:267KB
收藏 版权申诉 举报 下载
c++网上图书销售_第1页
第1页 / 共16页
c++网上图书销售_第2页
第2页 / 共16页
c++网上图书销售_第3页
第3页 / 共16页
资源描述:

《c++网上图书销售》由会员分享,可在线阅读,更多相关《c++网上图书销售(16页珍藏版)》请在装配图网上搜索。

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

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

3、1图书销售管理系统功能模块图3.2具体设计3.2.1程序流程图(1)在登录界面输入顾客名和密码,登录成功后进入主界面。 图2登录模块流程图(2)添加图书信息, “保存”按钮相应的措施为RAddBookDlg:OnSave()。开始结束输入图书基本信息判断输入与否对的且完整添加该信息到关联表并写入数据库 是否图3 RAddBookDlg:OnSave()措施的流程图(3)实现图书销售功能,“销售”按钮相应的措施为RSaleBookDlg:OnOK()。开始结束输入书名或条形码判断输入与否对的且FindBook()函数返回值为1添加该信息到关联表并写入数据库是否图4 RSaleBookDlg:On

4、OK()措施的流程图3.3.2 数据描述(1)数据库概要阐明数据库中涉及管理员信息表、图书基本信息表、图书类型表、图书销售登记表等4个数据表。图5所示的即为本系统中数据库中的数据表构造图,该数据表构造图涉及系统所有数据表。可以清晰地反映数据库信息。图5 数据表构造图(2)重要数据表的构造表1 Pwd(管理员信息表)字段名数据类型字段大小描述IDint4管理员帐号Passwordnvarchar50r密码表2 BookInfo(图书基本信息表)字段名数据类型字段大小描述BookIDint4图书编号BookNamenvarchar50图书名称CategoryIDint4图书类型编号Authornv

5、archar50作者Publishernvarchar50出版社PublishDatesmalldatetime4出版日期Purchasefloat8进价Pricefloat8售价Stockint4库存本数Discountint4折扣BarCodenvarchar50条形码表3 BookCategory(图书类型表)字段名数据类型长度描述CategoryIDint4图书类型编号CategoryNamenvarchar8图书类型名称表4 BookSale(图书销售登记表)字段名数据类型长度描述IDint4销售记录编号BookIDint4图书编号SalePricefloat8实际售价SaleDat

6、esmalldatetime4销售日期4程序阐明(1)打开程序,选择“使用书店身份登录”,输入密码“111”,进入主对话框,如图所示:图6主对话框(2)在功能菜单下选择图书录入功能,添加一本新的图书信息,如图所示:图7添加图书信息(3)点击“返回”按钮后,系统会自动显示既有图书信息,如图所示:图8 系统自动显示既有图书信息(4)在功能菜单下进入图书销售对话框,卖出一本C+教程,如图5.4。点击返回按钮后,系统会显示目前所有图书剩余库存信息,如图所示:图9 图书销售(5)点击结束销售后,系统会自动显示目前所有图书的库存信息,C+教程的库存量已减少一本,如图所示:图10完毕销售后的库存信息 (6)

7、在功能菜单下进入销售记录对话框,查询所有销售清单,并给出已售出图书总本数,如图所示:图11查询所有图书销售清单(7)在功能菜单下进入查询库存对话框,查询魅力何来这本书的库存信息,如图所示:图12查询图书库存信息(8)再售出魅力何来2本后,在功能菜单下进入售完图书列表功能,查询已售完的图书的信息如图所示:图13 查询售完图书列表(9)在发售图书时,若无相应图书信息或图书库存为零,将发售失败,并给出提示信息,如图所示:图14图书销售失败5效果及存在问题程序还是存在某些局限性之处。例如程序没有直接提供修改密码的功能,系统管理员密码保存在数据库的Pwd表中,若要修改密码,可以到数据库中直接修改。由于时

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

9、库。开始做这个课程设计的时候,感觉到自己只有某些理论知识,无法动手来操作。通过认真的学习来解决这一问题,这也提高了实际操作的能力。在编写程序的过程中,也发现自己还是存在着诸多的缺陷,对Visual C+6.0和MFC的知识和使用不是很熟悉,操作数据库也不纯熟,还需要自己多加练习来达到纯熟的目的,后来还要努力学习锻炼自己。一方面要感谢的是本次课程设计的指引教师对我的耐心指引,我才顺利地完毕了这次课程设计。可以说这很大限度上归功于教师的协助,这也给了我很大的鼓励,使我有信心完毕该题目。此外还要感谢的就是我的同窗们,在这次课程设计中她们给了我诸多细心的协助。 参照文献1 揣锦华.面向对象程序设计与V

10、C+实践. M.西安电子科技大学出版社,2 张建宏,汤练兵,马德骏.计算机程序设计基本. M.科学出版社,3 陈清华.Visual C+课程设计案例精选与编程指引. M.东南大学出版社,4 陈维兴、林小茶,C+面向对象程序设计教程.M.清华大学出版社5 谭浩强,C语言程序设计,清华大学出版社. M.6 陈维兴、陈昕、林小茶,C+面向对象程序设计习题解答与实验指引,M.清华大学出版社, 7 刘振安、刘燕君、孙忱,C+语言课程设计,M.机械工业出版社,8严华峰. Visual C+课程设计案例精编. M.北京:中国水利水电出版社,9张宏军,党留群,赵天巨Visual C+ 6.0编程案例精解M.北

11、京:电子工业出版社,10郑阿奇,丁有和Visual C+教程M.北京:机械工业出版社,附录:BOOL RAddBookDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereGetBookGategory();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid RAddBookDlg:OnSave() /

12、TODO: Add your control notification handler code hereUpdateData(TRUE);if(!IsValidInput()return ;if(IDYES != AfxMessageBox(拟定要保存吗?,MB_YESNO) /放弃保存return ;if(SaveData()AfxMessageBox(保存成功!);/保存后重置数据m_bHasNewBook = true;OnReset();GetDlgItem(IDC_BK_CATEGORY)-SetFocus();elseAfxMessageBox(保存失败!);bool RAddB

13、ookDlg:IsValidInput()CString str = ;if(m_strBookCategory.IsEmpty() | m_strBookCategory.FindOneOf(str) != -1)AfxMessageBox(输入有误!图书类型不能为空或涉及数字。);GetDlgItem(IDC_BK_CATEGORY)-SetFocus();return false;if(m_strBookName.IsEmpty()AfxMessageBox(输入有误!书名不能为空。);GetDlgItem(IDC_BK_NAME)-SetFocus();return false;if(

14、m_strAuthor.IsEmpty() | m_strAuthor.FindOneOf(str) != -1)AfxMessageBox(输入有误!作者名称不能为空或涉及数字。);GetDlgItem(IDC_BK_AUTHOR)-SetFocus();return false;if(m_strPublisher.IsEmpty()| m_strPublisher.FindOneOf(str) != -1)AfxMessageBox(输入有误!出版社名称不能为空或涉及数字。);GetDlgItem(IDC_BK_PUBLISHER)-SetFocus();return false;if(m

15、_dPurchase SetFocus();return false;if(m_dPrice SetFocus();return false;if( m_lDiscount 100)AfxMessageBox(图书折扣应为0-100之间正值!);GetDlgItem(IDC_BK_DISCOUNT)-SetFocus();return false;if(m_lStock SetFocus();return false;if(m_strBarcode.IsEmpty() | m_strBarcode.GetLength() 15)AfxMessageBox(条形码应为15位整数!);GetDlg

16、Item(IDC_BK_BARCODE)-SetFocus();return false;/AfxMessageBox(m_strBookName + rn +/m_strBookCategory + rn +/m_strAuthor + rn +/m_strPublisher + rn +/m_strBarcode );return true;void RSaleBookDlg:OnOK() / TODO: Add extra validation hereif(!m_bReadySale)m_bReadySale = FindBook();elseUpdateData(TRUE);CStr

17、ing strMsg;strMsg.Format(与否发售?n 书名:%sn 价格:%.2f”,m_strBookName,m_dSalePrice);if(IDYES = AfxMessageBox(strMsg,MB_YESNO)ModifyStock();/修改图书库存SaveSaleRecord();/记录销售记录Init();UpdateData(FALSE);GetDlgItem(IDC_SBK_NAME)-SetFocus();m_editDiscount.EnableWindow(FALSE);/CDialog:OnOK();bool RSaleBookDlg:FindBook

18、() / TODO: Add your control notification handler code hereUpdateData(TRUE);CString 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 BookIn

19、fo WHERE BarCode = %s and Stock 0, m_strBarCode);elseAfxMessageBox(请输入书名或条码!);GetDlgItem(IDC_SBK_NAME)-SetFocus();return false;CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();trypApp-m_pRecordset-Open(strSql.AllocSysString(),pApp-m_pConnection.GetInterfacePtr()adLockOptimistic,adCmdText);if(pApp-m

20、_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(var.vt != NULL)m_lDiscount = var.lVal;var = pApp-m_pRecordset-GetCollect(Price);

21、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();catch(_com_error * e)AfxMessageBox(e-ErrorMessage();m_editDi

22、scount.EnableWindow(m_dPrice = dPurchase);m_lDiscount = (m_dPrice = dPurchase) ? m_lDiscount :100;/售价不不小于进价时,不容许打折m_dSalePrice = m_dPrice * (double(m_lDiscount)/100); /计算折后价UpdateData(FALSE);return true; void CRBookSaleView:OnSaleReport() / TODO: Add your command handler code hereRReportDlg dlg;dlg.

23、m_iReportType = m_iReportType ;if(IDOK = dlg.DoModal()m_iReportType = dlg.m_iReportType;/设立销售报表标题/前2个标题类型为顾客模式和书店管理模式,故此处加2int iTitleType = 0;switch(m_iReportType)case 0:/图书类型记录iTitleType = CATEGORY_REPORT_TITLE;break;case 1:/图书名称记录iTitleType = BOOKNAME_REPORT_TITLE;break;case 2:/图书作者记录iTitleType = AUTHOR_REPORT_TITLE;break;case 3:/出版社记录iTitleType = PUBLISHER_REPORT_TITLE;break;case 4:/所有销售记录记录iTitleType = SALE_REPORT_TITLE;break;default:break;SetTitle(iTitleType);ShowReport();

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!