c--圖書信息管理系統(tǒng)(附源碼)(共42頁(yè))
《c--圖書信息管理系統(tǒng)(附源碼)(共42頁(yè))》由會(huì)員分享,可在線閱讀,更多相關(guān)《c--圖書信息管理系統(tǒng)(附源碼)(共42頁(yè))(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-----傾情為你奉上 學(xué)號(hào): 計(jì)算機(jī)實(shí)習(xí)報(bào)告 系 別:管理系 專 業(yè):信息管理與信息系統(tǒng)專業(yè) 班 級(jí):1043班 學(xué)生姓名:李 優(yōu) 指導(dǎo)教師:徐 日 日 期:2012-09-03~2012-09-14 專心---專注---專業(yè) 1需求分析 1.1 選題任務(wù) 圖書借閱管理系統(tǒng) (1) 編程工具 C++ (2) 要求 選題學(xué)生應(yīng)具有端正的學(xué)習(xí)態(tài)度、正常的交流能力,應(yīng)有積極主動(dòng)、克服困難的學(xué)習(xí)意識(shí) (3) 本題概述 以學(xué)院圖書館為
2、例,圖書借與管理是一項(xiàng)經(jīng)常性工作,為使圖書借閱管理工作準(zhǔn)確高效,提供圖書借閱記錄的添加、修改、刪除、查詢、瀏覽、匯總等,用圖書借閱關(guān)系軟件,能有效提高工作效率,具有較強(qiáng)的實(shí)際意義。 (4) 功能描述 ① 能度日外部提供的包含圖書借閱信息的文本文件(TXT文件); ② 能在程序中錄入圖書借閱信息(可參考我院圖書館網(wǎng)上圖書借閱信息的各個(gè)項(xiàng)目),并將信息寫入文本文件(TXT文件); ③ 能對(duì)所有圖書借閱信息,按條件(按圖書名、圖書編號(hào)、借閱日期、借閱人、超期與否、超期天數(shù)等)查詢?yōu)g覽,能匯總統(tǒng)計(jì)計(jì)算出符合某條件的圖書借閱記錄的數(shù)量并瀏覽這些借閱信息,能將查詢、瀏覽、匯總的結(jié)果輸出結(jié)果文本文件
3、(TXT文件) (5) 輔助說明 基礎(chǔ)要求:①+② 擴(kuò)展要求:①+②+③ 1.2 輸入數(shù)據(jù)和輸出數(shù)據(jù)形式: 程序中包含的圖書信息包括: char bnum[20]; //書號(hào) char bname[20]; //書名 char bauthor[10]; //作者 char rname[10]; //借閱人 char bdays[10]; //借出日期 char bchao[10]; //超期天數(shù) 為了方便,我全部設(shè)置成了char型。 而程序中包含兩種輸入
4、方式和兩種輸出方式,對(duì)應(yīng)題目要求,分別是:?jiǎn)蝹€(gè)圖書信息的增刪查改;TXT文檔的導(dǎo)入(圖書數(shù)據(jù)庫(kù).txt);屏幕的打??;TXT文檔的導(dǎo)出(書籍信息.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ù)類型定義 //********書籍結(jié)構(gòu)體,用于存放書籍基本信息******** class Book { private: char bnum[20]; //書號(hào) char bname[20]; //書名 char baut
5、hor[10]; //作者 char rname[10]; //借閱人 char bdays[10]; //借出日期 char bchao[10]; //超期天數(shù) public: Book() //構(gòu)造函數(shù)初始化信息 void set_bnum(char *no) //設(shè)置書號(hào) char *get_bnum() //獲得書號(hào) void set_bname(char *n) //設(shè)置書名 char *get_bname() //獲得書
6、名 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() //獲得借閱人姓名
7、 void copy(Book m) //Book結(jié)構(gòu)體copy函數(shù) };//class book //**********書籍管理結(jié)構(gòu)體,實(shí)現(xiàn)管理書籍功能********** class BookManage { private: Book books[100]; //定義Book書籍結(jié)構(gòu)體數(shù)組對(duì)象,最大容量100本 public: int length; BookManage() //構(gòu)造函數(shù),讀取磁盤文件 int add(Book book) //添加圖書資料 int bnu_searc
8、h(char *bnu) //按書號(hào)查找書籍 int bna_search(char *bna) //按書名查找書籍 int bau_search(char *bau) //按作者查找書籍 int rn_search(char *rn) //按借閱人查找書籍 int bd_search(char *bd) //按借出日期查找書籍 int bc_search(char *bc) //按超期天數(shù)查找書籍 void revise(Book book,int i) //修改書籍函數(shù) void deleteBook(int index) //刪除書籍資料函
9、數(shù) void show_bookhead() //顯示輸出列表,表頭。 void show_book(int i)//顯示書籍函數(shù) void saveFileHead() ///保存書籍文件的表頭到txt void saveFile(int i) //帶參的輸出書籍到txt void readFile() //讀取書籍文件 };// class BookManage //**********菜單結(jié)構(gòu)體,實(shí)現(xiàn)界面引導(dǎo)********** class Menu { BookManage bm; //定義書籍管理結(jié)構(gòu)體對(duì)象bm private:
10、 int choice; //菜單序號(hào)選擇 int key; //管理員密碼 public: void header() //首頁(yè)歡迎界面 void log_menu() //主界面登錄菜單 void admin_menu() //管理菜單 void absearch_menu() //查找書籍菜單 void log_admin() //密碼登陸 void rn_search() //按借閱人姓名查找函數(shù) void bnu_search() //按書號(hào)查找函數(shù) void bna_search(
11、) //按書名查找函數(shù) void bau_search() //按作者查找函數(shù) void bd_search() //按借閱日期查找函數(shù) void bc_search() //按超期天數(shù)查找函數(shù) void addBook() //添加新的書籍信息函數(shù) void reviseBook() //修改書籍函數(shù) void delBook() //刪除書籍函數(shù) int main() 2.2 主程序流程圖 開始 判斷是否進(jìn)入并輸入密碼 3:刪除已有圖書資料 4:查找已有圖書資料 5:查看所有圖書資料 6:讀取指
12、定位置 TXT 7: 寫入指定位置TXT 8:返回系統(tǒng)登錄界面 0: 退出圖書管理系統(tǒng) 1:添加新的圖書資料 2:修改已有圖書資料 輸入書號(hào)判斷書號(hào)是否重復(fù) 輸入要修改的書號(hào)判斷存在 輸入要?jiǎng)h除的書號(hào)判斷存在 退出系統(tǒng) 按超期查找 按作者查找 按編號(hào)查找 按日期查找 按書名查找 重新輸入書號(hào) 刪除 書籍 重新輸入書號(hào) 修改數(shù)據(jù) 重新輸入新書號(hào) 添加書籍 2.3 調(diào)用關(guān)系 1.書籍信息的錄入: void set_bnum(char *no) //設(shè)置書號(hào)
13、 {strcpy(bnum,no);} //把字符串no中的字符復(fù)制到字符串bnum中 char *get_bnum() //獲得書號(hào) { return bnum;} //返回值為bnum void set_bname(char *n) //設(shè)置書名 {strcpy(bname,n);} char *get_bname() //獲得書名 {return bname;} void set_bauthor(char *a) //
14、設(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);} cha
15、r *get_bchao() //獲得超出天數(shù) {return bchao;} void set_rname(char *rn) //設(shè)置借閱人 {strcpy(rname,rn);} char *get_rname() //獲得借閱人姓名 {return rname;} 2.書籍信息的添加: int add(Book book) 判斷l(xiāng)ength是否達(dá)到最大值,如果沒有則進(jìn)行添加。 3.書籍信息的查找: 無論是按照書號(hào)、書名、作者、借閱人、借出日期、超期天數(shù)來進(jìn)行查找都是進(jìn)行
16、挨個(gè)比較,如果遇到相同則返回書籍的i值,進(jìn)行返回輸出。 4.書籍信息的修改: 輸入想要修改的書籍編號(hào),按照查找的方法,找到i,然后進(jìn)行覆蓋。完成修改。 5.書籍的屏幕打印輸出: 分兩部分輸出,首先打印一個(gè)頭信息,相當(dāng)于列表的頭;然后利用循環(huán)語(yǔ)句帶參輸出(i為參數(shù),循環(huán))。 6.保存信息到txt文件: 同分為兩部分,類似屏幕打印的方法,先存入表頭,然后帶參循環(huán)存入書籍信息。帶參的意義就是,可以無限調(diào)用該語(yǔ)句,只要知道書的序號(hào)i。 7.從信息中讀取txt文件: struct books { char numb[10]; //書號(hào) char nameb[20
17、]; //書名 char authorb[10]; //作者 char namer[10]; //借閱人 char daysb[10]; //借出日期 char chaob[10]; //超期天數(shù) }; 定義結(jié)構(gòu)體。利用fscanf()語(yǔ)句講讀取的數(shù)據(jù)按順序存入結(jié)構(gòu)體中。然后直接利用書籍添加函數(shù)直接寫入系統(tǒng)。 3調(diào)試分析 3.1主要問題及解決方案: 1.界面顏色設(shè)定: 一直拋棄黑底白字這種默認(rèn)形式,換一種顏色給人特殊的感覺,在網(wǎng)上找到相關(guān)的代碼為system("color **");語(yǔ)句。但是也是沒有
18、頭緒不知道怎么調(diào)試,后來一不小心設(shè)置錯(cuò)誤,系統(tǒng)就彈出了提示界面,我就明白了界面顏色的設(shè)置方法(圖3.1): 圖3.1 2.關(guān)于書籍的cout輸出: 最開始設(shè)計(jì)輸出模塊時(shí)候,僅僅是想到了不帶參的book信息輸出,show_book()函數(shù)中自帶了一個(gè)for語(yǔ)句循環(huán)輸出所有書籍信息,是為顯示全部書籍設(shè)計(jì)的。但是后來發(fā)現(xiàn)如果要單顯示篩選信息就要從新寫一個(gè)帶參show_book(int i),雖然函數(shù)重載允許這樣做,但是卻無意義的增加了代碼長(zhǎng)度。我選擇刪除了不帶參的show_book(),把for語(yǔ)句循環(huán)寫在外面。這樣就增加了show_book(int i)函數(shù)的利用率,精簡(jiǎn)了函數(shù)的和長(zhǎng)度
19、。 3.書籍信息的txt寫入: 綜合了屏幕打印的經(jīng)驗(yàn),鑒于fwrite和cout使用方法和顯示效果類似,我決定將txt的寫入語(yǔ)句也設(shè)置成帶參形式saveFile(int i),原理與show_book(int i)基本一致。完成這些就能實(shí)現(xiàn)。后來發(fā)現(xiàn)文件總是覆蓋,每次寫入都會(huì)將上一次的覆蓋,也就是只有最后一行,后來才想起了ios::app追加模式,才最終算完整實(shí)現(xiàn)。 4.讀取數(shù)據(jù)函數(shù): 這個(gè)函數(shù)是我編輯最久的,因?yàn)槭褂玫牟皇炀殻蚁炔檎伊撕芏噘Y料,并且寫了一些單獨(dú)的小程序去測(cè)試效果,但是感覺都不理想。后來選擇了一個(gè)最笨的方法,利用fseek函數(shù)一格一格的挑開空格和無用信息。但是這樣做
20、最大的缺點(diǎn)就是,我的txt導(dǎo)入文檔鼻息保持固定格式,一格空格都不能多,如果多了就會(huì)導(dǎo)致錯(cuò)位。后來與徐老師交流時(shí),老師也說這種輸入方法不可取,因?yàn)閷?shí)現(xiàn)了功能但是意義不大。規(guī)格太死,不夠人性化。于是我就退后開始,重新選擇語(yǔ)句。最后決定定義結(jié)構(gòu)體,把txt中信息讀取之后直接存入結(jié)構(gòu)體,隨后就把結(jié)構(gòu)體中的數(shù)據(jù)利用set_xxxx函數(shù)存入。 5.關(guān)于字母糾錯(cuò)及錯(cuò)誤輸入的處理: 字母輸入原來都是用fflush(stdin);來清空緩存來防止程序進(jìn)入死循環(huán)。但是我這次編程想到了一個(gè)更加簡(jiǎn)單有效的方法:利用char 來存儲(chǔ)選擇,隨后強(qiáng)轉(zhuǎn)為int型,其實(shí)就是講所有的字符轉(zhuǎn)為了asc2碼,因?yàn)閍cs2碼的唯
21、一性,我就可以用switch直接跳過了字母部分,比如我要判斷i的輸入是否唯1,我就將i-48寫入switch判斷就好了。 4使用說明 4.1 主要功能介紹及操作步驟: 1.主界面: 選擇1登陸,密碼為1043,按任意鍵進(jìn)入系統(tǒng)。 2.系統(tǒng)操作界面: 直接輸入數(shù)字選擇功能。 1: 添加新的圖書資料: 2: 修改已有圖書資料: 3: 刪除已有圖書資料: 4: 查找已有圖書資料: 根據(jù)序號(hào)選擇功能: 按書名查找: 按作者查找: 按借出日期查找: 按超期天數(shù)
22、查找: 5: 查看所有圖書資料: 6: 讀取指定位置TXT: 7: 寫入指定位置TXT: 5測(cè)試結(jié)果 5.1 測(cè)試數(shù)據(jù) 1.A 4 asdfasdf(多字母): 1000 //目的為測(cè)試重復(fù)編號(hào)的問題 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é)果 全部通過 6心得體會(huì) 經(jīng)歷了為期十天的編程實(shí)習(xí),我覺得我變得更加成熟了
23、,我從一開始的迷茫到后來的目標(biāo)堅(jiān)定,這都是一個(gè)改變的過程。因?yàn)槭窃谑罴偾熬瓦x好了題目,而且提前也知道了題目的要求。所以我在暑假就做好的了充分的準(zhǔn)備。其實(shí)最開始想自學(xué)用VC++來編寫一個(gè)可視化的程序。但是實(shí)施起來卻沒有那么容易,因?yàn)槲覍W(xué)習(xí)的VC不系統(tǒng)不全面只是一些皮毛,改改別的還可以,但是要是真正想實(shí)現(xiàn)自己的思想就有點(diǎn)捉襟見肘。后決定還是先用比較熟悉的C++語(yǔ)言來編一個(gè)完整的系統(tǒng)。雖然以前有做過C++的實(shí)驗(yàn)。但是像這種完成的系統(tǒng)確實(shí)沒有經(jīng)歷過。其實(shí)這也是一個(gè)挑戰(zhàn),也是一個(gè)開始,是我們接觸完整系統(tǒng)的開始。 等快開學(xué)時(shí)候我已經(jīng)完成了大部分代碼: 但是有一些問題還是沒有解決,我開學(xué)后就開始全力去解
24、決這些問題。偏偏事與愿違,關(guān)于文件讀取問題始終沒有找到好的解決辦法。最后還是從c++教科書上找到的靈感來解決這些問題。收獲很大。 本次學(xué)習(xí)中我有以下收獲: 1、明確了c與c++的區(qū)別,運(yùn)用了多種c++知識(shí),包括一開始就沒弄太明白的文件輸入輸出,這回事真正弄明白了。 2、復(fù)習(xí)了類和結(jié)構(gòu)體的知識(shí),但是繼承類沒有用到。以后還要多加復(fù)習(xí)。 3、第一次編寫之后,運(yùn)行之后有50多個(gè)錯(cuò)誤,大多數(shù)都是因?yàn)轳R虎造成的。以后還要多加此類的練習(xí)熟能生巧。 4、多多利用網(wǎng)絡(luò)資源,看網(wǎng)上的類似的代碼能夠開闊自己的思路,學(xué)習(xí)別人好的算法。 學(xué)習(xí)有很大幫助。 5、先寫出流程圖這樣是非常好的一種習(xí)慣,可以為后面
25、寫程序打下好的基礎(chǔ)。
6、養(yǎng)成好習(xí)慣,一個(gè)一個(gè)模塊寫,寫好了立即執(zhí)行看是否有錯(cuò)誤,以防都寫完了,錯(cuò)誤卻沒法去改正。
10天的編程已經(jīng)接近尾聲,但是總覺得要完善我的選題仍有許多要做的工作。以后還要加強(qiáng)自己的學(xué)習(xí)。努力學(xué)習(xí)編程。感謝徐老師的指導(dǎo)。
7附錄
#include
26、體,用于存放書籍基本信息******** class Book { private: char bnum[20]; //書號(hào) char bname[20]; //書名 char bauthor[10]; //作者 char rname[10]; //借閱人 char bdays[10]; //借出日期 char bchao[10]; //超期天數(shù) public: Book() //構(gòu)造函數(shù)初始化信息 { strcpy(bnum
27、,""); strcpy(bname,""); strcpy(bauthor,""); strcpy(rname,""); strcpy(bdays,""); strcpy(bchao,""); } void set_bnum(char *no) //設(shè)置書號(hào) {strcpy(bnum,no);} //把字符串no中的字符復(fù)制到字符串bnum中 char *get_bnum() //獲得書號(hào) { return bnum;} //返回
28、值為bnum void set_bname(char *n) //設(shè)置書名 {strcpy(bname,n);} char *get_bname() //獲得書名 {return bname;} void set_bauthor(char *a) //設(shè)置作者 {strcpy(bauthor,a);} char *get_bauthor() //獲得作者姓名 {return bauthor;} void set_bd
29、ays(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è)置借閱人 {strcp
30、y(rname,rn);} char *get_rname() //獲得借閱人姓名 {return rname;} void copy(Book m) //Book結(jié)構(gòu)體copy函數(shù) { strcpy(bnum,m.get_bnum()); //將獲得書號(hào)函數(shù)里的返回值里的字符復(fù)制到bnum strcpy(bname,m.get_bname()); strcpy(bauthor,m.get_bauthor()); strcpy(rnam
31、e,m.get_rname()); strcpy(bdays,m.get_bdays()); strcpy(bchao,m.get_bchao()); } }; //**********書籍管理結(jié)構(gòu)體,實(shí)現(xiàn)管理書籍功能********** class BookManage { private: Book books[100]; //定義Book書籍結(jié)構(gòu)體數(shù)組對(duì)象,最大容量100本 public: int length; BookManage() //構(gòu)造函數(shù),
32、讀取磁盤文件 { length=0; //從頭讀起,計(jì)數(shù),最大100 } ~BookManage() //析構(gòu)函數(shù),保存磁盤文件 { } int add(Book book) //添加圖書資料///////////// { if(length>=100) { cout<<"對(duì)不起,儲(chǔ)存已滿,您無法繼續(xù)添加!\n"; return -1; } else { books[le
33、ngth].copy(book); //調(diào)用書籍結(jié)構(gòu)體copy函數(shù)
length++;
return (length-1);
}
}
int bnu_search(char *bnu) //按書號(hào)查找書籍
{
for(int i=0;i 34、nt bna_search(char *bna) //按書名查找書籍
{
for(int i=0;i 35、t_bauthor(),bau)==0)//判斷
return i;
return -1;
}
int rn_search(char *rn) //按借閱人查找書籍
{
for(int i=0;i 36、
{
for(int i=0;i 37、
return -1;
}
void revise(Book book,int i) //修改書籍函數(shù)
{
books[i].copy(book);
} //調(diào)用Book結(jié)構(gòu)體copy函數(shù)
void deleteBook(int index) //刪除書籍資料函數(shù)
{
for(int i=index;i 38、
length--;
}
void show_bookhead() //顯示輸出列表,表頭。
{
cout<<" **********************書****籍****信****息****列****表**********************\n\n";
cout<<"書號(hào)";
cout.width(15);
cout<<"書名";
cout.width(15);
cout<<"作者";
cout.width(15);
39、 cout<<"借閱人";
cout.width(15);
cout<<"借出日期";
cout.width(15);
cout<<"超期天數(shù)\n";
}
void show_book(int i)//顯示書籍函數(shù)
{
cout< 40、r();
cout.width(15);
cout< 41、e)
{
cout<<"文件保存失敗!\n"; exit(1);
}
fwrite<<" **********************書****籍****信****息****列****表**********************\n\n";
fwrite<<"書號(hào)";
fwrite.width(15);
fwrite<<"書名";
fwrite.width(15);
fwrite<<"作者";
fwrite.width(15);
fwrite<<"借閱人";
fwrite.width(15);
42、 fwrite<<"借出日期";
fwrite.width(15);
fwrite<<"超期天數(shù)\n";
fwrite.close(); //關(guān)閉磁盤文件
}
void saveFile(int i) //帶參的輸出書籍到txt
{
ofstream fwrite("書籍信息.txt",ios::app);
fwrite< 43、.width(15);
fwrite< 44、e() //讀取書籍文件
{
struct books
{
char numb[10]; //書號(hào)
char nameb[20]; //書名
char authorb[10]; //作者
char namer[10]; //借閱人
char daysb[10]; //借出日期
char chaob[10]; //超期天數(shù)
};
Book book; //書籍結(jié)構(gòu)體對(duì)象book
books form[100];
FILE * 45、fp;
if (NULL==(fp=fopen("圖書數(shù)據(jù)庫(kù).txt","r")))
{
printf("file not open!\n");
exit(0);
}
fseek(fp,40,SEEK_SET); //跳開表頭40字節(jié)
for(int i=0;i<5;i++)
{
fscanf(fp, "%s", &form[i].numb);
fscanf(fp, "%s", &form[i].nameb);
fscanf(fp, "%s", &form[i].authorb);
fscanf 46、(fp, "%s", &form[i].namer);
fscanf(fp, "%s", &form[i].daysb);
fscanf(fp, "%s", &form[i].chaob);
book.set_bnum(form[i].numb);
book.set_bname(form[i].nameb);
book.set_bauthor(form[i].authorb);
book.set_rname(form[i].namer);
book.set_bdays(form[i].daysb);
book.set_bcha 47、o(form[i].chaob);
BookManage::add(book);
fflush(stdin); //總是溢出,終于想去了清空緩存,就好了,呵呵
}
fclose(fp);
}
};
//**********菜單結(jié)構(gòu)體,實(shí)現(xiàn)界面引導(dǎo)**********
class Menu
{
BookManage bm; //定義書籍管理結(jié)構(gòu)體對(duì)象bm
private:
char choice; //菜單序號(hào)選擇
int key; //管理員密碼
p 48、ublic:
int check(int m) //檢查語(yǔ)句
{
/* int q;
do{
while(!(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 ┎════┰ 49、════┒\n";
cout<<"\t ║﹎﹎﹎﹎┃﹎﹎﹎﹎║\n";
cout<<"\t ║﹎﹎﹎﹎┃﹎﹎﹎﹎║\n";
cout<<"\t ║﹎﹎╱╲┃ ﹎﹎﹎ ║\n";
cout<<"\t ║﹎﹎◣╱┃﹎﹎﹎﹎║\n";
cout<<"\t ┖════┸════┚\n";
_sleep(1000);
cout<<"\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n";
cout<<"\t ※ 50、 ※\n";
cout<<"\t ※ BESTI 北 京 電 子 科 技 學(xué) 院 ※\n";
cout<<"\t ※====================================================※\n";
cout<<"\t ※ 圖 書 借 閱 管 理 系 統(tǒng) 1.0 ※\n";
cout<<"\t ※ 51、 ※\n";
cout<<"\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n";
_sleep(600);
}
void log_menu() //主界面登錄菜單
{
// system("color fd");
header();
cout<<"\n\t\t\t< 請(qǐng) 選 擇 是 否 進(jìn) 入 >\n";
cout<<"\n\t\t\t\t1: 進(jìn) 入 系 統(tǒng)\n\n\t\t\t\t0: 退 出\n\t您的選擇是: ";
choice: cin>>choice;
ci 52、n.ignore(); //清除以回車結(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<<"\n\t您的操作有誤,請(qǐng)重新選擇(0→1): ";
fflush(stdin);
goto choice; 53、
}
}
void admin_menu() //管理菜單
{
system("cls");
// system("color f9");
cout<<"\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n";
cout<<"\t ※ ※\n";
cout<<"\t ※****************系**統(tǒng)**管**理**界**面**************※\n";
cout<<"\t 54、※ ※\n";
cout<<"\t ※ 1: 添加新的圖書資料 2: 修改已有圖書資料 ※\n";
cout<<"\t ※ ※\n";
cout<<"\t ※ 3: 刪除已有圖書資料 4: 查找已有圖書資料 ※\n";
cout<<"\t ※ 55、 ※\n";
cout<<"\t ※ 5: 查看所有圖書資料 6: 讀取指定位置TXT ※\n";
cout<<"\t ※ ※\n";
cout<<"\t ※ 7: 寫入指定位置TXT 8:返回系統(tǒng)登錄界面 ※\n";
cout<<"\t ※ ※\n";
cout<<" 56、\t ※ 0: 退出圖書管理系統(tǒng) ※\n";
cout<<"\t ※ ※\n";
cout<<"\t ※ ※\n";
cout<<"\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n";
cout<<"\n\t請(qǐng)選擇您需要的服務(wù)序號(hào): ";
choice: cin>>ch 57、oice;
cin.ignore();
int check(choice); //檢查語(yǔ)句
switch(check-48)
{
case 1: //添加圖書
addBook();
bm.~BookManage();
break;
case 2: //修改圖書
reviseBook();
bm.~BookManage();
break;
case 3: //刪除圖書
delBook();
bm.~BookMan 58、age();
break;
case 4: //查找圖書
absearch_menu();
break;
case 5: //查看全部圖書
{
bm.show_bookhead();
for(int j=0;j 59、 {
cout<<"請(qǐng)將命名為圖書數(shù)據(jù)庫(kù).txt的文件放置在程序所在目錄下。"< 60、m.show_book(j);}
cout<<"\n\t顯示完畢!";
system("pause");
admin_menu();
break;
}
case 7:
{
cout<<"講程序保存在當(dāng)前目錄下,名為:書籍信息.txt"< 61、
_sleep(1000);
cout<<"生成成功!請(qǐng)前往程序所在目錄查詢。即將返回主菜單!"< 62、sh(stdin);
goto choice;
}
}
void absearch_menu() //查找書籍菜單
{
system("cls");
// system("color f2");
cout<<"\t\t\t※※※※※※※※※※※※※※※※※\n";
cout<<"\t\t\t※ ※\n";
cout<<"\t\t\t※****書**籍**查**找**界**面****※\n";
cout<<"\ 63、t\t\t※ ※\n";
cout<<"\t\t\t※ 1: 按 編號(hào)查找 ※\n";
cout<<"\t\t\t※ ※\n";
cout<<"\t\t\t※ 2: 按 書名查找 ※\n";
cout<<"\t\t\t※ ※\n";
cout<<"\t\t\t※ 64、 3: 按 作者查找 ※\n";
cout<<"\t\t\t※ ※\n";
cout<<"\t\t\t※ 4: 按 日期查找 ※\n";
cout<<"\t\t\t※ ※\n";
cout<<"\t\t\t※ 5: 按 超期查找 ※\n";
cout<<"\t\t\t※ ※\n"; 65、
cout<<"\t\t\t※ 6: 返 回 上 級(jí) ※\n";
cout<<"\t\t\t※ ※\n";
cout<<"\t\t\t※ 0: 退 出 系 統(tǒng) ※\n";
cout<<"\t\t\t※ ※\n";
cout<<"\t\t\t※※※※※※※※※※※※※※※※※\n";
char bsc; 66、//book search choice
cout<<"\n\t請(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:
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運(yùn)動(dòng)會(huì)安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個(gè)人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動(dòng)總結(jié)+在機(jī)關(guān)“弘揚(yáng)憲法精神推動(dòng)發(fā)改工作高質(zhì)量發(fā)展”專題宣講報(bào)告會(huì)上的講話
- 2024年XX村合作社年報(bào)總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊(cè)教研組工作總結(jié)
- 2024年小學(xué)高級(jí)教師年終工作總結(jié)匯報(bào)
- 2024-2025年秋季第一學(xué)期初中物理上冊(cè)教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語(yǔ)文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報(bào)告
- 2025年學(xué)校元旦迎新盛典活動(dòng)策劃方案
- 2024年學(xué)校周邊安全隱患自查報(bào)告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報(bào)告