图书管理实验报告001.docx
- 文档编号:1030053
- 上传时间:2022-10-15
- 格式:DOCX
- 页数:18
- 大小:38.84KB
图书管理实验报告001.docx
《图书管理实验报告001.docx》由会员分享,可在线阅读,更多相关《图书管理实验报告001.docx(18页珍藏版)》请在冰豆网上搜索。
<<图书馆管理管理系统程序设计>>实习报告(2013年)
实习题目:
设一本书的基本资料由以下数据项来描述:
1.书号(设为一个无符号长整型);
2.书名(设为不超过30个字符的字符串);
3.作者名(设为不超过20个字符的字符串);
4.出版社(设为不超过30个字符串的字符串);
5.关键词(最多5个,每个关键词为不超过10个字符的英文单词);
其中,设每本书的书号,书名,作者名和出版社均是唯一的.
请用类形式来构造一个小型图书资料整理系统(模拟).该系统应能提供以下功能:
1.图书资料库:
从键盘输入各图书资料,建立图书资料库;设图书依书号从小到大次序组织存放;
2.查询图书功能:
1)读书可通过提供书名查询,若该书仍在库中,则列出该书资料;
2)读者可通过提供书号查询,若该书仍在库中,则列出该书资料;
3)读者也可以通过提供关键词查询(最多5个:
一般情况下,读者提供用于查询的关键词个数都不会超过在书库中登记的图书原有的关键词个数),若提供的关键词和原书中关键词相匹配,则列出所有符合要求的所有图书资料个读者选择;读者可从系统所列出可供选择的图书资料信息中,通过书号来办理借阅的手续;
3.借书功能:
当锁查询的图书的确在库内时,读者可采用提供书号形式来办理借阅手续(每次操作只能借一本书);
1)登记借阅人的姓名(不超过20个字符的字符串),电话(无符号长整型整数),借阅日期(年,月.日,均是整形量);
4.还书功能:
1)删去图书中该书借阅人的资料;
2).将该书资料归入”该图书仍在库内”状态;
5.催还功能:
管理人员定期列出借书人借阅图书资料,以便检查是否有超期借阅者,若有则发通知催还.
说明:
1.理论上,图书资料库书量应没有限制(实际上是受硬件资料所限)
2.图书资料库可以采用以下组织形式:
)
1)每本图书的资料有基本资料和借阅人资料组成,所有图书资料由一个链表链接在一起;
2)每本图书的资料也由基本资料和借阅人资料组成,但所有图书资料分别由未借出链表和已借出链表在一起;
3.请先确定好图书资料组织形式,然后再考虑设计功能的实现.
4.模拟图书资料系统工作的主函数基本要求如下:
1) 在键盘上输入每本图书资料,在储存区建立图书资料库.因无法预知图书册数,考研题设当输入书号为0时表示输入结束.图书资料库正常工作期间追加新入库图书时也如此办理;
2)输出图书库中所有在库图书资料清单,此操作只由管理人员使用;
3)输出图书库中已被借出的天数资料清单,此操作只由管理人员使用;
4).查询图书.借阅图书.归还图书.追加图书;
5)每借出一本图书或归还一本图书之后,输出书库内图书情况或借书人登记资料,以便可对操作是否完成;
6)书库内没有登记的图书,不能办理借阅手续.当然,不是在改图书库借出的图书业不能在此处办理还书手续.
源程序代码:
#include
#include
#include
#include
#include
structDate//日期数据结构
{intyear;
intmonth;
intday;
};
structPerson//个人信息数据结构
{charname[20];
longtele;//thetelephonenumber
Datedateb;//声明dateb是structData成员
};
structBook//图书资料信息数据结构
{longISBN;//书号
charBname[31];//书名
charBwrite[20];//作者名
charBprint[31];//出版社名
char*Bkeyword[5];//关键词
Book*link;//指向下一连节点
Personmessage;//声明message是structPerson类型)
};
classLibrary//图书馆类
{protected:
Book*librin;//在书库链
Book*libout;//借书链
public:
Library();//构造函数
~Library();//析构函数
voidcreat();//创建图书馆
voidprint1();//输出在书库图书
voidinquire1();//书号查询
voidinquire2();//书名查询
voidinquire3();//关键词查询
voidborrow();//借书
voidprint2();//输出借出图书
voidinvert();//还书
voidurge();//催还图书
voiddeleter();//删除图书
voidinsert();//增加新书
};
Library:
:
Library()//构造函数
{libout=NULL;}
Library:
:
~Library()//析构函数
{;}
intdayth(intY,intM,intD)//计算某年某月某日是当年第几天
{intdy=0;
M=M-1;
while(M>0)
{do
{
if(M==2)
{if(((Y%4==0)&&(Y%100!
=0))||((Y%400==0)))
dy=dy+29;
elsedy=dy+28;
}
else
{if(((M<=7)&&(M%2==1))||((M>=8)&&(M%2==0)))
dy=dy+31;
elsedy=dy+30;
}
M=M-1;
}while(M>0);
}
dy=dy+D;
returndy;
}
intYmday(intY,intM)//判断某年某月有几天
{if(M==2)
{if(((Y%4==0)&&(Y%100!
=0))||(Y%400==0))return29;
elsereturn28;
}
else
{if(((M<=7)&&(M%2==1))||((M>=8)&&(M%2==0)))return31;
elsereturn30;
}
}
intYeardays(inty)//判断某年有几天
{if((y%4==0&&y%100!
=0)||(y%400==0))return366;
elsereturn365;
}
longLeapdays(intyy1,intyy2)//计算某年两年之间相距多少天
{longy,m,d=0;
while(yy1 {m=Yeardays(yy1); d=d+m; yy1++; } returnd; } voidLibrary: : creat()//创建图书资料函数 { Book*h,*q,*p,*temp,*k;inti=1,j; h=NULL; p=newBook; if(p==NULL){cout<<"\n\tEorror! ";exit (1);} q=p; cout<<"\n\t---TheBookInfornation---\n"; cout<<"\n\nNO."< do{ cout<<"\n\tInputtheISBN(0toend): "; cin>>p->ISBN; if(p->ISBN<0) cout<<"\n\tTheISBNilledal! "; if(p->ISBN==0)break; }while(p->ISBN<=0); if(p->ISBN>0) { cout<<"\n\tInputtheBname: "; gets(p->Bname); cout<<"\n\tInputtheBwrite: "; gets(p->Bwrite); cout<<"\n\tInputtheBprint: "; gets(p->Bprint); cout<<"\n\tInputtheBkeyword: (InputtheNULLtoend)"; for(j=0;j<5;j++) { cout<<"\n\tNO."< "; p->Bkeyword[j]=newchar[20+1]; gets(p->Bkeyword[j]); if(strcmp(p->Bkeyword[j],"")==0) break; } q->link=NULL; } while(p->ISBN! =0) {i++; if(h==NULL)h=p; if(i>2) {temp=h; while(p->ISBN>temp->ISBN&&temp->link! =NULL) {k=temp;temp=temp->link;} if(p->ISBN<=temp->ISBN) { if(temp==h) {p->link=temp;h=p;} else {k->link=p;p->link=temp;} } else {temp->link=p;p->link=NULL;} } p=newBook; cout<<"\n\nNO."< do{ cout<<"\n\tInputtheISBN(0toend): "; cin>>p->ISBN; if(p->ISBN<0) cout<<"\n\tTheISBNillegal! "; }while(p->ISBN<0); if(p->ISBN>0) { cout<<"\n\tIputtheBname: "; gets(p->Bname); cout<<"\n\tInputtheBwrite: "; gets(p->Bwrite); cout<<"\n\tInputtheBpri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 实验 报告 001