数据结构课程设计报告图书管理系统.docx

上传人:b****5 文档编号:8428485 上传时间:2023-01-31 格式:DOCX 页数:11 大小:158.69KB
下载 相关 举报
数据结构课程设计报告图书管理系统.docx_第1页
第1页 / 共11页
数据结构课程设计报告图书管理系统.docx_第2页
第2页 / 共11页
数据结构课程设计报告图书管理系统.docx_第3页
第3页 / 共11页
数据结构课程设计报告图书管理系统.docx_第4页
第4页 / 共11页
数据结构课程设计报告图书管理系统.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据结构课程设计报告图书管理系统.docx

《数据结构课程设计报告图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告图书管理系统.docx(11页珍藏版)》请在冰豆网上搜索。

数据结构课程设计报告图书管理系统.docx

数据结构课程设计报告图书管理系统

 

图书馆管理系统

 

专业班级:

XXXX

学号:

XXXX

姓名:

XXXX

指导教师:

XXXX

时间:

XXXX

计算机专业

数据结构课程设计任务书

学生姓名

XXXX

专业班级

XXXX

学号

XXXX

题目

图书馆管理系统

课题性质

课程设计

课题来源

XXXX

指导教师

XXXX

同组姓名

XXXX

主要内容

模拟图书馆信息管理要求,完成图书馆书库中图书管理,图书借阅,图书归还、读者管理等一些列功能,并具有可阅读的界面。

具体功能分四大类九个方面,既图书管理、借阅管理、图书查找和信息查看四大模块以及新书入库、清空库存、图书借阅、图书归还、编号查找、书名查找、作者查找、读者信息和超期未还。

储存结构分为书目信息储存项和读者信息储存项,使用线性表储存结构,并通过若干子函数实现相应功能。

图书查找功能方面使用了数据结构课程中的二分查找法。

任务要求

1.调研图书馆管理系统的功能要求

2.设计目标功能,并依照其进行程序框架的开发

3.设计功能中使用到的算法

4.实现具有一定可读性的程序界面

5.算法具有一定的健壮性

6.按要求撰写课程设计报告和设计总结

参考文献

1.《数据结构(C语言版)》,严蔚敏、吴伟民,清华大学出版社,1997.

2.《VisualC++实用教程(第一版)》,张荣梅、梁晓林,冶金工业出版社,2004.

审查意见

指导教师签字:

教研室主任签字:

年月日

一、

设计题目

简单的图书馆管理系统

 

二、设计意义

熟悉和掌握数据结构课程所学的各种算法在实际项目中的应用,学习数据结构算法的c++实现方法等。

 

三、系统需求

程序中传递的有信息有:

图书信息(包括图书编号、书名、作者、出版社、总库存和剩余库存)和读者信息(包括借阅证号和借阅图书)。

1.图书管理

对书库中的图书信息进行管理和查看功能,包括新书入库和清空库存功能,主要解决实际应用中图书馆增进新书种类数目或已有图书损坏丢失问题。

其中,新书入库功能要求输入图书编号、书名、作者、出版社四项信息,用户输入图书编号后,系统首先判断书库中是否有该书的记录,如果满足条件,则要求输入购入数量后修改总库存和现有库存,如果不满足条件,则要求补全图书信息后新建一条库存记录;清空库存功能要求输入图书编号,用户输入图书编号后,系统首先判断书库中是否有该书的记录,如果满足条件,则删除书库中该书的记录,如果不满足条件,则返回错误提示。

2.借阅管理

管理书库中的图书借阅相关行为,包括图书借阅和图书归还功能,主要解决实际应用中图书馆图书借出和归还信息的管理的问题。

其中,图书借阅功能要求输入图书编号,用户输入图书编号后,系统首先判断书库中是否有该书的记录以及是否还存在剩余库存,如果有且剩余库存大于0,则借出一本书,将该书现库存量减1,并登记借阅者的图书证号和归还期限,如果没有,则返回错误提示;图书归还功能要求输入图书编号和借阅证编号,用户输入图书编号和借阅证编号后,系统首先判断书库中是否有该书的记录及是否借出,如果满足条件,则归还一本书,将该书现库存量加1,并删除该借阅证下该条借阅记录,如果不满足条件,则返回错误信息。

 

3.图书查找

查找书库中的图书信息,包括按编号查找,按书名查找和按作者查找功能,主要解决实际应用中借阅者查找想要借阅的图书信息和图书馆对图书各类信息的实时管理问题。

其中,编号查找功能要求输入图书编号,用户输入图书编号后,系统首先判断书库中是否有该书的记录,如果满足条件,则输出包括图书编号、书名、作者、出版社、总库存和剩余库存等全部图书信息,如果不满足条件,则返回错误信息;书名查找功能要求输入图书书名,用户输入图书书名后,系统首先判断书库中是否有该书的记录,如果满足条件,则输出包括图书编号、书名、作者、出版社、总库存和剩余库存等全部图书信息,如果不满足条件,则返回错误信息;作者查找功能要求输入图书作者,用户输入图书作者后,系统首先判断书库中是否有该书的记录,如果满足条件,则输出包括图书编号、书名、作者、出版社、总库存和剩余库存等全部图书信息,如果不满足条件,则返回错误信息。

4.信息查看

查看书库中读者相关的借出相关信息,包括读者信息和超期未还功能,主要解决实际应用中图书馆管理者对书库中读者借阅信息和图书借阅信息的实时查看问题。

读者信息功能要求输入借阅证编号,用户输入借阅证编号后,系统首先判断书库中是否有该读者的记录,如果满足条件,则输出读者所借阅的图书书名,如果不满足条件,则返回错误信息。

超期未还功能要求输入当前日期,用户输入当前日期后,系统输出所有当前日期之前的所有图书借出记录。

四、运行环境(软、硬件环境)

1)硬件:

PC机

2)操作系统:

Windows2000/XP/2003

3)编译环境:

VisualC++6.0

五、开发工具和编程语言

开发工具:

VISCALLc++6.0;

编程语言:

C语言。

六、功能设计

在仔细分析系统需求后决定按照需求分类设计程序模块,既图书管理、借阅管理、图书查找和信息查看四大模块以及新书入库、清空库存、图书借阅、图书归还、编号查找、书名查找、作者查找、读者信息和超期未还九大功能。

1.结构体设计

为方便查找和修改,定义结构体四个,他们分别是

功能

结构体名

图书链表

structLinkBook

读者链表

structLNode

图书信息

structbook

借阅行为

structBoro

 

2.函数设计

并决定函数按照功能划分,共使用函数十五个,包括两个公用函数用于库存检查和信息显示,一个菜单函数和九个分别对应九大功能的功能函数。

他们分别是

功能

函数名称

新书入库

Buy(ook&boo,charBuyNum[])

清空库存

Delete(ook&boo,charDeleteNum[])

图书借阅

Borrow(ook&boo,lend&Lin,charBorrowNum[],charCaNum[])

图书归还

Return(ook&boo,lend&Lin,charReturnNum[],charBorrowerNum[])

编号查找

SearchByNum(ook&boo,charSeaNum[])

书名查找

SearchByName(ook&boo)

作者查找

SearchByAuth(ook&boo)

读者信息

ViewCard(ook&boo,lend&Lin)

超期未还

ViewBook(ook&boo,lend&Lin)

库存检查

BinarySearch(ookboo,charSearchNum[])

信息显示

Out(ook&boo)

菜单函数

Menu()

主函数

main()

初始化图书

InitBo(ook&boo)

初始化读者

InitBo(ook&boo)

七、

界面设计

为方便使用,保持界面简洁明快,减少不必要的菜单层次和菜单项,方便使用者了解程序功能,决定设计单层主菜单。

二级不设菜单项,直接实现所选功能,并给出输入提示。

1.主菜单界面设计

————————

1.采编入库

2.清空库存

3.图书借阅

4.图书归还

5.编号查找

6.书名查找

7.作者查找

8.读者信息

9.超期未还

0.退出系统

————————

实现代码

voidMenu()//菜单函数

{

cout<<"————————"<

cout<

cout<<"1.采编入库"<

cout<<"2.清空库存"<

cout<<"3.图书借阅"<

cout<<"4.图书归还"<

cout<<"5.编号查找"<

cout<<"6.书名查找"<

cout<<"7.作者查找"<

cout<<"8.读者信息"<

cout<<"9.超期未还"<

cout<<"0.退出系统"<

cout<

out<<"————————"<

}

 

界面截图

2.功能实现的输入提示(以新书入库为例)

书库中还没有该图书。

添加新书目,请补全图书的详细信息。

请输入该图书购入数量:

请输入该图书书名:

请输入该图书作者:

请输入该图书出版社:

已添加该图书的信息。

图书入库成功。

实现代码(部分)

if(!

BinarySearch(boo,BuyNum))

{

inti;

for(i=total;i>mid&&total;i--)

{

boo[i]=boo[i-1];

}

cout<<"书库中还没有该图书。

"<

cout<<"添加新书目,请补全图书的详细信息。

"<

strcpy(boo[i].num,BuyNum);

cout<<"请输入该图书购入数量:

";

cin>>boo[i].NowNum;

boo[i].TotNum=boo[i].NowNum;

cout<<"请输入该图书书名:

";

cin>>boo[i].name;

cout<<"请输入该图书作者:

";

cin>>boo[i].auth;

cout<<"请输入该图书出版社:

";

cin>>boo[i].pub;

boo[i].next=NULL;

total++;

cout<<"已添加该图书的信息。

"<

Out(boo);

cout<<"图书入库成功。

\n";

}

界面截图

3.功能实现的输入提示(以超期未还为例)

请输入日期(例如20101111):

超期未还的图书有:

 

代码实现(部分)

system("CLS");

cout<<"超期未还"<

"<

cin>>date;

cout<<"超期未还的图书有:

"<

for(inti=0;i

{

p=Lin[i].next;

while(p)

{

if(strcmp(p->RetDate,date)<0)

{

cout<<"━━━━━━━━┳━━━━━━━━━━━━"<

cout<<"   编号  ┃"<BNum<

cout<<"━━━━━━━━╋━━━━━━━━━━━━"<

cout<<"   书名   ┃"<

cout<<"━━━━━━━━╋━━━━━━━━━━━━"<

cout<<"   证号   ┃"<

cout<<"━━━━━━━━╋━━━━━━━━━━━━"<

cout<<"  归还日期  ┃"<RetDate<

cout<<"━━━━━━━━┻━━━━━━━━━━━━"<

}

p=p->next;

}

}

界面截图

八、程序流程

 

九、

已知问题

1.程序停留在演示阶段,功能还不完善,偶尔遇到崩溃的情况。

解决方法:

暂无;

2.因为在程序设计初期考虑不全面,编写结构体混乱,导致最后难以完成图书信息的文件储存。

解决方法:

重新优化结构体编写,使其能方便的完成文件储存。

 

十、设计总结

在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何完成一件事情的能力。

在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。

通过这次课程设计,我在很多方面都有所提高。

在反复的实验中,了解到自己的程序有什么不足,不完善的地方,再进行修改,调整。

在这次设计过程中,还体现出综合运用知识的能力,体会了学以致用,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

更加提高了学习这门课程的热情与兴趣,增强了学好这门课程的信心。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1