Windows編程大作業(yè)_第1頁(yè)
Windows編程大作業(yè)_第2頁(yè)
Windows編程大作業(yè)_第3頁(yè)
Windows編程大作業(yè)_第4頁(yè)
Windows編程大作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上Windows編程課程作業(yè)(20 10 -20 11 學(xué)年第 2 學(xué)期)課程名稱: Windows編程技術(shù) 學(xué) 號(hào): 學(xué)生姓名: 專業(yè)班級(jí): 學(xué) 院:學(xué)生成績(jī): 1引言項(xiàng)目背景隨著人們只是層次的提高,圖書館成為日常生活中不可缺少的一部分。而圖書館的存書量和業(yè)務(wù)量龐大,僅僅靠傳統(tǒng)的記賬管理是不可行的。圖書管理系統(tǒng)應(yīng)運(yùn)而生,并逐漸成為信息化建設(shè)的重要組成部分。圖書管理系統(tǒng)為學(xué)校或社會(huì)型圖書館的管理員提供所有借閱者信息,以及管內(nèi)圖書庫(kù)存信息。對(duì)借書與還書兩大功能進(jìn)行合理操縱。在很大程度上方便了圖書管理工作。于是在課程設(shè)計(jì)方面選擇了圖書管理系統(tǒng)作為Windows編程課程設(shè)計(jì)的

2、題目。2 需求分析2.1程序功能(1)讀者信息的添加,刪除,查找,修改,清空(2)圖書信息的添加,查找(3)讀者借書,還書功能2.2數(shù)據(jù)讀者信息:讀者編號(hào),姓名,聯(lián)系電話圖書信息:圖書編號(hào),名稱,數(shù)量,類別借閱信息:讀者編號(hào),圖書編號(hào)2.3環(huán)境開(kāi)發(fā)環(huán)境:Microsoft Visual C+6.0運(yùn)行環(huán)境:(1)硬件要求:CPU奔騰4處理器以上(2)軟件要求:XP/Vista操作系統(tǒng)3 總體設(shè)計(jì)3.1總體架構(gòu)整個(gè)圖書館里系統(tǒng)分為四個(gè)模塊。分別為,讀者信息模塊,圖書信息模塊,圖書借閱模塊和讀者還書模塊。各模塊的主要功能如下:3.2模塊劃分(1)讀者信息相關(guān)模塊設(shè)計(jì)在此模塊中,創(chuàng)建一個(gè)新類,命名為

3、ReaderInfomation,顧名思義,用來(lái)編寫進(jìn)行對(duì)讀者信息各種操作的代碼。函數(shù)及變量一覽如下:實(shí)現(xiàn)讀者信息相關(guān)操作,對(duì)于總對(duì)話框的設(shè)計(jì)如下圖:讀者信息添加模塊此模塊的功能是將借閱者信息保存到系統(tǒng)中,在這個(gè)模塊中實(shí)現(xiàn)了對(duì)讀者編號(hào),姓名和聯(lián)系電話的添加,并帶有重號(hào)提醒功能。添加成功的讀者信息可以在讀者信息總覽列表框中顯示出來(lái)。參考程序段如下:void CReaderItem:OnBottonAddReader() /添加讀者信息/ TODO: Add your control notification handler code hereCString f_reader_name,f_rea

4、der_num,f_reader_phone,f_add_whole;CString /*讀者編號(hào)校驗(yàn)變量*/check_reader_num;/在編輯框中獲取讀者信息GetDlgItem(IDC_EDIT_READER_NUM)->GetWindowText(f_reader_num);/讀者編號(hào)校驗(yàn)變量獲得輸入的編號(hào)check_reader_num=f_reader_num;/插入重號(hào)處理操作for(int i=0;i<reader_num;i+)if(readeri.GetReaderNum()=check_reader_num)MessageBox("該讀者編號(hào)已

5、存在,請(qǐng)核對(duì)!");/清空讀者編號(hào)校驗(yàn)變量check_reader_num="&&&&&&&&&"return;GetDlgItem(IDC_EDIT_READER_NAME)->GetWindowText(f_reader_name);GetDlgItem(IDC_EDIT_READER_PHONE)->GetWindowText(f_reader_phone);/添加讀者信息-并保存到讀者信息對(duì)象中readerreader_num.SaveReaderInformation(f

6、_reader_num,f_reader_name,f_reader_phone);/初始化讀者可借書籍?dāng)?shù)目readerreader_num.InitReader_borrow_book_num();/初始化后,讀者可借書籍?dāng)?shù)目總數(shù)為10/讀者總數(shù)+1reader_num+;/讀者總數(shù)+1/連接總串f_add_whole=f_reader_num+" "+f_reader_name+" "+f_reader_phone;/在添加讀者信息列表框顯示m_all_reader_show.AddString(f_add_whole);MessageBox(&qu

7、ot;添加成功!");讀者信息查找模塊此模塊的功能實(shí)在已添加的讀者信息中通過(guò)輸入的讀者編號(hào)找到想要查找對(duì)應(yīng)的讀者信息。并帶有刷新查找列表框,排除在同一列表框顯示多人混淆目標(biāo)的情況,以及對(duì)查無(wú)對(duì)應(yīng)讀者信息的提示處理。具體程序段如下:void CReaderItem:OnBottonFindReader() /查找讀者信息/ TODO: Add your control notification handler code hereCString f_reader_num,f_add_whole;CString /*讀者編號(hào)校驗(yàn)變量*/check_reader_num;int check_

8、flag=0;/查找結(jié)果標(biāo)志,0為沒(méi)找到,1為找到/清空列表框m_find_reader_show.ResetContent();/在編輯框中獲取讀者信息GetDlgItem(IDC_EDIT_READER_NUM)->GetWindowText(f_reader_num);/讀者編號(hào)校驗(yàn)變量獲得輸入的編號(hào)check_reader_num=f_reader_num;for(int i=0;i<reader_num;i+)/進(jìn)行查找if(readeri.GetReaderNum()=check_reader_num)/獲取讀者信息readeri.GetReaderItem(f_add

9、_whole);/顯示在列表框中m_find_reader_show.AddString(readeri.GetReaderItem(f_add_whole);/置找到標(biāo)志為1check_flag=1;/清空讀者編號(hào)校驗(yàn)變量check_reader_num="&&&&&&&&&"if(check_flag=0)MessageBox("對(duì)不起,查無(wú)此讀者!");讀者信息刪除模塊此模塊對(duì)要清除的讀者信息進(jìn)行刪除,不但從列表框能清楚對(duì)應(yīng)讀者的信息,也能在內(nèi)存中實(shí)際刪除信息,實(shí)現(xiàn)顯示與控制同

10、步的過(guò)程。并帶有提示請(qǐng)使用者確定是否刪除的選擇權(quán)。具體程序段如下:void CReaderItem:OnBottonDelReader2() /刪除讀者信息函數(shù)/ TODO: Add your control notification handler code hereint cursel=m_all_reader_show.GetCurSel();/光標(biāo)鎖定if(cursel=-1)MessageBox("沒(méi)有選中");return;else if(IDYES=MessageBox("是否刪除","刪除對(duì)話框",MB_ICONHAN

11、D|MB_YESNO)for(int k=cursel;k<reader_num-1;k+)readerk=readerk+1;m_all_reader_show.DeleteString(cursel);reader_num-;讀者信息修改模塊此模塊是對(duì)讀者信息進(jìn)行修改,通過(guò)選中列表框的讀者信息條目,用雙擊鼠標(biāo)消息響應(yīng)來(lái)彈出修改窗口,讓使用者將修改的數(shù)據(jù)重新填入,并將修改后的數(shù)據(jù)重新顯示在列表框內(nèi)。具體程序段如下:void CReaderItem:OnDblclkAllReaderList() /修改讀者信息引入函數(shù)/ TODO: Add your control notificati

12、on handler code hereUpdateData();CString stradd;cursel_ch=m_all_reader_show.GetCurSel();/選定的行CChange change;change.DoModal();m_all_reader_show.DeleteString(cursel_ch);/刪除原行m_all_reader_show.AddString(readercursel_ch.GetReaderItem(stradd);/顯示新信息UpdateData(false);/雙擊后,將彈出新對(duì)話框,如下圖:對(duì)于上圖中修改對(duì)話框的程序段,如下:voi

13、d CChange:OnBottonChange() / TODO: Add your control notification handler code hereCString f_reader_name,f_reader_num,f_reader_phone,f_add_whole;CString /*讀者編號(hào)校驗(yàn)變量*/check_reader_num;/在編輯框中獲取讀者信息GetDlgItem(IDC_EDIT_READER_NUM)->GetWindowText(f_reader_num);/讀者編號(hào)校驗(yàn)變量獲得輸入的編號(hào)check_reader_num=f_reader_n

14、um;/插入重號(hào)處理操作for(int i=0;i<reader_num;i+)if(readeri.GetReaderNum()=check_reader_num&&(i!=cursel_ch)MessageBox("該讀者編號(hào)已存在,請(qǐng)核對(duì)!");/清空讀者編號(hào)校驗(yàn)變量check_reader_num="&&&&&&&&&"return;GetDlgItem(IDC_EDIT_READER_NAME)->GetWindowText(f_reader_n

15、ame);GetDlgItem(IDC_EDIT_READER_PHONE)->GetWindowText(f_reader_phone);/將新信息存到讀者對(duì)象中readercursel_ch.SetReaderItem(f_reader_num,f_reader_name,f_reader_phone);CDialog:OnOK();讀者信息清空模塊此模塊只清空除讀者信息總覽列表框以外的控件內(nèi)信息。只要點(diǎn)擊清除按鈕,就可以實(shí)現(xiàn)此功能。具體程序段如下:void CReaderItem:OnBottonCleanReader() /清空讀者信息顯示函數(shù)/ TODO: Add your c

16、ontrol notification handler code here/清編輯框GetDlgItem(IDC_EDIT_READER_NUM)->SetWindowText("");GetDlgItem(IDC_EDIT_READER_NAME)->SetWindowText("");GetDlgItem(IDC_EDIT_READER_PHONE)->SetWindowText("");/清列表框/m_all_reader_show.ResetContent();m_find_reader_show.Reset

17、Content();(2) 圖書信息相關(guān)模塊設(shè)計(jì)此模塊是對(duì)圖書館內(nèi)圖書信息進(jìn)行操作的部分,圖書信息包括圖書編號(hào),圖書類別和圖書的庫(kù)存數(shù)量。在模塊中可以實(shí)現(xiàn)對(duì)圖書信息的添加、查找、借書和還書功能。對(duì)話框窗口設(shè)計(jì)如下圖:在程序內(nèi)部,創(chuàng)建了一個(gè)新類,通過(guò)各種成員函數(shù)來(lái)實(shí)現(xiàn)對(duì)應(yīng)的圖書信息操作。類成員列表如下圖: 圖書信息添加模塊此模塊的作用類似于讀者信息添加模塊,可以對(duì)圖書信息進(jìn)行添加,并實(shí)現(xiàn)了重號(hào)報(bào)錯(cuò)等功能。添加成功的信息可以在圖書信息總覽列表框內(nèi)顯示出來(lái)。具體程序段如下:void CBookItemDlg:OnBottonAddBook() /添加圖書信息/ TODO: Add your cont

18、rol notification handler code herechar f_book_num_string20=""CString f_book_code,f_book_name,f_book_kind,f_book_total,f_book_num_cstring;int f_book_num_int;CString check_book_code;GetDlgItem(IDC_EDIT_BOOK_CODE)->GetWindowText(f_book_code);/圖書編號(hào)校驗(yàn)變量獲得輸入的編號(hào)check_book_code=f_book_code;/插入重

19、號(hào)處理操作for(int i=0;i<book_num;i+)if(booki.GetBookCode()=check_book_code)MessageBox("該圖書編號(hào)已存在,請(qǐng)核對(duì)!");/清空?qǐng)D書編號(hào)校驗(yàn)變量check_book_code="&&&&&&&&&"return;/f_book_num_int=m_book_num;/f_book_num_cstring=itoa(f_book_num_int,f_book_num_string,10);GetDlgIte

20、m(IDC_EDIT_BOOK_NAME)->GetWindowText(f_book_name);GetDlgItem(IDC_EDIT_BOOK_NUM)->GetWindowText(f_book_num_cstring);/將圖書信息對(duì)象中的圖書數(shù)量變量進(jìn)行轉(zhuǎn)換,將CString轉(zhuǎn)換成intf_book_num_int=atoi(f_book_num_cstring);/選中已查找到的圖書int index=m_book_kind.GetCurSel();m_book_kind.GetLBText(index,f_book_kind);f_book_total=f_book

21、_code+" "+f_book_name+" "+f_book_kind+" "+f_book_num_cstring;/保存書籍信息bookbook_num.SaveBookItem(f_book_code,f_book_name,f_book_num_int,f_book_kind);book_num+;/在圖書總攬列表中顯示m_all_book_show.AddString(f_book_total);MessageBox("添加成功!");圖書信息查找模塊此模塊是對(duì)確定了圖書編號(hào)的圖書進(jìn)行查找的部分,通過(guò)

22、在圖書編號(hào)編輯框輸入想要查找的圖書編號(hào),然后鼠標(biāo)單擊查找圖書按鈕,就會(huì)在查找列表框顯示對(duì)應(yīng)的圖書信息,但是若欲查找的圖書編號(hào)不存在,則提示說(shuō)此圖書不存在。具體程序段如下:void CBookItemDlg:OnBottonFindBook() / TODO: Add your control notification handler code hereCString f_book_code,f_book_total;CString /*圖書編號(hào)校驗(yàn)變量*/check_book_code;int check_flag=0;/查找結(jié)果標(biāo)志,0為沒(méi)找到,1為找到/清空列表框m_find_book_s

23、how.ResetContent();/在編輯框中獲取圖書信息GetDlgItem(IDC_EDIT_BOOK_CODE)->GetWindowText(f_book_code);/讀者編號(hào)校驗(yàn)變量獲得輸入的編號(hào)check_book_code=f_book_code;for(int i=0;i<book_num;i+)/進(jìn)行查找if(booki.GetBookCode()=check_book_code)/把查找到的書籍序號(hào)獲得cursel_find_book_show=i;/獲取圖書信息total_string_among_function=booki.GetBookItem(f

24、_book_total);/顯示在列表框中m_find_book_show.AddString(booki.GetBookItem(f_book_total);/置找到標(biāo)志為1check_flag=1;/清空?qǐng)D書編號(hào)校驗(yàn)變量check_book_code="&&&&&&&&&"if(check_flag=0)MessageBox("對(duì)不起,查無(wú)此圖書!");cursel_find_book_show=-1;讀者借閱圖書模塊此模塊實(shí)現(xiàn)已登記于圖書館內(nèi)的讀者借出圖書操作。首先通過(guò)輸入圖書

25、編號(hào)查找到想要借閱的圖書,然后在圖書信息檢索列表框內(nèi)選中查找到的圖書,鼠標(biāo)單擊借閱圖書,就會(huì)彈出圖書借閱對(duì)話框,首先輸入讀者編號(hào)并單擊缺人讀者調(diào)出讀者信息,如果讀者存在可以單機(jī)確定借書按鈕進(jìn)行確認(rèn),如果讀者可借書數(shù)目已為零,則會(huì)彈出提示提醒使用者。如果書籍借出,則讀者信息確認(rèn)列表框中讀者可借書數(shù)量會(huì)減一。關(guān)閉借書對(duì)話框后,會(huì)發(fā)現(xiàn)圖書信息檢索列表框和圖書信息總覽列表框?qū)?yīng)剛借出的圖書數(shù)量也已減一,從而實(shí)現(xiàn)了圖書的借閱。在圖書信息對(duì)話框中的程序段如下:void CBookItemDlg:OnBottonBorrowBook() /借閱圖書/ TODO: Add your control notif

26、ication handler code hereUpdateData();CString f_add_whole;int get_book_num;CBorrowBookDlg BorrowBookDlg;if(cursel_find_book_show!=-1)/對(duì)應(yīng)選中書籍/獲得圖書剩余數(shù)量get_book_num=bookcursel_find_book_show.GetBookNum();if(book_num=0)MessageBox("對(duì)不起,當(dāng)前沒(méi)有圖書!");return;if(get_book_num=0)MessageBox("對(duì)不起,該圖書

27、數(shù)量為0,無(wú)法借出!");return;BorrowBookDlg.DoModal();/刪除原行m_all_book_show.DeleteString(cursel_find_book_show);/清空列表框m_find_book_show.ResetContent();/顯示新數(shù)據(jù)m_find_book_show.AddString(bookcursel_find_book_show.GetBookItem(f_add_whole);m_all_book_show.AddString(bookcursel_find_book_show.GetBookItem(f_add_wh

28、ole);else MessageBox("沒(méi)有相關(guān)書籍資料!");return;UpdateData(false);圖書借閱對(duì)話框如下圖:實(shí)現(xiàn)程序段如下:void CBorrowBookDlg:OnBorrowBook()/確定借書/ TODO: Add your control notification handler code hereCString f_add_whole;int get_reader_borrow_book_num,get_book_num;/判斷是否選中書籍if(cursel_find_book_show=-1)MessageBox("

29、沒(méi)有確定相關(guān)書籍!");return;/獲得讀者可借書籍?dāng)?shù)量get_reader_borrow_book_num=readerreader_count.GetReader_Borrow_book_num();/判斷讀者是否還可借出if(get_reader_borrow_book_num=0)MessageBox("對(duì)不起,借書數(shù)量超額!");return;/獲得圖書剩余數(shù)量/*get_book_num=bookcursel_find_book_show.GetBookNum();if(get_book_num=0)MessageBox("對(duì)不起,該圖書

30、數(shù)量為0,無(wú)法借出!");return;*/else/對(duì)應(yīng)書籍借出bookcursel_find_book_show.Borrow_Out();/該讀者借書成功,可借書數(shù)目-1readerreader_count.BorrowBook();/清空讀者列表m_reader_id_show.ResetContent();/獲取讀者信息f_add_whole=readerreader_count.GetReader_Book_Item();/重新在讀者信息列表顯示m_reader_id_show.AddString(f_add_whole);讀者歸還圖書模塊此模塊實(shí)現(xiàn)了讀者將確定編號(hào)的圖書

31、歸還給圖書館的系列操作。通過(guò)在圖書信息對(duì)話框中的圖書編號(hào)編輯框輸入欲還書的編號(hào),然后查找到該圖書,之后鼠標(biāo)單擊歸還圖書按鈕就會(huì)彈出還書對(duì)話框。在還書對(duì)話框中的讀者編號(hào)編輯框中輸入欲還書的讀者編號(hào),單擊確認(rèn)讀者,如果讀者存在,則將對(duì)應(yīng)讀者信息在下方列表框中顯示,如果不存在則提示使用者無(wú)此讀者。在鼠標(biāo)單擊確認(rèn)還書之后,讀者可借書數(shù)量加一,關(guān)閉還書對(duì)話框后,會(huì)看到圖書信息檢索列表框和圖書信息總覽列表框中的對(duì)應(yīng)剛還的書的數(shù)量也會(huì)加一,從而實(shí)現(xiàn)了還書的功能。在圖書信息對(duì)話框中還書操作的程序段如下:void CBookItemDlg:OnBottonReturnBook() /=還書/ TODO: Add

32、 your control notification handler code hereUpdateData();CString f_add_whole;CReturnBookDlg ReturnBookDlg;if(cursel_find_book_show!=-1)/對(duì)應(yīng)選中書籍if(book_num=0)MessageBox("對(duì)不起,當(dāng)前沒(méi)有圖書!");return;ReturnBookDlg.DoModal();/刪除原行m_all_book_show.DeleteString(cursel_find_book_show);/清空列表框m_find_book_sh

33、ow.ResetContent();/顯示新數(shù)據(jù)m_find_book_show.AddString(bookcursel_find_book_show.GetBookItem(f_add_whole);m_all_book_show.AddString(bookcursel_find_book_show.GetBookItem(f_add_whole);else MessageBox("沒(méi)有選中!");return;UpdateData(false);還書對(duì)話框設(shè)計(jì)如下圖:確定還書程序段如下:void CReturnBookDlg:OnConfReturn() /確定還書

34、/ TODO: Add your control notification handler code hereCString f_add_whole;/對(duì)應(yīng)書籍歸還bookcursel_find_book_show.Return();/該讀者還書成功,可借書數(shù)目-1readerreader_count.ReturnBook();/清空讀者列表m_returnbook_reader_show.ResetContent();/獲取讀者信息f_add_whole=readerreader_count.GetReader_Book_Item();/重新在讀者信息列表顯示m_returnbook_rea

35、der_show.AddString(f_add_whole);4關(guān)鍵技術(shù)和算法(1)對(duì)讀者信息進(jìn)行修改void CChange:OnBottonChange() / TODO: Add your control notification handler code hereCString f_reader_name,f_reader_num,f_reader_phone,f_add_whole;CString /*讀者編號(hào)校驗(yàn)變量*/check_reader_num;/在編輯框中獲取讀者信息GetDlgItem(IDC_EDIT_READER_NUM)->GetWindowText(f_

36、reader_num);/讀者編號(hào)校驗(yàn)變量獲得輸入的編號(hào)check_reader_num=f_reader_num;/插入重號(hào)處理操作for(int i=0;i<reader_num;i+)if(readeri.GetReaderNum()=check_reader_num&&(i!=cursel_ch)MessageBox("該讀者編號(hào)已存在,請(qǐng)核對(duì)!");/清空讀者編號(hào)校驗(yàn)變量check_reader_num="&&&&&&&&&"return;GetDlgItem(IDC_EDIT_READER_NAME)->GetWindowText(f_reader_name);GetDlgItem(IDC_EDIT_R

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論