欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年大数据结构课程设计图书管理系统 .pdf

    • 资源ID:30548692       资源大小:357.37KB        全文页数:17页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年大数据结构课程设计图书管理系统 .pdf

    实用标准文案精彩文档数据结构课程设计图书管理系统一 需求分析该程序是模拟图书馆管理系统,实现图书采编入库、借书、还书、查询等基本业务。此程序规定:(1) 管理员能够向系统中输入每种书的基本信息,包括书号、 书名、作者、现存量和库存量、借阅记录,并保存记录;(2) 用户(读者)能够按书号、书名、作者查询图书信息;(3) 管理员能够实现图书采编入库( 新购入一本书,经分类和确定书号之后登记到图书账目中去。 如果这种书在帐中已有,则只将总库存量增加) 、借阅(如果书的现存量大于0,则借出一本,登记借阅者的图书证号和归还期限) 、归还(删除对借阅者的登记,改变该书的现存量)、销毁(将图书从账目中删除) 等操作。二 概要设计系统用到的抽象数据类型定义:1、ADT LinearList 数据元素: D=ai|aiD0,i=1,2,n,n0,D0为某一数据对象 关系: S=|ai,ai+1D0,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|aiCharacterSet,i=1,2,n;n0 数据关系: R=|ai-1,aiD,i=2, ,n;n0 基本操作:( 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) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档(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(lowmid&total;i-)/*将新采购的书插在适合位置,保持有序 */ 空出插入位置 ; 输入新购书籍的相关信息:书号、书名、作者、出版社; booi.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)/*归还图书信名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档息*/ if(书库中无此书 ) 输出“无此书记录”; if(书库中有此书 ) 查找图书文件, 修改图书的现存量; 查找记录借阅信息的单链表,填入还书日期 , 删除借阅信息 ; 查找记录读者信息的单链表,删除证号信息。 void SearchByNum(Book &boo,char SeaNum)/*按书号查找 */ if(书库中无此书信息)/* 用二分法查找 */ 输出“无此书”; else/*书库中有此书信息*/ 输出与此书有关的相关信息; void SearchByName(Book &boo)/*按书名查找 */ 输入想要查找书的书名; 用顺序查找法查找; if(查找到需要查找的书) 输出与此书相关的信息; 建议画出主要模块流程图。四 设计与调试分析1、这个程序设计中要注意定义两个结构体:图书结构体、借阅人结构体。其中定义数组存放图书信息,申请链表存放借阅记录和读者信息记录。2、程序中运用到大多的插入与删除,所以申请链表比较方便插入与删除。但应前期需求分析的准备工作不充分,导致程序运行功能不全,比如查找时关于此书的信息不能全部显示出来,并且添加删除时库存的变化不能直接显示出来。程序的健壮性不能达到预期的结果,这些都是需要改进的。3、在程序中的函数调用是个非常重要的部分,也是经常需要用到的,在编写程序过程中,因为函数调用不准确,使得循环进不去,后来改变函数的调用关系,才达到了预期结果。4、程序中还定义了全局变量,之前没定义全局变量,在下面的编写过程,同样性质的地方需要重复定义,比较麻烦,定义全局变量使得程序比较简明一点。五 用户手册【 使用说明】名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档1、进入图书馆管理系统主页面2、若有新书要新编入库,选择1,进入新书入库系统,输入入库书的书号,若书库中无该书,则设立新书目,输入新书信息。 若书库中已有该书,则输入新信息覆盖修改原书库中该书号对应书的信息。3、若有书籍信息需要删除,选择2,进入清空库存系统,输入想要删除书的书号,则此书信息就已删除。4、若要借阅图书,选择3,进入图书借阅系统,输入需要借阅书的书号以及读者证号,并输入还书日期,则借书成功。5、若要归还图书,选择4,进入图书归还系统,输入需要归还图书的书号以及读者证号,则还书成功。6、若要查找信息,选择5,进入查找信息子系统。若要按书号查找,则选择子系统中的1,输入需要查找的书的书号,若按书名查找,则选择子系统中的2,输入需要查找的书名,若按作者查找,输入需要查找书的作者进行查找,若查找结束,则按0 退出。7、若系统使用结束,按0 退出。【 程序中的头文件】#include #include #include #define MAXSIZE 100 #define LIST_INIT_SIZE 100 int Retotal;/*定义的全局变量*/ int total; 六 测试成果1、采编入库名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档2、清空库存3、图书借阅4、图书归还名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档5、图书查找名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档七 附录(源程序清单)#include #include #include #define MAXSIZE 100 #define LIST_INIT_SIZE 100 typedef struct Boro char BNum20; char RetDate8; struct Boro *next; Bor; typedef struct LinkBook Bor *next; char CNum20; int Total; lendLIST_INIT_SIZE; typedef struct LNode char CardNum20; struct LNode *next; LinkList; typedef struct book char num20; char name20; char auth20; char pub20; int TotNum; int NowNum; LinkList *next; BookMAXSIZE; int Retotal; int total; void InitBo(Book &boo) for(int i=0;iMAXSIZE;i+) booi.NowNum=0; booi.TotNum=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档booi.next=NULL; void InitRe(lend &Lin) for(int i=0;iLIST_INIT_SIZE;i+) Lini.next=NULL; int mid=0; bool BinarySearch(Book boo,char SearchNum) int low=0,high=total; int found=0; while(lowmid&total;i-) booi=booi-1; printf(该书在书库中不存在,设立新书目 !n); strcpy(booi.num,BuyNum); printf(该书购入的数量是:); scanf( %d,&booi.NowNum); booi.TotNum=booi.NowNum; printf(该书的名字是 :); scanf( %s,&booi.name); printf(该书的作者是 :); scanf( %s,&booi.auth); printf(该书的出版社是:); scanf( %s,&booi.pub); booi.next=NULL; total+; printf(已增加该书的信息!n); printf(编号 :%s 书名 :%s ,booi.num,booi.name); printf(作者:%s 出版社 :%s,booi.auth,booi.pub); printf(n); printf(入库成功 .n); void Delete(Book &boo,char DeleteNum) if(BinarySearch(boo,DeleteNum)=false|total=0) printf(书库中没有该书.n); if(BinarySearch(boo,DeleteNum) if(!boomid.next) int j; for(j=mid;j0) boomid.NowNum-; if(boomid.next=NULL) m=(LinkList *)malloc(sizeof(LNode); boomid.next=m; strcpy(m-CardNum,CaNum); m-next=NULL; else m=boomid.next; while(m-next) m=m-next; n=(LinkList *)malloc(sizeof(LNode); m-next=n; strcpy(n-CardNum,CaNum); n-next=NULL; int i=0; for(i=0;inext)p=p-next; q=(Bor *)malloc(sizeof(Boro); p-next=q; strcpy(q-BNum,BorrowNum); printf(输入归还日期 :); scanf(%s,&q-RetDate); q-next=NULL; printf(借阅成功 .n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档break; if(i=Retotal) strcpy(Lini.CNum,CaNum); p=(Bor *)malloc(sizeof(Boro); Lini.next=p; strcpy(p-BNum,BorrowNum); printf(输入归还日期 :); scanf( %s,&p-RetDate); p-next=NULL; Retotal+; printf(借阅成功 .n); else printf(借阅失败 .该书现在库存为0.n); void Return(Book &boo,lend &Lin,char ReturnNum,char BorrowerNum) Bor *p,*q; LinkList *m,*n; int flag=0; if(!BinarySearch(boo,ReturnNum)|!total) printf(书库中无此书 .n); if(BinarySearch(boo,ReturnNum) m=boomid.next; if(!strcmp(m-CardNum,BorrowerNum) boomid.NowNum+; boomid.next=m-next; free(m); else while(m-next) if(!strcmp(m-next-CardNum,BorrowerNum) n=m-next; m-next=n-next; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档free(n); boomid.NowNum+; break; m=m-next; for(int i=0;iBNum,ReturnNum) Lini.next=p-next; free(p); printf(成功归还该书 .n); flag=1; break; else while(p-next) if(!strcmp(p-next-BNum,ReturnNum) q=p-next; p-next=q-next; free(q); printf(成功归还该书 .n); flag=1; break; p=p-next; for(int k=0;kRetotal;k+) if(!Link.next) int j; for(j=k;jRetotal;j+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档Linj=Linj+1; strcpy(Linj.CNum, ); Retotal-; if(flag=0) printf(无该证信息 .n); void SearchByNum(Book &boo,char SeaNum) LinkList *p; p=boomid.next; if(BinarySearch(boo,SeaNum)=true) printf(书号: %sn,boomid.num); printf(书名: %sn,boomid.name); printf(作者名: %sn,boomid.auth); printf(出版社: %sn,boomid.pub); printf(现存量: %sn,boomid.NowNum); printf(库存量: %sn,boomid.TotNum); printf( n); else printf(对不起,未找到您想查找的书。n); void SearchByName(Book &boo) char SeaName20; printf(输入想查找的书的书名:n); scanf( %s,&SeaName); printf(此书存在! n); for(int i=0;itotal;i+) if(strcmp(SeaName,booi.name)=0) printf(编号 :%s 书名 :%s ,booi.num,booi.name); printf(作者 :%s 出版社 :%s,booi.auth,booi.pub); printf(总库存量 :%s,booi.TotNum); printf(现库存量 :%s,booi.NowNum); printf(n); void SearchByAuth(Book &boo) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档char SeaAuth20; printf(输入想查找的书的作者:n); scanf( %s,&SeaAuth); printf(找到符合该作者的书的详细信息如下:n); for(int i=0;itotal;i+) if(strcmp(SeaAuth,booi.auth)=0) printf(编号 :%s 书名 :%s ,booi.num,booi.name); printf(作者 :%s 出版社 :%s,booi.auth,booi.pub); printf(n); void Menu() printf( 图书馆管理系统 n); printf(1. 采编入库 2. 清空库存 nn); printf(3. 图书借阅 4、图书归还 nn); printf(5. 按要求查找 0. 退出 nn); printf(请选择: ); void Search() char BNum20; Book Bo; int k; printf( 图书馆查询子系统n); printf(1、按书号查询 2、按书名查找 nn); printf(3、按作者查询 4、退出子系统 nn); printf(请选择: ); scanf(%d,&k); switch(k) case 1: printf(请输入书号 :);/输入书号查找scanf( %s,&BNum); SearchByNum(Bo,BNum); break; case 2: SearchByName(Bo); break; case 3: SearchByAuth(Bo); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档break; case 4: exit(0); break; void main() Book Bo; lend Lin; char BNum20; char CNum20; int choice=10; while(choice!=0) system(cls); Menu();/显示菜单scanf( %d,&choice); switch(choice) case 1:/采编入库printf(请输入入库的书的书号:); scanf( %s,BNum); Buy(Bo,BNum); system(pause); break; case 2:/清空库存printf(请输入想要清除的书的书号:); scanf( %s,BNum); Delete(Bo,BNum); system(pause); break; case 3:/借阅printf(请输入想要借阅的书的书号:n); scanf( %s,&BNum); printf(请输入图书证号:); scanf( %s,&CNum); Borrow(Bo,Lin,BNum,CNum); system(pause); break; case 4:/归还printf(请输入想要归还的书的书号:n); scanf( %s,&BNum); printf(请输入图书证号:); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 17 页 - - - - - - - - - 实用标准文案精彩文档scanf( %s,&CNum); Return(Bo,Lin,BNum,CNum); system(pause); break; case 5: Search(); system(pause); break; case 0:/退出系统exit(0); break; default:printf(输入错误 !n);exit(0);break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 17 页 - - - - - - - - -

    注意事项

    本文(2022年大数据结构课程设计图书管理系统 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开