圖書借閱系統(tǒng)VC++論文_第1頁
圖書借閱系統(tǒng)VC++論文_第2頁
圖書借閱系統(tǒng)VC++論文_第3頁
圖書借閱系統(tǒng)VC++論文_第4頁
圖書借閱系統(tǒng)VC++論文_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目 錄摘要11 引言11.1 問題的提出11.2任務(wù)與分析1課題任務(wù)1任務(wù)分析12需求分析22.1功能需求22.2數(shù)據(jù)需求22.3性能需求23.概要設(shè)計(jì)24.詳細(xì)設(shè)計(jì)24.1 Qt/Embedded的安裝24.2 Qtopia 的安裝34.3編寫源代碼的思路34.4流程圖45 核心代碼56.測試分析96.1文件打開測試96.2總體測試97 附錄10總結(jié)15致謝16參考文獻(xiàn)17摘 要隨著計(jì)算機(jī)性能的日益增強(qiáng),用途的日益廣泛,面向?qū)ο蠓椒楝F(xiàn)代解決一些復(fù)雜的問題提供了很大的幫助,面對(duì)對(duì)象程序設(shè)計(jì)可以更直接描述客觀世界存在的事物以及事物之間的相互關(guān)系,它所強(qiáng)調(diào)的基本原則是直接面對(duì)客觀事物本身進(jìn)行抽象

2、并在此基礎(chǔ)上進(jìn)行軟件開發(fā),將人類的思維方式和表達(dá)方式應(yīng)用在軟件開發(fā)中。C+是人類思維的一個(gè)重大突破,是程序設(shè)計(jì)語言發(fā)展的一個(gè)歷史性飛躍。C+語言一方面全面兼容C,另一方面是支持面向?qū)ο蟮姆椒āW(xué)習(xí)C+程序設(shè)計(jì)語言,可以讓我們對(duì)程序設(shè)計(jì)語言的理解和運(yùn)用深刻化、時(shí)代化。課程設(shè)計(jì)是我們從理論走向?qū)嵺`的橋梁,是鍛煉我們運(yùn)用理論知識(shí)能力的良機(jī)。隨著計(jì)算機(jī)的普及,社會(huì)信息量的與日俱增,周圍信息儲(chǔ)存的主要媒介之一圖書,其數(shù)量規(guī)模比以前任何時(shí)候都大,無能個(gè)人還是圖書管理部門都需要使用有效而又方面的方式來管理圖書管的書籍?,F(xiàn)代人的時(shí)間觀越來越強(qiáng),生活也越來越忙,由于相互之間信息交流的量也越來越大。在學(xué)校對(duì)于學(xué)生

3、借閱圖書的基本信息的管理,如何使其更加方便快捷也成了人們追求的目標(biāo),并且急需這樣的軟件來完成更多的功能。關(guān)鍵詞:圖書借閱信息管理 C+程序設(shè)計(jì) 軟件開發(fā)1 引 言 1.1 問題的提出在C+中,類是面向?qū)ο蟪绦蛟O(shè)計(jì)方法的核心,利用它可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的封裝、隱蔽,通過類的繼承和派生,能夠?qū)崿F(xiàn)對(duì)問題的深入抽象描述,為解復(fù)雜的實(shí)際問題提供了更為簡潔明了的思維方式與開發(fā)工具。在面向過程的結(jié)構(gòu)化程序設(shè)計(jì)中,程序的模塊是由函數(shù)構(gòu)成的。函數(shù)是邏輯上相關(guān)的語句與數(shù)據(jù)的封裝,用于完成特定的功能,類是邏輯上相關(guān)的函數(shù)與數(shù)據(jù)的封裝,它是對(duì)所要處理的問題的抽象描述。因此,后者的集成程度更高,也就更適合用于大型復(fù)雜程序的開

4、發(fā)。理論知識(shí)的學(xué)習(xí),是循序漸進(jìn)的,在將書本知識(shí)運(yùn)用到實(shí)踐的過程中,則需要把每一步的基礎(chǔ)知識(shí)都綜合起來解決問題,課程設(shè)計(jì)是一個(gè)理論與實(shí)踐相融合的平臺(tái),在學(xué)校中對(duì)于圖書館學(xué)生借閱圖書管理是一類常見的需求問題,好的管理系統(tǒng),可以讓信息組織得清晰明了,可以節(jié)約學(xué)生和工作人員大量的時(shí)間來查詢書籍和相關(guān)的質(zhì)料,可以避免遺忘,混亂等麻煩。圖書館借閱系統(tǒng)通常具有查詢,修改,刪除,等基本功能。在這次的課程設(shè)計(jì)中,我的課題是圖書借閱系統(tǒng),與一般的借閱管理系統(tǒng)類似,我需要解決的問題主要有:首先,設(shè)計(jì)總體思路;其次,如何實(shí)現(xiàn)這些功能;最后,如何對(duì)這些功能的實(shí)現(xiàn)進(jìn)行優(yōu)化,給用戶提供較好的操作環(huán)境與界面。1.2任務(wù)與分析

5、 課題任務(wù)建立一個(gè)圖書借閱系統(tǒng),對(duì)圖書、讀者和借書情況進(jìn)行處理。各對(duì)象有以下信息需要處理:1. 每本書有書號(hào)、書名和作者姓名;2. 讀者有借書證號(hào)、讀者姓名、最大借閱量;3. 能提供若干本書由讀者進(jìn)行選擇,打印出讀者的借書情況4. 圖書和讀者信息應(yīng)保存在相應(yīng)的文件中便于查詢和借閱。任務(wù)分析(1)定義一個(gè)book類對(duì)圖書的相關(guān)信息進(jìn)行封裝,由manage()函數(shù)為用戶提供友好的界面方便用戶的選擇,creat()函數(shù)實(shí)現(xiàn)對(duì)圖書的新建,rework()函數(shù)對(duì)圖書的修改,delet()函數(shù)對(duì)圖書的刪除等功能;(2)定義一個(gè)user類對(duì)借閱者的相關(guān)信息進(jìn)行封裝,由manage()函數(shù)為用戶提供友好的界面

6、方便用戶的選擇,creat()函數(shù)實(shí)現(xiàn)對(duì)借閱者信息的新建,rework()函數(shù)對(duì)圖書的修改,delet()函數(shù)對(duì)圖書的刪除等功能;(3)再定義一個(gè)record 類對(duì)借閱者的相關(guān)借閱信息的記錄和一個(gè)派生類mulclass 由函數(shù)manage()實(shí)現(xiàn)友好界面,borrow()函數(shù)實(shí)現(xiàn)借閱者借閱圖書的有關(guān)信息是否能借閱,back()函數(shù)實(shí)現(xiàn)借閱者歸還書的相關(guān)信息,book_query()函數(shù)實(shí)現(xiàn)相關(guān)圖書資料的查詢,user_query()函數(shù)實(shí)現(xiàn)借閱者歷史的查詢;(4)定義主函數(shù),使用switch語句根據(jù)用戶的輸入信息與所要實(shí)現(xiàn)的相關(guān)功能的函數(shù)匹配來實(shí)現(xiàn)用戶的目的。2系統(tǒng)分析 人類對(duì)問題的認(rèn)識(shí)由一個(gè)

7、逐步深入的過程,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法就比較適合人來認(rèn)識(shí)問題的客觀規(guī)律。對(duì)具體問題進(jìn)行分析、抽象,將其中的一些屬性和行為抽象成相應(yīng)的數(shù)據(jù)和函數(shù),封裝到類中,用這個(gè)類在計(jì)算機(jī)中描述顯示世界中的問題。這里將完成一個(gè)圖書借閱系統(tǒng)程序的設(shè)計(jì),把借閱者和圖書的信息分別封裝在類中。系統(tǒng)中是運(yùn)用C+的主要特點(diǎn)對(duì)各個(gè)不同功能要求設(shè)計(jì)一個(gè)函數(shù)來實(shí)現(xiàn),而這些函數(shù)由設(shè)計(jì)為相應(yīng)不同類的共有成員,而數(shù)據(jù)則設(shè)計(jì)為是由成員,用戶通過清晰的界面進(jìn)入完成想要實(shí)現(xiàn)的功能。先理清思路然后畫出大概的流程圖,設(shè)計(jì)一個(gè)比較清楚的程序,改程序主要是分別完成對(duì)圖書和借閱者的新建、修改、刪除相關(guān)信息的查詢。而圖書和讀者信息應(yīng)保存在相應(yīng)的文件中

8、。 2.1功能需求 設(shè)計(jì)一個(gè)圖書類book,包括圖書的新建、修改、刪除和借閱者類user包括借閱者的新建、修改、刪除,mulclass類則實(shí)現(xiàn)圖書的借閱和歸還,查詢圖書和借閱這借閱的歷史,其中設(shè)計(jì)一個(gè)record 類對(duì)實(shí)現(xiàn)對(duì)借閱者的相關(guān)借閱信息的記錄,其中在mulclass類內(nèi)嵌子對(duì)象abook、arecord和asuer。用I/O流對(duì)象引用作參數(shù)的成員函數(shù)實(shí)現(xiàn)文件存取,便于查詢、修改和刪除。完成借閱者對(duì)圖書借閱的查詢,瀏覽所有圖書信息,查詢自己借閱圖書的信息,管理者修改借閱者和圖書的信息 ,刪除信息等并關(guān)閉系統(tǒng)功能。各子函數(shù)要求實(shí)現(xiàn)如下功能:1. 新建圖書的信息在文件中2. 對(duì)圖書信息的修改

9、3. 對(duì)圖書館現(xiàn)不存在的圖書刪除4新建借閱者的有關(guān)信息在文件中5. 對(duì)借閱者信息的修改6. 對(duì)不存在的借閱者刪除7. 對(duì)要借圖書的信息查詢8. 對(duì)歸還圖書的操作9. 對(duì)圖書管里圖書信息的查詢10. 對(duì)借閱者歷史信息的查詢??傮w要求1. 該系統(tǒng)要求利用面向?qū)ο蟮某绦蛟O(shè)計(jì)過程即使用C+的編程思想來完成基本的設(shè)計(jì)。2. 要求突出函數(shù)的特征,以多個(gè)函數(shù)實(shí)現(xiàn)每一個(gè)子功能。3. 畫出功能模版圖,采用簡單的界面設(shè)計(jì)。4. 有清晰的程序流程圖和數(shù)據(jù)結(jié)構(gòu)的詳細(xì)定義。本人所做的模塊(1) book類各成員有:如圖2.1book類String name;String no;book();book();void ma

10、nage();void creat();void rework();void delete(); 圖2.1 (2) user類各成員有:如圖2.2 user類String name;String no;user();user();void manage();void creat();void rework();void delete(); 圖2.2(3) record類的成員有:如圖2.3record類record()record()user ausebook abookstring borrowTimestring backTimestring backTime 圖2.3(4) 派生mulc

11、lass類的成員有:如圖2.4mulclass類book abook;record arecorduser auser;mulclass();mulclass();void manage();void borrow();void back();void query-inter();void book-query();void user-query();book get-abook();user get-auser(); 3設(shè)計(jì)思路 構(gòu)建一主函數(shù)通過mulclass object對(duì)象把其他類的公有成員聯(lián)系起來,用switch( ) 函數(shù)建立菜單然后進(jìn)入不同菜單中根據(jù)用戶通過數(shù)字鍵的選擇完成對(duì)所需

12、不同功能對(duì)應(yīng)函數(shù)的調(diào)用。根據(jù)題目要求詳細(xì)設(shè)計(jì)了如下4個(gè)類,且各個(gè)類中各函數(shù)實(shí)現(xiàn)的作用如下: 1. book類主要是實(shí)現(xiàn)對(duì)管理、新建、修改、刪除成員函數(shù)和圖書名和其編號(hào)的封裝 其中公有成員函數(shù): manage( ):實(shí)現(xiàn)用戶進(jìn)入的友好界面功能;creat( ): 實(shí)現(xiàn)管理者對(duì)圖書的新建功能;rework( ): 實(shí)現(xiàn)對(duì)圖書信息的修改功能;delet( ): 實(shí)現(xiàn)對(duì)圖書信息的刪除功能。其中私有數(shù)據(jù)成員為圖書的名字和編號(hào)。2. user類主要是實(shí)現(xiàn)對(duì)管理、新建、修改、刪除成員函數(shù)和借閱者姓名和其編號(hào)的封裝。其中公有成員函數(shù): manage( ):實(shí)現(xiàn)用戶進(jìn)入的友好界面功能;creat( ): 實(shí)現(xiàn)管

13、理者對(duì)借閱者新成員的新建功能;rework( ): 實(shí)現(xiàn)對(duì)借閱者信息的修改功能;delet( ): 實(shí)現(xiàn)對(duì)借閱者信息的刪除功能。其中私有數(shù)據(jù)成員為借閱者的姓名和編號(hào)。3. record類主要是實(shí)現(xiàn)對(duì)一些借閱者信息的封裝保護(hù)。 內(nèi)嵌借閱者對(duì)象,圖書對(duì)象。將借閱的時(shí)間,應(yīng)還時(shí)間,是否超時(shí)定義為私有數(shù)據(jù)成員。4 mulclass類是將接圖書,還圖書,圖書信息的查詢,借閱者借閱歷史的查詢和以上設(shè)計(jì)的各個(gè)類的對(duì)象封裝在一起。其中各公有函數(shù)成員的作用: manage( ):實(shí)現(xiàn)為用戶提供界面的功能; borrow( ): 實(shí)現(xiàn)借圖書信息查詢的功能; back( ): 實(shí)現(xiàn)還圖書的功能: query_int

14、er( ):實(shí)現(xiàn)用戶查閱信息提供的界面的功能; book_query( ): 實(shí)現(xiàn)圖書信息的查閱; user_query(): 實(shí)現(xiàn)借閱者借閱歷史的查詢。4.總體設(shè)計(jì) 主函數(shù) 圖書借閱歸還用戶信息管理圖書信息管理 信息查詢 退出系統(tǒng)返回借閱歷史圖書查詢 返回 還書借書刪除修改新建 刪除 修改新建5.回查詢- 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9

15、 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9

16、 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 - 9 -5.5555 55555詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.1 主函數(shù)的闡述函數(shù)原型:int main()設(shè)計(jì)思路:通過switch()建立菜單,每個(gè)數(shù)字對(duì)應(yīng)一個(gè)大的功能函數(shù),聲明一個(gè)mulclass 的對(duì)象object,通過對(duì)象名訪問類中所需的函數(shù),用戶就可以進(jìn)入系統(tǒng)根據(jù)自己想要實(shí)現(xiàn)的要求選擇不同的數(shù)字鍵對(duì)不同功能函數(shù)的調(diào)用。核心代碼:char inter_face()cout << endl << endl;cout << "t=" << e

17、ndl << "t+ +" << endl << "t+ 圖 書 借 閱 系 統(tǒng) +" << endl << "t+ +" << endl << "t+ 1. 圖書信息管理 +" << endl << "t+ +" << endl << "t+ 2. 用戶信息管理 +" << endl << "t+ +"

18、; << endl << "t+ 3. 圖書借閱/歸還 +" << endl << "t+ +" << endl << "t+ 4. 信息查詢 +" << endl << "t+ +" << endl << "t+ 5. 退出系統(tǒng) +" << endl << "t+ +" << endl << "t=

19、" << endl << endl;cout << "ttt"return getchar();int main()mulclass object;while (1)switch (inter_face()case '1': object.get_abook().manage();break;case '2':object.get_asuer().manage();break;case '3':object.manage();break;case '4':objec

20、t.query_inter();break;case '5':cout << endl << "tt謝謝使用!" << endl << endl << "tt"exit(0);break;default:break;return 0;運(yùn)行結(jié)果:如圖5.1所示 圖 5.15.2圖書信息管理模塊的具體闡述 函數(shù)原型:void book:manage()設(shè)計(jì)思路:通過switch()建立菜單,管理員可以根據(jù)上面的提示選擇想要實(shí)現(xiàn)的功能,每個(gè)數(shù)字對(duì)應(yīng)一個(gè)實(shí)現(xiàn)功能不同的函數(shù)??梢愿鶕?jù)選擇不

21、同的數(shù)字鍵來實(shí)現(xiàn)圖書的新建、修改、刪除功能。核心代碼:void book:manage()while (1)cout << endl;cout << "t" << endl << "t " << endl << "t 圖書信息管理 " << endl << "t " << endl << "t 1. 新建 " << endl << "t &qu

22、ot; << endl << "t 2. 修改 " << endl << "t " << endl << "t 3. 刪除 " << endl << "t " << endl << "t 4. 返回 " << endl << "t " << endl << "t" << endl

23、 << endl;cout << "ttt"switch (getchar()case '1':creat();break;case '2':rework();break;case '3':delet();break;case '4':return;break;default:break;運(yùn)行結(jié)果:如圖5.2 圖5.25.2.1圖書信息管理中的新建模塊的闡述:函數(shù)原型:void book:creat()設(shè)計(jì)思路:先打開一個(gè)名為bookfile文件一寫的方式將圖書新的信息寫入文件中并保存。

24、核心代碼:void book:creat()cout << endl << "根據(jù)提示輸入新的圖書信息" << endl << endl; cout << "圖書名字 : "cin >> name;cout << endl << " 編號(hào) : "cin >> no;ofstream bookfile;bookfile.open("total.txt", ios:out);/打開文件并輸寫bookfile &l

25、t;< setiosflags(ios:left) << setw(20) << name << " "<< no << endl;bookfile.close();cout << endl << endl << "新圖書信息已經(jīng)保存!" << endl << endl;運(yùn)行結(jié)果:如圖5.3 圖 5.35.2.2圖書信息管理中的修改模塊函數(shù)原型:void book:rewok設(shè)計(jì)思路:先輸入想要修改的圖書編號(hào),打開bookfile

26、所指向名為total的文件,將里面的信息讀出來,然后再打開一個(gè)名為temp的文件將修改的信息存在里面。在設(shè)計(jì)思路過程中主要是根據(jù)輸入的信息與已經(jīng)存在文件里的信息相比較。核心代碼:void book:rework()string findno;cout << endl << "修改圖書信息" << endl << endl;cout << "請(qǐng)輸入要修改的圖書編號(hào) : "cin >> findno;ifstream bookfile;bookfile.open("total.

27、txt",ios:in);if (!bookfile)cout << endl << "對(duì)不起信息庫為空!" << endl << endl;return;bool flag = false; ofstream temp;temp.open("temp.txt",ios:out);while (bookfile >> name >> no)if (no = findno)flag = true;cout << endl << "你想修的圖書

28、信息如下 : " << endl << endl;cout << "圖書名字 : " << name << endl << endl<< " 編號(hào) : " << no << endl << endl << endl;cout << "請(qǐng)?jiān)谙旅孑斎胄碌男畔?: " << endl << endl;cout << "圖書名字 : "

29、cin >> name;cout << endl << " 編號(hào) : "cin >> no;temp << setiosflags(ios:left) << setw(20) << name << " "<< no << endl;else temp << setiosflags(ios:left) << setw(20) << name << " " <<

30、 no << endl;bookfile.close();temp.close();if (flag)ofstream bookfile1("total.txt");ifstream temp1("temp.txt");bookfile1 << temp1.rdbuf() << endl;cout << endl << "新信息已經(jīng)保存!" << endl << endl;elsecout << endl << "庫中

31、沒有你想找的圖書!" << endl << endl;運(yùn)行結(jié)果:如圖5.4 圖5.45.2.3圖書信息管理中的刪除模塊函數(shù)原型:void book:delete()設(shè)計(jì)思路:輸入用戶想要?jiǎng)h除的圖書信息,用讀出的方式打開total文件,用寫的方式打開temp文件記錄刪除的信息,完成后關(guān)閉文件。核心代碼:void book:delet()string delno;cout << endl << "刪除信息 " << endl << endl;cout << "輸入你想刪除圖書

32、的編號(hào) : "cin >> delno; ifstream bookfile;bookfile.open("total.txt",ios:in);if (!bookfile)cout << endl << "對(duì)不起信息庫為空!" << endl << endl;return; bool flag = false;ofstream temp;temp.open("temp.txt",ios:out);while (bookfile >> name >

33、> no)if (no =delno)flag = true;cout << endl << "你想刪除的圖書信息如下 : " << endl << endl;cout << "圖書名字 : " << name << endl << endl;cout << " 編號(hào) : " << no << endl << endl; cout << "你確定要?jiǎng)h除它嗎(y/n)

34、 : "getchar();if (getchar() = 'n')cout << endl << endl << "圖書信息沒有刪除!" << endl << endl;return;elsetemp << setiosflags(ios:left) << setw(20) << name << " "<< no << endl; cout << endl << endl

35、<< "圖書信息已經(jīng)成功刪除!" << endl<< endl;temp.close();bookfile.close(); if (flag)ofstream bookfile1;bookfile1.open("total.txt");ifstream temp1("temp.txt"); bookfile1 << temp1.rdbuf() << endl;bookfile1.close();temp1.close();else cout << endl &l

36、t;< "庫中沒有這個(gè)圖書的信息!" << endl << endl;運(yùn)行結(jié)果:如圖5.5 圖 5.55.3借閱者信息管理模塊的具體闡述函數(shù)原型:void user: manage()設(shè)計(jì)思路:通過switch()建立菜單,方便用戶的使用,用戶根據(jù)上面的提示輸入不同的數(shù)字鍵實(shí)現(xiàn)不同的功能,該過程主要包括了讀者信息的新建、修改、刪除這三個(gè)子函數(shù)。核心代碼:void user:manage()while (1)cout << endl;cout << "t" << endl <<

37、"t " << endl << "t 用戶信息管理 " << endl << "t " << endl << "t 1. 新建 " << endl << "t " << endl << "t 2. 修改 " << endl << "t " << endl << "t 3. 刪除 &

38、quot; << endl << "t " << endl << "t 4. 返回 " << endl << "t " << endl << "t" << endl << endl;cout << "ttt"switch (getchar()case '1':creat();break;case '2':rework();break;

39、case '3':delet();break;case '4':return;break;default:break;運(yùn)行結(jié)果:如圖5.6 圖 5.65.3.1用戶信息管理中的新建模塊函數(shù)原型:void user:creat()設(shè)計(jì)思路:先輸入借閱者的相關(guān)信息用寫的方式打開名為userfile的文件將借閱者的相關(guān)信息記錄保存下來,文成后關(guān)閉文件。核心代碼:void user:creat()cout << endl << "新建用戶" << endl << endl;cout << &

40、quot;請(qǐng)根據(jù)提示輸入新的用戶信息 : " << endl << endl;cout << "用戶名 : "cin >> name;cout << endl << " 編號(hào) : "cin >> no;ofstream userfile;userfile.open("total.txt", ios:out);userfile << setiosflags(ios:left) << setw(20) << n

41、ame << " "<< no << endl;userfile.close();cout << endl << "新用戶信息已經(jīng)保存!" << endl << endl;運(yùn)行結(jié)果:如圖5.7 圖5.7 5.3.2用戶信息管理中的修改模塊函數(shù)原型:void user:rework()設(shè)計(jì)思路:輸入想要修改的借閱者的編號(hào),以讀的方式打開userfile文件所指的名為total的文件將記錄的借閱者的信息讀出來,在以寫的方式打開userfile文件所指的temp文件將修改的借閱

42、者的信息記錄在里面。核心代碼: void user:rework()string findno;cout << endl << "修改用戶信息" << endl << endl;cout << "輸入想修改的用戶編號(hào) : "cin >> findno;ifstream userfile;userfile.open("total.txt",ios:in);if (!userfile)cout << endl << "對(duì)不起,沒有這個(gè)

43、用戶的信息!" << endl << endl;return;bool flag = false;ofstream temp;temp.open("temp.txt",ios:out);while (userfile >> name >> no)if (no = findno)flag = true;cout << endl << "你想修改的用戶信息如下 : " << endl << endl;cout << "姓名 : &q

44、uot; << name << endl << endl;cout << "編號(hào) : " << no << endl << endl;cout << "請(qǐng)?jiān)谙旅孑斎胄碌男畔?: " << endl << endl;cout << "用戶名 : "cin >> name;cout << endl << " 編號(hào) : "cin >> no;t

45、emp << setiosflags(ios:left) << setw(20) << name << " "<< no << endl;else temp << setiosflags(ios:left) << setw(20) << name << " "<< no << endl;temp.close();userfile.close();if (flag)ofstream userfile1("

46、total.txt");ifstream temp1("temp.txt");userfile1 << temp1.rdbuf() << endl;userfile1.close();temp1.close();cout << endl << "新信息已經(jīng)成功保存!" << endl << endl;elsecout << endl << "對(duì)不起,沒有這個(gè)用戶的信息!" << endl << endl;

47、運(yùn)行結(jié)果:如圖5.8 圖5.8用戶信息管理中的刪除模塊函數(shù)原型:void user:delet()設(shè)計(jì)思路:輸入想刪除的讀者信息,用讀的方式打開total文件將保存的信息讀出來,用寫的方式打開temp文件來記錄修改的借閱者的信息,然后關(guān)閉文件。核心代碼:void user:delet()cout << endl << "刪除用戶信息" << endl << endl;string findno;cout << "請(qǐng)輸入你想刪的用戶編號(hào) : "cin >> findno;ifstrea

48、m userfile;userfile.open("total.txt",ios:in);if (!userfile)cout << endl << "對(duì)不起,用戶信息庫為空!" << endl << endl;return;bool flag = false;ofstream temp;temp.open("temp.txt",ios:out);while (userfile >> name >> no)if (no = findno)flag = true;c

49、out << endl << "你想刪除的用戶信息如下 : " << endl << endl;cout << "姓名 : " << name << endl << endl;cout << "編號(hào) : " << no << endl << endl;cout << "你確定在刪除嗎(y/n) : "getchar();if (getchar() = '

50、n')temp.close();userfile.close();cout << endl << "信息沒有更改!" << endl << endl;return;elsetemp << setiosflags(ios:left) << setw(20) << name << " "<< no << endl;cout << endl << endl << "該用戶信息已經(jīng)成功刪除!

51、" << endl<< endl;temp.close();userfile.close();if (flag)ofstream userfile1;userfile1.open("total.txt");ifstream temp1("temp.txt");userfile1 << temp1.rdbuf() << endl;userfile1.close();temp1.close();elsecout << endl << endl << "對(duì)不

52、起, 沒有該用戶的信息 !" << endl << endl;運(yùn)行結(jié)果:如圖5.9 圖 5.95.4圖書借閱歸還模塊的具體闡述函數(shù)原型:void mulclass:manage()設(shè)計(jì)思路:通過switch()建立菜單,用戶根據(jù)菜單上的提示選擇不同的數(shù)字鍵來實(shí)現(xiàn)自己所想要實(shí)現(xiàn)的功能函數(shù),此菜單主要提供了用戶借書和還書的功能,方便人們的選擇。核心代碼:void mulclass:manage()while (1)cout << endl << endl;cout << "t圖書借閱/歸還" <<

53、 endl << endl;cout << "t 1. 借圖書" << endl << endl<< "t 2. 還圖書" << endl << endl<< "t 3. 返回" << endl << endl;cout << "tt"switch (getchar()case '1':borrow();break;case '2':back();break

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論