版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
./航空航天大學《面向?qū)ο蟪绦蛟O計語言》課程設計報告圖書管理系統(tǒng)學號::日期:目錄HYPERLINKF:\大一下學期\課設\劉明艷圖書管理系統(tǒng)\面向?qū)ο蟪绦蛟O計語言課設1.doc<<setw<20><<MyBookInfo.BookAuthor<<"出版商"<<setw<30><<MyBookInfo.BookPress<<"出版日期" <<setw<8><<MyBookInfo.BookPublicationDate;}voidSearchBook<> //圖書查詢{ charBookCode[6]; if<CountBook<>==0> { cout<<"圖書不存在"<<endl; return; } cout<<"請輸入圖書編號"<<endl; cin>>BookCode; if<!IsBookExist<BookCode>> { cout<<"圖書不存在"<<endl; return; } structBookInfoMyBook; GetPosition<BookCode,&MyBook>; cout<<"編號"<<setw<6><<MyBook.BookCode<<"書名"<<setw<20><<MyBook.BookName<<"作者" <<setw<20><<MyBook.BookAuthor<<"出版商"<<setw<30><<MyBook.BookPress<<"出版日期" <<setw<8><<MyBook.BookPublicationDate; if<MyBook.BookStatus=='1'> //若書借出,則顯示借閱的讀者的信息 ShowAReader<MyBook.ReaderCode>; elsecout<<"該書未被借閱"<<endl; }voidSearchReader<> //讀者查詢{ charReaderCode[6]; if<CountReader==0> { cout<<"讀者不存在"<<endl; return; } cout<<"請輸入讀者編號"<<endl; cin>>ReaderCode; if<!IsReaderExist<ReaderCode>> { cout<<"讀者不存在"<<endl; return; } ShowAReader<ReaderCode>; intBorrowCount=IsBorrowed<ReaderCode>; if<BorrowCount==0> cout<<"讀者未借閱該書"<<endl; else { cout<<"讀者借閱了"<<BorrowCount<<"冊"<<endl; FILE*fp; if<<fp=fopen<"bookinfo.dat","rb">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } structBookInfoMyBook; inti=0; while<fread<&MyBook,BOOKLEN,1,fp>> { if<strcmp<MyBook.ReaderCode,ReaderCode>==0> { i++; cout<<i<<MyBook.BookCode<<MyBook.BookName<<MyBook.BookAuthor<<endl; } } fclose<fp>; } }voidShowAReader<char*ReaderCode> //顯示指定編號的讀者詳細信息{ FILE*fp; if<<fp=fopen<"readerinfo.dat","rb">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } structReaderInfoMyReader; while<fread<&MyReader,READERLEN,1,fp>==NULL> if<strcmp<MyReader.ReaderCode,ReaderCode>==0> break; cout<<"借閱讀者"<<ReaderCode<<MyReader.ReaderName<<MyReader.Sex<<endl; fclose<fp>;}intInvalidBookPosition<> //查詢第一條無效圖書記錄在文件中的位置{ intInvalidPs=-1; intcount=0; FILE*fp; if<<fp=fopen<"bookinfo.dat","rb">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } structBookInfoMyBook; while<fread<&MyBook,BOOKLEN,1,fp>> { if<MyBook.IsAvailable=='0'> { InvalidPs=count; break; } count++; } fclose<fp>; returnInvalidPs;}intIsBookExist<char*ChkBookCode> //查詢指定圖書在文件中是否存在{ intIsExist=0; FILE*fp; if<<fp=fopen<"bookinfo.dat","rb">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } structBookInfoMyBook; while<fread<&MyBook,BOOKLEN,1,fp>> { if<strcmp<MyBook.BookCode,ChkBookCode>==0&&MyBook.IsAvailable> { IsExist=1; break; } } fclose<fp>; returnIsExist;}intIsBorrow<char*BookCode> //判斷圖書是否已經(jīng)借出,在借返回1,否則返回0{ structBookInfotemp; intIsbBorrow=0; FILE*fp; if<<fp=fopen<"bookinfo.dat","rb">>!=NULL> { while<fread<&temp,BOOKLEN,1,fp>> if<strcmp<temp.BookCode,BookCode>==0&&temp.BookStatus=='1'> { IsbBorrow=1; break; } } fclose<fp>; returnIsbBorrow;}intGetPosition<char*ModiCode,structBookInfo*MyBook> //獲得待修改圖書的位置{ intcount=0; FILE*fp; if<<fp=fopen<"bookinfo.dat","rb">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } while<fread<MyBook,BOOKLEN,1,fp>> { if<strcmp<MyBook->BookCode,ModiCode>==0&&MyBook->IsAvailable=='1'> break; count++; } fclose<fp>; returncount;}voidAddReaderInfo<> //增加讀者{ structReaderInfoMyReader; cout<<"讀者編號"<<endl; cin>>MyReader.ReaderCode; while<IsReaderExist<MyReader.ReaderCode>> { cout<<"讀者已存在,請重新輸入"<<endl; cin>>MyReader.ReaderCode; } cout<<"讀者"<<endl; cin>>MyReader.ReaderName; cout<<"讀者性別"<<endl; cin>>MyReader.Sex; MyReader.IsAvailable='1'; //新增讀者 FILE*fp; if<<fp=fopen<"readerinfo.dat","rb+">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } intSetPs; SetPs=InvalidReaderPosition<>; if<SetPs=-1> fseek<fp,0,SEEK_END>; elsefseek<fp,<long>READERLEN*SetPs,SEEK_SET>; fwrite<&MyReader,READERLEN,1,fp>; fclose<fp>; cout<<"添加讀者成功,按回車鍵繼續(xù)添加,現(xiàn)有讀者"<<CountReader<><<"人"<<endl; cin.ignore<>; getchar<>;}voidModifyReaderInfo<> //修改讀者信息{ structReaderInfoMyReader; charModifyCode[6]; if<CountReader<>==0> { cout<<"無法修改"<<endl; return; } cout<<"請輸入要修改的編號"<<endl; cin>>ModifyCode; if<!IsReaderExist<ModifyCode>> { cout<<"讀者不存在"<<endl; return; } intModiPosition=0; ModiPosition=GetRdPosition<ModifyCode,&MyReader>; cout<<"讀者"<<endl; cin>>MyReader.ReaderName; cout<<"讀者性別"<<endl; cin>>MyReader.Sex; FILE*fp; if<<fp=fopen<"readerinfo.dat","rb+">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } fseek<fp,<long>READERLEN*ModiPosition,SEEK_SET>; fwrite<&MyReader,READERLEN,1,fp>; fclose<fp>; cout<<"修改讀者成功,按回車鍵繼續(xù)"<<endl; cin.ignore<>; getchar<>;}voidDelReaderInfo<> //刪除讀者信息{ charDelCode[6]; if<CountReader<>==0> { cout<<"無法刪除"<<endl; return; } cout<<"請輸入要刪除的讀者編號"<<endl; cin>>DelCode; if<!IsReaderExist<DelCode>> { cout<<"讀者不存在,無法刪除"<<endl; return; } intBorrowedNum; BorrowedNum=IsBorrowed<DelCode>; //如果讀者有書還未還,那不可以刪除讀者 if<BorrowedNum> { cout<<"不可以刪除,有書還未還"<<endl; return; } FILE*fp; if<<fp=fopen<"readerinfo.dat","rb+">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } structReaderInfoMyReader; intModiPosition=0; ModiPosition=GetRdPosition<DelCode,&MyReader>; MyReader.IsAvailable='0'; fseek<fp,<long>READERLEN*ModiPosition,SEEK_SET>; fwrite<&MyReader,READERLEN,1,fp>; fclose<fp>; cout<<"刪除成功,現(xiàn)有讀者"<<CountReader<><<"人"<<endl; }intIsBorrowed<char*ReaderCode> //判斷是否有書未還{ structBookInfotemp; intBorrowedNum=0; FILE*fp; if<<fp=fopen<"bookinfo.dat","rb">>!=NULL> while<fread<&temp,BOOKLEN,1,fp>> if<strcmp<temp.ReaderCode,ReaderCode>==0&&temp.BookStatus=='1'> BorrowedNum++; fclose<fp>; returnBorrowedNum;}intGetRdPosition<char*ModiCode,structReaderInfo*MyReader> //獲得待修改讀者記錄的位置{ intcount=0; FILE*fp; if<<fp=fopen<"readerinfo.dat","rb">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } while<fread<MyReader,READERLEN,1,fp>> { if<strcmp<MyReader->ReaderCode,ModiCode>==0&&MyReader->IsAvailable=='1'> break; count++; } fclose<fp>; returncount;}intIsReaderExist<char*ChkCode> //查詢讀者是否存在{ intIsExist=0; FILE*fp; if<<fp=fopen<"readerinfo.dat","rb">>==NULL> { cout<<"文件打開錯誤"<<endl; exit<0>; } structReaderInfoMyReader; while<fread<&MyReader,READERLEN,1,fp>> { if<strcmp<MyReader.ReaderCode,ChkCode>==0&&MyReader.IsAvailable=='1'> { IsExist=1; break; } } fclose<fp>; returnIsExist;}intInvalidReaderPosition<> //查詢第一條無效讀者的位置{ intInvalidPs=-1; intcount=0; FILE*fp; if<<fp=fopen<"Readerinfo.dat","rb">>==NULL> { cout<<"文件打開失敗"<<endl; exit<0>; } structReaderInfoMyReader; while<fread<&MyReader,READERLEN,1,fp>> { if<MyReader.IsAvailable=='0'> { InvalidPs=count; break;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)盤點制度
- 嚴格落實請休假制度
- 企業(yè)環(huán)保法規(guī)知識培訓課件
- 2025-2030中國電警棍行業(yè)供給變化趨勢與發(fā)展現(xiàn)狀調(diào)研研究報告
- 2025-2030中國非那唑酮(安替比林)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國腹膜透析(PD) 市場運營風險與未來建設現(xiàn)狀研究研究報告
- 2025至2030中國工業(yè)型材市場需求變化與產(chǎn)能布局研究報告
- 2025-2030中國牛蛙飼料行業(yè)現(xiàn)狀調(diào)查與營銷策略分析研究報告
- 2025-2030中文教育機構運營效率提升措施研究及海外招生渠道拓展計劃制定效果分析報告
- 2025至2030中國光伏發(fā)電行業(yè)政策支持力度與平價上網(wǎng)時代盈利模式研究報告
- 25年軍考數(shù)學試卷及答案
- 化工儲存設備知識培訓課件
- 血透室水處理維護課件
- 服裝企業(yè)庫存優(yōu)化管理方案
- 低壓作業(yè)實操科目三安全隱患圖片題庫
- DB1331-T 114-2025 雄安新區(qū)近零碳變電站技術標準
- 面部血管解剖講解
- c1學法減分考試題庫及答案
- 恩施排污管理辦法
- 柔性引才協(xié)議書
- 廠區(qū)雜草施工方案(3篇)
評論
0/150
提交評論