媒体库管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学校代码: 10128
学号: ************课程设计说明书
题目:媒体库管理系统设计****:**
学院:信息工程学院
班级:计11-1
指导教师:李文静讲师
赵志燕讲师
2013 年 1 月7 日
目录
第一章总体功能介绍 (3)
1.1问题描述 (3)
1.2功能介绍 (3)
1.2.1添加物品: (3)
1.2.2查询物品 (3)
1.2.3显示物品库 (4)
1.2.4编辑物品 (4)
1.2.5删除物品 (4)
1.2.6统计信息 (4)
1.2.7物品存盘 (4)
1.2.8读出物品 (4)
1.3类的设计 (4)
第二章各功能模块的具体实现 (5)
2.1添加物品: (5)
2.2显示物品 (8)
2.3查询物品 (10)
2.4统计物品 (17)
2.5删除物品 (18)
2.7清屏退出 (22)
第三章调试及运行结果 (23)
第四章总结 (26)
第一章总体功能介绍
1.1 问题描述
图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。
图书馆共有三大类物品资料:图书、视频光盘、图画。
这三类物品共同具有的属性有:编号、标题、作者。其中图书类增加出版社、页数的信息;视频光盘类增加出品年份和视频时长的信息;图画类增加出品国籍、作品的长
和宽信息。
1.2 功能介绍
功能图
1.2.1添加物品:
主要完成图书馆三类物品信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。
1.2.2查询物品:
可按照三种方式来查询物品,分别为:按标题查询:输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”;按编号查询:输入编号,输出所查询的信
息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!”。
1.2.3显示物品库:
输出当前物品库中所有物品信息,每条记录占据一行。
1.2.4编辑物品:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
1.2.5删除物品:
主要完成图书馆物品信息的删除。如果当前物品库为空,则提示“物品库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。
1.2.6统计信息:
输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。
1.2.7物品存盘:
将当前程序中的物品信息存入文件中。
1.2.8读出物品:
从文件中将物品信息读入程序。
1.3 类的设计
媒体库管理系统类图
第二章各功能模块的具体实现
2.1添加物品:
所有物品在内存中的存储方式均为链表,首先调用初始化函数,在调用初始化函数的同时程序实现了从文件中读取数据的功能,将文件中的数据存入内存中,返回一个指向结点的指针,接着调用add()函数,要求用户输入数据,接着建立结点,将新加入的结点放到链表的末尾,便实现了添加功能。Disk类picture类的添加功能类似。
代码如下:
struct book
{
Book * bk;
struct book * next;
};
struct book * initbook()
{
struct book * phead;
phead=NULL; ifstream infile("书籍档案.txt"); string str;
getline(infile,str);
while(!infile.eof())
{
getline(infile,str);
if(str.empty())break;
istringstream istring(str);
int num,page;
num=page=0;
string title,author,press;
istring>>bcount>>num>>title>>author>>press>>page;
struct book * ptail=phead;
if(ptail!=NULL)
{
while(ptail->next!=NULL)
ptail=ptail->next;
}
struct book * d=new structbook;
Book * d1=new Book(num,title,author,press,page);
d->bk=d1;
d->next=NULL;
if(phead==NULL)phead=d;
else ptail->next=d;
ptail=d;
sumnumber++;
bk[dcount-1]=num;
sum[dcount-1]=num;
}
infile.close();
return phead;
}
struct book * addbook(struct book * phead)
{
ofstream outfile("书籍档案.txt",ios::app);//定义一个文件输出流的对象,用于向文件中输出数据
if(!outfile)
{
cout<<"打开书籍档案失败!"< return phead; } struct book * ptail=phead; if(ptail!=NULL) { while(ptail->next!=NULL) ptail=ptail->next; } int i; int num; string title; string author; string press; int page; while(1) { cout<<"按1输入图书信息,按0返回主目录:"< cin>>i; if(i==0)break;