-
大小: 38KB文件類型: .rar金幣: 2下載: 1 次發(fā)布日期: 2021-08-05
- 語言: C/C++
- 標(biāo)簽: C++課程設(shè)??
資源簡介
程序主要目標(biāo)是實(shí)現(xiàn)圖書館對讀者信息和圖書信息的管理,并實(shí)現(xiàn)借書,還書,讀者管理,圖書管理和退出系統(tǒng)等功能。
1、借書操作:讀者需要輸入讀者編號,圖書編號,系統(tǒng)會自動判斷該讀者和圖書是否存在,若都存在則顯示借書成功,并且給圖書標(biāo)記上借閱標(biāo)記,同時(shí)需輸入借閱時(shí)間和還書最后期限。否則給出提示信息,讀者不存在不能借書,或者圖書不存在不能借書。
2、還書操作:還書者需要輸入讀者編號,圖書編號,系統(tǒng)會自動判斷該讀者和圖書是否存在。若都存在則需輸入還書時(shí)間,并判斷借閱日期是否超出允許借閱期限30天,若超出期限給出提示信息,應(yīng)付罰金x元。交錢后,由管理員確認(rèn)無誤后,給圖書去掉借閱標(biāo)記,并輸出信息還書成功!若讀

代碼片段和文件信息
#include?
#include?
#include?
#include?
const?int?Maxreader=200;//最多的讀者
const?int?Maxbook=200;??//最多的圖書
const?int?Maxbor=10;????//讀者最多借10本書
//讀者類實(shí)現(xiàn)對讀者的信息的描述
class?Reader???????
{???
private:
int?tag;????????????//刪除標(biāo)記?1:已刪?0:未刪
int?nu;?????????????//讀者編號
char?name[20];??????//讀者姓名
char?work[20];??????//工作單位或班級
int?borbook[Maxbor];//所借圖書編號
????public:
????????int?gettag()?{return?tag;}???????????????????//獲取刪除標(biāo)記
int?getnu()?{return?nu;}?????????????????????//獲取讀者編號
char*?getna()?{return?name;}???????????????????//獲取讀者姓名
????????void?setname(char?na[]){?strcpy(namena);}???//設(shè)置姓名
void?setwork(char?wo[]){?strcpy(workwo);}???//設(shè)置工作單位
void?delreader()??{tag=1;}???????????????????//刪出讀者
????void?addreader(int?nchar?*nachar?*wo)??????//增加讀者
{?tag=0;nu=n;
??strcpy(namena);strcpy(workwo);
??for(int?i=0;i borbook[i]=0;
}
????void?borrowbook(int?booknu)????//借書操作
{??for(int?i=0;i ??????if?(borbook[i]==0)
??{borbook[i]=booknu;?break;}
}
????void?retbook(int?booknu)???????//還書操作
{??for(int?i=0;i ???????if(borbook[i]==booknu)
???{borbook[i]=0;?break;}
}
????void?display()?????????????????//輸出讀者信息
{?cout<<“讀者編號:“< ??cout<<“工作單位:“< ?????????for(int?i=0;i ????????if(borbook[i]!=0)???cout< ??cout?<“]“< }
};
//讀者庫類,建立讀者的資料
class?RDatabase
{??
private:
?int?tp;??????????????????//讀者記錄標(biāo)記
?????Reader?reader[Maxreader];//各讀者記錄
public:
?RDatabase()???????????????????????????//構(gòu)造函數(shù),將reader.txt讀到read[]中
?{??Reader?s;?tp=-1;
fstream?file(“reader.txt“ios::in);//打開一個(gè)輸入文件
while?(1)
{??file.read((char?*)&ssizeof(s));
if?(!file)break;
tp++;
reader[tp]=s;
}
file.close();//關(guān)閉?reader.txt
}
????void?allclear()//刪除所有讀者信息
{????tp=-1;???}
void?addreader(int?nchar?*nachar?*wo)//添加讀者
{???Reader?*r=find(n);
if?(r==NULL)
{?tp++;
??reader[tp].addreader(nnawo);
}
}
Reader?*find(int?readernu)//按編號查找
{????for?(int?i=0;i<=tp;i++)
if?(reader[i].getnu()==readernu&&reader[i].gettag()==0)
{???return?&reader[i];??}
return?NULL;
}
????Reader?*finda(char?na[])//按讀者姓名查找
{????for?(int?i=0;i<=tp;i++)
if?(strcmp(reader[i].getna()na)==0&&reader[i].gettag()==0)
{???return?&reader[i];??}
return?NULL;
}
void?display()??//輸出所有讀者信息????
{??for?(int?i=0;i<=tp;i++)
?????if?(reader[i].gettag()==0)
???reader[i].display();
}
void?preader();//讀者庫維護(hù)
~RDatabase()??//析構(gòu)函數(shù),將read[]寫到reader.txt文件中
{?fstream?file(“reader.txt“ios::out);
????????for?(int?i=0;i<=tp;i++)
if?(reader[i].gettag()==0)
file.write((char?*)&reader[i]sizeof(reader[i]));
file.close();
}
};
void?RDatabase::preader()
{???int?choose;
char?na[10];
char?wo[20];
int??nu;
????int?a;//用來判斷
int?b;//用來判斷
int
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????288??2010-07-13?16:11??圖書管理系統(tǒng)\book.txt
?????文件????????264??2010-07-13?16:11??圖書管理系統(tǒng)\reader.txt
?????文件??????16040??2009-07-06?16:27??圖書管理系統(tǒng)\圖書管理系統(tǒng).cpp
?????文件??????86016??2011-06-27?18:17??圖書管理系統(tǒng)\圖書管理系統(tǒng).doc
?????文件???????3475??2010-07-13?16:09??圖書管理系統(tǒng)\圖書管理系統(tǒng).dsp
?????文件????????532??2010-07-13?16:12??圖書管理系統(tǒng)\圖書管理系統(tǒng).dsw
?????文件??????33792??2010-07-13?16:12??圖書管理系統(tǒng)\圖書管理系統(tǒng).ncb
?????文件??????48640??2010-07-13?16:12??圖書管理系統(tǒng)\圖書管理系統(tǒng).opt
?????文件????????782??2010-07-13?16:09??圖書管理系統(tǒng)\圖書管理系統(tǒng).plg
?????目錄??????????0??2011-06-27?18:17??圖書管理系統(tǒng)
-----------?---------??----------?-----??----
???????????????189829????????????????????10
評論
共有 條評論