C++图书管理系统源代码.docx
《C++图书管理系统源代码.docx》由会员分享,可在线阅读,更多相关《C++图书管理系统源代码.docx(43页珍藏版)》请在冰豆网上搜索。
C++图书管理系统源代码
图书管理系统
系统功能:
1.借书:
根据借书人提出的图书编号(id)查询该图书,如果该图书现存量(store)不为
0,则提示输入借阅者的学号(num),为借书人办理借书手续,提示用户该书已被借出。
2.归书:
根据借书人的学号查询该读者的信息,若有该读者,则提示输入所借书籍的编号
(id),为该读者办理还书手续,提示该书已还。
3.书籍管理:
弹出书籍管理界面,输入所要执行操作的号码:
(1)增加书籍:
弹出注册新书的窗口,按照提示输入所增加书籍的信息,最后,提示用户该书已被注册。
(2)删除书籍:
弹出删除书籍的窗口,输入所要删除书籍的编号(id),输出该书的信息,
确认是否删除该书,1为删除,0为放弃。
(3)修改书籍:
弹出修改书籍的窗口,输入所要修改书籍的编号(id),输出该书的信息,
确认是否修改该书,1为修改,0为放弃。
之后按照提示重新输入书籍的信息。
4.读者管理:
弹出读者管理界面,输入所要执行操作的号码:
1)增加读者:
弹出注册读者的窗口,按照提示输入所增加读者的信息,最后,提示用户
该读者已被注册。
(2)删除书籍:
弹出删除读者的窗口,输入所要删除读者的学号(num),输出该读者的信
息,确认是否删除该读者,1为删除,0为放弃。
(3)修改书籍:
弹出修改读者的窗口,输入所要修改读者的学号(num),输出该读者的信
息,确认是否修改该读者,1为修改,0为放弃。
之后按照提示重新输入读者的信息。
5.搜索:
此搜索包括两方面的搜索,书籍搜索以及读者搜索,弹出搜索的窗口,按照提示输入所要搜索的内容,1为书籍搜索,2为读者搜索:
(1)搜索书籍:
弹出搜索书籍的窗口,按照提示输入所要搜索的方式,包括按<1>书名搜
索,<2>书号搜索,<3>作者搜索,<4>出版社搜索,<5>出版时间搜索;根据所选方式输入相应的内容,若是该书籍存在,则输出该书籍的信息,否则,返回主界面。
(2)搜索读者:
弹出搜索读者的窗口,按照提示输入所要搜索的方式,包括按<1>名字搜
索,<2>学号搜索;根据所选方式输入相应的内容,若是该读者存在,则输出该读者的信息,否则,返回主界面。
6.退出:
退出图书管理系统。
图书类设计:
私有成员:
书名(name)、编号(id)、作者名(writer)、价格(price)、总存量(total)、现存量(store)、出版单
charname[50];
charwriter[10];
charborrower[10];intid;
intborr_num;
intstore;
inttotal;
intpub_time;floatprice;
charpublish[50];
public:
book();
intbook1();
intbook_add();
intbook_del();//
位(publish)、出版时间(pub_time)。
及该书的借阅情况(借阅者名字(borrower)、借阅者学号(borr_num):
若无人借阅该书,则borrower=0,borr_num=0;否则borrower=借阅者名字,borr_num=借阅者学号)
classbook
{
private:
//书名
//作者
//借书人
//书号
//借书人学号
//现存量
//总存量
//出版时间
//价格
//出版社
//book类构造函数
//书籍管理界面函数
//增加书籍函数
删除书籍函数
intbook_in();//还书函数
intbook_name();//按书名搜索书籍函数
intbook_id();//按书号搜索书籍函数
intbook_pub();
//按出版社搜索书籍函数
intbook_time();
//按出版时间搜索书籍函数
intbook_writer();
//按作者搜索书籍函数
intseach_book();
//搜索书籍界面函数
intseach();
//主搜索界面函数
读者类设计:
私有成员:
借书人的姓名(name)、性别(sex)、年级(grade)、班级(class)、学号(num)。
及所借图书名字(book_name)、借书日期(date)、可借天数(avai_days)。
classreader
{
private:
charname[10];
//名字
intnum;
//学号
chargrade[10];
//年级
charsex[10];
charbook_name[50];
chardate[10];
intavai_days;
//性别
//所借书的书名
//借书日期
//可借天数
intreader_1();
//读者管理界面函数
intreader_add();
//增加读者函数
intreader_del();
//删除读者函数
intreader_mod();
//修改读者函数
intreader_name();
//按读者名字搜索读者函数
intreader_num();
//按读者学号搜索读者函数
intseach_reader();
//搜索读者界面函数
char*getname();
//获取读者姓名函数
intgetnum();
//获取读者学号函数
char*getgrade();
//获取读者年级函数
char*getclas();
//获取读者班级函数
char*getsex();
//获取读者性别函数
char*getbook_name();//获取所借书书名函数
char*getdate();
//获取借书日期函数
intgetavaiday();
//获取可借天数函数
intsetname(char*);
//设置读者姓名函数
intsetnum(int);
//设置读者学号函数
public:
intsetclas(char*);
intsetsex(char*);
intsetbook_name(char*);
intsetdate(char*);
intsetavaiday(int);
};
//设置读者班级函数
//设置读者性别函数
//设置所借书籍书名函数
//设置借书日期函数
//设置可借天数函数
图书管理系统源代码:
#include
usingnamespacestd;
classreader;
classbook
{
private:
charname[50];//书名
charwriter[10];//作者
charborrower[10];//借书人
intid;//书号
intborr_num;//借书人学号
intpub_time;//出版时间
floatprice;//价格
charpublish[50];//出版社
public:
book();
intbook1();
intbook_add();
//book类构造函数
//书籍管理界面函数
//增加书籍函数
intbook_del();//删除书籍函数
intbook_mod();//修改书籍函数
intbook_out();//借书函数
intbook_in();//还书函数
intbook_name();//按书名搜索书籍函数
intbook_id();//按书号搜索书籍函数
intbook_pub();//按出版社搜索书籍函数
intbook_time();//按出版时间搜索书籍函数
intbook_writer();//按作者搜索书籍函数
};
intseach_book();//搜索书籍界面函数
classreader
{
private:
charname[10];
intnum;
chargrade[10];
charclas[10];
charsex[10];
charbook_name[50];
chardate[10];
intavai_days;
public:
intread1();
intreader_add();
intreader_del();
intreader_mod();
intreader_name();
intreader_num();
//名字
//学号
//年级
//班级
//性别
//所借书的书名
//借书日期
//可借天数
//读者管理界面函数
//增加读者函数
//删除读者函数
//修改读者函数
//按读者名字搜索读者函数
//按读者学号搜索读者函数
char*getname();
intgetnum();
//获取读者姓名函数
//获取读者学号函数
char*getgrade();
//获取读者年级函数
char*getclas();
char*getsex();
//获取读者班级函数
//获取读者性别函数
char*getbook_name();//
获取所借书书名函数
char*getdate();
//获取借书如期函数
intgetavaiday();//获取可借天数函数
intsetname(char*);
intsetnum(int);
intsetgrade(char*);
intsetclas(char*);
intsetsex(char*);
intsetbook_name(char*);
intsetdate(char*);
intsetavaiday(int);
//设置读者姓名函数
//设置读者学号函数
//设置读者年级函数
//设置读者班级函数
//设置读者性别函数
//设置所借书籍书名函数
//设置借书日期函数
//设置可借天数函数
};
#include
#include#include
#include
#defineSIZE100
#defineAMOUNT50
bookbooks[SIZE];
readerstud[AMOUNT];
intreturn_back()
{
cout<<"请按下任何键."
getch();
return0;
}
char*reader:
:
getname()
{
returnname;
}
intreader:
:
getnum()
returnnum;
}
char*reader:
:
getgrade()
{
returngrade;
}
char*reader:
:
getclas()
{
returnclas;
}
char*reader:
:
getsex()
{
returnsex;
}
char*reader:
:
getbook_name()
{
returnbook_name;
char*reader:
:
getdate()
{
returndate;
}
intreader:
:
getavaiday()
{
returnavai_days;
}
intreader:
:
setname(char*names)
{
strcpy(name,names);
return0;
}
intreader:
:
setnum(intnums)
{
num=nums;
return0;
intreader:
:
setgrade(char*grades)
{
strcpy(grade,grades);
return0;
}
intreader:
:
setclas(char*classes)
{
strcpy(clas,classes);
return0;
}
intreader:
:
setsex(char*sexs)
{
strcpy(sex,sexs);
return0;
}
intreader:
:
setbook_name(char*book_names)
strcpy(book_name,book_names);
return0;
}
intreader:
:
setdate(char*dates)
{
strcpy(date,dates);
return0;
}
intreader:
:
setavaiday(intavaiday)
{
avai_days=avaiday;
return0;
}
intpage_title()
{
system("cls");
cout<<"
*☆★☆
欢迎来到图书管理系统
☆★☆*\n";
cout<<"
**************************\n";
return0;
book:
:
book()
{
system("color17");
readerread;
menu:
page_title();
cout<<"
★主采单^"<cout<<"
***********"<cout<<"
*1.借书*"<cout<<"
*2.还书*"<cout<<"
*3.书籍管理*"<cout<<"
*4.读者管理*"<cout<<"
*5.搜索*"<cout<<"
*0.退出*"<cout<<"
***********"<cout<<"
请输入你的选择:
";
switch(getch())
case'1':
book_out();break;
case'2':
book_in();break;
case'3':
book1();break;
case'4':
read.read1();break;
case'5':
seach();break;
case'0':
exit(0);break;
default:
system("cls");
page_title();
cout<<"\n错误,请再输入一遍!
"<intbook:
:
book1()
{
system("cls");
page_title();
cout<<"
☆管理☆"<}
gotomenu;
}
cout<<"
*
1.增加书籍
*"<cout<<"
*
2.注销书籍
*"<cout<<"
*
3.修改书籍
*"<cout<<"
*
0.返回
*"<cout<<"
***
********"<<
endl<cout<<"
请输入你的选择
・
・J
switch(getch())
{
case'1':
book_add();break;
case'2':
book_del();break;
case'3':
book_mod();break;
case'0':
return_back();break;
default:
system("cls");
cout<<"\n错误,请再输入一遍!
\n";
}
return0;
}
intbook:
:
book_add()//定义增加书籍的函数
{
FILE*bfp;
inti,n;
page_title();
cout<<"☆增加书籍☆"<cout<<">>>请输入书的信息<<<"<bfp=fopen("books","rb");
for(n=0;n{
fread(&books[n],sizeof(books[n]),1,bfp);
if(books[n].id==0)break;
}
fclose(bfp);
do
{
cout<<"请输入一个新的书号(书号从1001开始,但必须不同于已存在的书号)cin>>books[n].id;
for(i=0;i{
if(books[n].id==books[i].id&&n!
=i)
{
cout<<"\n这个书号已经存在."<break;
}while(books[n].id==books[i].id);
cout<<"书名:
";
cin>>books[n].name;
cout<<"作者:
";
cin>>books[n].writer;
cout<<"价格:
";
cin>>books[n].price;
cout<<"总存量:
";
cin>>books[n].total;
cout<<"现存量:
";
cin>>books[n].store;
cout<<"出版社:
";
cin>>books[n].publish;
cout<<"出版时间:
";
cin>>books[n].pub_time;
cout<<"借书人:
";
cin>>books[n].borrower;
cout<<"借书者学号:
";
cin>>books[n].borr_num;
bfp=fopen("books","wb");
for(n=0;nfwrite(&books[n],sizeof(books[n]),1,bfp);
fclose(bfp);
cout<<"\n该书已经添加.\n"<return0;
}
intbook:
:
book_del()//定义删除书籍的函数
{
FILE*bfp;
inti,id,s;
page_title();
cout<<"☆注销旧书☆"<if((bfp=fopen("books","rb"))==0)
{
cout<<"无法打开文件.";
}
for(i=0;i{
fread(&books[i],sizeof(books[i]),1,bfp);
fclose(bfp);
cout<<"\n请输入书号cin>>id;for(i=0,s=-1;iif(books[i].id==id)
{
cout<<"书名:
"<cout<<"书号:
"<cout<<"作者:
"<cout<<"价格:
"<cout<<"总存量:
"<cout<<"现存量:
"<cout<<"出版社:
"<cout<<"出版时间:
"<cout<<"读者:
"<cout<<"读者学号:
"<cout<<"
<cout<<"请问是否确定注销此书(1为是,0为否):
";
cin>>s;
if(s==1)
for(;i}
elseif(s==0)
{
return0;
}
}
}
if(s==-1)
{
cout<<"该书不存在."<}
if((bfp=fopen("books","wb"))==0)
{
cout<<"无法打开文件.";
}
for(i=0;i{
fwrite(&books[i],sizeof(books[i]),1,bfp);
fclose(bfp);
return0;
}
intbook:
:
book_mod()//定义修改书籍的函数
{
FILE*bfp;
inti,id,s,n;
page_title();
cout<<"☆修改书籍☆"<if((bfp=fopen("books","rb"))==0)
{
cout<<"无法打开文件.";
}
for(i=0;i{
fread(&books[i],sizeof(books[i]),1,bfp);
}
fclose(bfp);
cin>>id;
for(i=0,s==0;i{
if(books[i].id==id)
{
cout<<"书名:
"<cout<<"书号:
"<cout<<"作者:
"<cout<<"价格:
"<cout<<"总存量:
"<cout<<"现存量:
"<cout<<"出版社:
"<cout<<"出版时间:
"<cout<<"读者:
"<cout<<"读者学号:
"<
cout<<"
**********************************************************H
<cout<<"是否确定修改该书籍(1为是,0为否):
";
cin>>s;
if(s==1)