媒体库管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档