版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、*交通大學(xué)信息科學(xué)與工程學(xué)院程序設(shè)計(jì)實(shí)訓(xùn)I綜合設(shè)計(jì)報(bào)告圖書銷售系統(tǒng)學(xué)號(hào):631206050*姓名:*專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)(軟件開發(fā))班級(jí):軟件2班實(shí)驗(yàn)室(中心):專業(yè)機(jī)房指導(dǎo)老師:*完成時(shí)間:2013年12月18日目 錄一、任務(wù)書.4二、需求分析.5三、系統(tǒng)設(shè)計(jì).6四、編程與實(shí)現(xiàn).14五、測(cè)試內(nèi)容與結(jié)果.56六、存在的問題與不足及對(duì)策.67七、對(duì)這門課的建議.68八、參考文獻(xiàn).68教師評(píng)閱意見:教師評(píng)閱意見: 簽名: 年 月 日成績(jī):以下為設(shè)計(jì)報(bào)告正文內(nèi)容*交通大學(xué)信息科學(xué)與工程學(xué)院綜合設(shè)計(jì)任務(wù)書課 程程序設(shè)計(jì)實(shí)訓(xùn)I班級(jí)軟件二班指導(dǎo)教師*題 目圖書銷售系統(tǒng)完成時(shí)間2013年12月18日主要內(nèi)
2、容圖書銷售系統(tǒng)應(yīng)主要包括以下一些內(nèi)容:1.用戶信息管理;2.圖書信息管理;3.客戶信息管理;4.銷售信息管理;5.統(tǒng)計(jì)信息;設(shè)計(jì)報(bào)告要求設(shè)計(jì)報(bào)告要求格式規(guī)范、內(nèi)容完整。主要包括:需求分析;系統(tǒng)設(shè)計(jì);編程實(shí)現(xiàn):本部分主要寫實(shí)現(xiàn)的過程或步驟,以及關(guān)鍵代碼(必須附上自己添加的源代碼并加上注釋)測(cè)試與分析;存在的問題與不足及對(duì)策;對(duì)這門課的建議;參考文獻(xiàn)等說(shuō)明:設(shè)計(jì)報(bào)告要求打印上交。版面要求題目用黑體三號(hào),段后距18磅(或1行),居中對(duì)齊;標(biāo)題用黑體四號(hào),段前、段后距6磅(或0.3行);正文用小四號(hào)宋體,行距為1.25倍行距;標(biāo)題按“一”、“”、“1”、“”順序編號(hào)。備注原則上一人一題,部分題目允許多
3、人一題,分工協(xié)作,獨(dú)立完成。(多人協(xié)作完成,要注明分工情況)每位同學(xué)單獨(dú)演示自己的程序并現(xiàn)場(chǎng)回答提問。成績(jī)?cè)u(píng)定詳見評(píng)分標(biāo)準(zhǔn)說(shuō)明二、需求分析圖書銷售管理系統(tǒng)是該系統(tǒng)軟件的重要內(nèi)容之一,該系統(tǒng)為書店的庫(kù)存書籍的動(dòng)態(tài)調(diào)整提供了決策依據(jù),有利于及時(shí)對(duì)有大量需求的新書進(jìn)行訂貨入庫(kù)。它的主要功能包括:圖書的管理,圖書銷售管理,圖書退貨管理和銷售統(tǒng)計(jì),退貨統(tǒng)計(jì)以及進(jìn)貨商信息管理,顧客信息管理,用戶信息管理等。系統(tǒng)管理,幫助等功能。添加圖書信息修改圖書信息查詢圖書信息刪除圖書信息2.銷售信息管理添加銷售信息修改銷售信息查詢銷售信息刪除銷售信息3.退貨信息管理添加退貨信息修改退貨信息查詢退貨信息刪除退貨信息4.
4、統(tǒng)計(jì)信息管理銷售信息統(tǒng)計(jì)退貨信息統(tǒng)計(jì)圖書庫(kù)存信息統(tǒng)計(jì)5.顧客信息管理添加顧客信息修改顧客信息查詢顧客信息刪除顧客信息6.供應(yīng)商信息管理添加供應(yīng)商信息修改供應(yīng)商信息查詢供應(yīng)商信息刪除供應(yīng)商信息7.用戶信息管理添加用戶信息修改用戶密碼退出系統(tǒng)8.系統(tǒng)幫助圖書銷售系統(tǒng)簡(jiǎn)介三、系統(tǒng)設(shè)計(jì)(一)系統(tǒng)結(jié)構(gòu)1.系統(tǒng)總體結(jié)構(gòu)圖書銷售系統(tǒng)圖書銷售系統(tǒng)用戶登錄用戶登錄用戶信息管理供應(yīng)商信息管理顧客信息管理統(tǒng)計(jì)信息管理退貨信息管理銷售信息管理圖書信息管理系統(tǒng)幫助用戶信息管理供應(yīng)商信息管理顧客信息管理統(tǒng)計(jì)信息管理退貨信息管理銷售信息管理圖書信息管理系統(tǒng)幫助2.圖書信息管理結(jié)構(gòu)圖圖書信息管理圖書信息管理查詢圖書信息刪除圖
5、書信息修改圖書信息添加圖書信息查詢圖書信息刪除圖書信息修改圖書信息添加圖書信息按條件查詢圖書查詢所有按條件查詢圖書查詢所有圖書3.銷售信息管理結(jié)構(gòu)圖銷售信息管理銷售信息管理查詢銷售信息刪除銷售信息修改銷售信息添加銷售信息查詢銷售信息刪除銷售信息修改銷售信息添加銷售信息4.退貨信息管理退貨信息管理退貨信息管理查詢退貨信息刪除退貨信息修改退貨信息添加退貨信息查詢退貨信息刪除退貨信息修改退貨信息添加退貨信息5.統(tǒng)計(jì)信息管理統(tǒng)計(jì)信息管理統(tǒng)計(jì)信息管理退貨信息統(tǒng)計(jì)銷售信息統(tǒng)計(jì)庫(kù)存信息統(tǒng)計(jì)退貨信息統(tǒng)計(jì)銷售信息統(tǒng)計(jì)庫(kù)存信息統(tǒng)計(jì)6.顧客信息管理顧客信息管理顧客信息管理查詢顧客信息刪除顧客信息修改顧客信息添加顧客
6、信息查詢顧客信息刪除顧客信息修改顧客信息添加顧客信息7.供應(yīng)商信息管理供應(yīng)商信息管理供應(yīng)商信息管理刪除供應(yīng)商信息查詢供應(yīng)商信息添加供應(yīng)商信息修改供應(yīng)商信息刪除供應(yīng)商信息查詢供應(yīng)商信息添加供應(yīng)商信息修改供應(yīng)商信息8.用戶信息管理用戶信息管理用戶信息管理退出系統(tǒng)修改用戶密碼添加用戶信息退出系統(tǒng)修改用戶密碼添加用戶信息(二)數(shù)據(jù)庫(kù)設(shè)計(jì)1.數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)(1)圖書信息E-R圖書 名圖書編號(hào)書 名圖書編號(hào)作 者價(jià) 格圖書信息作 者價(jià) 格圖書信息出版社數(shù) 量出版社數(shù) 量(2)銷售信息E-R圖圖書編號(hào)圖書編號(hào)書 名銷售代碼書 名銷售代碼銷售價(jià)格顧客姓名銷售信息銷售價(jià)格顧客姓名銷售信息銷售日期銷售數(shù)量銷售日期
7、銷售數(shù)量銷售總額銷售總額(3)退貨信息E-R圖書 名圖書編號(hào)書 名圖書編號(hào)備 注退貨代碼備 注退貨代碼退貨價(jià)格顧客姓名銷售信息退貨價(jià)格顧客姓名銷售信息退貨日期退貨數(shù)量退貨日期退貨數(shù)量退貨總額退貨總額(4)顧客信息E-R圖顧客編號(hào)顧客編號(hào)顧客姓名身份證號(hào)顧客姓名身份證號(hào)年 齡性 別銷售信息年 齡性 別銷售信息注冊(cè)日期聯(lián)系方式注冊(cè)日期聯(lián)系方式(5)供應(yīng)商信息E-R圖公司名稱供應(yīng)商編號(hào)公司名稱供應(yīng)商編號(hào)公司地址聯(lián)系人圖書信息公司地址聯(lián)系人圖書信息聯(lián)系方式備 注聯(lián)系方式備 注(6)用戶信息E-R圖用戶密碼用戶名用戶信息用戶密碼用戶名用戶信息2.數(shù)據(jù)庫(kù)關(guān)系模式本系統(tǒng)的E-R圖可轉(zhuǎn)化為如下關(guān)系模式:圖書(
8、圖書編號(hào)、書名、作者、出版社、價(jià)格、數(shù)量)顧客(顧客編號(hào)、姓名、性別、年齡、身份證號(hào)、聯(lián)系方式、注冊(cè)日期)供應(yīng)商(供應(yīng)商編號(hào)、公司名稱、公司地址、聯(lián)系人、聯(lián)系方式、備注信息)圖書銷售(銷售代碼、圖書編號(hào)、書名、顧客姓名、銷售價(jià)格、銷售數(shù)量、銷售總額、銷售日期)圖書退貨(退貨代碼、圖書編號(hào)、書名、退貨價(jià)格、退貨數(shù)量、銷退貨總額、退貨日期、顧客姓名、備注信息)用戶(賬號(hào)、密碼)庫(kù)存(圖書編號(hào)、書名、數(shù)量)四、編程與實(shí)現(xiàn)(一)創(chuàng)建單文檔應(yīng)用程序 BSMS1.用MFC AppWizard 創(chuàng)建一個(gè)單文檔應(yīng)用程序 BSMS,在向?qū)Р襟E中將CBSMSView的基類由CView改為CListView。2.在
9、CBSMSView:PreCreateWindow函數(shù)添加下列代碼,用來(lái)設(shè)置列表視圖內(nèi)嵌列表控件的風(fēng)格:BOOL CBSMSView:PreCreateWindow(CREATESTRUCT& cs)cs.style |= LVS_REPORT;/報(bào)表風(fēng)格return CListView:PreCreateWindow(cs);(二)圖書信息管理實(shí)現(xiàn)1.在BSMS中添加圖書信息表的類CBookadd。2.創(chuàng)建圖書信息添加對(duì)話框。為對(duì)話框類CAddbook添加背景圖片,為CAddbook類添加成員函數(shù)OnPaint,并添加下列代碼:void CAddbook:OnPaint()CPaintDC
10、dc(this); / device context for painting/ TODO: 在此處添加消息處理程序代碼 CDC memdc; memdc.CreateCompatibleDC(&dc);/創(chuàng)建兼容YDC CBitmap bkg; bkg.LoadBitmap(IDB_BITMAP11);/載入位圖 BITMAP bkginfo; bkg.GetBitmap(&bkginfo);/獲取位圖信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/獲取對(duì)話框信息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);/ 不為繪圖消息調(diào)用CDialogEx:OnPaint()3.創(chuàng)建圖書信息修改對(duì)話框。為對(duì)話框類CChangebook添加背景圖片,為CChangebook類添加成員函數(shù)OnPaint,并添加下列代碼:void Changebook:OnPaint()CPaintDC dc(this); / device context for painting/ TO
12、DO: 在此處添加消息處理程序代碼 CDC memdc; memdc.CreateCompatibleDC(&dc);/創(chuàng)建兼容YDC CBitmap bkg; bkg.LoadBitmap(IDB_BITMAP4);/載入位圖 BITMAP bkginfo; bkg.GetBitmap(&bkginfo);/獲取位圖信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/獲取對(duì)話框信息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);/ 不為繪圖消息調(diào)用CDialogEx:OnPaint()4.實(shí)現(xiàn)圖書添加、修改、查詢、刪除功能(1)在CBSMSView類添加成員函數(shù)DeleteAllColumn(),用來(lái)刪除列表視圖的標(biāo)題頭,以便能在創(chuàng)建標(biāo)題頭顯示不同的信息: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類添加成員函數(shù)DispBookInfo,用來(lái)顯示圖書信息。void CBSMSView:DispBookInfo(CString strFilter)DeleteAllColumn();CListCtrl& m_ListCtrl = GetListCtrl();CString strH
15、eader=_T(圖書編號(hào)),_T(書名),_T(作者),_T(價(jià)格),_T(數(shù)量),_T(出版社);for(int ncol=0;ncolsizeof(strHeader)/sizeof(CString);ncol+)m_ListCtrl.InsertColumn(ncol,strHeaderncol,LVCFMT_LEFT,100);m_ListCtrl.DeleteAllItems();/刪除所有的列表項(xiàng)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類添加一個(gè)成員變量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);/設(shè)定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(); /將新紀(jì)錄存入數(shù)據(jù)庫(kù)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類添加成員函數(shù)DeleteAllColumn(),用來(lái)
20、獲取當(dāng)前選擇的列表項(xiàng)索引,其代碼如下:int CBSMSView:GetListCtrlCurSel(void)CListCtrl& m_ListCtrl = GetListCtrl();POSITION pos;pos = m_ListCtrl.GetFirstSelectedItemPosition();if(pos=NULL) MessageBox(_T(您還沒有選中列表項(xiàng),請(qǐng)先選中列表項(xiàng)!);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(請(qǐng)輸入圖書編號(hào)!); 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(請(qǐng)輸入要查詢的條件!); 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(確實(shí)要?jiǎng)h除書名為%s 的列表項(xiàng)(記錄)嗎?),stritem);if(IDOK != MessageBox(str,_T(確認(rèn)刪除),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();(三)顧客信息管理實(shí)現(xiàn)1.在BSMS中添加圖書信息表的類CCustomer。2.創(chuàng)建顧客信息添加對(duì)話框。為對(duì)話框類CAddcustomer添加背景圖片,為CAddcustomer類添加成員函數(shù)OnPaint,并添加下列代碼:void CAddcustomer:OnPaint()CPaintDC dc(this); / device context for painting/ TODO: 在此處添加消息處理程序代碼 CDC memdc; memdc.CreateCompatibleDC(&dc);/創(chuàng)建兼容YDCCBitmap bkg; bkg.Loa
39、dBitmap(IDB_BITMAP15);/載入位圖 BITMAP bkginfo; bkg.GetBitmap(&bkginfo);/獲取位圖信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/獲取對(duì)話框信息dc.SetStretchBltMode(COLORONCOLOR); dc.StretchBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&memdc,0,0,bkginfo.bmWidth,bkginfo.bmHeight,SRCCOPY);/ 不為繪圖消息調(diào)
40、用CDialogEx:OnPaint()3. 創(chuàng)建顧客信息修改對(duì)話框。為對(duì)話框類CChangecustomer添加背景圖片,為CChangecustomer類添加成員函數(shù)OnPaint,并添加下列代碼:voidCChangecustomer:OnPaint()CPaintDC dc(this); / device context for painting/ TODO: 在此處添加消息處理程序代碼 CDC memdc; memdc.CreateCompatibleDC(&dc);/創(chuàng)建兼容YDC CBitmap bkg; bkg.LoadBitmap(IDB_BITMAP15);/載入位圖 BI
41、TMAP bkginfo; bkg.GetBitmap(&bkginfo);/獲取位圖信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/獲取對(duì)話框信息dc.SetStretchBltMode(COLORONCOLOR); dc.StretchBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&memdc,0,0,bkginfo.bmWidth,bkginfo.bmHeight,SRCCOPY);/ 不為繪圖消息調(diào)用CDialogEx:OnPaint()4.實(shí)現(xiàn)顧客信息添加
42、、修改、查詢、刪除功能(1)在CBSMSView類添加成員函數(shù)DispCustomerInfo,用來(lái)顯示顧客信息。void CBSMSView:DispCustomerInfo(CString strFilter)DeleteAllColumn();CListCtrl& m_ListCtrl = GetListCtrl();CString strHeader=_T(顧客編號(hào)),_T(姓名),_T(性別),_T(年齡),_T(身份證號(hào)碼),_T(聯(lián)系方式),_T(注冊(cè)日期);for(int ncol=0;ncolsizeof(strHeader)/sizeof(CString);ncol+)m_
43、ListCtrl.InsertColumn(ncol,strHeaderncol,LVCFMT_LEFT,100);m_ListCtrl.DeleteAllItems();/刪除所有的列表項(xiàng)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);/設(shè)定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(); /將新紀(jì)錄存入數(shù)據(jù)庫(kù)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(請(qǐng)輸入要查詢的條件!); 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(確實(shí)要?jiǎng)h除顧客姓名為“ %s ”的列表項(xiàng)(記錄)嗎?),stritem);if(IDOK != MessageBox(str,_T(確認(rèn)刪除),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();(四)供應(yīng)商信息管理實(shí)現(xiàn)1.在BSMS中添加圖書信息表的類Csupp
59、liers。2.創(chuàng)建供應(yīng)商信息添加對(duì)話框。為對(duì)話框類CAddsupplier添加背景圖片,為CAddsupplier類添加成員函數(shù)OnPaint,并添加下列代碼:void CAddsupplier:OnPaint()CPaintDC dc(this); / device context for painting/ TODO: 在此處添加消息處理程序代碼 CDC memdc; memdc.CreateCompatibleDC(&dc);/創(chuàng)建兼容YDC CBitmap bkg; bkg.LoadBitmap(IDB_BITMAP25);/載入位圖 BITMAP bkginfo; bkg.GetB
60、itmap(&bkginfo);/獲取位圖信息 memdc.SelectObject(&bkg); RECT rect; GetWindowRect(&rect);/獲取對(duì)話框信息dc.SetStretchBltMode(COLORONCOLOR); dc.StretchBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&memdc,0,0,bkginfo.bmWidth,bkginfo.bmHeight,SRCCOPY);/ 不為繪圖消息調(diào)用CDialogEx:OnPaint()3.實(shí)現(xiàn)供應(yīng)商信息添加、修改、查詢、刪除功能(1)在CBSMSV
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動(dòng)合同法員工離職的規(guī)定2024年-
- 轉(zhuǎn)租房屋租賃協(xié)議范例
- 房屋建設(shè)四鄰合作協(xié)議
- 房地產(chǎn)開發(fā)承包合同
- 房地產(chǎn)項(xiàng)目抵押借款合同
- 房產(chǎn)認(rèn)購(gòu)協(xié)議書
- 新昌縣茶葉種植收購(gòu)合同匯編
- 2023年高考押題預(yù)測(cè)卷01浙江卷-生物(原卷版)
- 2023年高考地理第一次模擬考試卷-(天津A卷)(全解全析)
- 2023年高考地理復(fù)習(xí)精題精練-城鎮(zhèn)化(解析版)
- 電動(dòng)客車驅(qū)動(dòng)橋總成設(shè)計(jì)
- 四川省阿壩藏族羌族自治州《綜合知識(shí)》事業(yè)單位國(guó)考真題
- 2023年人民法院電子音像出版社招聘筆試題庫(kù)及答案解析
- 大學(xué)生心理健康優(yōu)秀說(shuō)課-比賽課件
- 收款賬戶變更的聲明
- 九年級(jí)道德與法治中考復(fù)習(xí)資料
- 《化學(xué)發(fā)展簡(jiǎn)史》學(xué)習(xí)心得
- 班組建設(shè)與班組長(zhǎng)管理技巧課件
- 簽派員執(zhí)照考試題庫(kù)匯總-8簽派和實(shí)踐應(yīng)用
- 30屈原《楚辭·橘頌》課件
- 銷售人員十大軍規(guī)課件
評(píng)論
0/150
提交評(píng)論