云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > (完整word版)大数据结构课程设计图书管理系统

(完整word版)大数据结构课程设计图书管理系统

  • 62 次阅读
  • 3 次下载
  • 2025/6/3 2:14:06

实用标准文案

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

一 需求分析

该程序是模拟图书馆管理系统,实现图书采编入库、借书、还书、查询等基本业务。此程序规定:

(1) 管理员能够向系统中输入每种书的基本信息,包括书号、书名、作者、现存量和库存量、借阅记录,并保存记录;

(2) 用户(读者)能够按书号、书名、作者查询图书信息;

(3) 管理员能够实现图书采编入库(新购入一本书,经分类和确定书号之后登记到图书账目中去。如果这种书在帐中已有,则只将总库存量增加)、借阅(如果书的现存量大于0,则借出一本,登记借阅者的图书证号和归还期限)、归还(删除对借阅者的登记,改变该书的现存量)、销毁(将图书从账目中删除)等操作。

二 概要设计

? 系统用到的抽象数据类型定义:

1、ADT LinearList{

数据元素:D={ai|ai∈D0,i=1,2,…,n,n≥0,D0为某一数据对象} 关系:S={|ai,ai+1∈D0,i=1,2,…,n-1} 基本操作:

(1) InitList(L) (2) DestroyList(L) (3) ClearList(L) (4) EmptyList(L) (5) ListLength(L) (6) Locate(L,e) (7) GetData(L,i) (8) InsList(L,i,e) (9) DelList(L,i,&e) }ADT LinearList 2、ADT String{

数据对象:D={ai|ai∈CharacterSet,i=1,2,…,n;n≧0} 数据关系:R={|ai-1,ai∈D,i=2,…,n;n≧0} 基本操作: (1) StrAsign(S,chars) (2) StrInsert(S,pos,T) (3) StrDelete(S,pos,len) (4) StrCopy(S,T) (5) StrEmpty(S) (6) StrCompare(S,T) (7) StrLength(S) (8) StrClear(S) (9) StrCat(S,T)

(10)SubString(Sub,S,pos,len) (11)StrIndex(S,pos,T) (12)StrReplace(S,T,V)

精彩文档

实用标准文案

(13)StrDestroy(S)

}ADT String

?

系统中的子程序和功能说明:

InitBo(Book &boo);初始化图书信息 InitRe(lend &Lin);初始化借阅者信息

BinarySearch(Book boo,char SearchNum[]);二分法查找比较书号 Buy(Book &boo, char BuyNum[]);新书采编入库系统

Delete(Book &boo,char DeleteNum[]);清除图书信息系统

Borrow(Book &boo,lend &Lin,char BorrowNum[],char CaNum[]);借阅图书处理系统 Return(Book &boo,lend &Lin,char ReturnNum[],char BorrowerNum[]);归还图书系统 SearchByNum(Book &boo,char SeaNum[]);按书号查找系统 SearchByName(Book &boo);按书名查找系统 SearchByAuth(Book &boo);按作者查询系统 Menu();主菜单显示系统 Search();查询系统子菜单 main();主函数

? 系统程序功能结构图

图书馆管理系统 图书信息录入 查询图书信息 处理图书信息 基本信息 借阅记录 按书号查询 按书名查询 按作者查询 图书采编入库 图书借阅情况 图书归还情况 图书销毁情况

三 详细设计

?

功能实现过程

bool BinarySearch(Book boo,char SearchNum[]) //二分法查找比较书号 {

while(low<=high) {

计算中间点;

if(查找到书号相同的) {

返回值true; }

if(查找书号不相同)

精彩文档

实用标准文案

用二分法进一步进行查找; }

if(库中没有所要查找的书) 返回值false;

}

void Buy(Book &boo, char BuyNum[])/*采编入库*/ {

if(书库中有此书)

{

总库存加1; 现库存加1; }

if(书库中无此书) {

for(i=total;i>mid&&total;i--)/*将新采购的书插在适合位置,保持有序*/ 空出插入位置;

输入新购书籍的相关信息:书号、书名、作者、出版社;

boo[i].next=NULL; total++;/*总量加1*/

}

}

void Delete(Book &boo,char DeleteNum[])/*清除图书信息*/ {

if(书库中没有此书)

输出“无此书”; if(书库中有此书) {

strcpy(连续两本书的相关信息); 现存量减1;库存量减1; }

else 输出“此书已有借阅者,无法删除!”; }

void Borrow(Book &boo,lend &Lin,char BorrowNum[],char CaNum[])/*借阅图书信息*/ {

if(没有找到此书) 输出“书库中无此书!”; if(书库中有此书) {

借出一本书后,该书的现存量减1;并在借阅记录链表中插入该条记录;再对应读者信息记录链表,如果已有该读者证号信息,直接在该链表中插入此次借阅记录;如果无该读者证号信息,申请新单链表存放借阅记录。 }

else 输出“该书现存量为0”; }

void Return(Book &boo,lend &Lin,char ReturnNum[],char BorrowerNum[])/*归还图书信

精彩文档

实用标准文案

息*/ {

if(书库中无此书)

输出“无此书记录”; if(书库中有此书)

{

查找图书文件,修改图书的现存量;查找记录借阅信息的单链表,填入还书日期,删除借阅信息;查找记录读者信息的单链表,删除证号信息。 } }

void SearchByNum(Book &boo,char SeaNum[])/*按书号查找*/ {

if(书库中无此书信息)/*用二分法查找*/ 输出“无此书”;

else/*书库中有此书信息*/ 输出与此书有关的相关信息; }

void SearchByName(Book &boo)/*按书名查找*/ {

输入想要查找书的书名; 用顺序查找法查找;

if(查找到需要查找的书) 输出与此书相关的信息; }

建议画出主要模块流程图。

四 设计与调试分析

1、这个程序设计中要注意定义两个结构体:图书结构体、借阅人结构体。其中定义数组存放图书信息,申请链表存放借阅记录和读者信息记录。

2、程序中运用到大多的插入与删除,所以申请链表比较方便插入与删除。但应前期需求分析的准备工作不充分,导致程序运行功能不全,比如查找时关于此书的信息不能全部显示出来,并且添加删除时库存的变化不能直接显示出来。程序的健壮性不能达到预期的结果,这些都是需要改进的。

3、在程序中的函数调用是个非常重要的部分,也是经常需要用到的,在编写程序过程中,因为函数调用不准确,使得循环进不去,后来改变函数的调用关系,才达到了预期结果。 4、程序中还定义了全局变量,之前没定义全局变量,在下面的编写过程,同样性质的地方需要重复定义,比较麻烦,定义全局变量使得程序比较简明一点。

五 用户手册

【 使用说明 】

精彩文档

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实用标准文案 数据结构课程设计图书管理系统 一 需求分析 该程序是模拟图书馆管理系统,实现图书采编入库、借书、还书、查询等基本业务。此程序规定: (1) 管理员能够向系统中输入每种书的基本信息,包括书号、书名、作者、现存量和库存量、借阅记录,并保存记录; (2) 用户(读者)能够按书号、书名、作者查询图书信息; (3) 管理员能够实现图书采编入库(新购入一本书,经分类和确定书号之后登记到图书账目中去。如果这种书在帐中已有,则只将总库存量增加)、借阅(如果书的现存量大于0,则借出一本,登记借阅者的图书证号和归还期限)、归还(删除对借阅者的登记,改变该书的现存量)、销毁(将图书从账目中删除)等操作。 二 概要设计 ? 系统用到的抽象数据类型定义:

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com