1、int tag; 删除标记 1:已删 0: 图书编号 char name20; 书名 int onshelf; 是否在架 1:在架 0:已借 char *getname() return name; 获得书名 int getno() return no; 获得书编号 int gettag() return tag; 获得删除标记 void setname(char na) 设置书名void delbook()删除图书void addbook(int n,char *na)增加图书int borrowbook() 借书操作void retbook() 还书操作void disp() 输出图书图书
2、库类包括:图书记录指针 Book bookMaxb; 图书记录BDatabase() 构造函数,将book.txt读到book中void clear() 全删int addbook(int n,char *na) 增加图书Book *query(int bookid)查找图书void bookdata(); 图书库维护Bdatabase析构函数,将book写入book.txt文件中 Reader(读者类)Int tagInt noChar name10Int borbookmaxborReader()Char *getname()Int gettag()Int getno()Void setn
3、ame(char na)Void delreader()Void addreader(int n,char *na)Void borrowbook(int bookid)Int retbook(int bookid)Void disp() Rdatabase(读者库类)Int topReader readmaxrRdatabase()Void clear()Int addreader(int n,char *na)Reader *query(int readerid)Void readerdata()Rdatabase() Book(图书类)Char name20Int oneselfBook
4、()Void delbook()Void addbook(int n,char *na)Void borrowbook()Int retbook() Bdatabase(图书库类)Book bookmaxbBDatabase()Int addbook(int n,char *na)book *query(int bookid)Void bookdata()BDatabase()三、代码编写:#include iomanip.hstring.hfstream.hconst int Maxr=100;const int Maxb=100;const int Maxbor=5;class Reade
5、r int tag; int no; char name10; int borbookMaxbor;public: Reader() char *getname() return name; int gettag() return tag; int getno() return no;void setname(char na) strcpy(name,na);void delbook() tag=1;void addreader(int n,char *na) tag=0; no=n; for (int i=0;iMaxbor;i+) borbooki=0;void borrowbook(in
6、t bookid) if (borbooki=0) borbooki=bookid; return; int retbook(int bookid) if (borbooki=bookid) borbooki=0; return 1; return 0;void disp() coutsetw(5)nosetw(10)name借书编号:; if (borbooki!=0) coutborbooki| coutendl;class RDatabase int top; Reader readMaxr; RDatabase() Reader s; top=-1; fstream file(read
7、er.txt,ios:in); while (1) file.read(char *)&s,sizeof(s); if (!file) break; top+; readtop=s; file.close(); void clear() int addreader (int n,char *na) Reader *p=query(n); if (p=NULL) readtop.addreader(n,na); return 0; Reader *query(int readerid) for (int i=0;=top; if (readi.getno()=readerid & readi.g
8、ettag()=0) return &readi; return NULL; void disp() if (readi.gettag()=0) readi.disp(); void readerdata(); RDatabase() out); file.write(char *)&readi,sizeof(readi); file.close();void RDatabase:readerdata() int choice=1; char rname20; int readerid; Reader *r; while(choice!=0) if (choice!读者维护 endl cinc
9、hoice; if(choice=0)continue; if(choice=1)输入读者编号: cinreaderid;输入读者姓名:rname; addreader(readerid,rname); else if(choice=2) r=query(readerid); if (r=NULL) coutsetname(rname); else if(choice=3) continue;delbook(); if(choice=4)disp(); if(choice=5)disp(); if(choice=6)clear();您的输入有误请重新输入:class Book char nam
10、e20; int onshelf; Book() void setname(char na) strcpy(name,na); void delbook() tag=1; void addbook(int n,char *na) tag=0; no=n; strcpy (name,na); onshelf=1; int borrowbook() if (onshelf=1) onshelf=0; void retbook() setw(6)setw(18)(onshelf=1? 在架已借)setname(bname); if (choice=3) if (choice=4) if (choic
11、e=5)disp(); if (choice=6)clear(); else void main() int choice=1,bookid,readerid; RDatabase ReaderDB; BDatabase BookDB; if(choice!1:借书 2:还书 3:图书维护 4:读者维护 0:离开= 借书 读者编号: 图书编号: r=ReaderDB.query(readerid);该读者不存在,不能借书 b=BookDB.query(bookid); if (b-borrowbook()=0) borrowbook(b-getno();还书 读者编号: 图书编号:不存在该读者
12、,不能借书不存在该图书,不能借书retbook();retbook(b- if (choice=3)BookDB.bookdata(); if (choice=4)ReaderDB.readerdata(); else cout四、总结C+语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验。从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。这不但激发了我的创新意识,还开发了我的创造能力、培养了我的沟通能力。这次实习时间虽然仅有一个星期,但确实使我受益非浅。通过实习我丰富了计算机操作经验,更加深了对C+语言的了解,熟悉了其环境。另外,实习中老师对我们进行了细
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1