資源簡介
程序主要目標是實現圖書館對讀者信息和圖書信息的管理,并實現借書,還書,讀者管理,圖書管理和退出系統等功能。
1、借書操作:讀者需要輸入讀者編號,圖書編號,系統會自動判斷該讀者和圖書是否存在,若都存在則顯示借書成功,并且給圖書標記上借閱標記,同時需輸入借閱時間和還書最后期限。否則給出提示信息,讀者不存在不能借書,或者圖書不存在不能借書。
2、還書操作:還書者需要輸入讀者編號,圖書編號,系統會自動判斷該讀者和圖書是否存在。若都存在則需輸入還書時間,并判斷借閱日期是否超出允許借閱期限30天,若超出期限給出提示信息,應付罰金x元。交錢后,由管理員確認無誤后,給圖書去掉借閱標記,并輸出信息還書成功!若讀

代碼片段和文件信息
#include?
#include?
#include?
#include?
const?int?Maxreader=200;//最多的讀者
const?int?Maxbook=200;??//最多的圖書
const?int?Maxbor=10;????//讀者最多借10本書
//讀者類實現對讀者的信息的描述
class?Reader???????
{???
private:
int?tag;????????????//刪除標記?1:已刪?0:未刪
int?nu;?????????????//讀者編號
char?name[20];??????//讀者姓名
char?work[20];??????//工作單位或班級
int?borbook[Maxbor];//所借圖書編號
????public:
????????int?gettag()?{return?tag;}???????????????????//獲取刪除標記
int?getnu()?{return?nu;}?????????????????????//獲取讀者編號
char*?getna()?{return?name;}???????????????????//獲取讀者姓名
????????void?setname(char?na[]){?strcpy(namena);}???//設置姓名
void?setwork(char?wo[]){?strcpy(workwo);}???//設置工作單位
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;??????????????????//讀者記錄標記
?????Reader?reader[Maxreader];//各讀者記錄
public:
?RDatabase()???????????????????????????//構造函數,將reader.txt讀到read[]中
?{??Reader?s;?tp=-1;
fstream?file(“reader.txt“ios::in);//打開一個輸入文件
while?(1)
{??file.read((char?*)&ssizeof(s));
if?(!file)break;
tp++;
reader[tp]=s;
}
file.close();//關閉?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();//讀者庫維護
~RDatabase()??//析構函數,將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
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????288??2010-07-13?16:11??圖書管理系統\book.txt
?????文件????????264??2010-07-13?16:11??圖書管理系統\reader.txt
?????文件??????16040??2009-07-06?16:27??圖書管理系統\圖書管理系統.cpp
?????文件??????86016??2011-06-27?18:17??圖書管理系統\圖書管理系統.doc
?????文件???????3475??2010-07-13?16:09??圖書管理系統\圖書管理系統.dsp
?????文件????????532??2010-07-13?16:12??圖書管理系統\圖書管理系統.dsw
?????文件??????33792??2010-07-13?16:12??圖書管理系統\圖書管理系統.ncb
?????文件??????48640??2010-07-13?16:12??圖書管理系統\圖書管理系統.opt
?????文件????????782??2010-07-13?16:09??圖書管理系統\圖書管理系統.plg
?????目錄??????????0??2011-06-27?18:17??圖書管理系統
-----------?---------??----------?-----??----
???????????????189829????????????????????10
- 上一篇:學生成績管理系統c語言實現
- 下一篇:編譯:語法分析程序報告源程序 c/c++
評論
共有 條評論