综合实验图书馆 2100015 蔡锦波 2班.docx

上传人:b****4 文档编号:12288563 上传时间:2023-04-17 格式:DOCX 页数:25 大小:106.52KB
下载 相关 举报
综合实验图书馆 2100015 蔡锦波 2班.docx_第1页
第1页 / 共25页
综合实验图书馆 2100015 蔡锦波 2班.docx_第2页
第2页 / 共25页
综合实验图书馆 2100015 蔡锦波 2班.docx_第3页
第3页 / 共25页
综合实验图书馆 2100015 蔡锦波 2班.docx_第4页
第4页 / 共25页
综合实验图书馆 2100015 蔡锦波 2班.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

综合实验图书馆 2100015 蔡锦波 2班.docx

《综合实验图书馆 2100015 蔡锦波 2班.docx》由会员分享,可在线阅读,更多相关《综合实验图书馆 2100015 蔡锦波 2班.docx(25页珍藏版)》请在冰豆网上搜索。

综合实验图书馆 2100015 蔡锦波 2班.docx

综合实验图书馆2100015蔡锦波2班

 

院系:

计算机学院

 

实验课程:

计算机基础实验课程

实验项目:

图书馆管理系统设计

指导老师:

黄荔

开课时间:

20013~2014年度第2学期

专业:

计算机类

班级:

13级2班

学生:

蔡锦波

学号:

20132100015

 

华南师范大学教务处

图书馆管理系统设计

1、中文摘要

图书馆在我们的日常生活中起着不小的作用,当我们要查找资料时,我们可以在图书馆找到相关的书籍进行查阅,所以,拥有一个良好的管理系统,就能帮助图书馆的管理人员更方便管理图书,方便读者借书。

2、关键词:

作为一个小小的图书馆管理,最基本的功能要包括下面几个:

1、图书管理:

添加图书信息、更新图书信息、删除图书信息、查找图书;

2、借书;

3、还书;

4、读者管理:

添加读者信息、更新读者信息、删除读者信息、查找读者;

三、前言

为了设计一个小小图书馆管理系统,首先要熟悉图书馆日常管理需要哪些功能,然后对这些功能进行分解,然后逐步用代码实现这些功能;同时在完善功能的同时,也要考虑使用者的方便性,习惯性,所以要设置一些方便的功能进行操作;作为一个系统,界面也是一个很重要的因素,会影响使用者的心情,所以要设计好的界面。

为了提高编程能力,调用函数进行运算。

4、软件开发过程

1、功能比较多,开始的时候不知如何开始,后来就选择一个功能进行编写,慢慢地就知道如何开始写了,最后就将各个功能合并起来,完成整个设计。

2、数据库设计是整个数据库应用系统中非常重要的一步。

3、先运用临时函数对各个功能进行逐一验证,确保能运行,并体现相关的功能,最后采用一个主函数把各个功能联合起来。

图书类:

Book.h

#ifndef_book_h_//若_book_h_未定义,执行下一宏指令

#define_book_h_//用后续红字的正文代替_book_h_

#include

usingnamespacestd;

classBook//图书类

{

public:

Book(){};//构造函数

char*get_name();//获得书名

intget_num();//获得图书编号

intget_note();//获得是否删除标记

voiddel_book();//删除图书

voidadd_book(intn,char*na_);//增加图书

voidset_name(charna_[]);//设置书名

intbor_book();//借书

voidret_book();//还书

voidshow_book();//输出图书

private:

intbook_num;//图书编号

charname[20];//图书名字

intbook_note;//删除标记(1:

已删,0:

未删)

intbook_up;//上架标志(1:

上架-可借出,0:

下架-不可借出)

};

#endif

Book.cpp

#include

usingnamespacestd;

#include

#include"book.h"

char*Book:

:

get_name()

{returnname;}

intBook:

:

get_num()

{returnbook_num;}

intBook:

:

get_note()

{returnbook_note;}

voidBook:

:

set_name(charna_[])

{strcpy(name,na_);}

voidBook:

:

add_book(intn,char*na_)

{

book_note=0;

book_num=n;

strcpy(name,na_);

book_up=1;

}

voidBook:

:

del_book()

{book_note=1;}

intBook:

:

bor_book()

{

if(book_up==1)

{

book_up=0;

return1;

}

return0;

}

voidBook:

:

ret_book()

{book_up=1;}

voidBook:

:

show_book()

{

cout<<"booknum"<<"bookname"<<"borrow"<

cout<<""<

inti=0;

while(i<10)

{

cout<

i++;

}

//for(i=0;i<20;i++)

//cout<

if(book_up==1)

cout<<"can"<

else

cout<<"not"<

}

读者类

Reader.h

#ifndef_reader_h_

#define_reader_h_

#include

usingnamespacestd;

constintMaxbor=5;//最大借阅量

classReader//读者类

{

private:

intrea_note;//删除标记(1:

已删,0:

未删)

intrea_num;//读者编号

charname[20];//读者姓名

intbor_book[Maxbor];//所借图书

public:

Reader(){}//构造函数

char*get_name();//获得姓名

intget_note();//获得删除标记

intget_num();//获得读者标号

voidset_name(charna_[]);//设置姓名

voiddel_book();//设置删除标记

voidadd_reader(intn,char*na);//添加读者

voidborbook(intbookid);//借书操作

intret_book(intbookid);//还书操作

voidshow();//输出读者信息

};

#endif

Reader.cpp

#include

usingnamespacestd;

#include

#include"reader.h"

char*Reader:

:

get_name()

{returnname;}

intReader:

:

get_note()

{returnrea_note;}

intReader:

:

get_num()

{returnrea_num;}

voidReader:

:

set_name(charna_[])

{strcpy(name,na_);}

voidReader:

:

add_reader(intn,char*na_)

{

rea_note=0;

rea_num=n;

strcpy(name,na_);

for(inti=0;i

bor_book[i]=0;

}

voidReader:

:

del_book()

{rea_note=1;}

voidReader:

:

borbook(intbookid)

{

for(inti=0;i

{

if(bor_book[i]==0)

{

bor_book[i]=bookid;

return;

}

}

}

intReader:

:

ret_book(intbookid)

{

for(inti=0;i

{

if(bor_book[i]==bookid)

{

bor_book[i]=0;

return1;

}

}

return0;

}

voidReader:

:

show()

{

if(rea_note==0)

{

cout<

[";

for(inti=0;i

if(bor_book[i]!

=0)cout<

cout<<"]"<

}

}

图书库类

Database.h

#ifndef_database_h_

#define_database_h_

#include

usingnamespacestd;

#include"book.h"

constintMaxb=100;//最大图书数量

classDatabase//图书库类

{

private:

inttop;//图书记录

Bookbook_[Maxb];//图书记录

public:

Database();//构造函数初始化:

读文件

voidclear_all();//全部删除

intadd_book(intn,char*na_);//添加图书

Book*query(intbookid);//查找图书

voidshow();//输出图书信息

voidbook_data();//图书库维护

~Database();//析构函数:

写文件

};

#endif

Database.cpp

#include

usingnamespacestd;

#include

#include"database.h"

usingnamespacestd;

Database:

:

Database()

{

Books;

top=-1;

fstreamfile("book.txt",ios:

:

in);

while

(1)

{

file.read((char*)&s,sizeof(s));

if(!

file)break;

top++;

book_[top]=s;

}

file.close();

}

voidDatabase:

:

clear_all()

{top=-1;}

Book*Database:

:

query(intbookid)

{

for(inti=0;i<=top;i++)

if(book_[i].get_num()==bookid&&book_[i].get_note()==0)

return&book_[i];

returnNULL;

}

intDatabase:

:

add_book(intn,char*na_)

{

Book*p=query(n);

if(p==NULL)

{

top++;

book_[top].add_book(n,na_);

return1;

}

return0;

}

voidDatabase:

:

show()

{

for(inti=0;i<=top;i++)

book_[i].show_book();

}

Database:

:

~Database()//析构函数

{

fstreamfile("book.txt",ios:

:

out);

for(inti=0;i<=top;i++)

if(book_[i].get_note()==0)

file.write((char*)&book_[i],sizeof(book_[i]));

file.close();

}

voidDatabase:

:

book_data()

{

intchoice=1;

charbook_name[20];

intbookid;

Book*b;

while(choice)

{

cout<<"图书维护"<

cout<<"*******************************************************"<

cout<<"**"<

cout<<"*1:

新增2:

更改3:

删除4:

查找5:

显示6:

全删0:

退出*"<

cout<<"**"<

cout<<"*******************************************************"<

cout<<"功能选择:

";

cin>>choice;

switch(choice)

{

case1:

cout<<"输入图书编号:

";

cin>>bookid;

cout<<"输入图书名:

";

cin>>book_name;

add_book(bookid,book_name);break;

case2:

cout<<"输入图书编号:

";

cin>>bookid;

b=query(bookid);

if(b==NULL){cout<<"该图书不存在!

"<

cout<<"输入新的图书名:

";

cin>>book_name;

b->set_name(book_name);break;

case3:

cout<<"输入图书编号:

";

cin>>bookid;

b=query(bookid);

if(b==NULL){cout<<"该图书不存在!

"<

b->del_book();

break;

case4:

cout<<"输入图书编号:

";

cin>>bookid;

b=query(bookid);

if(b==NULL){cout<<"该图书不存在!

"<

b->show_book();break;

case5:

show();break;

case6:

clear_all();break;

}

}

}

读者库类

Rdatabase.h

#ifndef_rdatabase_h_

#define_rdatabase_h_

#include

usingnamespacestd;

#include"reader.h"

constintMaxr=1000;//最大读者数

classRDatabase//读者库类

{

private:

inttop;//读者记录指针

Readerreader_[Maxr];//读者记录

public:

RDatabase();//构造函数初始化:

读文件

voidclear_all();//删除所有读者信息

intadd_reader(intn,char*na_);//添加读者记录,先确定他们是否已经存在

Reader*query(intreaderid);//按编号查找

voidshow();//输出所有读者信息

voidrea_data();//读者库维护

~RDatabase();//析构函数:

写文件

};

#endif

Rdatabase.cpp

#include

#include

usingnamespacestd;

#include"rdatabase.h"

RDatabase:

:

RDatabase()

{

Readers;

top=-1;

fstreamfile("reader.txt",ios:

:

in);

while

(1)

{

file.read((char*)&s,sizeof(s));

if(!

file)break;

top++;

reader_[top]=s;

}

file.close();

}

voidRDatabase:

:

clear_all()

{top=-1;}

Reader*RDatabase:

:

query(intreaderid)

{

for(inti=0;i<=top;i++)

if(reader_[i].get_num()==readerid&&reader_[i].get_note()==0)

return&reader_[i];

returnNULL;

}

intRDatabase:

:

add_reader(intn,char*na_)

{

Reader*p=query(n);

if(p==NULL)

{

top++;

reader_[top].add_reader(n,na_);

return1;

}

return0;

}

voidRDatabase:

:

show()

{

for(inti=0;i<=top;i++)

reader_[i].show();

}

RDatabase:

:

~RDatabase()

{

fstreamfile("reader.txt",ios:

:

out);

for(inti=0;i<=top;i++)

if(reader_[i].get_note()==0)

file.write((char*)&reader_[i],sizeof(reader_[i]));

file.close();

}

voidRDatabase:

:

rea_data()

{

intchoice=1;

charreader_name[20];

intreaderid;

Reader*r;

while(choice)

{

cout<<"读者维护:

"<

cout<<"———————————————————————————"<

cout<<"||"<

cout<<"|1:

新增2:

更改3:

删除4:

查找5:

显示6:

全删0:

退出|"<

cout<<"||"<

cout<<"———————————————————————————"<

cout<<"功能选择:

";

cin>>choice;

switch(choice)

{

case1:

cout<<"输入读者编号:

";

cin>>readerid;

cout<<"输入读者名:

";

cin>>reader_name;

add_reader(readerid,reader_name);break;

case2:

cout<<"输入读者编号:

";

cin>>readerid;

r=query(readerid);

if(r==NULL){cout<<"该读者不存在!

"<

cout<<"输入新的读者名:

";

cin>>reader_name;

r->set_name(reader_name);break;

case3:

cout<<"输入读者编号:

";

cin>>readerid;

r=query(readerid);

if(r==NULL){cout<<"该读者不存在!

"<

case4:

cout<<"输入读者编号:

";

cin>>readerid;

r=query(readerid);

if(r==NULL){cout<<"该读者不存在!

"<

r->show();break;

case5:

show();break;

case6:

clear_all();break;

}

}

}

主函数

#include

#include"reader.h"

#include"rdatabase.h"

#include"book.h"

#include"database.h"

usingnamespacestd;

intmain()

{

intchoice=1,bookid,readerid;

RDatabaseReaderDB;

DatabaseBookDB;

Reader*r;

Book*b;

cout<<"*********************************************"<

cout<<"**"<

cout<<"**"<

cout<<"*“小小图书馆”*"<

cout<<"**"<

cout<<"**"<

cout<<"*********************************************"<

cout<

while(choice)

{

cout<<"—————————————————————————————"<

cout<<"||"<

cout<<"|1:

图书管理2:

借书功能3:

还书功能4:

读者管理0:

离开|"<

cout<<"||"<

cout<<"—————————————————————————————"<

cout<<"请选择功能:

";

cin>>choice;

switch(choice)

{

case2:

cout<<"输入借书读者编号:

";

cin>>readerid;

cout<<"输入图书编号";

cin>>bookid;

r=ReaderDB.query(readerid);

if(r==NULL)

{

cout<<"该读者不存在,不能借书!

"<

break;

}

b=BookDB.query(bookid);

if(b==NULL)

{

cout<<"该图书不存在,不能借书!

"<

break;

}

if(b->bor_book()==0)

{

cout<<"该图书已借出,不能借书!

"<

break;

}

r->borbook(b->get_num());break;

case3:

cout<<"输入读者编号:

";

cin>>readerid;

cout<<"输入图书编号";

cin>>bo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1