當前位置:歷史故事大全網 - 圖書館 - C#小型圖書管理系統

C#小型圖書管理系統

裏面的壹切///都是筆記。

# include & ltiostream & gt

# include & ltiomanip & gt

# include & lt字符串& gt

//輸入/輸出文件流類

# include & ltfstream & gt

使用命名空間std

//最多的讀者

const int Maxr = 100;

//最多的書

const int Maxb = 100;

//每個讀者最多可以借五本書。

const int max bor = 5;

//reader類,描述讀者的信息。

類閱讀器

{

私人:

//刪除標記1:已刪除0:未刪除。

int標簽;

//閱讀器編號

int號;

//讀者姓名

字符名稱[10];

//借書

int bor book[max bor];

公共:

讀者()

{

}

//獲取名稱

char *getname()

{

返回名稱;

}

//獲取刪除標誌

int gettag()

{

返回標簽;

}

//獲取閱讀器編號

int getno()

{

返回否;

}

//設置名稱

void集合名稱(char na[])

{

strcpy(姓名,不適用);

}

//設置刪除標誌1:已刪除0:未刪除。

void delbook()

{

tag = 1;

}

//增加讀者

void addreader(int n,char *na)

{

tag = 0;

no = n;

strcpy(姓名,不適用);

for(int I = 0;我& ltMaxbori++)

bor book[I]= 0;

}

//圖書借閱操作

void借書(int bookid)

{

for(int I = 0;我& ltMaxbori++)

{

if (borbook[i]==0)

{

bor book[I]= bookid;

返回;

}

}

}

//圖書退貨操作

int返回書(int bookid)

{

for(int I = 0;我& ltMaxbori++)

{

if(borbook[i]==bookid)

{

bor book[I]= 0;

返回1;

}

}

返回0;

}

//讀取閱讀器信息

無效顯示()

{

cout & lt& ltsetw(5)& lt;& lt否& lt& ltsetw(10)& lt;& lt名稱& lt& lt“借閱號:[”;

for(int I = 0;我& ltMaxbori++)

if(borbook[i]!=0)

cout & lt& ltbor book[I]& lt;& lt"|";

cout & lt& lt"]" & lt;& ltendl

}

};

//讀者類庫,實現讀者個人資料的建立。

類別數據庫

{

私人:

//讀取器記錄指針

int top

//閱讀器記錄

閱讀器read[Maxr];

公共:

//構造函數,將reader.txt讀入read[]

數據庫()

{

讀者s;

top =-1;

//打開壹個輸入文件

fstream文件(" reader.txt ",IOs::in);

while (1)

{

file . read((char *)& amp;s,sizeof(s));

如果(!文件)中斷;

top++;

read[top]= s;

}

//關閉reader.txt

file . close();

}

//刪除所有閱讀器信息

空清除()

{

top =-1;

}

//添加閱讀器前先尋找存在。

int addreader(int n,char *na)

{

reader * p = query(n);

if (p==NULL)

{

top++;

閱讀【頂部】。addreader(n,na);

返回1;

}

返回0;

}

//按號碼搜索

Reader *查詢(int readerid)

{

for(int I = 0;我& lt= topi++)

如果(讀[我]。getno()= = readerid & amp;& amp

讀[我]。gettag()==0)

{

返回& amp改為[I];

}

返回NULL

}

//輸出所有閱讀器信息

無效顯示()

{

for(int I = 0;我& lt= topi++)

讀[我]。disp();

}

//讀者庫維護

void reader data();

//析構函數,將read[]寫入reader.txt文件。

~ r數據庫()

{

fstream文件(" reader.txt ",IOs::out);

for(int I = 0;我& lt= topi++)

如果(讀[我]。gettag()==0)

file . write((char *)& amp;read[i],sizeof(read[I]);

file . close();

}

};

void RDatabase::readerdata()

{

char選擇;

char rname[20];

int readerid

reader * r;

而(選擇!='0')

{

cout & lt& lt" \ n \ n \ t \ tReader維護\n\n\n\t\t 1是新添加的\ n \ n \ t \ t 2被更改\ n \ n \ t \ t 3被刪除\ n \ n \ " & ltendl

CIN & gt;& gt選擇;

開關(選擇)

{

案例“1”:

cout & lt& lt"輸入讀卡器號:";

CIN & gt;& gtreaderid

cout & lt& lt"輸入讀取器名稱:";

CIN & gt;& gtrname

addreader (readerid,rname);

打破;

案例“2”:

cout & lt& lt"輸入讀卡器號:";

CIN & gt;& gtreaderid

r = query(readerid);

if (r==NULL)

{

cout & lt& lt"讀者不存在"

打破;

}

cout & lt& lt”輸入新名稱:“;

CIN & gt;& gtrname

r-& gt;set name(rname);

打破;

案例“3”:

cout & lt& lt"輸入讀卡器號:";

CIN & gt;& gtreaderid

r = query(readerid);

if (r==NULL)

{

cout & lt& lt"讀者不存在"

打破;

}

r-& gt;del book();

打破;

案例“4”:

cout & lt& lt"讀入閱讀器號:";

CIN & gt;& gtreaderid

r = query(readerid);

if (r==NULL)

{

cout & lt& lt"讀者不存在"

打破;

}

r-& gt;disp();

打破;

案例“5”:

disp();

打破;

案例“6”:

clear();

打破;

默認值:cout & lt& lt"輸入錯誤,請重新輸入:";打破;

}

}

}

//圖書類別,實現了圖書的描述、書號、書名、借出、歸還等。

課堂用書

{

私人:

//刪除標記1:已刪除0:未刪除。

int標簽;

//圖書編號

int號;

//書名

char name[20];

//要不要借1:借2:借?

int onshelf

公共:

Book(){}

//獲取名稱

char * getname(){ return name;}

//獲取書號

int getno(){ return no;}

//獲取刪除標誌

int gettag(){ return tag;}

//設置書的標題

void集合名稱(char na[])

{

strcpy(姓名,不適用);

}

//刪除書籍

void del book(){ tag = 1;}

//添加書籍

void addbook(int n,char *na)

{

tag = 0;

no = n;

strcpy(姓名,不適用);

on shelf = 1;

}

//圖書借閱操作

int borrowbook()

{

if(on self = = 1)

{

on shelf = 0;

返回1;

}

返回0;

}

//圖書退貨操作

void retbook()

{

on shelf = 1;

}

//輸出書籍

無效顯示()

{

cout & lt& ltsetw(6)& lt;& lt否& lt& ltsetw(18)& lt;& lt名稱& lt& ltsetw(10)

& lt& lt(onshelf==1?《在架子上》:“借來的”)< & ltendl

}

};

//Library類,可以維護,搜索,刪除書籍。

b類數據庫

{

私人:

//圖書記錄指針

int top

//圖書記錄

book book[Maxb];

公共:

//構造函數,將book.txt讀入book[]

b數據庫()

{

書b;

top =-1;

fstream文件(" book.txt ",IOs::in);

while (1)

{

file . read((char *)& amp;b,sizeof(b));

如果(!文件)中斷;

top++;

book[top]= b;

}

file . close();

}

//全部刪除

空清除()

{

top =-1;

}

//添加書籍

int addbook(int n,char *na)

{

book * p = query(n);

if (NULL==p)

{

top++;

書[頂]。addbook(n,na);

返回1;

}

返回0;

}

//查找書籍

Book *查詢(int bookid)

{

for(int I = 0;我& lt= topi++)

如果(書[我]。getno()= = bookid & amp;& amp書[我]。gettag()==0)

{

返回& amp書[I];

}

返回NULL

}

//庫維護

void book data();

無效顯示()

{

for(int I = 0;我& lt= topi++)

如果(書[我]。gettag()==0)

書[我]。disp();

}

//析構函數,將book[]寫入book.txt文件。

~ b數據庫()

{

fstream文件(" book.txt ",IOs::out);

for(int I = 0;我& lt= topi++)

如果(書[我]。gettag()==0)

file . write((char *)& amp;book[i],sizeof(book[I]);

file . close();

}

};

void BDatabase::bookdata()

{

char選擇;

char bname[40];

int bookid

書* b;

而(選擇!='0')

{

cout & lt& lt" \ n \ n \ n \ t \ t \庫維護" < & ltendl & lt& ltendl

cout & lt& lt" \t\t1是新添加的\n \t\t2被更改\n\t\t3被刪除\n\t\t4被搜索\n\t\t5被顯示\n\t\t6被完全刪除\n\t\t0被停用" & ltendl

CIN & gt;& gt選擇;

開關(選擇)

{

案例“1”:

cout & lt& lt"輸入圖書編號:"

CIN & gt;& gtbookid

cout & lt& lt"輸入書名:"

CIN & gt;& gtbname

addbook(bookid,bname);

打破;

案例“2”:

cout & lt& lt"輸入圖書編號:"

CIN & gt;& gtbookid

b =查詢(bookid);

if (b==NULL)

{

cout & lt& lt“這本書不存在”

打破;

}

cout & lt& lt"輸入新標題:"

CIN & gt;& gtbname

b-& gt;set name(bname);

打破;

案例“3”:

cout & lt& lt"讀入書號:"

CIN & gt;& gtbookid

b =查詢(bookid);

if (b==NULL)

{

cout & lt& lt“這本書不存在”

打破;

}

b-& gt;del book();

打破;

案例“4”:

cout & lt& lt"讀入書號:"

CIN & gt;& gtbookid

b =查詢(bookid);

if (b==NULL)

{

cout & lt& lt“這本書不存在”

打破;

}

b-& gt;disp();

打破;

案例“5”:

disp();

打破;

案例“6”:

clear();

打破;

默認值:cout & lt& lt"輸入錯誤,請重新輸入:";

}

}

}

//main()函數的實現和程序主界面的引導。

int main()

{

char選擇;

int bookid,readerid

RDatabase ReaderDB

reader * r;

b數據庫BookDB

書* b;

而(選擇!='0')

{

cout & lt& ltendl & lt& ltendl & lt& lt”\ t \ t \圖書館管理系統\ n \ n \ n”;

cout & lt& lt" \t\t\t1借閱書籍\ n \ n \ t \ T2歸還書籍\ n \ n \ t \ T3圖書館維護\n\n\t\t\t4讀者維護\ n \ n \ n \ " & ltendl

CIN & gt;& gt選擇;

開關(選擇)

{

案例“1”:

cout & lt& lt”借用讀者號:“;

CIN & gt;& gtreaderid

cout & lt& lt"書號:";

CIN & gt;& gtbookid

//按號碼搜索

r = readerdb . query(readerid);

if (NULL==r)

{

cout & lt& lt“讀者不存在,書不能借”< & ltendl

打破;

}

b = bookdb . query(bookid);

if (b==NULL)

{

cout & lt& lt“這本書不存在,所以妳不能借它”< & ltendl

打破;

}

if(b-& gt;borrowbook()==0)

{

cout & lt& lt“這本書已經借出去了,所以妳不能再借了”< & ltendl

打破;

}

r-& gt;借書(b-& gt;getno());

打破;

案例“2”:

cout & lt& lt”返回圖書\ n讀者編號:“;

CIN & gt;& gtreaderid

cout & lt& lt"書號:";

CIN & gt;& gtbookid

r = readerdb . query(readerid);

if (r==NULL)

{

cout & lt& lt“讀者不存在,所以書不能歸還”< & ltendl

打破;

}

b = bookdb . query(bookid);

if (b==NULL)

{

cout & lt& lt“該書不存在,無法歸還”< & ltendl

打破;

}

b-& gt;ret book();

r-& gt;retbook(b-& gt;getno());

打破;

案例“3”:

bookdb . book data();

打破;

案例“4”:

reader db . reader data();

打破;

默認值:cout & lt& lt"輸入錯誤,請重新輸入:";

}

}

}

其中主要函數是int類型,是在devcpp下編程造成的。請將其他程序的錯誤改為void類型。

  • 上一篇:風景圖書館車載香水
  • 下一篇:老婆很強勢很強硬,怎麽處理?
  • copyright 2024歷史故事大全網