当前位置:神舟问>百科知识>中小学图书馆适用的管理系统

中小学图书馆适用的管理系统

2024-01-04 01:04:33 编辑:join 浏览量:592

问题补充说明:图书馆条件不是很好,没有象华中希望那样的可自动识别的条形码.只有靠电脑输入,有什么适合的推荐吗??

中小学图书馆适用的管理系统

用C-FREE编一个也行

//图书管理系统

#include<iostream>

#include<iomanip>

#include<string>

#incl用少联意但仍选获急节ude<fstream>//输入/输出文件流类

#include<ctime>

usingnamespacestd;

constintMaxr=印首严杂整局衣矛至100;//最多的读者

constintMaxb=100;//最多的图书

constintMaxbor=5;//每位读者最多借五本书

//读者类,实现对读者依能级设言氢要曾的信息的描述

classReader

{

private:

inttag;//删除标记1:已删0:未删

intno;//读者编号

charname[10];//读者姓名

intborbook[Maxbor360问答];//所借图书

public:

Reader(){}

char*getname(){returnname;}//获取姓名

intgetta马迅们映担农则阶g(){return形镇国厚早钟然探热划久tag;}//获取删除标记

in例感识些五宁析深值二tgetno(){return外带冲老境感括富no;}//获取读者编号

voidsetname(charna[])//设置姓名

{

strcpy(name,na);

}

voiddelreader(){t粒较木个院每ag=1;}//设置删除标记1:已删0:未删

voidaddreader(intn,char*na)//增加读者

{

tag=0;

no=n;

strcpy(name晶理配庆,na);

for(inti=0整科径向到规史销载;i<Maxbor;i++)

borbook[i]=0;

}

voidborrowbook(intbookid)//借书操作

{

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

{

歌标跳复if(borbook[i]==0)//找5本书中空余的空间把bookid给borbook

场通选派迅{

borbook[i]=bookid;

break;

}

}

}

voidretbook(intbookid)//还书操作

{

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

{

if(borboo血k[i]==bookid)

{

b不成突景磁促orbook[i]=0;

}

}

}

voiddisp()/据稳司雨起住程建顾制们/读出读者信息

{

cout<<setw(5)<<"ID:"<<no<<s陆范按八拉找etw(10)<<"name:"<<name<<"\t"<<"借书编号:[";

for(inti=0;i<Maxbor&&tag!=1;i++)

if(borbook[i]!=0)

cout<<borbook[i]<<"|";

cout<<"]"<<endl;

}

};

//读者类库,实现建立读者的个人资料

classRDatabase

{

private:

inttop;//读者记录指针

Readerread[Maxr];//读者记录

public:

RDatabase()//构造函数,将***.txt读到read[]中

{

Readers;

top=-1;

fstreamfile("***.txt",ios::i策起用轴选待袁下给轮n);//打开一个输入文件

while(1)

{

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

if(!file)break;

top++;

read[top]=s;

}

***.c祖阻lose();//关闭***.txt

}

voidclear()//删除所有读者信息

{

top=-1;

}

voidaddreader(intn,char*na)//添加读者时先查找是否存在

{

Reader*p=query(n);

if(p==NULL)

{

top++;

read[top].addreader(n,na);

cout<<"增加读者成功!";

}

elsecout<<"读者已经存在!";

}

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

{

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

if(read[i].getno()==readerid&&

read[i].gettag()==0)

{

return&read[i];//返回读者的地址

}

returnNULL;

}

voiddisp()//输出所有读者信息

{

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

read[i].disp();

}

voidreaderdata();//读者库维护

~RDatabase()//析构函数,将read[]写到***.txt文件中

{

fstreamfile("***.txt",ios::out);

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

if(read[i].gettag()==0)

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

***.close();

}

};

voidRDatabase::readerdata()

{

charchoice;

charrname[20];

intreaderid;

Reader*r;

system("cls");

while(choice!='0')

{

cout<<"\n\n\t\t\t***读者维护***\n\n\n\t\t\t\t1新增\n\n\t\t\t\t2更改\n\n\t\t\t\t3删除\n\n\t\t\t\t4查找\n\n\t\t\t\t5显示\n\n\t\t\t\t6全删\n\n\t\t\t\t0退出"<<endl;

cin>>choice;

switch(choice)

{

case'1'://新增

system("cls");

cout<<"输入读者编号:";

cin>>readerid;

cout<<"输入读者姓名:";

cin>>rname;

addreader(readerid,rname);

break;

case'2'://更改

system("cls");

cout<<"输入读者编号:";

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<<"该读者不存在"<<endl;

break;

}

cout<<"输入新的姓名:";

cin>>rname;

r->setname(rname);

cout<<"更改读者成功!";

break;

case'3'://删除

system("cls");

cout<<"输入读者编号:";

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<<"该读者不存在"<<endl;

break;

}

r->delreader();

cout<<"删除读者成功!";

break;

case'4'://查找

cout<<"读入读者编号:";

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<<"该读者不存在"<<endl;

break;

}

cout<<"找到读者:"<<endl;

r->disp();

break;

case'5'://显示

cout<<"显示读者如下:"<<endl;

disp();

break;

case'6'://全删

clear();

cout<<"删除成功!";

break;

case'0'://退出

cout<<"退出!";system("cls");break;

default:cout<<"输入错误,请从新输入:";break;

}

}

}

//图书类,实现对图书的描述,图书的编号,书名,借出,还入等

classBook

{

private:

inttag;//删除标记1:已删0:未删

intno;//图书编号

charname[20];//书名

intonshelf;//是否在架1:在架2:已借

public:

Book(){}

char*getname(){returnname;}//获取书名

intgetno(){returnno;}//获取图书编号

intgettag(){returntag;}//获取删除标记

voidshowtime(tm*pt)

{

cout<<setfill('0')<<1900+pt->tm_year<<'-';

cout<<setw(2)<<pt->tm_mon+1<<'-';

cout<<setw(2)<<pt->tm_mday<<'';

}//显示借书时间

voidsetname(charna[])//设置书名

{

strcpy(name,na);

}

voiddelbook(){tag=1;}//删除图书

voidaddbook(intn,char*na)//增加图书

{

tag=0;

no=n;

strcpy(name,na);

onshelf=1;

}

intborrowbook()//借书操作

{

if(onshelf==1)

{

onshelf=0;

return1;

}

return0;

}

intretbook()//还书操作

{

onshelf=1;

return0;

}

voiddisp()//显示图书

{

if(!tag)

{

cout<<setw(6)<<no<<setw(18)<<"《"<<name<<"》"<<setw(10);

if(onshelf==1)cout<<"在架"<<endl;

elsecout<<"已借"<<endl;

}

}

};

//图书库类,实现对图书的维护,查找,删除等

classBDatabase

{

private:

inttop;//图书记录指针

Bookbook[Maxb];//图书记录

public:

BDatabase()//构造函数,将***.txt读到book[]中

{

Bookb;

top=-1;

fstreamfile("***.txt",ios::in);

while(1)

{

***.read((char*)&b,sizeof(b));

if(!file)break;

top++;

book[top]=b;

}

***.close();

}

voidclear()//全删

{

top=-1;

}

voidaddbook(intn,char*na)//增加图书

{

Book*p=query(n);

if(NULL==p)

{

top++;

book[top].addbook(n,na);

cout<<"增加图书成功!";

}

elsecout<<"图书已经存在!";

}

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

{

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

if(book[i].getno()==bookid&&book[i].gettag()==0)

{

return&book[i];

}

returnNULL;

}

voidbookdata();//图书库维护

voiddisp()

{

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

if(book[i].gettag()==0)

book[i].disp();

}

~BDatabase()//析构函数,将book[]写到***.txt文件中

{

fstreamfile("***.txt",ios::out);

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

if(book[i].gettag()==0)

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

***.close();

}

};

voidBDatabase::bookdata()

{

charchoice;

charbname[40];

intbookid;

Book*b;

system("cls");

while(choice!='0')

{

cout<<"\n\n\t\t\t***图书维护***\n\n\n\t\t\t\t1新增\n\n\t\t\t\t2更改\n\n\t\t\t\t3删除\n\n\t\t\t\t4查找\n\n\t\t\t\t5显示\n\n\t\t\t\t6全删\n\n\t\t\t\t0退出"<<endl;

cin>>choice;

switch(choice)

{

case'1'://新增

system("cls");

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

cin>>bookid;

cout<<"输入图书书名:"<<endl;

cin>>bname;

addbook(bookid,bname);

break;

case'2'://更改

system("cls");

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

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<<"该图书不存在"<<endl;

break;

}

cout<<"输入新的书名:"<<endl;

cin>>bname;

b->setname(bname);

cout<<"更改图书成功!";

break;

case'3'://删除

system("cls");

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

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<<"该图书不存在"<<endl;

break;

}

b->delbook();

cout<<"删除图书成功!";

break;

case'4'://查找

system("cls");

cout<<"读入图书编号:"<<endl;

cin>>bookid;

b=query(bookid);

if(b==NULL&&b->gettag()!=1)

{

cout<<"该图书不存在"<<endl;

break;

}

cout<<"找到图书:"<<endl;

b->disp();

break;

case'5'://显示

system("cls");

cout<<"显示图书如下:"<<endl;

disp();

break;

case'6'://全删

system("cls");

clear();

cout<<"删除图书成功!";

break;

case'0'://退出

cout<<"退出!";system("cls");break;

default:cout<<"输入错误,请从新输入:";

}

}

}

//main()函数的实现,程序的主界面的引导

voidxt()

{charchoice;

intbookid,readerid;

RDatabaseReaderDB;

Reader*r,r1;

BDatabaseBookDB;

Book*b;

while(choice!='0')

{

cout<<endl<<endl<<"\t\t\t***图书管理系统***\n\n\n";

cout<<"1借书\n"<<endl<<endl;

cout<<"2还书\n"<<endl<<endl;

cout<<"3图书管理\n"<<endl<<endl;

cout<<"4读者管理\n"<<endl<<endl;

cout<<"5离开\n"<<endl<<endl;

cin>>choice;

switch(choice)

{

case'1'://借书

system("cls");

cout<<"借书读者编号:";

cin>>readerid;

r=***.query(readerid);//按编号查找

if(r==NULL)

{

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

break;

}

r->disp();

cout<<"图书编号:";

cin>>bookid;

b=***.query(bookid);

if(b==NULL)

{

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

break;

}

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

{

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

break;

}

b->disp();

r->borrowbook(b->getno());

cout<<"借书成功!";

break;

case'2'://还书

system("cls");

cout<<"还书\n读者编号:";

cin>>readerid;

r=***.query(readerid);

if(r==NULL)

{

cout<<"不存在该读者,不能还书"<<endl;

break;

}

r->disp();

cout<<"图书编号:";

cin>>bookid;

b=***.query(bookid);

if(b==NULL)

{

cout<<"不存在该图书,不能还书"<<endl;

break;

}

b->disp();

b->retbook();

r->retbook(b->getno());

cout<<"还书成功!";

break;

case'3'://图书管理

system("cls");

***.bookdata();

break;

case'4'://读者管理

system("cls");

***.readerdata();

break;

case'0'://退出

cout<<"退出!";break;

default:cout<<"输入错误,请从新输入:";

system("cls");

}

}

}

voidmain()

{

system("color7c");

intgh,pw;

cout<<"进入系统前请先登陆!"<<endl;

cout<<"请输入管理员工号:"<<endl;

cin>>gh;

cout<<"请输入密码:"<<endl;

cin>>pw;

if(gh==12345&&pw==12345)

{system("cls");

xt();}

else

cout<<"工号或密码输入错误,请重新输入!"<<endl<<endl;

main();}

标签:管理系统,中小学,图书馆

版权声明:文章由 神舟问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.shenzhouwen.com/article/249402.html
热门文章