毕业设计(论文)网上图书销售系统实现前台

上传人:仙*** 文档编号:27948191 上传时间:2021-08-21 格式:DOC 页数:36 大小:442.01KB
返回 下载 相关 举报
毕业设计(论文)网上图书销售系统实现前台_第1页
第1页 / 共36页
毕业设计(论文)网上图书销售系统实现前台_第2页
第2页 / 共36页
毕业设计(论文)网上图书销售系统实现前台_第3页
第3页 / 共36页
点击查看更多>>
资源描述
天 津 大 学 网 络 教 育 学 院 本科毕业论文 题目:网上图书销售系统-实现前台 完成期限:2011 年 4 月 20 日 至 2011 年 5 月 20 日 学 习 中 心 年 级 专 业 指 导 教 师 姓 名 学 号 1 目 录 摘 要 .2 1 引言 .1 2 需求分析 .2 2.1 国内外研究的现状 .2 2.2 功能需求 .2 2.3 数据描述 .4 2.4 数据库描述 .5 3 概要设计 .6 3.1 系统运行环境 .6 3.2 系统功能模块设计 .6 3.3 系统处理流程 .7 3.4 接口设计 .7 4 详细设计 .9 4.1 登录模块及主界面 .9 4.2 图书录入模块 .11 4.3 图书销售模块 .16 4.4 销售统计模块 .21 4.5 查询库存模块 .24 5 系统测试 .27 2 6 操作手册 .32 7 结论 .33 7.1 系统功能 .33 7.2 系统不足和改进 .33 7.3 总结 .33 致 谢 .34 参考文献 .35 摘 要 随着 Internet 的迅速崛起,网络信息化得发展,在线图书销售利用 Vc+连 接 SQL 数据库的方式也迅速的发展并深入人们的日常生活中。更多的人更愿意秩 足不出户就可以挑选购买自己喜欢的各种书籍,这样大大缩短了购书的时间,提 高了效率。可见,网上图书销售系统跨越了时间的空间的限制,给商业流通领域 带来了不一样的变革,也给消费者带来了便捷。 关键词:图书;销售;库存;网上购书系统;电子商务 3 The Design and Realization of SQL Bookshop Management System Beased on . NET Abstract With the rapid rise of Internet, the development of network informati on technology , Sql bookshop system as a typical electronic commerce system also develops rapidly and deeps into peoples life. More and more people could be willing to select and buy their favorite books at home, so that is greatly reducing the time of shopping, and improving the efficiency. Obviously, the sql bookshop management system has crossed the constraint of the time and the space , it not only brings a different chang to the commercial domain, but also brings convenient to the consumers. Key words : Sql bookshop system ; Books ; Electronic commerce ; Stocks Sale 1 引言 传统的图书销售管理方法,都是通过人工统计和计算的管理方式进行的。这样的 管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及, 打破了书店管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易 产生的问题,使管理员能够有序的、全面的对图书销售和库存进行管理。 网上图书销售系统可以完成书店的日常管理,如图书录入、图书销售、销售统计、 查询库存等功能,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高 了书店的管理效率和准确性。 - 1 2 需求分析 2.1 国内外研究的现状 在现代化的书店中,对图书销售工作运用现代化技术进行管理,是提高工作效率 的有效手段。图书销售管理是书店日常工作中非常重要的一个方面,越来越受到书店 经营者的重视。通过计算机管理系统对图书销售进行全面的统计与管理,全面解决了 书店经营过程中所遇到的各种问题,并且克服了传统管理方式中的易出错等问题。图 书销售管理系统成为书店管理的首选管理工具。 2.2 功能需求 2.2.1 待开发软件的功能需求 本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动 化管理,通过本系统可以达到以下目标: 1. 图书录入,包括图书的基本信息,如分类、进价、售价、作者等。 2. 图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。 3. 销售统计,包括按图书类型、书名、作者、出版社等进行统计。 4. 查询库存,对指定的某本图书剩余库存量进行查询。 5. 售完图书查询,对已售完图书进行查询。 2.2.2 待开发软件的功能 按照用户需求,要满足以上功能,我设计出了图书销售管理系统的系统功能图, 如图 2.1 所示。 - 2 图书销售管理系统 图书 录入 查询 库存 图书 销售 销售 统计 售完 图书 查询 图 2.1 图书销售管理系统的系统功能图 综合系统要求,对图 2.1 所示的系统功能解释如下: 图书录入,包括图书的基本信息,如分类、进价、售价、作者等。 图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。 销售统计,包括按图书类型、书名、作者、出版社等进行统计。 查询库存,对指定的某本图书剩余库存量进行查询。 售完图书查询,对已售完图书进行查询。 通过以上分析,可以得到仓库管理系统的数据流图,如图 2.2 所示。 管理员 图书信息 处理 图书管理 反馈信息 图书信息 反馈信息 记录数据 数据库 图 2.2 图书管理系统的数据流图 2.3 数据描述 - 3 2.3.1 数据库概要说明 数据库中包括管理员信息表、图书基本信息表、图书类型表、图书销售记录表等 4 个数据表。 图 2.3 所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统 所有数据表。可以清晰地反应数据库信息。 图 2.3 数据表结构图 2.3.2 主要数据表的结构 表 2.1 Pwd(管理员信息表) 字段名 数据类型 字段大小 描述 ID Int 4 管理员帐号 Password Nvarchar 50r 密码 表 2.2 BookInfo(图书基本信息表) 字段名 数据类型 字段大小 描述 BookID Int 4 图书编号 BookName nvarchar 50 图书名称 CategoryID Int 4 图书类型编号 Author nvarchar 50 作者 Publisher nvarchar 50 出版社 PublishDate smalldatetime 4 出版日期 Purchase float 8 进价 Price float 8 售价 Stock Int 4 库存本数 Discount Int 4 折扣 BarCode nvarchar 50 条形码 表 2.3 BookCategory(图书类型表) 字段名 数据类型 长度 描述 CategoryID Int 4 图书类型编号 - 4 CategoryName Nvarchar 8 图书类型名称 表 2.4 BookSale(图书销售记录表) 字段名 数据类型 长度 描述 ID Int 4 销售记录编号 BookID Int 4 图书编号 SalePrice Float 8 实际售价 SaleDate smalldatetime 4 销售日期 2.4 数据库描述 本软件采用SQL数据库。 - 5 3 概要设计 本系统是根据书店的实际需求而开发的,完全能够帮助书店实现高效、准确的图 书销售自动化管理。在分析阶段,我们已经提出了系统的结构和数据字典。本节我们 将对系统的使用环境作简要介绍,并对该系统作概要设计。 3.1 系统运行环境 P4 机 Windows 操作系统 Visual C+6.0 3.2 系统功能模块设计 在前面系统功能分析的基础上,结合 Visual C+程序编制的特点,得到如图 3.1 所示的系统功能模块图。 图书销售管理系统 图书录入模块(M2) 查询库存模块(M5)图书销售模块(M3) 销售统计模块(M4) 售完图书查询模块(M6)管理员登录模块(M1) 图 3.1 图书销售管理系统功能模块图 各模块功能分配如下: (1)用户登陆功能:管理员登陆模块(M1) 。 (2)图书录入功能:图书录入模块(M2) 。 (3)图书销售功能:图书销售模块(M3) 。 - 6 (4)销售统计功能:销售统计模块(M4) 。 (5)查询图书库存功能:查询库存模块(M5) 。 (6)售完图书查询功能:售完图书查询模块(M6) 。 3.3 系统处理流程 (1)系统启动,进入身份验证。 (2)初始化系统,导入数据库。 (3)录入图书信息。 (4)图书销售。 (5)统计图书销售信息。 (6)查询图书库存信息。 (7)查询已售完图书信息。 (8)退出系统。 3.4 接口设计 3.4.1 外部接口 (1) 用户界面 采用图形用户界面,包含菜单、按钮、对话框等元素。 (2) 软件接口 软件运行于Visual C+6.0平台上。 (3) 硬件接口 运行于PC机上。 3.4.2 内部接口 (1)用户登陆模块(M1):由相应事件驱动消息激活,完成用户登陆功能,之后 进入消息循环状态。 (2)图书销售模块(M3):由相应事件驱动消息激活,完成图书销售功能,之后 进入消息循环状态。 (3)销售统计模块(M4):由相应事件驱动消息激活,完成销售统计功能,之后 进入消息循环状态。 (4)查询库存模块(M5):由相应事件驱动消息激活,完成查询库存功能,之后 - 7 进入消息循环状态。 (5)售完图书查询模块(M6):由相应事件驱动消息激活,完成售完图书查询功 能,之后进入消息循环状态。 - 8 4 详细设计 该系统采用 VC+6.0 中的 MFC 连接 SQL 数据库的方式,使用图形用户界面,主要 实现图书录入、图书销售等功能。下面具体对各模块进行介绍。 4.1 登录模块及主界面 在登录界面(如图 4.1 所示)中输入用户名和密码,登录成功后进入主界面。登 陆框流程图如图 4.2 所示,系统主界面如图 4.3 所示,单击某个按钮就能弹出某个功 能的界面。 图 4.1 系统登录界面 输入用户名 开始 验证密码是否正确 输入密码 登录成功进入主界面 结束 是 否 选择帐号类型 - 9 图 4.2 登录模块流程图 图 4.3 系统主界面 4.2 图书录入模块 4.2.1 实现目标 添加图书信息,图书录入对话框的设计如图 4.4 所示。 “保存”按钮对应的方法为 RAddBookDlg:OnSave(),流程图如图 4.5 所示。 图 4.4 图书录入对话框 - 10 开始 结束 输入图书基本信息 判断输入是否正 确且完整 添加该信息到关联表并写 入数据库 是 否 图 4.5 RAddBookDlg:OnSave()方法的流程图 4.2.2 设计步骤 (1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_ADDBOOK。在 IDD_YGTJK 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令, 打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选项卡, 更改其“Caption”文本框内容为“图书信息录入” 。 (2)从 Controls 面板上向 Dialog 资源中添加所需控件,更改资源的属性,并为资 源设置相对应的变量,如表 4.1 所示。 表 4.1 图书录入 Dialog 资源属性设置 Member Variables ID Properties Type Member IDC_BK_CATEGORY 默认 文本 CategoryName IDC_BK_NAME 默认 文本 BookName IDC_BK_AUTHOR 默认 文本 Author IDC_BK_PUBLISHER 默认 文本 Publisher IDC_BK_DATE 默认 日期/时间 PublishDate - 11 IDC_BK_PURCHASE 默认 数字 Purchase IDC_BK_PRICE 默认 数字 Price IDC_BK_PAYOFF 默认 数字 Price IDC_BK_STOCK 默认 数字 Stock IDC_BK_BARCODE 默认 文本 BarCode IDC_BK_DISCOUNT 默认 数字 Discount IDC_RESET Caption 重填 IDC_SAVE Caption 添加 IDCANCEL Caption 退出 4.2.3 代码分析 (1)打开 ClassWizard 窗口,添加在 OnInitDialog 成员函数,向 OnInitDialog 添加代码如下: BOOL RAddBookDlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization here GetBookGategory(); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE (2)当用户单击“保存“按钮时,实现添加图书功能,其响应代码如下: void RAddBookDlg:OnSave() / TODO: Add your control notification handler code here UpdateData(TRUE); if(!IsValidInput() return ; if(IDYES != AfxMessageBox(确定要保存吗?,MB_YESNO) /放弃保存 return ; if(SaveData() - 12 AfxMessageBox(保存成功!); /保存后重置数据 m_bHasNewBook = true; OnReset(); GetDlgItem(IDC_BK_CATEGORY)-SetFocus(); else AfxMessageBox(保存失败!); (3)判断输入信息是否正确的函数是 IsValidInput() ,其响应代码如下: bool RAddBookDlg:IsValidInput() CString str = 0123456789; 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(m_strAuthor.IsEmpty() | m_strAuthor.FindOneOf(str) != -1) AfxMessageBox(输入有误!作者名称不能为空或包含数字。 ); GetDlgItem(IDC_BK_AUTHOR)-SetFocus(); - 13 return false; if(m_strPublisher.IsEmpty()| m_strPublisher.FindOneOf(str) != -1) AfxMessageBox(输入有误!出版社名称不能为空或包含数字。 ); GetDlgItem(IDC_BK_PUBLISHER)-SetFocus(); return false; if(m_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(); - 14 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_strAuthor + rn + / m_strPublisher + rn + / m_strBarcode ); return true; 4.3 图书销售模块 4.3.1 实现目标 实现图书销售功能,图书销售对话框设计如图 4.6 所示。 “销售”按钮对应的方法 为 RSaleBookDlg:OnOK(),流程图如图 4.7 所示。 图 4.6 图书销售对话框 - 15 开始 结束 输入书名或条 形码 判断输入是否正确 且 FindBook()函数 返回值为 1 添加该信息到关联 表并写入数据库 是 否 图 4.7 RSaleBookDlg:OnOK()方法的流程图 4.3.2 实现步骤 (1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_SALEBOOK。在 IDD_YGGONGZITJ 对话框资源中单击鼠标右键,执行弹出快捷菜单的 “Properties” 菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选项卡,更改其“ Caption”文本框内容为 “图书销售。 ” (2)从 Controls 面板上向 Dialog 资源中添加相关控件,更改资源的属性,并为资 源设置相对应的变量,如表 3.2 所示: 表 4.2 图书销售添加 Dialog 资源属性设置 Member Variables ID Properties Type Member IDC_SBK_NAME 默认 文本 BookName IDC_SBK_BARCODE 默认 文本 BarCode IDC_SBK_PRICE 默认 数字 Price IDC_SBK_SALEPRICE 默认 数字 SalePrice - 16 IDC_SBK_DISCOUNT 默认 数字 Discount IDC_SBK_DATE 默认 日期/时间 SaleDate IDOK Caption 销售 IDCANCEL Caption 退出 4.3.3 代码分析 (1)为“销售”按钮添加代码,实现图书销售功能,代码如下: void RSaleBookDlg:OnOK() / TODO: Add extra validation here if(!m_bReadySale) m_bReadySale = FindBook(); else UpdateData(TRUE); CString 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(); (2)判断销售是否能够成功的函数是 RSaleBookDlg:FindBook(),其代码如下: - 17 bool RSaleBookDlg:FindBook() / TODO: Add your control notification handler code here UpdateData(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 BookInfo WHERE BarCode = %s and Stock 0, m_strBarCode); else AfxMessageBox(请输入书名或条码!); GetDlgItem(IDC_SBK_NAME)-SetFocus(); return false; CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp(); try pApp-m_pRecordset-Open(strSql.AllocSysString(), pApp-m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); if(pApp-m_pRecordset-adoEOF) - 18 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); 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_editDiscount.EnableWindow(m_dPrice = dPurchase); m_lDiscount = (m_dPrice = dPurchase) ? m_lDiscount :100; /售价小于进价时, 不允许打折 m_dSalePrice = m_dPrice * (double(m_lDiscount)/100); /计算折后价 UpdateData(FALSE); - 19 return true; 4.4 销售统计模块 4.4.1 实现目标 实现对已销售的图书进行统计的功能,销售统计对话框如图 4.8 所示。 图 4.8 销售统计对话框 4.4.2 设计步骤 (1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_REPORT。在 IDD_REPORT 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命 令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选 项卡,更改其“Caption”文本框内容为“销售统计 ”。 (2)从 Controls 面板上向 Dialog 资源中添加相应控件,更改资源的属性,并为资 源设置相应的变量,如表 4.3 所示: 表 4.3 用户信息管理 Dialog 资源属性设置 Member Variables ID Properties Type Member IDC_RADIO2 默认 单选框 IDC_RADIO3 默认 单选框 IDC_RADIO4 默认 单选框 IDC_RADIO5 默认 单选框 IDC_RADIO6 默认 单选框 IDC_STATIC 默认 单选框 IDOK Caption 确定 - 20 IDCANCEL Caption 取消 4.4.3 代码分析 查询函数为 CRBookSaleView:OnSaleReport(),代码如下: void CRBookSaleView:OnSaleReport() / TODO: Add your command handler code here RReportDlg dlg; dlg.m_iReportType = m_iReportType ; if(IDOK = dlg.DoModal() m_iReportType = dlg.m_iReportType; /设置销售报表标题 /前 2 个标题类型为用户模式和书店管理模式,故此处加 2 int 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:/全部销售记录统计 - 21 iTitleType = SALE_REPORT_TITLE; break; default: break; SetTitle(iTitleType); ShowReport(); 4.5 查询库存模块 4.5.1 实现目标 实现对已销售的图书进行统计的功能,销售统计对话框如图 4.9 所示。 图 4.9 查询库存对话框 4.5.2 设计步骤 (1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_QUERY。在 IDD_QUERY 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命 令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选 项卡,更改其“Caption”文本框内容为“查询” 。 (2)从 Controls 面板上向 Dialog 资源中添加相应控件,更改资源的属性,并为资 源设置相应的变量,如表 4.4 所示: 表 4.4 库存查询 Dialog 资源属性设置 ID Properties Member Variables - 22 Type Member IDC_BOOK_CATEGORY 默认 组合框 IDC_BOOK_NAME 默认 文本 BookName IDC_BOOK_AUTHOR 默认 文本 Author IDC_BOOK_PUBLISHER 默认 文本 Publisher IDOK Caption 确定 IDCANCEL Caption 取消 4.5.3 代码分析 (1) “确定”按钮的函数为 RQueryDlg:OnOK(),代码如下: void RQueryDlg:OnOK() / TODO: Add extra validation here UpdateData(TRUE); /单独处理类型为全部的情况,0 表示选择类型为全部 m_ctrlCategory.GetLBText(m_ctrlCategory.GetCurSel(),m_strCategory); if(m_strCategory = _T(全部) m_strCategory = _T(); CDialog:OnOK(); (2)组合框根据图书类型查询的函数为 RQueryDlg:GetBookGategory(),代码如 下: void RQueryDlg:GetBookGategory() int num = 0; CString strSql; _variant_t var; m_ctrlCategory.ResetContent(); /清空组合框中原有数据 /生成 SQL 查询语句,在数据苦中查找图书类型 strSql.Format(SQL_SELECT_CATEGORYNAME); CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp(); - 23 try pApp-m_pRecordset-Open(strSql.AllocSysString(), pApp-m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); /遍历数据库中 BookCategory 表,获取全部图书类型 while(!(pApp-m_pRecordset-adoEOF) var = pApp-m_pRecordset-GetCollect(CategoryName); if(var.vt != NULL) m_ctrlCategory.AddString(LPCSTR)_bstr_t(var); pApp-m_pRecordset-MoveNext(); num+; m_ctrlCategory.AddString(全部); pApp-m_pRecordset-Close(); catch(_com_error * e) AfxMessageBox(e-ErrorMessage(); /设置当前选择类型为全部 m_ctrlCategory.SetCurSel(num); - 24 5 系统测试 进入 VC+6.0,打开工程 RBookSale.dsw,然后进入源程序,接着编译和运行即可 运行。下面将给出系统运行的过程。 (1)打开程序后,选择“使用书店身份登录” ,输入密码“111” ,进入主对话框, 如图 5.1。 图 5.1 主对话框 (2)在功能菜单下选择图书录入功能,添加一本新的图书信息,如图 5.2。 图 5.2 添加图书信息 (3)点击“返回”按钮后,系统会自动显示现有图书信息,如图 5.3。 - 25 图 5.3 系统自动显示现有图书信息 (4)在功能菜单下进入图书销售对话框,卖出一本C+教程 ,如图 5.4。点击 返回按钮后,系统会显示当前所有图书剩余库存信息,如图 5.4。 图 5.4 图书销售 (5)点击结束销售后,系统会自动显示当前所有图书的库存信息, C+教程的 库存量已减少一本,如图 5.5。 - 26 图 5.5 完成销售后的库存信息 (6)在功能菜单下进入销售统计对话框,查询全部销售清单,并给出已售出图书 总本数,如图 5.6。 图 5.6 查询所有图书销售清单 (7)在功能菜单下进入查询库存对话框,查询魅力何来这本书的库存信息, 如图 5.7。 - 27 图 5.7 查询图书库存信息 (8)再售出魅力何来2 本后,在功能菜单下进入售完图书列表功能,查询已 售完的图书的信息如图 5.8。 图 5.8 查询售完图书列表 (9)在出售图书时,若无对应图书信息或图书库存为零,将出售失败,并给出提 示信息,如图 5.9。 - 28 图 5.9 图书销售失败 - 29 6 操作手册 首先将 date 文件夹下的两个数据库文件附加到本地的 SQL 数据库中,然后进入 VC+6.0,打开工程 RBookSale.dsw,进入源程序后,接着编译和运行即可。 - 30 7 结论 7.1 系统功能 本系统为图书销售管理系统,主要实现图书录入、图书销售、销售统计、查询库 存等功能。该系统中采用图形用户界面,直观、清晰,方便用户操作。图书销售管理 系统可以完成书店的日常管理,迅速准确地对已售图书和剩余库存进行统计和汇总工 作,大大提高了书店的管理效率和准确性。 7.2 系统不足和改进 我在同学的帮助和老师的悉心指导下完成了该图书销售管理,但程序还是存在一 些不足之处。比如程序没有直接提供修改密码的功能,系统管理员密码保存在数据库 的 Pwd 表中,若要修改密码,可以到数据库中直接修改。由于时间仓促,没有优化设 计,还存在一些垃圾和重复代码,也没有进行全面的测试,需要进一步的改进。本系 统规模小,实现的功能简单,但稍加改动和完善,完全可以应用到普通书店的销售管 理中。 7.3 总结 本次论文完成的是图书销售管理系统,我基本完成了所要求的几个功能,包括图 书录入、图书销售、销售统计、查询库存等功能。通过本次课程设计,自己对 Visual C+6.0 的基本知识有了一个很好的巩固和学习,特别是 Visual C+6.0 中的 MFC,它 的功能是非常强大的,使用它制作图形界面很方便。而且自己还进一步熟悉了 SQL 数 据库的知识,包括建表、查询、修改等操作,以及学习了 Visual C+6.0 怎样连接数 据库。 开始写论文的时候,感觉到自己只有一些理论知识,无法动手来操作。通过认真的学习来解决 这一问题,这也提高了实际操作的能力。在编写程序的过程中,也发现自己还是存在着很多的缺点, 对 Visual C+6.0 和 MFC 的知识和使用不是很熟悉,操作数据库也不熟练,还要多加练习来达到熟 练的目的,以后还要努力学习锻炼自己。 - 31 参考文献 1 宋坤,李伟明 编著. Visual C+数据库系统开发案例精选.人民邮电出版社, 2006 2 郑莉,董渊 编著.C+语言程序设计(第三版).清华大学出版社,2003 3 胡哲源 编著. Visual C+ MFC 程序设计与剖析.清华大学出版社,2001 4 李强,贾云霞 编著. Visual C+项目开发实践. 北京:中国铁道出版社,2003 5求是科技 编著. Visual C+6.0 信息管理系统开发.人民邮电出版社,2001 6网冠科技 编著. Visual C+6.0 MFC 时尚编程百例.机械工业出版社,2004 7 软件工程概论 张海藩 清华大学出版社 8 实用软件工程基础 陈明 编著 清华大学出版社
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


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

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


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