vb书店管理系统设计和实现内容摘要:

书编号点击搜索按钮输入图书折扣和图书数量回车键点击下一本或结账退出。 // 根据图书编号进行搜索,如果存在,则显示图书详细信息void CBookSaleDialog::OnButtonSearch() { UpdateData(TRUE)。 if(m_strBookNo == ) { MessageBox(图书编号不能为空)。 return。 } CBookSet m_BookSet。 try{ (bookno = 39。 %s39。 ,m_strBookNo)。 (CRecordset::snapshot, NULL, CRecordset::none)。 if(() || ( == 0)) { ()。 AfxMessageBox(该编号的图书不存在,请重新输入编号!)。 ResetMembers()。 return。 } CString strTemp。 (%d,)。 m_strBookName =。 m_strPublisher =。 m_strAuthor =。 CString TempPrice。 (%.2f,)。 m_strPrice = TempPrice。 //。 ()。 UpdateData(FALSE)。 } catch(CDBException *e){ eReportError()。 }}// 计算销售值void CBookSaleDialog::OnOK() { UpdateData(TRUE)。 if(m_strNumber == ){ MessageBox(请输入销售图书数量)。 return。 } float TempFianalPrice。 TempFianalPrice = atoi(m_strNumber) * atof(m_strPrice) * atoi(m_strDisCount) / 100。 (%.2f,TempFianalPrice)。 UpdateData(FALSE)。 }// 下一本void CBookSaleDialog::OnButtonNext() { UpdateData(TRUE)。 if(m_strBookNo == ){ MessageBox(请输入要销售图书的编号)。 return。 } if(m_strNumber == ){ MessageBox(请输入要销售图书的数量)。 return。 } if(atoi(m_strNumber) =0){ MessageBox(销售图书数量不能少于一本)。 return。 } if(m_strDisCount == ){ MessageBox(请输入该书要打几折)。 return。 } // 获取当前时间 CTime t。 t = CTime::GetCurrentTime()。 CString time =。 CString year。 CString month。 CString day。 (%d,())。 (%d,())。 if(() 9) month = 0 + month。 (%d,())。 if(() 9) day = 0 + day。 time = year + month + day。 CBookSet m_BookSet。 CTempSaleSet m_TempSaleSet。 int TempNumber。 try{ (bookno = 39。 %s39。 ,m_strBookNo)。 (CRecordset::snapshot, NULL, CRecordset::none)。 if(!()){ TempNumber = atoi(m_strNumber)。 if(TempNumber 0){ AfxMessageBox(库存不足,请重新输入销售图书数量)。 return。 } ()。 = TempNumber。 ()。 ()。 Close()。 // 添加销售的图书到临时销售表 ()。 ()。 = m_strAuthor。 = m_strPublisher。 = m_strBookName。 = m_strBookNo。 = atoi(m_strNumber)。 = atoi(m_strDisCount)。 = atof(m_strFianalPrice)。 = atof(m_strPrice)。 = atol(time)。 ()。 ()。 Close()。 // 显示在销售列表中 ()。 ()。 int pos = ()。 CString TempNumber。 CString TempPrice。 CString TempDiscount。 CString TempSum。 (%d,)。 (%.2f,)。 (%d,)。 (%.2f,)。 (pos, )。 (pos,1,TempNumber)。 (pos,2,TempPrice)。 (pos,3,TempDiscount)。 (pos,4,TempSum)。 ()。 ResetMembers()。 } } catch(CDBException *e){ eReportError()。 return。 }}// 结账void CBookSaleDialog::OnButtonBill() { UpdateData()。 if(m_strBookNo != ) OnButtonNext()。 float m_Sum = 0。 CTempSaleSet m_TempSaleSet。 CBookSaleSet m_BookSaleSet。 try{ ()。 ()。 ()。 while(! ()){ //算出总销售额 m_Sum = m_Sum +。 // 添加进销售列表中 ()。 =。 =。 =。 =。 =。 =。 =。 =。 =。 ()。 // ()。 ()。 } ()。 Close()。 ()。 Close()。 } catch(CDBException *e){ eReportError()。 return。 } (%.2f,m_Sum)。 UpdateData(FALSE)。 }(3) 撤销功能。 流程:点击销售列表,点击撤销按钮即可完成。 void CBookSaleDialog::OnButtonCancel() { int i = ()。 CString BookName = (i, 0)。 int TempNumber = 0。 if(i 0){ AfxMessageBox(请选取要删除的销售记录!)。 return。 } // 从临时表中删除该销售记录 CTempSaleSet m_TempSaleSet。 (bookname = 39。 %s39。 ,BookName)。 (CRecordset::snapshot, NULL , CRecordset::none)。 if(!()){ TempNumber =。 ()。 } ()。 Close()。 // 恢复图书原先数量 CBookSet m_BookSet。 (bookname = 39。 %s39。 , BookName)。 (CRecordset::snapshot, NULL, CRecordset::none)。 if(!()){ ()。 = + TempNumber。 ()。 } ()。 Close()。 ListSale()。 }(四)图书入库模块1.图书入库模块IPO图输入:图书编号和图书数量处理:(1) 图书入库对话框启动。 (2) 等待用户输入图书的编号和数量,可以在此输入图书详细信息,但不是必需的。 (3) 将图书添加到图书信息表中输出:更新图书信息表2. 图书入库模块的实现根据图书入库模块的IPO图,通过定义CBookInputDialog类来实现该模块的主体功能。 (1) 相关的记录集类CBookSet。 (2) 新书录入。 处理过程:判断用户是否全部输入必填的图书信息,然后根据用户输入的图书编号查询图书信息表是否有重复编号,是则在原有图书信息基础上增加图书的数量;否则添加新的图书记录在图书信息表中。 // 添加图书到图书信息库中void CBookInputDialog::OnButtonSaveAndGoon() { UpdateData(TRUE)。 CTime t。 t = CTime::GetCurrentTime()。 CString time =。 CString year。 CString month。 CString day。 (%d,())。 (%d,())。 (%d,())。 time = year + + month + + day。 if(m_strBookNo == ){ MessageBox(请输入图书编号)。 return。 } if(m_strNumber == ){ MessageBox(请输入图书数量)。 return。 } CBookSet m_BookSet。 try{ if(()){ ()。 Close()。 } (bookno = 39。 %s39。 ,m_strBookNo)。 (CRecordset::snapshot, NULL, CRecordset::none)。 // 如果库中无此书,则增加 if(()){ ()。 = m_strBookNo。 = atoi(m_strNumber)。 = m_strBookName。 = m_strBookBn。 = m_strBookType。 = m_strPublisher。 = m_strAuthor。 = atof(m_strPrice)。 = time。 } else{ ()。 = + atoi(m_strNumber)。 = time。 } ()。 ()。 Close()。 } catch(CDBException *e){ eReportError()。 } OnButtonAdd()。 }(五)图书信息设置模块图书信息模块由图书的信息设置和图书的删除功能。 图书信息设置模块IPO图输入:图书编号处理:(1) 图书信息设置对话框启动。 (2) 根据图书编号搜索对应的图书,并显示其已填信息。 (。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。