图书信息管理系统
题目摘要:该系统存储以下信息:
(1)对于同一作者同一书名的书,存储书名、数目编号、作者名、库存册数
已借出册数
(2)对于每一本书还要存储一个登录号、当前借阅该书的读者姓名与借书证号、借阅日期系统功能要求如下:
1 图书信息录入功能(图书信息用文件保存)
2 图书信息浏览功能,查询或排序功能:(至少一种查询方式)
3 按书名查询
4 按作者名查询
5 图书信息的删除与修改
一、模块设计
二、主要数据结构
图书结构体:
typedef struct book
{
char bname[20]; /*书名*/
char bnum[20]; /*书编号*/
char booktype[20]; /*分类号*/
char plase[30]; /*出版单位*/
char pbtime[20]; /*出版时间*/
float price; /*价格*/
char auter[20]; /*作者名字*/
char F; /*是否在馆*/
}books;
会员信息结构体:
typedef struct peope
{
char pnum[20]; /*借书证的号码*/
int type; /*会员类型*/
char pname[20]; /*名字*/
char pmima[10]; /*密码*/
int n; /*最多接的书本数*/
int m; /*借书本数*/
union
{
struct Pbook
{
char pbooks[20]; /*借书的书本名*/
char ptime[20]; /*借书的时间*/ }peop[6]; /*普通会员*/
struct VPbook
{
char vpbooks[20]; /*借书的书本名*/
char vptime[20]; /*借书的时间*/
}vpeop[10]; /*高级会员*/ }kind;
}peoper;
全局变量:
int B,P; /*B库存的书本数;P普通会员的人数;*/ books Book[1000]; peoper peo[100];
三、流程图
四、算法清单
//增加书籍
void Liberian::Append(fstream& storef)
{
bookData book;
int choice;
int key;
int num;
(0,ios::end);
int posEnd=();
cout<<"*************书籍入库***************"<<endl;
while(1)
{
cout<<" Please enter your choice:"<<endl;
cout<<"1--添加新书\n"<<"2--已有书籍\n"<<"0--返回\n";
cin>>choice;
switch(choice)
{
case 1:
cout<<" 书号, 书名, 数量, 作者,价格,出版社,出版时间?"<<endl; cin>>>>>>>>>>>>>>;
(reinterpret_cast<char*>(&book),sizeof(bookData));
break;
//书籍查询
void Find(fstream & f)
{
bookData book;
int key;
int choice;
(0,ios::end);
int posEnd=();
cout<<"*************书籍查询***************"<<endl;
while(1)
{
cout<<" 请输入您的选择\n"
<<" 1-- 检索一本书\n"
<<"2-- 显示全部书籍\n"
<<"0-- 返回\n";
cin>>choice;
switch(choice)
{
case 1:
(0,ios::beg);
cout<<"输入你想检索书的书号"<<endl;
cin>>key;
do{
(reinterpret_cast<char*>(&book),sizeof(bookData)); }while!=key&&()!=posEnd);
if==key)
cout<<<<"---"<<<<"---"<<<<"---"<<<<"---"<<<<endl; else
cout<<"找不到此书,请重新确认!"<<endl;
break;
//查找读者
void Reader::Addreader()
{
Person temp;bookData book={0,"0",0};
(0,ios::end);
int Posend=();
cout<<"输入你想要增加的读者的名字"<<endl;
cin>>;
cout<<"新读者的学号:"<<endl;
cin>>;
[1]=book; [0]=book; =0;
(reinterpret_cast<char*>(&temp),sizeof(Person));
cout<<" 成功添加!"<<<<endl;
}
bool Reader::findreader()
{
(0,ios::end);
int Posend=();
char name[20];
Person guest={"0","0",0,{{0,"0",0},{0,"0",0}}};
cout<<"输入查找人的名字!";
cin>>name;
(0);
do{
(reinterpret_cast<char*>(&person),sizeof(Person)); }while(strcmp(name,&&()!=Posend);
if(!strcmp(name,)
{
cout<<"查到此人:"<<<<endl;
return true;
}
else
{
cout<<"找不到此人,请重新确认!"<<endl; return false;
}
五、测试情况
运行程序,首页显示如下:
增加新书运行程序如下:
借书运行程序如下:
六、小结
我做的是图书馆管理系统的课程设计,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。
更加是第一次做课程设计,所以在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。
可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。
开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。
又经过几天的努力,终于把程序完成了,尽管程序还是有很多功能上的欠缺和漏洞,可我还是很高兴的。
无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C++语言的一次实践作业,自己进步的证明。