1、综合实验图书馆 2100015 蔡锦波 2班院 系:计 算 机 学 院实验课程:计算机基础实验课程实验项目:图书馆管理系统设计指导老师: 黄 荔 开课时间:20013 2014年度第 2学期专 业:计算机类班 级:13级 2 班学 生: 蔡锦波学 号:20132100015华南师范大学教务处 图书馆管理系统设计1、中文摘要图书馆在我们的日常生活中起着不小的作用,当我们要查找资料时,我们可以在图书馆找到相关的书籍进行查阅,所以,拥有一个良好的管理系统,就能帮助图书馆的管理人员更方便管理图书,方便读者借书。2、关键词: 作为一个小小的图书馆管理,最基本的功能要包括下面几个: 1、图书管理:添加图书
2、信息、更新图书信息、删除图书信息、查找图书;2、借书;3、还书;4、读者管理:添加读者信息、更新读者信息、删除读者信息、查找读者;三、前言为了设计一个小小图书馆管理系统,首先要熟悉图书馆日常管理需要哪些功能,然后对这些功能进行分解,然后逐步用代码实现这些功能;同时在完善功能的同时,也要考虑使用者的方便性,习惯性,所以要设置一些方便的功能进行操作;作为一个系统,界面也是一个很重要的因素,会影响使用者的心情,所以要设计好的界面。为了提高编程能力,调用函数进行运算。4、软件开发过程1、功能比较多,开始的时候不知如何开始,后来就选择一个功能进行编写,慢慢地就知道如何开始写了,最后就将各个功能合并起来,
3、完成整个设计。2、数据库设计是整个数据库应用系统中非常重要的一步。3、先运用临时函数对各个功能进行逐一验证,确保能运行,并体现相关的功能,最后采用一个主函数把各个功能联合起来。图书类:Book.h#ifndef _book_h_ / 若_book_h_未定义,执行下一宏指令#define _book_h_ / 用后续红字的正文代替_book_h_ #includeusing namespace std;class Book/图书类public: Book();/构造函数 char*get_name();/获得书名 int get_num();/获得图书编号 int get_note();/获得
4、是否删除标记 void del_book();/删除图书 void add_book(int n,char*na_);/增加图书 void set_name(char na_);/设置书名 int bor_book();/借书 void ret_book();/还书 void show_book();/输出图书private: int book_num;/图书编号 char name20;/图书名字 int book_note;/删除标记(1:已删,0:未删) int book_up;/上架标志(1:上架-可借出,0:下架-不可借出);#endifBook.cpp#includeusing n
5、amespace std;#include#includebook.hchar *Book:get_name()return name;int Book:get_num()return book_num;int Book:get_note()return book_note;void Book:set_name(char na_)strcpy(name,na_);void Book:add_book(int n,char*na_) book_note=0; book_num=n; strcpy(name,na_); book_up=1;void Book:del_book()book_note
6、=1;int Book:bor_book() if(book_up=1) book_up=0; return 1; return 0;void Book:ret_book()book_up=1;void Book:show_book() coutbooknum bookname borrowendl; cout book_num ;/输出当前图书的书号.书名.是否可借阅 int i=0; while(i10) coutnamei; i+; /for(i=0;i20;i+) /coutnamei; if(book_up=1) cout canendl; else cout notendl;读者类
7、Reader.h#ifndef _reader_h_#define _reader_h_#includeusing namespace std;const int Maxbor=5;/最大借阅量class Reader/读者类private: int rea_note;/删除标记(1:已删,0:未删) int rea_num;/读者编号 char name20;/读者姓名 int bor_bookMaxbor;/所借图书public: Reader()/构造函数 char *get_name();/获得姓名 int get_note();/获得删除标记 int get_num();/获得读者标
8、号 void set_name(char na_);/设置姓名 void del_book();/设置删除标记 void add_reader(int n,char *na);/添加读者 void borbook(int bookid);/借书操作 int ret_book(int bookid);/还书操作 void show();/输出读者信息;#endifReader.cpp#includeusing namespace std;#include#includereader.hchar *Reader:get_name()return name;int Reader:get_note()
9、return rea_note;int Reader:get_num()return rea_num;void Reader:set_name(char na_)strcpy(name,na_);void Reader:add_reader(int n,char *na_) rea_note=0; rea_num=n; strcpy(name,na_); for(int i=0;iMaxbor;i+) bor_booki=0;void Reader:del_book()rea_note=1;void Reader:borbook(int bookid) for(int i=0;iMaxbor;
10、i+) if(bor_booki=0) bor_booki=bookid; return ; int Reader:ret_book(int bookid) for(int i=0;iMaxbor;i+) if(bor_booki=bookid) bor_booki=0; return 1; return 0;void Reader:show() if(rea_note=0) coutsetw(5)rea_numsetw(10)name借书编号:; for(int i=0;iMaxbor;i+) if(bor_booki!=0) coutbor_booki ; coutendl; 图书库类Da
11、tabase.h#ifndef _database_h_#define _database_h_#includeusing namespace std;#includebook.hconst int Maxb=100;/最大图书数量class Database/图书库类private: int top;/图书记录 Book book_Maxb;/图书记录public: Database();/构造函数初始化:读文件 void clear_all();/全部删除 int add_book(int n,char *na_);/添加图书 Book *query(int bookid);/查找图书 v
12、oid show();/输出图书信息 void book_data();/图书库维护 Database();/析构函数:写文件;#endifDatabase.cpp#includeusing namespace std;#include#includedatabase.husing namespace std;Database:Database() Book s; top=-1; fstream file(book.txt,ios:in); while(1) file.read(char*)&s,sizeof(s); if(!file) break; top+; book_top=s; fil
13、e.close();void Database:clear_all()top=-1;Book *Database:query(int bookid) for(int i=0;i=top;i+) if(book_i.get_num()=bookid&book_i.get_note()=0) return &book_i; return NULL;int Database:add_book(int n,char *na_) Book *p=query(n); if(p=NULL) top+; book_top.add_book(n,na_); return 1; return 0;void Dat
14、abase:show() for(int i=0;i=top;i+) book_i.show_book();Database:Database()/析构函数 fstream file(book.txt,ios:out); for(int i=0;i=top;i+) if(book_i.get_note()=0) file.write(char*)&book_i,sizeof(book_i); file.close();void Database:book_data() int choice=1; char book_name20; int bookid; Book *b; while(choi
15、ce) cout 图书维护 endl; cout*endl; cout* *endl; cout* 1:新增 2:更改 3:删除 4:查找 5:显示 6:全删 0:退出 *endl; cout* *endl; cout*endl; coutchoice; switch(choice) case 1:coutbookid; coutbook_name; add_book(bookid,book_name);break; case 2:coutbookid; b=query(bookid); if(b=NULL) cout该图书不存在!endl;break; coutbook_name; b-se
16、t_name(book_name);break; case 3:coutbookid; b=query(bookid); if(b=NULL) cout该图书不存在!del_book(); break; case 4:coutbookid; b=query(bookid); if(b=NULL) cout该图书不存在!show_book();break; case 5:show();break; case 6:clear_all();break; 读者库类Rdatabase.h#ifndef _rdatabase_h_#define _rdatabase_h_#includeusing nam
17、espace std;#includereader.hconst int Maxr=1000;/最大读者数class RDatabase/读者库类private: int top;/读者记录指针 Reader reader_Maxr;/读者记录public: RDatabase();/构造函数初始化:读文件 void clear_all();/删除所有读者信息 int add_reader(int n,char *na_);/添加读者记录,先确定他们是否已经存在 Reader *query(int readerid);/按编号查找 void show();/输出所有读者信息 void rea_
18、data();/读者库维护 RDatabase();/析构函数:写文件;#endifRdatabase.cpp#include#includeusing namespace std;#includerdatabase.hRDatabase:RDatabase() Reader s; top=-1; fstream file(reader.txt,ios:in); while(1) file.read(char*)&s,sizeof(s); if(!file) break; top+; reader_top=s; file.close();void RDatabase:clear_all()to
19、p=-1;Reader *RDatabase:query(int readerid) for(int i=0;i=top;i+) if(reader_i.get_num()=readerid&reader_i.get_note()=0) return &reader_i; return NULL;int RDatabase:add_reader(int n,char *na_) Reader *p=query(n); if(p=NULL) top+; reader_top.add_reader(n,na_); return 1; return 0;void RDatabase:show() f
20、or(int i=0;i=top;i+) reader_i.show();RDatabase:RDatabase() fstream file(reader.txt,ios:out); for(int i=0;i=top;i+) if(reader_i.get_note()=0) file.write(char*)&reader_i,sizeof(reader_i); file.close();void RDatabase:rea_data() int choice=1; char reader_name20; int readerid; Reader *r; while(choice) co
21、ut读者维护:endl; cout endl; cout| |endl; cout| 1:新增 2:更改 3:删除 4:查找 5:显示 6:全删 0:退出 |endl; cout| |endl; cout endl; coutchoice; switch(choice) case 1:coutreaderid; coutreader_name; add_reader(readerid,reader_name);break; case 2:coutreaderid; r=query(readerid); if(r=NULL) cout该读者不存在!endl;break; coutreader_n
22、ame; r-set_name(reader_name);break; case 3:coutreaderid; r=query(readerid); if(r=NULL) cout该读者不存在!endl;break; case 4:coutreaderid; r=query(readerid); if(r=NULL) cout该读者不存在!show();break; case 5:show();break; case 6:clear_all();break; 主函数#include#includereader.h#includerdatabase.h#includebook.h#includ
23、edatabase.husing namespace std;int main() int choice=1,bookid,readerid; RDatabase ReaderDB; Database BookDB; Reader *r; Book *b; cout *endl; cout * *endl; cout * *endl; cout * “ 小 小 图 书 馆 ” *endl; cout * *endl; cout * *endl; cout *endl; coutendl; while(choice) cout endl; cout| |endl; cout| 1:图书管理 2:
24、借书功能 3:还书功能 4:读者管理 0:离开 |endl; cout| |endl; cout endl; coutchoice; switch(choice) case 2:coutreaderid; coutbookid; r=ReaderDB.query(readerid); if(r=NULL) cout该读者不存在,不能借书!endl; break; b=BookDB.query(bookid); if(b=NULL) cout该图书不存在,不能借书!bor_book()=0) cout该图书已借出,不能借书!borbook(b-get_num();break; case 3:coutreaderid; coutbo
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1