版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*交通大学信息科学与工程学院程序设计实训I综合设计报告图书销售系统学号:631206050*姓名:*专业:计算机科学与技术(软件开发)班级:软件2班实验室(中心):专业机房指导老师:*完成时间:2013年12月18日目 录一、任务书.4二、需求分析.5三、系统设计.6四、编程与实现.14五、测试内容与结果.56六、存在的问题与不足及对策.67七、对这门课的建议.68八、参考文献.68教师评阅意见:教师评阅意见: 签名: 年 月 日成绩:以下为设计报告正文内容*交通大学信息科学与工程学院综合设计任务书课 程程序设计实训I班级软件二班指导教师*题 目图书销售系统完成时间2013年12月18日主要内
2、容图书销售系统应主要包括以下一些内容:1.用户信息管理;2.图书信息管理;3.客户信息管理;4.销售信息管理;5.统计信息;设计报告要求设计报告要求格式规范、内容完整。主要包括:需求分析;系统设计;编程实现:本部分主要写实现的过程或步骤,以及关键代码(必须附上自己添加的源代码并加上注释)测试与分析;存在的问题与不足及对策;对这门课的建议;参考文献等说明:设计报告要求打印上交。版面要求题目用黑体三号,段后距18磅(或1行),居中对齐;标题用黑体四号,段前、段后距6磅(或0.3行);正文用小四号宋体,行距为1.25倍行距;标题按“一”、“”、“1”、“”顺序编号。备注原则上一人一题,部分题目允许多
3、人一题,分工协作,独立完成。(多人协作完成,要注明分工情况)每位同学单独演示自己的程序并现场回答提问。成绩评定详见评分标准说明二、需求分析图书销售管理系统是该系统软件的重要内容之一,该系统为书店的库存书籍的动态调整提供了决策依据,有利于及时对有大量需求的新书进行订货入库。它的主要功能包括:图书的管理,图书销售管理,图书退货管理和销售统计,退货统计以及进货商信息管理,顾客信息管理,用户信息管理等。系统管理,帮助等功能。添加图书信息修改图书信息查询图书信息删除图书信息2.销售信息管理添加销售信息修改销售信息查询销售信息删除销售信息3.退货信息管理添加退货信息修改退货信息查询退货信息删除退货信息4.
4、统计信息管理销售信息统计退货信息统计图书库存信息统计5.顾客信息管理添加顾客信息修改顾客信息查询顾客信息删除顾客信息6.供应商信息管理添加供应商信息修改供应商信息查询供应商信息删除供应商信息7.用户信息管理添加用户信息修改用户密码退出系统8.系统帮助图书销售系统简介三、系统设计(一)系统结构1.系统总体结构图书销售系统图书销售系统用户登录用户登录用户信息管理供应商信息管理顾客信息管理统计信息管理退货信息管理销售信息管理图书信息管理系统帮助用户信息管理供应商信息管理顾客信息管理统计信息管理退货信息管理销售信息管理图书信息管理系统帮助2.图书信息管理结构图图书信息管理图书信息管理查询图书信息删除图
5、书信息修改图书信息添加图书信息查询图书信息删除图书信息修改图书信息添加图书信息按条件查询图书查询所有按条件查询图书查询所有图书3.销售信息管理结构图销售信息管理销售信息管理查询销售信息删除销售信息修改销售信息添加销售信息查询销售信息删除销售信息修改销售信息添加销售信息4.退货信息管理退货信息管理退货信息管理查询退货信息删除退货信息修改退货信息添加退货信息查询退货信息删除退货信息修改退货信息添加退货信息5.统计信息管理统计信息管理统计信息管理退货信息统计销售信息统计库存信息统计退货信息统计销售信息统计库存信息统计6.顾客信息管理顾客信息管理顾客信息管理查询顾客信息删除顾客信息修改顾客信息添加顾客
6、信息查询顾客信息删除顾客信息修改顾客信息添加顾客信息7.供应商信息管理供应商信息管理供应商信息管理删除供应商信息查询供应商信息添加供应商信息修改供应商信息删除供应商信息查询供应商信息添加供应商信息修改供应商信息8.用户信息管理用户信息管理用户信息管理退出系统修改用户密码添加用户信息退出系统修改用户密码添加用户信息(二)数据库设计1.数据库结构设计(1)图书信息E-R图书 名图书编号书 名图书编号作 者价 格图书信息作 者价 格图书信息出版社数 量出版社数 量(2)销售信息E-R图图书编号图书编号书 名销售代码书 名销售代码销售价格顾客姓名销售信息销售价格顾客姓名销售信息销售日期销售数量销售日期
7、销售数量销售总额销售总额(3)退货信息E-R图书 名图书编号书 名图书编号备 注退货代码备 注退货代码退货价格顾客姓名销售信息退货价格顾客姓名销售信息退货日期退货数量退货日期退货数量退货总额退货总额(4)顾客信息E-R图顾客编号顾客编号顾客姓名身份证号顾客姓名身份证号年 龄性 别销售信息年 龄性 别销售信息注册日期联系方式注册日期联系方式(5)供应商信息E-R图公司名称供应商编号公司名称供应商编号公司地址联系人图书信息公司地址联系人图书信息联系方式备 注联系方式备 注(6)用户信息E-R图用户密码用户名用户信息用户密码用户名用户信息2.数据库关系模式本系统的E-R图可转化为如下关系模式:图书(
8、图书编号、书名、作者、出版社、价格、数量)顾客(顾客编号、姓名、性别、年龄、身份证号、联系方式、注册日期)供应商(供应商编号、公司名称、公司地址、联系人、联系方式、备注信息)图书销售(销售代码、图书编号、书名、顾客姓名、销售价格、销售数量、销售总额、销售日期)图书退货(退货代码、图书编号、书名、退货价格、退货数量、销退货总额、退货日期、顾客姓名、备注信息)用户(账号、密码)库存(图书编号、书名、数量)四、编程与实现(一)创建单文档应用程序 BSMS1.用MFC AppWizard 创建一个单文档应用程序 BSMS,在向导步骤中将CBSMSView的基类由CView改为CListView。2.在
9、CBSMSView:PreCreateWindow函数添加下列代码,用来设置列表视图内嵌列表控件的风格:BOOL CBSMSView:PreCreateWindow(CREATESTRUCT& cs)cs.style |= LVS_REPORT;/报表风格return CListView:PreCreateWindow(cs);(二)图书信息管理实现1.在BSMS中添加图书信息表的类CBookadd。2.创建图书信息添加对话框。为对话框类CAddbook添加背景图片,为CAddbook类添加成员函数OnPaint,并添加下列代码:void CAddbook:OnPaint()CPaintDC
10、dc(this); / device context for painting/ TODO: 在此处添加消息处理程序代码 CDC memdc; memdc.CreateCompatibleDC(&dc);/创建兼容YDC CBitmap bkg; bkg.LoadBitmap(IDB_BITMAP11);/载入位图 BITMAP bkginfo; bkg.GetBitmap(&bkginfo);/获取位图信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/获取对话框信息dc.SetStretchBltMode(COLORO
11、NCOLOR); dc.StretchBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&memdc,0,0,bkginfo.bmWidth,bkginfo.bmHeight,SRCCOPY);/ 不为绘图消息调用CDialogEx:OnPaint()3.创建图书信息修改对话框。为对话框类CChangebook添加背景图片,为CChangebook类添加成员函数OnPaint,并添加下列代码:void Changebook:OnPaint()CPaintDC dc(this); / device context for painting/ TO
12、DO: 在此处添加消息处理程序代码 CDC memdc; memdc.CreateCompatibleDC(&dc);/创建兼容YDC CBitmap bkg; bkg.LoadBitmap(IDB_BITMAP4);/载入位图 BITMAP bkginfo; bkg.GetBitmap(&bkginfo);/获取位图信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/获取对话框信息dc.SetStretchBltMode(COLORONCOLOR); dc.StretchBlt(0,0,rect.right-rect.l
13、eft,rect.bottom-rect.top,&memdc,0,0,bkginfo.bmWidth,bkginfo.bmHeight,SRCCOPY);/ 不为绘图消息调用CDialogEx:OnPaint()4.实现图书添加、修改、查询、删除功能(1)在CBSMSView类添加成员函数DeleteAllColumn(),用来删除列表视图的标题头,以便能在创建标题头显示不同的信息:void CBSMSView:DeleteAllColumn(void)CListCtrl& m_ListCtrl = GetListCtrl();int nCount =0;CHeaderCtrl* pHead
14、erCtrl = m_ListCtrl.GetHeaderCtrl();if(pHeaderCtrl!=NULL)nCount = pHeaderCtrl-GetItemCount();for(int i=0;inCount;i+)m_ListCtrl.DeleteColumn(0);(2) 在CBSMSView类添加成员函数DispBookInfo,用来显示图书信息。void CBSMSView:DispBookInfo(CString strFilter)DeleteAllColumn();CListCtrl& m_ListCtrl = GetListCtrl();CString strH
15、eader=_T(图书编号),_T(书名),_T(作者),_T(价格),_T(数量),_T(出版社);for(int ncol=0;ncolsizeof(strHeader)/sizeof(CString);ncol+)m_ListCtrl.InsertColumn(ncol,strHeaderncol,LVCFMT_LEFT,100);m_ListCtrl.DeleteAllItems();/删除所有的列表项CBookadd bSet;bSet.m_strFilter = strFilter;bSet.m_strSort = bookno;bSet.Open();int nitem = 0;
16、CString str;while(!bSet.IsEOF()m_ListCtrl.InsertItem(nitem,bSet.m_bookno);m_ListCtrl.SetItemText(nitem,1,bSet.m_bookname);m_ListCtrl.SetItemText(nitem,2,bSet.m_bookauthor);str.Format(_T(%4.2f),bSet.m_bookprice);m_ListCtrl.SetItemText(nitem,3,str);str.Format(_T(%8d),bSet.m_booksum);m_ListCtrl.SetItem
17、Text(nitem,4,str);m_ListCtrl.SetItemText(nitem,5,bSet.m_bookpublisher);nitem+;bSet.MoveNext();bSet.Close();(3)为CBSMSView类添加一个成员变量m_strFilter,类型为CString。(4)用MFC ClassWizard在CBSMSView类中映射菜单ID_ADDBOOK的COMMAND消息,并添加下列代码:void CBSMSView:OnAddbook()/ TODO: 在此添加命令处理程序代码CAddbook dlg;CBookadd bSet;if(dlg.DoMo
18、dal()!=IDOK) return;bSet.Open();bSet.AddNew();/在表的末尾增加新记录bSet.SetFieldNull(&(bSet.m_bookno),FALSE);/设定m_Bookadd_bookno不能为空bSet.m_bookno = dlg.m_strbookid;bSet.m_bookname = dlg.m_strbookname; bSet.m_bookauthor = dlg.m_strauthor;bSet.m_bookprice = dlg.m_dbookprice;bSet.m_bookpublisher = dlg.m_strpubli
19、sher; bSet.m_booksum = dlg.m_bookquantity;/输入新的字段值bSet.Update(); /将新纪录存入数据库bSet.Requery();/刷新记录集,这在快照集方式下是必须的bSet.Close();MessageBox(_T(图书信息添加成功!),_T(特别提示),MB_OK|MB_ICONINFORMATION);m_strFilter.Format(_T(bookno = %s),dlg.m_strbookid);DispBookInfo(m_strFilter);(5)在CBSMSView类添加成员函数DeleteAllColumn(),用来
20、获取当前选择的列表项索引,其代码如下:int CBSMSView:GetListCtrlCurSel(void)CListCtrl& m_ListCtrl = GetListCtrl();POSITION pos;pos = m_ListCtrl.GetFirstSelectedItemPosition();if(pos=NULL) MessageBox(_T(您还没有选中列表项,请先选中列表项!);return -1; return m_ListCtrl.GetNextSelectedItem(pos);(6)用MFC ClassWizard在CBSMSView类中映射菜单ID_CHANGE
21、BOOK的COMMAND消息,并添加下列代码:void CBSMSView:OnChangebook()/ TODO: 在此添加命令处理程序代码CChangebook1 dlg1;if(dlg1.DoModal()=IDOK) CBookadd bSet; CChangebook2 dlg2; UpdateData(); dlg1.m_strbookid.TrimLeft();if(dlg1.m_strbookid.IsEmpty() MessageBox(_T(请输入图书编号!); OnChangebook();return; bSet.m_strFilter.Format(_T(bookn
22、o = %s),dlg1.m_strbookid); bSet.m_strSort = bookno;if(bSet.IsOpen() bSet.Close(); bSet.Open();if(bSet.m_bookno.IsEmpty() MessageBox(_T(要修改的图书信息不存在!);OnChangebook();return; else dlg2.m_strauthor = bSet.m_bookauthor; dlg2.m_strbookid = bSet.m_bookno; dlg2.m_strbookname = bSet.m_bookname; dlg2.m_strboo
23、kno = bSet.m_booksum; dlg2.m_strprice = bSet.m_bookprice; dlg2.m_strpublisher = bSet.m_bookpublisher;if(dlg2.DoModal()=IDOK) bSet.Edit(); bSet.m_bookauthor = dlg2.m_strauthor; bSet.m_bookno = dlg2.m_strbookid; bSet.m_bookname = dlg2.m_strbookname; bSet.m_booksum = dlg2.m_strbookno; bSet.m_bookprice
24、= dlg2.m_strprice; bSet.m_bookpublisher = dlg2.m_strpublisher; bSet.Update(); UpdateData(FALSE); MessageBox(_T(图书信息修改成功!);m_strFilter.Format(_T(bookno = %s),dlg2.m_strbookid); DispBookInfo(m_strFilter); bSet.Close(); (7)用MFC ClassWizard在CBSMSView类中映射菜单ID_CONDITIONSEEKBOOK的COMMAND消息,并添加下列代码:void CBSM
25、SView:OnConditionseekbook()/ TODO: 在此添加命令处理程序代码CCondtionseekbook dlg;CBookadd bSet;int a=1,b=2,c=4,d=8,n;if(dlg.DoModal()=IDOK) dlg.m_strbookid.TrimLeft();dlg.m_strbookname.TrimLeft();dlg.m_strauthor.TrimLeft();dlg.m_strpublisher.TrimLeft();if(dlg.m_strbookid.IsEmpty()a=0;if(dlg.m_strbookname.IsEmpt
26、y()b=0;if(dlg.m_strauthor.IsEmpty()c=0;if(dlg.m_strpublisher.IsEmpty()d=0;n=a+b+c+d;switch(n)case 0:MessageBox(_T(请输入要查询的条件!); OnConditionseekbook();return;case 1:bSet.m_strFilter.Format(_T(bookno = %s),dlg.m_strbookid); bSet.m_strSort = bookno;break;case 2:bSet.m_strFilter.Format(_T(bookname = %s),
27、dlg.m_strbookname); bSet.m_strSort = bookname;break;case 3:bSet.m_strFilter.Format(_T(bookno = %s AND bookname = %s),dlg.m_strbookid,dlg.m_strbookname); bSet.m_strSort = bookno,bookname;break;case 4:bSet.m_strFilter.Format(_T(bookauthor = %s),dlg.m_strauthor); bSet.m_strSort = bookauthor;break;case
28、5:bSet.m_strFilter.Format(_T(bookno = %s AND bookauthor = %s),dlg.m_strbookid,dlg.m_strauthor); bSet.m_strSort = bookno,bookauthor;break;case 6:bSet.m_strFilter.Format(_T(bookname = %s AND bookauthor = %s),dlg.m_strbookname,dlg.m_strauthor); bSet.m_strSort = bookname,bookauthor;break;case 7:bSet.m_s
29、trFilter.Format(_T(bookno = %s AND bookname = %s AND bookauthor = %s),dlg.m_strbookid,dlg.m_strbookname,dlg.m_strauthor); bSet.m_strSort = bookno,bookname,bookauthor;break;case 8:bSet.m_strFilter.Format(_T(bookpublisher = %s),dlg.m_strpublisher); bSet.m_strSort = bookpublisher;break;case 9:bSet.m_st
30、rFilter.Format(_T(bookno = %s AND bookpublisher = %s),dlg.m_strbookid,dlg.m_strpublisher); bSet.m_strSort = bookno,bookpublisher;break;case 10:bSet.m_strFilter.Format(_T(bookname = %s AND bookpublisher = %s),dlg.m_strbookname,dlg.m_strpublisher); bSet.m_strSort = bookname,bookpublisher;break;case 11
31、:bSet.m_strFilter.Format(_T(bookno = %s AND bookname = %s AND bookpublisher = %s),dlg.m_strbookid,dlg.m_strbookname,dlg.m_strpublisher); bSet.m_strSort = bookno,bookname,bookpublisher;break;case 12:bSet.m_strFilter.Format(_T(bookauthor = %s AND bookpublisher = %s),dlg.m_strauthor,dlg.m_strpublisher)
32、; bSet.m_strSort = bookauthor,bookpublisher;break;case 13:bSet.m_strFilter.Format(_T(bookno = %s AND bookauthor = %s AND bookpublisher = %s),dlg.m_strbookid,dlg.m_strauthor,dlg.m_strpublisher); bSet.m_strSort = bookno,bookauthor,bookpublisher;break;case 14:bSet.m_strFilter.Format(_T(bookname = %s AN
33、D bookauthor = %s AND bookpublisher = %s),dlg.m_strbookname,dlg.m_strauthor,dlg.m_strpublisher); bSet.m_strSort = bookname,bookauthor,bookpublisher;break;case 15:bSet.m_strFilter.Format(_T(bookno = %s AND bookname = %s AND bookauthor = %s AND bookpublisher = %s),dlg.m_strbookid,dlg.m_strbookname,dlg
34、.m_strauthor,dlg.m_strpublisher); bSet.m_strSort = bookno,bookname,bookauthor,bookpublisher;break;if(bSet.IsOpen() bSet.Close(); bSet.Open();if(bSet.m_bookno.IsEmpty()&bSet.m_bookname.IsEmpty()&bSet.m_bookauthor.IsEmpty()&bSet.m_bookpublisher.IsEmpty() MessageBox(_T(要查询的图书信息不存在!);OnConditionseekbook
35、();return; else DispBookInfo(bSet.m_strFilter);bSet.Close();(8)用MFC ClassWizard在CBSMSView类中映射菜单D_SEEKALLBOOK的COMMAND消息,并添加下列代码:void CBSMSView:OnSeekallbook()/ TODO: 在此添加命令处理程序代码DispBookInfo(_T();(9)用MFC ClassWizard在CBSMSView类中映射菜单ID_DELETEBOOK的COMMAND消息,并添加下列代码:void CBSMSView:OnDeletebook()/ TODO: 在
36、此添加命令处理程序代码int nitem = GetListCtrlCurSel();if(nitem0) return;CListCtrl& m_ListCtrl = GetListCtrl();CString stritem,str;stritem = m_ListCtrl.GetItemText(nitem,1);str.Format(_T(确实要删除书名为%s 的列表项(记录)吗?),stritem);if(IDOK != MessageBox(str,_T(确认删除),MB_ICONQUESTION|MB_OKCANCEL)return;CString strbookid = m_L
37、istCtrl.GetItemText(nitem,0);CBookadd iSet;iSet.m_strFilter.Format(_T(bookno = %s),strbookid);iSet.Open();if(!iSet.IsEOF() CRecordsetStatus status;iSet.GetStatus(status);iSet.Delete();if(status.m_lCurrentRecord=0)iSet.MoveNext();elseiSet.MoveFirst();if(iSet.IsOpen()iSet.Close();MessageBox(_T(图书信息删除成
38、功!);DispBookInfo(_T();(三)顾客信息管理实现1.在BSMS中添加图书信息表的类CCustomer。2.创建顾客信息添加对话框。为对话框类CAddcustomer添加背景图片,为CAddcustomer类添加成员函数OnPaint,并添加下列代码:void CAddcustomer:OnPaint()CPaintDC dc(this); / device context for painting/ TODO: 在此处添加消息处理程序代码 CDC memdc; memdc.CreateCompatibleDC(&dc);/创建兼容YDCCBitmap bkg; bkg.Loa
39、dBitmap(IDB_BITMAP15);/载入位图 BITMAP bkginfo; bkg.GetBitmap(&bkginfo);/获取位图信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/获取对话框信息dc.SetStretchBltMode(COLORONCOLOR); dc.StretchBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&memdc,0,0,bkginfo.bmWidth,bkginfo.bmHeight,SRCCOPY);/ 不为绘图消息调
40、用CDialogEx:OnPaint()3. 创建顾客信息修改对话框。为对话框类CChangecustomer添加背景图片,为CChangecustomer类添加成员函数OnPaint,并添加下列代码:voidCChangecustomer:OnPaint()CPaintDC dc(this); / device context for painting/ TODO: 在此处添加消息处理程序代码 CDC memdc; memdc.CreateCompatibleDC(&dc);/创建兼容YDC CBitmap bkg; bkg.LoadBitmap(IDB_BITMAP15);/载入位图 BI
41、TMAP bkginfo; bkg.GetBitmap(&bkginfo);/获取位图信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/获取对话框信息dc.SetStretchBltMode(COLORONCOLOR); dc.StretchBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&memdc,0,0,bkginfo.bmWidth,bkginfo.bmHeight,SRCCOPY);/ 不为绘图消息调用CDialogEx:OnPaint()4.实现顾客信息添加
42、、修改、查询、删除功能(1)在CBSMSView类添加成员函数DispCustomerInfo,用来显示顾客信息。void CBSMSView:DispCustomerInfo(CString strFilter)DeleteAllColumn();CListCtrl& m_ListCtrl = GetListCtrl();CString strHeader=_T(顾客编号),_T(姓名),_T(性别),_T(年龄),_T(身份证号码),_T(联系方式),_T(注册日期);for(int ncol=0;ncolsizeof(strHeader)/sizeof(CString);ncol+)m_
43、ListCtrl.InsertColumn(ncol,strHeaderncol,LVCFMT_LEFT,100);m_ListCtrl.DeleteAllItems();/删除所有的列表项CCustomer cSet;cSet.m_strFilter = strFilter;cSet.m_strSort = no;cSet.Open();int nitem = 0;CString str;while(!cSet.IsEOF()m_ListCtrl.InsertItem(nitem,cSet.m_no);m_ListCtrl.SetItemText(nitem,1,cSet.m_name);m
44、_ListCtrl.SetItemText(nitem,2,cSet.m_sex);str.Format(_T(%3d),cSet.m_age);m_ListCtrl.SetItemText(nitem,3,str);m_ListCtrl.SetItemText(nitem,4,cSet.m_id);m_ListCtrl.SetItemText(nitem,5,cSet.m_phone);m_ListCtrl.SetItemText(nitem,6,cSet.m_regdate.Format(%Y-%m-%d);nitem+;cSet.MoveNext();cSet.Close();(2)用M
45、FC ClassWizard在CBSMSView类中映射菜单ID_ADDCUSTOMER的COMMAND消息,并添加下列代码:void CBSMSView:OnAddcustomer()/ TODO: 在此添加命令处理程序代码 CAddcustomer dlg;CCustomer cSet;if(dlg.DoModal()!=IDOK) return;cSet.Open();cSet.AddNew();/在表的末尾增加新记录cSet.SetFieldNull(&(cSet.m_no),FALSE);/设定m_no不能为空cSet.m_no = dlg.m_strcustomerno;cSet.
46、m_name = dlg.m_strcustomername; cSet.m_age = dlg.m_lage;cSet.m_id = dlg.m_strcustomerid;cSet.m_phone = dlg.m_strcustomerphone; cSet.m_regdate = dlg.m_regdate;/输入字段值if(dlg.m_bMale)cSet.m_sex = 男D;else cSet.m_sex = 女?;cSet.Update(); /将新纪录存入数据库cSet.Requery();/刷新记录集,这在快照集方式下是必须的cSet.Close();MessageBox(_
47、T(顾客信息添加成功!),_T(特别提示),MB_OK|MB_ICONINFORMATION);m_strFilter.Format(_T(no = %s),dlg.m_strcustomerno);DispCustomerInfo(m_strFilter);(3)用MFC ClassWizard在CBSMSView类中映射菜单ID_CHANGECUSTOMER的COMMAND消息,并添加下列代码:void CBSMSView:OnChangecustomer()/ TODO: 在此添加命令处理程序代码int nitem = GetListCtrlCurSel();if(nitem0) ret
48、urn;CListCtrl& m_ListCtrl = GetListCtrl();CString strCustomerNo = m_ListCtrl.GetItemText(nitem,0);CCustomer cSet;cSet.m_strFilter.Format(_T(no = %s),strCustomerNo);cSet.Open();CChangecustomer dlg;dlg.m_strcustomerno = cSet.m_no;dlg.m_strcustomername = cSet.m_name;dlg.m_age = cSet.m_age;dlg.m_strcust
49、omerid = cSet.m_id;dlg.m_strphone = cSet.m_phone;dlg.m_regdate = cSet.m_regdate;if(dlg.DoModal()=IDOK) cSet.Edit();cSet.m_no =dlg.m_strcustomerno; cSet.m_name=dlg.m_strcustomername; cSet.m_age=dlg.m_age; cSet.m_id= dlg.m_strcustomerid; cSet.m_phone=dlg.m_strphone; cSet.m_regdate=dlg.m_regdate;if(dlg
50、.m_bMale)cSet.m_sex = 男;else cSet.m_sex = 女;cSet.Update();UpdateData(FALSE);MessageBox(_T(顾客信息修改成功|!);m_strFilter.Format(_T(no = %s),dlg.m_strcustomerno); DispCustomerInfo(m_strFilter); cSet.Close(); (4)用MFC ClassWizard在CBSMSView类中映射菜单ID_CONDITIONSEEKCUSTOMER的COMMAND消息,并添加下列代码:void CBSMSView:OnCondi
51、tionseekcustomer()/ TODO: 在此添加命令处理程序代码 Cconditionseekcustomer dlg;CCustomer cSet;int a=1,b=2,c=4,n;if(dlg.DoModal()=IDOK)dlg.m_strcustomerno.TrimLeft();dlg.m_strcustomername.TrimLeft();dlg.m_strcustomerid.TrimLeft();if(dlg.m_strcustomerno.IsEmpty()a=0;if(dlg.m_strcustomername.IsEmpty()b=0;if(dlg.m_s
52、trcustomerid.IsEmpty()c=0;n=a+b+c;switch(n)case 0:MessageBox(_T(请输入要查询的条件!); OnConditionseekcustomer();return;case 1:cSet.m_strFilter.Format(_T(no = %s),dlg.m_strcustomerno); cSet.m_strSort = no;break;case 2:cSet.m_strFilter.Format(_T(name = %s),dlg.m_strcustomername); cSet.m_strSort = name;break;ca
53、se 3:cSet.m_strFilter.Format(_T(no = %s AND name = %s),dlg.m_strcustomerno,dlg.m_strcustomername); cSet.m_strSort = no,name;break;case 4:cSet.m_strFilter.Format(_T(id = %s),dlg.m_strcustomerid); cSet.m_strSort = id;break;case 5:cSet.m_strFilter.Format(_T(no = %s AND id = %s),dlg.m_strcustomerno,dlg.
54、m_strcustomerid); cSet.m_strSort = no,id;break;case 6:cSet.m_strFilter.Format(_T(name = %s AND id = %s),dlg.m_strcustomername,dlg.m_strcustomerid); cSet.m_strSort = name,id;break;case 7:cSet.m_strFilter.Format(_T(no = %s AND name = %s AND id = %s),dlg.m_strcustomerno,dlg.m_strcustomername,dlg.m_strc
55、ustomerid); cSet.m_strSort = no,name,id;break;if(cSet.IsOpen() cSet.Close(); cSet.Open();if(cSet.m_no.IsEmpty()&cSet.m_name.IsEmpty()&cSet.m_id.IsEmpty() MessageBox(_T(要查询的顾客信息不存在!);OnConditionseekcustomer();return; else DispCustomerInfo(cSet.m_strFilter);cSet.Close();(5)用MFC ClassWizard在CBSMSView类中
56、映射菜单ID_SEEKALLCUSTOMER的COMMAND消息,并添加下列代码:void CBSMSView:OnSeekallcustomer()/ TODO: 在此添加命令处理程序代码DispCustomerInfo(_T();(5)用MFC ClassWizard在CBSMSView类中映射菜单ID_DELETECUSTOMER的COMMAND消息,并添加下列代码:void CBSMSView:OnDeletecustomer()/ TODO: 在此添加命令处理程序代码int nitem = GetListCtrlCurSel();if(nitem0) return;CListCtrl
57、& m_ListCtrl = GetListCtrl();CString stritem,str;stritem = m_ListCtrl.GetItemText(nitem,1);str.Format(_T(确实要删除顾客姓名为“ %s ”的列表项(记录)吗?),stritem);if(IDOK != MessageBox(str,_T(确认删除),MB_ICONQUESTION|MB_OKCANCEL)return;CString strcustomerno = m_ListCtrl.GetItemText(nitem,0);CCustomer cSet;cSet.m_strFilter.
58、Format(_T(no = %s),strcustomerno);cSet.Open();if(!cSet.IsEOF() CRecordsetStatus status;cSet.GetStatus(status);cSet.Delete();if(status.m_lCurrentRecord=0)cSet.MoveNext();elsecSet.MoveFirst();if(cSet.IsOpen()cSet.Close();MessageBox(_T(顾客信息删除成功!);DispCustomerInfo(_T();(四)供应商信息管理实现1.在BSMS中添加图书信息表的类Csupp
59、liers。2.创建供应商信息添加对话框。为对话框类CAddsupplier添加背景图片,为CAddsupplier类添加成员函数OnPaint,并添加下列代码:void CAddsupplier:OnPaint()CPaintDC dc(this); / device context for painting/ TODO: 在此处添加消息处理程序代码 CDC memdc; memdc.CreateCompatibleDC(&dc);/创建兼容YDC CBitmap bkg; bkg.LoadBitmap(IDB_BITMAP25);/载入位图 BITMAP bkginfo; bkg.GetB
60、itmap(&bkginfo);/获取位图信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/获取对话框信息dc.SetStretchBltMode(COLORONCOLOR); dc.StretchBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&memdc,0,0,bkginfo.bmWidth,bkginfo.bmHeight,SRCCOPY);/ 不为绘图消息调用CDialogEx:OnPaint()3.实现供应商信息添加、修改、查询、删除功能(1)在CBSMSV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑结构雪荷载积雪分布系数取值方法选择原则制定方法选择
- 音乐可视化数据可视化技术课程设计
- 孕前优生健康教育
- 2025-2026学年2.4.1同类项 华东师大版数学七年级上学期(课件)
- 备皮手术化验常见问题解决方案培训
- 实习医生临床轮转培训方案
- 淋巴瘤放射治疗的护理指导培训
- 店面物流设计案例
- 皮肤湿疹的药物治疗管理计划
- 胰腺炎急性期护理教程
- 2026年宁波余姚市泗门镇人民政府公开招聘编外工作人员7人笔试参考试题及答案解析
- 2026届郑州市高三历史高考三模原创仿真模拟试卷(含参考答案解析)第847套
- 凉山州2025年四川凉山州第一批引进人才(559人)笔试历年参考题库典型考点附带答案详解
- 2026年二级建造师市政工程管理考试真题答案及详细解析
- 山东发展侯咽集37.52万千瓦风电项目220kV送出线路工程环境影响报告表
- 2026年商业伦理 测试题及答案
- AQ 3026-2026《化工企业设备检修作业安全规范》宣贯解读课件
- 2026年高考冲刺作文审题立意训练:选择题32道(附深度解析+答案)
- (2026年)检验检测机构资质认定“一单一库”的学习与解读(2026年实施)课件
- 2026中国期货市场市场深度与流动性风险研究报告
- 24J113-1 内隔墙-轻质条板(一)
评论
0/150
提交评论