1樓:匿名使用者
一 程式設計說明書
【設計題目】 圖書館借閱管理
【問題描述】圖書館,適合用c++物件導向的功能來描述。圖書館管理系統分為借書、還書、圖書管理和讀者服務等四個部分。設計一個讀者類reader,記錄每個讀者基本資訊;讀者庫類rdatabase,記錄所有讀者資訊;圖書類book, 記錄每本書的基本資訊;圖書庫類bdatabase, 記錄所有圖書資訊。
【基本要求】
1讀者庫類rdatabase中,其建構函式中,將read.txt檔案中所有讀入讀者記錄rede中。處理完畢,在解構函式中將read中的所有未刪記錄寫入到read.txt中。
2圖書庫類bdatabase中,其建構函式中,將book.txt檔案中所有讀入圖書記錄book中。處理完畢,在解構函式中將book中的所有未刪記錄寫入到book.txt中。
3 利用建構函式完成讀者和圖書資料初始化,完成記憶體分配。程式結束前,解構函式完成所申請的堆記憶體空間。
4 編寫主函式,對所編寫的矩陣類進行全面測試。要求使用者介面採用選單方式。測試中需要讀者和圖書資料通過i/o流從磁碟檔案讀入,同時顯示在螢幕上。
得到的資料通過i/o流寫入磁碟檔案儲存,同時顯示在螢幕上。
5 源程式中要有充分的註釋,報告中要有詳細的流程圖和文字材料。
【類的設計】
該程式包含了四個類,如下:
1.reader類,有讀者的基本管理功能,具有以下私有資料:
int tag;//刪除標記 1:已刪;0:未刪
int no;//讀者編號
char name[10];//讀者姓名
int borbook[maxbor];//所借圖書
2.讀者庫類rdatabase, 具有以下私有資料:
int top;//讀者記錄指標
reader read[maxr];//讀者記錄
3.圖書庫類book,有一本圖書的基本功能,有以下私有資料:
int tag;//刪除標記 1:已刪;0:未刪
int no;//圖書編號
char name[20];//書名
int onshelf;//是否在架 1在架 0已借
4.圖書庫類bdatabase,有以下私有資料:
int top;//圖書記錄指標
book book[maxb];//圖書記錄
【特殊函式的設計說明】
建構函式
1.reader類中建構函式reader(),初始化函式;
2.讀者庫類rdatabase中,其建構函式rdatabase(),將read.txt檔案中所有讀入讀者記錄rede中。
3.book類中建構函式book(),初始化函式;
4.圖書庫類bdatabase中,其建構函式中,將book.txt檔案中所有讀入圖書記錄book中。
拷貝建構函式
reader類中的拷貝建構函式將getname()的返回值讀者姓名拷貝到setname()中,book類中的拷貝建構函式將getname()函式的返回值圖書名拷貝到圖書名設定函式setname()中。
解構函式
1.讀者庫類rdatabase中,其解構函式~rdatabase(),將read中的所有未刪記錄寫入到read.txt中;
2.圖書庫類bdatabase中,其解構函式~bdatabase(),將book中的所有未刪記錄寫入到book.txt中。
運算子過載
過載了「=」,當比較讀者編號和圖書編號時,過載;過載位運算子「〈〈」和「〉〉」等。
【主要函式演算法流程圖】
【程式的使用方法】
1.進入操作頁面,按提示操作;
2.首先,新增圖書和讀者資訊,之後就可以對以存在的資訊進行操作;
3.操作當中,可以隨時增加,更改和刪除圖書或讀者資訊;
4.當選擇退出時,進行清屏。
二 程式上機除錯報告
【語法錯誤及其排除】
1.在敲程式時,有很多拼寫錯誤,例好多處把readdata()誤打readdate();結束的分號,在不同的輸入法狀態下輸入,這些小錯誤剛開始很難發現,不過有了經驗,就很容易了。
2.建立新的建構函式時,使用出現了錯誤。過載建構函式要注意函式的訪問許可權,結果就不會出現錯誤。
【演算法錯誤及其排除】
1.讀者類中借書操作函式中,採用迴圈語句時判斷讀者已借圖書量時for(int i=0;i 2.指標使用錯誤,指標b和r混淆,導致編譯錯誤得到「error c2660: 'retbook' : function does not take 1 parameters」錯誤報告。 2樓:朱衛傑劉琳琳 這個東西,最好還是你自己來做,要別人幫你做,你還是不能得到提高。我是學物件導向程式設計的,不過你這個問題也很好解決。先建立好結構體,然後建立幾個實際的資料。 比如:book1,book2。其他的什麼查詢啦,狀態啦都可以用if語句搞定。 3樓:top_小伍 要別人做,你可要花錢的哦 c語言圖書管理系統程式 4樓:北寒南暖 ^#include #include #include #include #include struct book; void search_book(); void borrow_book(); void return_book(); void add_book(); void delete_book(); void modify_book(); void scan_book(); int main() if(c1==1)}} if(c1==2)}} }/*查詢圖書*/ void search_book() }if(l==0) else printf("是否繼續查詢圖書 ? [是(y)/否(n)] ? \n\n"); dowhile(x!='n'&&x!='y'); if(x=='n') break; }fclose(fp); system("cls"); }//新增 void add_book() }}while(l); fwrite(&n,sizeof(n),1,fp); printf("\n"); printf("是否繼續輸入新的圖書資訊[y/n] \n\n"); dowhile(x!='n'&&x!='y'); }while(x=='y'); fclose(fp); system("cls"); }//刪除圖書 void delete_book() }if(l==0) else while(z!='n'&&z!='y'); if(z=='n') break; else fclose(fp); fclose(fp1); fp=fopen("f:\\課程設計\\圖書管理系統.txt","wb"); fp1=fopen("f:\\課程設計\\圖書管理系統new.txt","rb"); while(1) fclose(fp); fclose(fp1);}} printf("\n"); printf("是否繼續刪除圖書資訊? [是(y)/否(n)] \n"); dowhile(x!='n'&&x!='y'); if(x=='n') break; }fclose(fp); system("cls"); }//修改圖書資訊 void modify_book() }if(l==0) else printf("\n"); printf(" 是否繼續修改使用者資訊[y/n]? \n\n"); dowhile(x!='n'&&x!='y'); if(x=='n') break; }fclose(fp); system("cls"); }//借書 void borrow_book() }if(l==0) else printf("\n"); printf(" 是否繼續借書? [是(y)/否(n)] \n\n"); dowhile(x!='n'&&x!='y'); if(x=='n') break; }fclose(fp); system("cls"); }//還書 void return_book() }if(l==0) else printf("\n"); printf("是否繼續還書? [是(y)/否(n)] \n"); dowhile(x!='n'&&x!='y'); if(x=='n') break; }fclose(fp); system("cls"); }//瀏覽 void scan_book() }printf("\n"); printf("回到主選單請按回車"); dowhile(x!='\r'); if(x=='\r')} c語言課程設計:圖書管理系統設計的基本思路是什麼? 5樓:珏代風華 圖書管理系統主要要求可以錄入書籍,新增書目,查詢書本資訊,刪除或修改資訊,有的還要求顯示是否被借閱等。 一般採用結構體陣列,連結串列,檔案操作和自定義函式。主要是需要對基礎知識掌握牢固。 先定義結構體,然後對結構體的成員進行定義,選擇陣列儲存書本各種資訊。錄入資訊可以用for和do while迴圈等來做。 存放資訊需要檔案操作函式,比如fopen,fwrite等。 刪除和新增可以刪除節點或者增加節點。 查詢之類的可以用字串操作的各種函式實現。 #include #include #include #include #define books "f:\\books.txt" #define booksbak "f:\\booksbak.txt" struct bookinfo ;struct book ;struct book *searchbook ( struct book *listptr,char isbn) void mainsearchbook(struct book *firstptr) else printf("sorry,not found!!!\n"); }int addbook(struct book *listptr,struct bookinfo note) void mainadd(struct book *listptr,file *fp) else printf("新增圖書失敗!!!\n"); }int removebook(struct book *listptr,char isbn) else listptr=listptr->next; }return -1; }void mainremove(struct book *listptr,file *fp) /* 刪除書籍函式,通過isbn刪除連結串列節點,同時刪除檔案中對應資訊 */ /* 刪除檔案中一行,用的是笨方法,把需要的資訊寫到新檔案,刪除舊檔案,重新命名..*/ }fclose(fp); fclose(fpbak); if (remove(books)) //刪除失敗返回非0 else if (rename(booksbak,books)) //重新命名失敗返回非0值 printf("刪除成功!!!\n"); }else printf("查無此書!!!"); }int choice(void) int addentry(file *fp,struct book *firstptr) /* 主要用來載入檔案中存放的圖書資訊 */ return 0; }int main(int argc,char *argv) system("pause"); }return 0;} 大哥你真帥。100分買個圖書館管理系統。雖然原理簡單,但是你這比請苦工開得還少啊。大哥你太有才了,現在做個系統只要50知道幣了。你要我們以後這些程式設計師都吃些什麼呀。你什麼時候要,我幫你做個看看.sql資料庫可以不?winform行不?加我msn wanliang2000 163.com 我有做過... 判斷 字串 s是否和 相等 strcmp s,表示s字元陣列是否是等於號加上字串結束符,其實單單比較是否為等於號 改為 c語言程式設計 int mian 應該是int main 你要輸入一個數才行,建議你加一個提示輸入的語句 c語言程式設計。else 非字母 switch read buf brea... 程式修改輸出加個 元 後面執行結果可看到 編譯執行結果 如果輸入50 如果輸入90 如果輸入100 如果輸入110 include int main if x 50 y 80 x printf f n y return 0 c語言程式設計問題 解題思bai路 完全跟百錢買百雞的問題是du一樣的 設大...c小型圖書管理系統,用C 編寫一個圖書管理系統
C語言程式設計,c語言程式設計。
c語言問題程式設計,C語言程式設計問題