数据库课程设计-网上图书销售系统数据库课程设计上报告.doc
《数据库课程设计-网上图书销售系统数据库课程设计上报告.doc》由会员分享,可在线阅读,更多相关《数据库课程设计-网上图书销售系统数据库课程设计上报告.doc(34页珍藏版)》请在咨信网上搜索。
数据库课程设计 网上图书销售系统数据库课程设计上报告.doc ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 数据库系统原理及其应用教程 课程设计报告 题目名称:网上图书销售系统 任课教师: 姓 名: 学 号: 2010年12月30日 目 录 摘 要 3 1 引言 3 2 需求分析 3 2.1 功能需求 3 2。2 数据描述 5 2。3 数据库描述 6 3 概要设计 6 3.1 系统运行环境 6 3.2 系统功能模块设计 7 3.3 系统处理流程 7 3。4 接口设计 8 4 详细设计 8 4。1 登录模块及主界面 9 4.2 图书录入模块 10 4.3 图书销售模块 15 4.4 销售统计模块 20 4.5 查询库存模块 22 5 系统测试 25 6 操作手册 29 7 结论 29 7。1 系统功能 29 7.2 系统不足和改进 29 7.3 总结 30 参考文献 30 评 语 31 摘 要 随着计算机的普及书店规模的不断扩大,使图书销售管理成为书店管理中的一个重要课题。通过图书销售管理系统可以解决书店管理中遇到的各种问题。本系统分析了市场需求和实际需要,利用VC++连接SQL数据库的方式,主要实现了书店的网上图书销售管理,该系统具有处理图书录入、图书销售、销售统计、查询库存等功能. 关键词:图书;销售;库存 1 引言 传统的图书销售管理方法,都是通过人工统计和计算的管理方式进行的。这样的管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及,打破了书店管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易产生的问题,使管理员能够有序的、全面的对图书销售和库存进行管理。 网上图书销售系统可以完成书店的日常管理,如图书录入、图书销售、销售统计、查询库存等功能,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高了书店的管理效率和准确性. 2 需求分析 2.1 功能需求 2。1.1待开发软件的功能需求 本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动化管理,通过本系统可以达到以下目标: 1. 图书录入,包括图书的基本信息,如分类、进价、售价、作者等. 2. 图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。 3. 销售统计,包括按图书类型、书名、作者、出版社等进行统计。 4. 查询库存,对指定的某本图书剩余库存量进行查询. 5. 售完图书查询,对已售完图书进行查询。 2。1.2待开发软件的功能 按照用户需求,要满足以上功能,我设计出了图书销售管理系统的系统功能图,如图2.1所示.图书销售管理系统 图书录入 查询库存 图书销售 销售统计 售完图书查询 图2.1 图书销售管理系统的系统功能图 综合系统要求,对图2。1所示的系统功能解释如下: 图书录入,包括图书的基本信息,如分类、进价、售价、作者等。 图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改. 销售统计,包括按图书类型、书名、作者、出版社等进行统计。 查询库存,对指定的某本图书剩余库存量进行查询。 售完图书查询,对已售完图书进行查询。 通过以上分析,可以得到仓库管理系统的数据流图,如图2。2所示. 管理员 图书信息 处理 图书管理 反馈信息 图书信息 反馈信息 记录数据 数据库 图2.2图书管理系统的数据流图 2.2 数据描述 2。2。1数据库概要说明 数据库中包括管理员信息表、图书基本信息表、图书类型表、图书销售记录表等4个数据表. 图2.3所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数据表.可以清晰地反应数据库信息。 图2。3 数据表结构图 2。2.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 图书类型编号 CategoryName nvarchar 8 图书类型名称 表2。4 BookSale(图书销售记录表) 字段名 数据类型 长度 描述 ID int 4 销售记录编号 BookID int 4 图书编号 SalePrice float 8 实际售价 SaleDate smalldatetime 4 销售日期 2.3 数据库描述 本软件采用SQL数据库. 3 概要设计 本系统是根据书店的实际需求而开发的,完全能够帮助书店实现高效、准确的图书销售自动化管理。在分析阶段,我们已经提出了系统的结构和数据字典。本节我们将对系统的使用环境作简要介绍,并对该系统作概要设计. 3。1 系统运行环境 PC机 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)。 (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):由相应事件驱动消息激活,完成查询库存功能,之后进入消息循环状态。 (5)售完图书查询模块(M6):由相应事件驱动消息激活,完成售完图书查询功能,之后进入消息循环状态。 4 详细设计 该系统采用VC++6。0中的MFC连接SQL数据库的方式,使用图形用户界面,主要实现图书录入、图书销售等功能。下面具体对各模块进行介绍。 4。1 登录模块及主界面 在登录界面(如图4.1所示)中输入用户名和密码,登录成功后进入主界面。登陆框流程图如图4。2所示,系统主界面如图4.3所示,单击某个按钮就能弹出某个功能的界面。 图4.1 系统登录界面 输入用户名 开始 验证密码是否正确 输入密码 登录成功进入主界面 结束 是 否 选择帐号类型 图4.2登录模块流程图 4.2 图书录入模块 4.2。1 实现目标 添加图书信息,图书录入对话框的设计如图4.4所示。“保存”按钮对应的方法为RAddBookDlg::OnSave(),流程图如图4.5所示. 图4。4 图书录入对话框 开始 结束 输入图书基本信息 判断输入是否正确且完整 添加该信息到关联表并写入数据库 是 否 图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资源属性设置 ID Properties Member Variables Type Member IDC_BK_CATEGORY 默认 文本 CategoryName IDC_BK_NAME 默认 文本 BookName IDC_BK_AUTHOR 默认 文本 Author IDC_BK_PUBLISHER 默认 文本 Publisher IDC_BK_DATE 默认 日期/时间 PublishDate 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()) { 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(); return false; } 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 〈= 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(”图书数量应为正值!”); GetDlgItem(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 + ”\r\n” + // m_strBookCategory + "\r\n” + // m_strAuthor + ”\r\n” + // m_strPublisher + ”\r\n" + // m_strBarcode ); return true; } 4。3 图书销售模块 4。3。1 实现目标 实现图书销售功能,图书销售对话框设计如图4.6所示。“销售”按钮对应的方法为RSaleBookDlg::OnOK(),流程图如图4。7所示. 图4.6 图书销售对话框 开始 结束 输入书名或条形码 判断输入是否正确且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资源属性设置 ID Properties Member Variables Type Member IDC_SBK_NAME 默认 文本 BookName IDC_SBK_BARCODE 默认 文本 BarCode IDC_SBK_PRICE 默认 数字 Price IDC_SBK_SALEPRICE 默认 数字 SalePrice 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 书名:%s\n 价格:%。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(),其代码如下: 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() adLockOptimistic, adCmdText); 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(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); 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资源属性设置 ID Properties Member Variables Type Member IDC_RADIO2 默认 单选框 IDC_RADIO3 默认 单选框 IDC_RADIO4 默认 单选框 IDC_RADIO5 默认 单选框 IDC_RADIO6 默认 单选框 IDC_STATIC 默认 单选框 IDOK Caption 确定 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://全部销售记录统计 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 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(); 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); } 5 系统测试 进入VC++6。0,打开工程RBookSale.dsw,然后进入源程序,接着编译和运行即可运行。下面将给出系统运行的过程. (1)打开程序后,选择“使用书店身份登录”,输入密码“111”,进入主对话框,如图5。1. 图5.1 主对话框 (2)在功能菜单下选择图书录入功能,添加一本新的图书信息,如图5.2。 图5.2 添加图书信息 (3)点击“返回"按钮后,系统会自动显示现有图书信息,如图5.3。 图5。3 系统自动显示现有图书信息 (4)在功能菜单下进入图书销售对话框,卖出一本《C++教程》,如图5。4。点击返回按钮后,系统会显示当前所有图书剩余库存信息,如图5。4. 图5。4 图书销售 (5)点击结束销售后,系统会自动显示当前所有图书的库存信息,《C++教程》的库存量已减少一本,如图5.5。 图5。5 完成销售后的库存信息 (6)在功能菜单下进入销售统计对话框,查询全部销售清单,并给出已售出图书总本数,如图5。6。 图5.6 查询所有图书销售清单 (7)在功能菜单下进入查询库存对话框,查询《魅力何来》这本书的库存信息,如图5。7。 图5。7 查询图书库存信息 (8)再售出《魅力何来》2本后,在功能菜单下进入售完图书列表功能,查询已售完的图书的信息如图5.8。 图5。8 查询售完图书列表 (9)在出售图书时,若无对应图书信息或图书库存为零,将出售失败,并给出提示信息,如图5。9。 图5。9图书销售失败 6 操作手册 首先将date文件夹下的两个数据库文件附加到本地的SQL数据库中,然后进入VC++6。0,打开工程RBookSale.dsw,进入源程序后,接着编译和运行即可。 7 结论 7。1 系统功能 本系统为图书销售管理系统,主要实现图书录入、图书销售、销售统计、查询库存等功能。该系统中采用图形用户界面,直观、清晰,方便用户操作。图书销售管理系统可以完成书店的日常管理,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高了书店的管理效率和准确性。 7。2 系统不足和改进 我在同学的帮助和老师的悉心指导下完成了该图书销售管理,但程序还是存在一些不足之处。比如程序没有直接提供修改密码的功能,系统管理员密码保存在数据库的Pwd表中,若要修改密码,可以到数据库中直接修改。由于时间仓促,没有优化设计,还存在一些垃圾和重复代码,也没有进行全面的测试,需要进一步的改进。本系统规模小,实现的功能简单,但稍加改动和完善,完全可以应用到普通书店的销售管理中。 7。3 总结 本次课程设计完成的是图书销售管理系统,我基本完成了所要求的几个功能,包括图书录入、图书销售、销售统计、查询库存等功能。通过本次课程设计,自己对Visual C++6。0的基本知识有了一个很好的巩固和学习,特别是Visual C++6。0中的MFC,它的功能是非常强大的,使用它制作图形界面很方便。而且自己还进一步熟悉了SQL数据库的知识,包括建表、查询、修改等操作,以及学习了Visual C++6.0怎样连接数据库。 开始做这个课- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 网上 图书 销售 系统 上报 doc
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文