8总结
本程序使用了3个类:图书类,读者类,管理员类。使用链表进行储存,查找时按照节点顺序依次查照。根据输入的结果调用相应函数,图书馆的基本功能
大都能够实现。
9 结论
我的这个图书馆管理系统做的不是很好,有些基本功能能够实现,虽然有借书、还书以及对读者、管理员、图书的维护,但是有很多细节操作没有体现出来,所以需要进一步改正,如可以对读者增加派生类实现对学生、研究所、
老师等的区别,还有文件的保存也需要改进。
通过本次课程设计,让我对C++有了进一步的了解和使用,能把学了的东西用于实践还是让我非常有成就感,但是不足的是对类、派生类还有指针以及文件的运用掌握的不是很好,所以我会在假期内通过多看书反复操作提高自己
的编程能力。在这里还要感谢诸位老师的支持和信赖。
附 录
附录1 源代码清单 #include { private: int tag; int no;编号 char name[10]; int workage;工龄 int salary; public: Librarian(){} char *getname(){return name;} int gettag(){return tag;} int getno(){return no;} void setname(char na[]) { strcpy(name,na); } void delworker(){tag=1;} void addlibrarian(int n,char *na)增加管理员 { tag=0; no=n; strcpy(name,na); workage=0; salary=2000; } void disp()读出管理员信息 { cout< 资:\ } }; 管理员类库,实现建立管理员的个人资料 class LDatabase { private: int top; 管理员记录指针 Librarian work[20];管理员记录 public: LDatabase() 构造函数,将worker.txt读到work[]中 { Librarian x; top=-1; fstream file(\打开一个输入文件 while (1) { file.read((char *)&x,sizeof(x)); if (!file)break; top++; work[top]=x; } file.close(); 关闭 worker.txt } void clear()删除所有管理员信息 { top=-1; } int addlibrarian(int n,char *na)添加管理员时先查找是否存在 { Librarian *p=query(n); if (p==NULL) { top++; work[top].addlibrarian(n,na); return 1; } return 0; } Librarian *query(int workerid)按编号查找 { for (int i=0;i<=top;i++) if (work[i].getno()==workerid && work[i].gettag()==0) { return &work[i]; } return NULL; } void disp() 输出所有管理员信息 { for (int i=0;i<=top;i++) work[i].disp(); } void workerdata();管理员库维护 ~LDatabase() 析构函数,将work[]写到worker.txt文件中 { fstream file(\ for (int i=0;i<=top;i++) if (work[i].gettag()==0) file.write((char *)&work[i],sizeof(work[i])); file.close(); } }; void LDatabase::workerdata() { char choice; char wname[20]; int workerid; Librarian *w; while (choice!='0') { cout <<\管理员维护\\n\\n\\n\\t\\t 1新增\\n\\n\\t\\t 2更改\\n\\n\\t\\t 3删 除\\n\\n\\t\\t 4查找\\n\\n\\t\\t 5显示\\n\\n\\t\\t 6全删\\n\\n\\t\\t 0退出 \cin >> choice; switch (choice) { case '1': cout << \输入管理员编号:\ cin >> workerid; cout << \输入管理员姓名:\ cin >> wname; addlibrarian (workerid,wname); break; case '2': cout << \输入管理员编号:\ cin >> workerid; w=query(workerid); if (w==NULL) { cout << \该管理员不存在 \ break; } cout << \输入新的姓名:\ cin >> wname; w->setname(wname); break; case '3': cout << \输入管理员编号:\ cin >> workerid; 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库(最新版)图书管理系统毕业课程设计内容(4)在线全文阅读。
相关推荐: