歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > DOC文檔下載  

c--圖書(shū)信息管理系統(tǒng)(附源碼)(共42頁(yè))

  • 資源ID:61316218       資源大小:676KB        全文頁(yè)數(shù):42頁(yè)
  • 資源格式: DOC        下載積分:0積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要0積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢(xún)和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付說(shuō)明:
本站最低充值0.01積分,下載本資源后余額將會(huì)存入您的賬戶,您可在我的個(gè)人中心查看。
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

c--圖書(shū)信息管理系統(tǒng)(附源碼)(共42頁(yè))

精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué)號(hào): 計(jì)算機(jī)實(shí)習(xí)報(bào)告系 別:管理系專(zhuān) 業(yè):信息管理與信息系統(tǒng)專(zhuān)業(yè)班 級(jí):1043班學(xué)生姓名:李 優(yōu)指導(dǎo)教師:徐 日日 期:2012-09-032012-09-14專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)1需求分析1.1 選題任務(wù)圖書(shū)借閱管理系統(tǒng)(1) 編程工具C+(2) 要求選題學(xué)生應(yīng)具有端正的學(xué)習(xí)態(tài)度、正常的交流能力,應(yīng)有積極主動(dòng)、克服困難的學(xué)習(xí)意識(shí)(3) 本題概述以學(xué)院圖書(shū)館為例,圖書(shū)借與管理是一項(xiàng)經(jīng)常性工作,為使圖書(shū)借閱管理工作準(zhǔn)確高效,提供圖書(shū)借閱記錄的添加、修改、刪除、查詢(xún)、瀏覽、匯總等,用圖書(shū)借閱關(guān)系軟件,能有效提高工作效率,具有較強(qiáng)的實(shí)際意義。(4) 功能描述 能度日外部提供的包含圖書(shū)借閱信息的文本文件(TXT文件); 能在程序中錄入圖書(shū)借閱信息(可參考我院圖書(shū)館網(wǎng)上圖書(shū)借閱信息的各個(gè)項(xiàng)目),并將信息寫(xiě)入文本文件(TXT文件); 能對(duì)所有圖書(shū)借閱信息,按條件(按圖書(shū)名、圖書(shū)編號(hào)、借閱日期、借閱人、超期與否、超期天數(shù)等)查詢(xún)?yōu)g覽,能匯總統(tǒng)計(jì)計(jì)算出符合某條件的圖書(shū)借閱記錄的數(shù)量并瀏覽這些借閱信息,能將查詢(xún)、瀏覽、匯總的結(jié)果輸出結(jié)果文本文件(TXT文件)(5) 輔助說(shuō)明基礎(chǔ)要求:+擴(kuò)展要求:+1.2 輸入數(shù)據(jù)和輸出數(shù)據(jù)形式:程序中包含的圖書(shū)信息包括: char bnum20; /書(shū)號(hào) char bname20; /書(shū)名char bauthor10; /作者char rname10; /借閱人char bdays10; /借出日期char bchao10; /超期天數(shù)為了方便,我全部設(shè)置成了char型。而程序中包含兩種輸入方式和兩種輸出方式,對(duì)應(yīng)題目要求,分別是:?jiǎn)蝹€(gè)圖書(shū)信息的增刪查改;TXT文檔的導(dǎo)入(圖書(shū)數(shù)據(jù)庫(kù).txt);屏幕的打?。籘XT文檔的導(dǎo)出(書(shū)籍信息.txt)。1.3 測(cè)試數(shù)據(jù)及測(cè)試目的字母測(cè)試,錯(cuò)誤數(shù)據(jù)測(cè)試,重復(fù)數(shù)據(jù)測(cè)試目的:產(chǎn)看本程序的糾錯(cuò)能力和是否人性化。2程序設(shè)計(jì)2.1 關(guān)鍵數(shù)據(jù)類(lèi)型定義 /*書(shū)籍結(jié)構(gòu)體,用于存放書(shū)籍基本信息*class Bookprivate: char bnum20; /書(shū)號(hào) char bname20; /書(shū)名char bauthor10; /作者char rname10; /借閱人char bdays10; /借出日期char bchao10; /超期天數(shù)public:Book() /構(gòu)造函數(shù)初始化信息void set_bnum(char *no) /設(shè)置書(shū)號(hào)char *get_bnum() /獲得書(shū)號(hào)void set_bname(char *n) /設(shè)置書(shū)名char *get_bname() /獲得書(shū)名void set_bauthor(char *a) /設(shè)置作者char *get_bauthor() /獲得作者姓名void set_bdays(char *d) /設(shè)置借出日期char *get_bdays() /獲得借出日期void set_bchao(char *c) /設(shè)置超出天數(shù)char *get_bchao() /獲得超出天數(shù)void set_rname(char *rn) /設(shè)置借閱人char *get_rname() /獲得借閱人姓名 void copy(Book m) /Book結(jié)構(gòu)體copy函數(shù) ;/class book/*書(shū)籍管理結(jié)構(gòu)體,實(shí)現(xiàn)管理書(shū)籍功能*class BookManageprivate: Book books100; /定義Book書(shū)籍結(jié)構(gòu)體數(shù)組對(duì)象,最大容量100本public:int length; BookManage() /構(gòu)造函數(shù),讀取磁盤(pán)文件int add(Book book) /添加圖書(shū)資料int bnu_search(char *bnu) /按書(shū)號(hào)查找書(shū)籍int bna_search(char *bna) /按書(shū)名查找書(shū)籍int bau_search(char *bau) /按作者查找書(shū)籍int rn_search(char *rn) /按借閱人查找書(shū)籍int bd_search(char *bd) /按借出日期查找書(shū)籍 int bc_search(char *bc) /按超期天數(shù)查找書(shū)籍void revise(Book book,int i) /修改書(shū)籍函數(shù)void deleteBook(int index) /刪除書(shū)籍資料函數(shù)void show_bookhead() /顯示輸出列表,表頭。void show_book(int i)/顯示書(shū)籍函數(shù)void saveFileHead() /保存書(shū)籍文件的表頭到txtvoid saveFile(int i)/帶參的輸出書(shū)籍到txtvoid readFile() /讀取書(shū)籍文件;/ class BookManage/*菜單結(jié)構(gòu)體,實(shí)現(xiàn)界面引導(dǎo)*class MenuBookManage bm; /定義書(shū)籍管理結(jié)構(gòu)體對(duì)象bmprivate:int choice; /菜單序號(hào)選擇int key; /管理員密碼public:void header() /首頁(yè)歡迎界面void log_menu() /主界面登錄菜單void admin_menu() /管理菜單void absearch_menu() /查找書(shū)籍菜單void log_admin() /密碼登陸void rn_search() /按借閱人姓名查找函數(shù)void bnu_search() /按書(shū)號(hào)查找函數(shù)void bna_search() /按書(shū)名查找函數(shù)void bau_search() /按作者查找函數(shù)void bd_search() /按借閱日期查找函數(shù)void bc_search() /按超期天數(shù)查找函數(shù)void addBook() /添加新的書(shū)籍信息函數(shù)void reviseBook() /修改書(shū)籍函數(shù)void delBook() /刪除書(shū)籍函數(shù)int main()2.2 主程序流程圖開(kāi)始判斷是否進(jìn)入并輸入密碼3:刪除已有圖書(shū)資料4:查找已有圖書(shū)資料5:查看所有圖書(shū)資料6:讀取指定位置TXT7: 寫(xiě)入指定位置TXT8:返回系統(tǒng)登錄界面0: 退出圖書(shū)管理系統(tǒng)1:添加新的圖書(shū)資料2:修改已有圖書(shū)資料輸入書(shū)號(hào)判斷書(shū)號(hào)是否重復(fù)輸入要修改的書(shū)號(hào)判斷存在輸入要?jiǎng)h除的書(shū)號(hào)判斷存在退出系統(tǒng)按超期查找按作者查找按編號(hào)查找按日期查找按書(shū)名查找重新輸入書(shū)號(hào)刪除 書(shū)籍重新輸入書(shū)號(hào)修改數(shù)據(jù)重新輸入新書(shū)號(hào)添加書(shū)籍2.3 調(diào)用關(guān)系1.書(shū)籍信息的錄入:void set_bnum(char *no) /設(shè)置書(shū)號(hào)strcpy(bnum,no); /把字符串no中的字符復(fù)制到字符串bnum中char *get_bnum() /獲得書(shū)號(hào) return bnum; /返回值為bnum void set_bname(char *n) /設(shè)置書(shū)名 strcpy(bname,n); char *get_bname() /獲得書(shū)名 return bname; void set_bauthor(char *a) /設(shè)置作者 strcpy(bauthor,a); char *get_bauthor() /獲得作者姓名 return bauthor; void set_bdays(char *d) /設(shè)置借出日期 strcpy(bdays,d); char *get_bdays() /獲得借出日期 return bdays; void set_bchao(char *c) /設(shè)置超出天數(shù) strcpy(bchao,c); char *get_bchao() /獲得超出天數(shù) return bchao; void set_rname(char *rn) /設(shè)置借閱人 strcpy(rname,rn); char *get_rname() /獲得借閱人姓名 return rname;2.書(shū)籍信息的添加: int add(Book book) 判斷l(xiāng)ength是否達(dá)到最大值,如果沒(méi)有則進(jìn)行添加。3書(shū)籍信息的查找:無(wú)論是按照書(shū)號(hào)、書(shū)名、作者、借閱人、借出日期、超期天數(shù)來(lái)進(jìn)行查找都是進(jìn)行挨個(gè)比較,如果遇到相同則返回書(shū)籍的i值,進(jìn)行返回輸出。4.書(shū)籍信息的修改:輸入想要修改的書(shū)籍編號(hào),按照查找的方法,找到i,然后進(jìn)行覆蓋。完成修改。5.書(shū)籍的屏幕打印輸出:分兩部分輸出,首先打印一個(gè)頭信息,相當(dāng)于列表的頭;然后利用循環(huán)語(yǔ)句帶參輸出(i為參數(shù),循環(huán))。6.保存信息到txt文件:同分為兩部分,類(lèi)似屏幕打印的方法,先存入表頭,然后帶參循環(huán)存入書(shū)籍信息。帶參的意義就是,可以無(wú)限調(diào)用該語(yǔ)句,只要知道書(shū)的序號(hào)i。7.從信息中讀取txt文件:struct books char numb10; /書(shū)號(hào) char nameb20; /書(shū)名 char authorb10; /作者 char namer10; /借閱人 char daysb10; /借出日期 char chaob10; /超期天數(shù);定義結(jié)構(gòu)體。利用fscanf()語(yǔ)句講讀取的數(shù)據(jù)按順序存入結(jié)構(gòu)體中。然后直接利用書(shū)籍添加函數(shù)直接寫(xiě)入系統(tǒng)。3調(diào)試分析3.1主要問(wèn)題及解決方案:1.界面顏色設(shè)定:一直拋棄黑底白字這種默認(rèn)形式,換一種顏色給人特殊的感覺(jué),在網(wǎng)上找到相關(guān)的代碼為system("color *");語(yǔ)句。但是也是沒(méi)有頭緒不知道怎么調(diào)試,后來(lái)一不小心設(shè)置錯(cuò)誤,系統(tǒng)就彈出了提示界面,我就明白了界面顏色的設(shè)置方法(圖3.1):圖3.12.關(guān)于書(shū)籍的cout輸出:最開(kāi)始設(shè)計(jì)輸出模塊時(shí)候,僅僅是想到了不帶參的book信息輸出,show_book()函數(shù)中自帶了一個(gè)for語(yǔ)句循環(huán)輸出所有書(shū)籍信息,是為顯示全部書(shū)籍設(shè)計(jì)的。但是后來(lái)發(fā)現(xiàn)如果要單顯示篩選信息就要從新寫(xiě)一個(gè)帶參show_book(int i),雖然函數(shù)重載允許這樣做,但是卻無(wú)意義的增加了代碼長(zhǎng)度。我選擇刪除了不帶參的show_book(),把for語(yǔ)句循環(huán)寫(xiě)在外面。這樣就增加了show_book(int i)函數(shù)的利用率,精簡(jiǎn)了函數(shù)的和長(zhǎng)度。3.書(shū)籍信息的txt寫(xiě)入:綜合了屏幕打印的經(jīng)驗(yàn),鑒于fwrite和cout使用方法和顯示效果類(lèi)似,我決定將txt的寫(xiě)入語(yǔ)句也設(shè)置成帶參形式saveFile(int i),原理與show_book(int i)基本一致。完成這些就能實(shí)現(xiàn)。后來(lái)發(fā)現(xiàn)文件總是覆蓋,每次寫(xiě)入都會(huì)將上一次的覆蓋,也就是只有最后一行,后來(lái)才想起了ios:app追加模式,才最終算完整實(shí)現(xiàn)。4.讀取數(shù)據(jù)函數(shù):這個(gè)函數(shù)是我編輯最久的,因?yàn)槭褂玫牟皇炀?,我先查找了很多資料,并且寫(xiě)了一些單獨(dú)的小程序去測(cè)試效果,但是感覺(jué)都不理想。后來(lái)選擇了一個(gè)最笨的方法,利用fseek函數(shù)一格一格的挑開(kāi)空格和無(wú)用信息。但是這樣做最大的缺點(diǎn)就是,我的txt導(dǎo)入文檔鼻息保持固定格式,一格空格都不能多,如果多了就會(huì)導(dǎo)致錯(cuò)位。后來(lái)與徐老師交流時(shí),老師也說(shuō)這種輸入方法不可取,因?yàn)閷?shí)現(xiàn)了功能但是意義不大。規(guī)格太死,不夠人性化。于是我就退后開(kāi)始,重新選擇語(yǔ)句。最后決定定義結(jié)構(gòu)體,把txt中信息讀取之后直接存入結(jié)構(gòu)體,隨后就把結(jié)構(gòu)體中的數(shù)據(jù)利用set_xxxx函數(shù)存入。5.關(guān)于字母糾錯(cuò)及錯(cuò)誤輸入的處理:字母輸入原來(lái)都是用fflush(stdin);來(lái)清空緩存來(lái)防止程序進(jìn)入死循環(huán)。但是我這次編程想到了一個(gè)更加簡(jiǎn)單有效的方法:利用char 來(lái)存儲(chǔ)選擇,隨后強(qiáng)轉(zhuǎn)為int型,其實(shí)就是講所有的字符轉(zhuǎn)為了asc2碼,因?yàn)閍cs2碼的唯一性,我就可以用switch直接跳過(guò)了字母部分,比如我要判斷i的輸入是否唯1,我就將i-48寫(xiě)入switch判斷就好了。 4使用說(shuō)明4.1 主要功能介紹及操作步驟:1.主界面: 選擇1登陸,密碼為1043,按任意鍵進(jìn)入系統(tǒng)。2.系統(tǒng)操作界面:直接輸入數(shù)字選擇功能。1: 添加新的圖書(shū)資料:2: 修改已有圖書(shū)資料: 3: 刪除已有圖書(shū)資料:4: 查找已有圖書(shū)資料:根據(jù)序號(hào)選擇功能:按書(shū)名查找: 按作者查找:按借出日期查找: 按超期天數(shù)查找:5: 查看所有圖書(shū)資料: 6: 讀取指定位置TXT: 7: 寫(xiě)入指定位置TXT: 5測(cè)試結(jié)果5.1 測(cè)試數(shù)據(jù)1A 4 asdfasdf(多字母):1000 /目的為測(cè)試重復(fù)編號(hào)的問(wèn)題2.修改時(shí)候輸入未知編號(hào):3.查找時(shí) 5.2 測(cè)試目的 1、測(cè)試學(xué)號(hào)重復(fù)2、測(cè)試字母和特殊字符對(duì)輸入的影響3、測(cè)試篩選是否符合規(guī)格5.3 測(cè)試結(jié)果 全部通過(guò)6心得體會(huì)經(jīng)歷了為期十天的編程實(shí)習(xí),我覺(jué)得我變得更加成熟了,我從一開(kāi)始的迷茫到后來(lái)的目標(biāo)堅(jiān)定,這都是一個(gè)改變的過(guò)程。因?yàn)槭窃谑罴偾熬瓦x好了題目,而且提前也知道了題目的要求。所以我在暑假就做好的了充分的準(zhǔn)備。其實(shí)最開(kāi)始想自學(xué)用VC+來(lái)編寫(xiě)一個(gè)可視化的程序。但是實(shí)施起來(lái)卻沒(méi)有那么容易,因?yàn)槲覍W(xué)習(xí)的VC不系統(tǒng)不全面只是一些皮毛,改改別的還可以,但是要是真正想實(shí)現(xiàn)自己的思想就有點(diǎn)捉襟見(jiàn)肘。后決定還是先用比較熟悉的C+語(yǔ)言來(lái)編一個(gè)完整的系統(tǒng)。雖然以前有做過(guò)C+的實(shí)驗(yàn)。但是像這種完成的系統(tǒng)確實(shí)沒(méi)有經(jīng)歷過(guò)。其實(shí)這也是一個(gè)挑戰(zhàn),也是一個(gè)開(kāi)始,是我們接觸完整系統(tǒng)的開(kāi)始。等快開(kāi)學(xué)時(shí)候我已經(jīng)完成了大部分代碼:但是有一些問(wèn)題還是沒(méi)有解決,我開(kāi)學(xué)后就開(kāi)始全力去解決這些問(wèn)題。偏偏事與愿違,關(guān)于文件讀取問(wèn)題始終沒(méi)有找到好的解決辦法。最后還是從c+教科書(shū)上找到的靈感來(lái)解決這些問(wèn)題。收獲很大。本次學(xué)習(xí)中我有以下收獲:1、明確了c與c+的區(qū)別,運(yùn)用了多種c+知識(shí),包括一開(kāi)始就沒(méi)弄太明白的文件輸入輸出,這回事真正弄明白了。2、復(fù)習(xí)了類(lèi)和結(jié)構(gòu)體的知識(shí),但是繼承類(lèi)沒(méi)有用到。以后還要多加復(fù)習(xí)。3、第一次編寫(xiě)之后,運(yùn)行之后有50多個(gè)錯(cuò)誤,大多數(shù)都是因?yàn)轳R虎造成的。以后還要多加此類(lèi)的練習(xí)熟能生巧。4、多多利用網(wǎng)絡(luò)資源,看網(wǎng)上的類(lèi)似的代碼能夠開(kāi)闊自己的思路,學(xué)習(xí)別人好的算法。學(xué)習(xí)有很大幫助。5、先寫(xiě)出流程圖這樣是非常好的一種習(xí)慣,可以為后面寫(xiě)程序打下好的基礎(chǔ)。6、養(yǎng)成好習(xí)慣,一個(gè)一個(gè)模塊寫(xiě),寫(xiě)好了立即執(zhí)行看是否有錯(cuò)誤,以防都寫(xiě)完了,錯(cuò)誤卻沒(méi)法去改正。10天的編程已經(jīng)接近尾聲,但是總覺(jué)得要完善我的選題仍有許多要做的工作。以后還要加強(qiáng)自己的學(xué)習(xí)。努力學(xué)習(xí)編程。感謝徐老師的指導(dǎo)。 7附錄#include <iostream>#include <iomanip> #include <string>#include <fstream> #include <conio.h>using namespace std;/*書(shū)籍結(jié)構(gòu)體,用于存放書(shū)籍基本信息*class Bookprivate: char bnum20; /書(shū)號(hào) char bname20; /書(shū)名char bauthor10; /作者char rname10; /借閱人char bdays10; /借出日期char bchao10; /超期天數(shù)public:Book() /構(gòu)造函數(shù)初始化信息 strcpy(bnum,"");strcpy(bname,"");strcpy(bauthor,"");strcpy(rname,"");strcpy(bdays,""); strcpy(bchao,""); void set_bnum(char *no) /設(shè)置書(shū)號(hào) strcpy(bnum,no); /把字符串no中的字符復(fù)制到字符串bnum中 char *get_bnum() /獲得書(shū)號(hào) return bnum; /返回值為bnum void set_bname(char *n) /設(shè)置書(shū)名 strcpy(bname,n); char *get_bname() /獲得書(shū)名 return bname; void set_bauthor(char *a) /設(shè)置作者 strcpy(bauthor,a); char *get_bauthor() /獲得作者姓名 return bauthor; void set_bdays(char *d) /設(shè)置借出日期 strcpy(bdays,d); char *get_bdays() /獲得借出日期 return bdays; void set_bchao(char *c) /設(shè)置超出天數(shù) strcpy(bchao,c); char *get_bchao() /獲得超出天數(shù) return bchao; void set_rname(char *rn) /設(shè)置借閱人 strcpy(rname,rn); char *get_rname() /獲得借閱人姓名 return rname; void copy(Book m) /Book結(jié)構(gòu)體copy函數(shù) strcpy(bnum,m.get_bnum(); /將獲得書(shū)號(hào)函數(shù)里的返回值里的字符復(fù)制到bnum strcpy(bname,m.get_bname(); strcpy(bauthor,m.get_bauthor(); strcpy(rname,m.get_rname(); strcpy(bdays,m.get_bdays(); strcpy(bchao,m.get_bchao(); ;/*書(shū)籍管理結(jié)構(gòu)體,實(shí)現(xiàn)管理書(shū)籍功能*class BookManageprivate: Book books100; /定義Book書(shū)籍結(jié)構(gòu)體數(shù)組對(duì)象,最大容量100本public:int length; BookManage() /構(gòu)造函數(shù),讀取磁盤(pán)文件 length=0; /從頭讀起,計(jì)數(shù),最大100 BookManage() /析構(gòu)函數(shù),保存磁盤(pán)文件 int add(Book book) /添加圖書(shū)資料/ if(length>=100) cout<<"對(duì)不起,儲(chǔ)存已滿,您無(wú)法繼續(xù)添加!n" return -1; else bookslength.copy(book); /調(diào)用書(shū)籍結(jié)構(gòu)體copy函數(shù) length+; return (length-1);int bnu_search(char *bnu) /按書(shū)號(hào)查找書(shū)籍 for(int i=0;i<length;i+) if(strcmp(booksi.get_bnum(),bnu)=0) /字符串比較,判斷是否相等 return i; return -1; int bna_search(char *bna) /按書(shū)名查找書(shū)籍 for(int i=0;i<length;i+) if(strcmp(booksi.get_bname(),bna)=0) /判斷 return i; return -1; int bau_search(char *bau) /按作者查找書(shū)籍 for(int i=0;i<length;i+) if(strcmp(booksi.get_bauthor(),bau)=0)/判斷 return i; return -1; int rn_search(char *rn) /按借閱人查找書(shū)籍 for(int i=0;i<length;i+) if(strcmp(booksi.get_rname(),rn)=0)/判斷 return i; return -1; int bd_search(char *bd) /按借出日期查找書(shū)籍 for(int i=0;i<length;i+) if(strcmp(booksi.get_bdays(),bd)=0)/判斷 return i; return -1; int bc_search(char *bc) /按超期天數(shù)查找書(shū)籍 for(int i=0;i<length;i+)if(strcmp(booksi.get_bchao(),bc)=0)/判斷return i;return -1; void revise(Book book,int i) /修改書(shū)籍函數(shù) booksi.copy(book); /調(diào)用Book結(jié)構(gòu)體copy函數(shù)void deleteBook(int index) /刪除書(shū)籍資料函數(shù) for(int i=index;i<length-1;i+) booksi.copy(booksi+1);/用后面的地址將當(dāng)前的地址覆蓋 length-; void show_bookhead() /顯示輸出列表,表頭。cout<<" *書(shū)*籍*信*息*列*表*nn" cout<<"書(shū)號(hào)" cout.width(15); cout<<"書(shū)名" cout.width(15); cout<<"作者" cout.width(15); cout<<"借閱人"cout.width(15); cout<<"借出日期"cout.width(15); cout<<"超期天數(shù)n"void show_book(int i)/顯示書(shū)籍函數(shù) cout<<booksi.get_bnum(); cout.width(15); cout<<booksi.get_bname(); cout.width(15); cout<<booksi.get_bauthor(); cout.width(15); cout<<booksi.get_rname(); cout.width(15); cout<<booksi.get_bdays(); cout.width(15); cout<<booksi.get_bchao()<<"n" void saveFileHead() /保存書(shū)籍文件的表頭到txtofstream fwrite("書(shū)籍信息.txt",ios:app); if(!fwrite)cout<<"文件保存失敗!n" exit(1);fwrite<<" *書(shū)*籍*信*息*列*表*nn" fwrite<<"書(shū)號(hào)" fwrite.width(15); fwrite<<"書(shū)名" fwrite.width(15); fwrite<<"作者" fwrite.width(15); fwrite<<"借閱人"fwrite.width(15); fwrite<<"借出日期"fwrite.width(15); fwrite<<"超期天數(shù)n"fwrite.close(); /關(guān)閉磁盤(pán)文件void saveFile(int i)/帶參的輸出書(shū)籍到txt ofstream fwrite("書(shū)籍信息.txt",ios:app); fwrite<<booksi.get_bnum(); fwrite.width(15); fwrite<<booksi.get_bname(); fwrite.width(15); fwrite<<booksi.get_bauthor(); fwrite.width(15); fwrite<<booksi.get_rname(); fwrite.width(15); fwrite<<booksi.get_bdays(); fwrite.width(15); fwrite<<booksi.get_bchao()<<"n"fwrite.close(); /關(guān)閉磁盤(pán)文件 void readFile() /讀取書(shū)籍文件 struct books char numb10; /書(shū)號(hào) char nameb20; /書(shū)名 char authorb10; /作者 char namer10; /借閱人 char daysb10; /借出日期 char chaob10; /超期天數(shù);Book book; /書(shū)籍結(jié)構(gòu)體對(duì)象bookbooks form100;FILE *fp;if (NULL=(fp=fopen("圖書(shū)數(shù)據(jù)庫(kù).txt","r")printf("file not open!n");exit(0); fseek(fp,40,SEEK_SET); /跳開(kāi)表頭40字節(jié)for(int i=0;i<5;i+) fscanf(fp, "%s", &formi.numb);fscanf(fp, "%s", &formi.nameb);fscanf(fp, "%s", &formi.authorb);fscanf(fp, "%s", &formi.namer);fscanf(fp, "%s", &formi.daysb);fscanf(fp, "%s", &formi.chaob);book.set_bnum(formi.numb);book.set_bname(formi.nameb);book.set_bauthor(formi.authorb); book.set_rname(formi.namer); book.set_bdays(formi.daysb);book.set_bchao(formi.chaob);BookManage:add(book);fflush(stdin); /總是溢出,終于想去了清空緩存,就好了,呵呵fclose(fp); ; /*菜單結(jié)構(gòu)體,實(shí)現(xiàn)界面引導(dǎo)*class MenuBookManage bm; /定義書(shū)籍管理結(jié)構(gòu)體對(duì)象bmprivate:char choice; /菜單序號(hào)選擇 int key; /管理員密碼public:int check(int m) /檢查語(yǔ)句/*int q;dowhile(!(q=scanf("%ld",&m)|getchar()!='n') fflush(stdin);printf("輸入錯(cuò)誤,請(qǐng)重新輸入:");while(q=0);(int) m;*/return m;void header() /首頁(yè)歡迎界面/system("color A9");cout<<"t n"cout<<"t n"cout<<"t n" cout<<"t n"cout<<"t n"cout<<"t n"_sleep(1000);cout<<"t n"cout<<"t n"cout<<"t BESTI 北 京 電 子 科 技 學(xué) 院 n"cout<<"t =n"cout<<"t 圖 書(shū) 借 閱 管 理 系 統(tǒng) 1.0 n"cout<<"t n"cout<<"t n"_sleep(600);void log_menu() /主界面登錄菜單/system("color fd");header();cout<<"nttt< 請(qǐng) 選 擇 是 否 進(jìn) 入 >n"cout<<"ntttt1: 進(jìn) 入 系 統(tǒng)nntttt0: 退 出nt您的選擇是: "choice: cin>>choice;cin.ignore(); /清除以回車(chē)結(jié)束的輸入緩沖區(qū)的內(nèi)容,消除上一次輸入對(duì)下一次輸入的影響int check(choice); /檢查語(yǔ)句switch(check-48)case 1: log_admin(); /登錄,需密碼驗(yàn)證break;case 0:exit(1); /退出系統(tǒng)break;default:cout<<"nt您的操作有誤,請(qǐng)重新選擇(01): "fflush(stdin);goto choice;void admin_menu() /管理菜單 system("cls");/system("color f9");cout<<"t n"cout<<"t n"cout<<"t *系*統(tǒng)*管*理*界*面*n"cout<<"t n"cout<<"t 1: 添加新的圖書(shū)資料 2: 修改已有圖書(shū)資料 n"cout<<"t n"cout<<"t 3: 刪除已有圖書(shū)資料 4: 查找已有圖書(shū)資料 n"cout<<"t n"cout<<"t 5: 查看所有圖書(shū)資料 6: 讀取指定位置TXT n"cout<<"t n"cout<<"t 7: 寫(xiě)入指定位置TXT 8:返回系統(tǒng)登錄界面 n"cout<<"t n"cout<<"t 0: 退出圖書(shū)管理系統(tǒng) n"cout<<"t n"cout<<"t n"cout<<"t n"cout<<"nt請(qǐng)選擇您需要的服務(wù)序號(hào): "choice: cin>>choice;cin.ignore(); int check(choice); /檢查語(yǔ)句switch(check-48) case 1: /添加圖書(shū) addBook();bm.BookManage(); break; case 2: /修改圖書(shū)reviseBook();bm.BookManage();break;case 3: /刪除圖書(shū)delBook();bm.BookManage();break;case 4: /查找圖書(shū)absearch_menu();break;case 5: /查看全部圖書(shū)bm.show_bookhead();for(int j=0;j<bm.length;j+)bm.show_book(j);cout<<"nt顯示完畢!"system("pause");admin_menu();break;case 6:cout<<"請(qǐng)將命名為圖書(shū)數(shù)據(jù)庫(kù).txt的文件放置在程序所在目錄下。"<<endl;cout<<"放置完成后,"system("pause");bm.readFile();cout<<"請(qǐng)稍后.系統(tǒng)正在處理中."<<endl;_sleep(1000);cout<<"導(dǎo)入成功!顯示全部書(shū)籍。"<<endl;_sleep(1000);bm.show_bookhead();for(int j=0;j<bm.length;j+)bm.show_book(j);cout<<"nt顯示完畢!"system("pause");admin_menu();break;case 7:cout<<"講程序保存在當(dāng)前目錄下,名為:書(shū)籍信息.txt"<<endl;bm.saveFileHead();for(int j=0;j<bm.length;j+)bm.saveFile(j);cout<<"請(qǐng)稍后.系統(tǒng)正在處理中."<<endl;_sleep(1000);cout<<"生成成功!請(qǐng)前往程序所在目錄查詢(xún)。即將返回主菜單!"<<endl;_sleep(2000);admin_menu();case 8: /返回系統(tǒng)登錄界面system("cls"); log_menu(); case 0: /退出系統(tǒng) exit(1);break; default: cout<<"nt您的操作有誤,請(qǐng)重新選擇(08): "fflush(stdin);goto choice;void absearch_menu() /查找書(shū)籍菜單 system("cls");/system("color f2"); cout<<"tttn"cout<<"ttt n" cout<<"ttt*書(shū)*籍*查*找*界*面*n" cout<<"ttt n" cout<<"ttt 1: 按 編號(hào)查找 n" cout<<"ttt n" cout<<"ttt 2: 按 書(shū)名查找 n" cout<<"ttt n" cout<<"ttt 3: 按 作者查找 n"cout<<"ttt n" cout<<"ttt 4: 按 日期查找 n"cout<<"ttt n" cout<<"ttt 5: 按 超期查找 n" cout<<"ttt n" cout<<"ttt 6: 返 回 上 級(jí) n" cout<<"ttt n" cout<<"ttt 0: 退 出 系 統(tǒng) n"cout<<"ttt n" cout<<"tttn" char bsc; /book search choicecout<<"nt請(qǐng)輸入您需要的服務(wù)序號(hào): " cin>>bsc; cin.ignore(); int check(bsc); /檢查語(yǔ)句switch(check-48) case 1: bnu_search(); break; case 2: bna_search(); break; case 3: bau_search(); break; case 4: bd_search(); break; case 5: bc_search(); break; case 6:

注意事項(xiàng)

本文(c--圖書(shū)信息管理系統(tǒng)(附源碼)(共42頁(yè)))為本站會(huì)員(494895****12427)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!