c語言圖書管理系統程式設計,C語言圖書管理系統程式

2021-05-02 07:13:51 字數 6329 閱讀 1235

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;}

c小型圖書管理系統,用C 編寫一個圖書管理系統

大哥你真帥。100分買個圖書館管理系統。雖然原理簡單,但是你這比請苦工開得還少啊。大哥你太有才了,現在做個系統只要50知道幣了。你要我們以後這些程式設計師都吃些什麼呀。你什麼時候要,我幫你做個看看.sql資料庫可以不?winform行不?加我msn wanliang2000 163.com 我有做過...

C語言程式設計,c語言程式設計。

判斷 字串 s是否和 相等 strcmp s,表示s字元陣列是否是等於號加上字串結束符,其實單單比較是否為等於號 改為 c語言程式設計 int mian 應該是int main 你要輸入一個數才行,建議你加一個提示輸入的語句 c語言程式設計。else 非字母 switch read buf brea...

c語言問題程式設計,C語言程式設計問題

程式修改輸出加個 元 後面執行結果可看到 編譯執行結果 如果輸入50 如果輸入90 如果輸入100 如果輸入110 include int main if x 50 y 80 x printf f n y return 0 c語言程式設計問題 解題思bai路 完全跟百錢買百雞的問題是du一樣的 設大...