1、 void set_yuan(char yu) /设置学生所在院系 strcpy(yuanxi,yu); void set_no(int n) /设置学号 no=n; void delbook() tb=1; /设置删除标记 1: void addstudent(int n,int ex1,char na,char yu)/增加学生信息 tb=0; no=n; ex=ex1; strcpy(name,na); strcpy(yuanxi,yu); for(int i=0;iMax3;i+) borbooki=0; void borrowbook(int bookid)/借书操作iex; if
2、(borbooki=0) borbooki=bookid; return; int retbook(int bookid)/还书操作 for(int i=0;iMax3; if(borbooki=bookid) borbooki=0; return 1; return 0; void out()/输出学生信息 cout ”学号:” setw(5) no 姓名:”setw(10) name院系:setw(10)yuanxi”最大借书量:setw(10)ex”图书号:;iex; if(borbooki!=0) cout borbooki | cout endl;/学生类库,用来建立学生的个人资料
3、class studentbaseprivate: int top; /学生记录指针 student readMax1;/学生记录public: studentbase() /构造函数,将student。txt读到read中 student s; top=1; fstream file(”student.txt”,ios:in);/打开一个输入文件 while (1) file。read(char )s,sizeof(s); if (!file)break; top+; readtop=s; file.close(); /关闭 student。txt void clear()/删除所有学生信息
4、 top=-1; int addstudent(int n,int ex1,char na,char yu)/添加学生时先查找此学生信息是否存在 student p=query(n); if (p=NULL) readtop.addstudent(n,ex1,na,yu); return 1; return 0; student query(int kid)/按编号查找学生 for (int i=0;=top; if (readi。get_no()=kid & readi.get_tb()=0) return &readi; return NULL; void disp() /输出所有学生信息
5、 for (int i=0;if (readi.get_tb()=0) readi。out(); void studentdata();/学生库维护 studentbase() /析构函数,将read写到student.txt文件中 fstream file(student。txt”,ios:out);=top; if (readi。get_tb()=0)write(char *)&readi,sizeof(readi); file.close();void studentbase:studentdata() char choice; int ex2; char rname20; char r
6、yuan20; int kid; student *r; while (choice!=0) cout choice; switch (choice) case 1:输入学号: cin kid; cout 输入最大借书量: cinex2; ”输入学生姓名: cin rname; coutset_name(rname);输入新的学生院系: ryuan; r-set_yuan(ryuan); case 3: ” 输入学号: kid;没有该学生信息! delbook(); case 4: ”输入学号: cout ”没有该学生信息!” endl; case 5: disp();6: clear();
7、default:cout输入错误!请重新输入:break;/图书类,实现对图书的描述,图书的编号,书名,作者,出版社,数量,借出,还入等class Bookprivate:/删除标记 1:已删 0: int no;/图书编号 char name20;/书名 char zuozhe20;/作者 char chubanshe30;/出版社 int number;/图书数量 int onshelf;/是否再架 1:再架 2:已借public: Book() char getname() return name; /获取书名 int getno() return no; /获取图书编号 char ge
8、tzuozhe()return zuozhe;/获取作者 char *getchubanshe()return chubanshe;/获取出版社 int getnumber()return number;/获取图书数量 int gettb() return tb; /获取删除标记 void setname(char na)/设置书名 strcpy(name,na); void setzuozhe(char zuo) /设置作者 strcpy(zuozhe,zuo); void setchubanshe(char chu) /设置出版社 strcpy(chubanshe,chu); void d
9、elbook() tb=1;/删除图书 void addbook(int n,char *na,char zuo,char *chu)/增加图书 tb=0; strcpy(zuozhe,zuo); onshelf=1; int borrowbook()/借书操作 if (onshelf=1) onshelf=0; void retbook()/还书操作 onshelf=1; void disp()/输出图书 setw(6) no setw(18) name setw(10) (onshelf=1?在架”:已借”) ;/图书库类,实现对图书的维护,查找,删除等class BDatabase in
10、t top; /图书记录指针 Book bookMax2; /图书记录 BDatabase()/构造函数,将book。txt读到book中 Book b; top=-1; fstream file(”book.txt,ios:in);read(char *)b,sizeof(b); if (!file) break; booktop=b;close(); void clear()/全删 int addbook(int n,char *na,char zuo,char chu)/增加图书 Book *p=query(n); if (NULL=p) top+; booktop.addbook(n,
11、na,zuo,chu); Book *query(int bookid)/查找图书 if (booki.getno()=bookid &booki.gettb()=0) return booki; return NULL; void bookdata();/图书库维护 void disp() if (booki.gettb()=0) booki.disp(); BDatabase()/析构函数,将book写到book.txt文件中,ios: if (booki。gettb()=0)write(char )booki,sizeof(booki);close();void BDatabase:bo
12、okdata() char bname40; char bzuo40; char bchu40; int bookid; Book b; while (choice!=0)”nnnttt图 书 资 料 库endlendl;tt1 新 增n tt2 更 改ntt3 删 除ntt4 查 找ntt5 显 示ntt6 全 删ntt0 退 出 choice; case 1 cout ”请输入图书编号:endl; bookid;请输入图书书名: bname; addbook(bookid,bname,bzuo,bchu); case 2请输入图书编号:”endl; b=query(bookid); if
13、(b=NULL) ” 没有此书!请输入新的书名:endl; bname; bsetname(bname);3: 读入图书编号:endl; bookid; b=query(bookid);没有此书!” disp();56 clear();cout”请重新选择:/main() 函数的实现,程序的主界面的引导void main() int bookid,kid; studentbase ReaderDB; student r; BDatabase BookDB; Book *b; while(choice! ge:cout endlendl”ttt 图 书 管 理 系 统nnn;ttt1 学 生nn
14、ttt2 图 书 管 理 员nnttt0 离 开” choice;1: int a; coutttt 请 选 择 操 作:ttt1 借 书nnttt2 还 书nnttt3 查看借阅数目信息nnttt0 离 开a; switch(a) case 1: cout 学号:kid; 图书编号: cin bookid; r=ReaderDB。query(kid);/按编号查找 if (NULL=r) 没有此学生信息!不能借书 b=BookDB.query(bookid);” 没有此书! if (b-borrowbook()=0) 该图书已借出,不能借书”getno(); case 2: cout 学号:
15、kid; cout 图书编号:bookid; r=ReaderDB.query(kid); cout 没有此学生信息!不能还书 endl; b=BookDB.query(bookid); cout ” 不存在该图书,不能还书” retbook(); r-retbook(b- case 3: rout(); case 0: goto ge; default:请重新选择:2 int b,c;请输入管理员密码:c; if(c=123456) cout”ttt 请 选 择 操 作: cout”ttt1 图 书 资 料 库nnttt2 学 生 资 料 库nnttt0 离 开”b; switch(b) case 1: BookDB.bookdata(); ReaderDB.studentdata(); case 0: goto ge; else 密码不正确! break;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1