旅游类网站模板免费下载wordpress文章转移

张小明 2025/12/30 1:57:14
旅游类网站模板免费下载,wordpress文章转移,深圳vi设计公司深圳logo设计,邯郸资讯基于C语言实现B树存储的图书管理系统一、需求分析1.1 问题描述图书管理基本业务活动包括#xff1a;对一本书的采编入库、清除库存、借阅和归还等等。试设计一个图书管理系统#xff0c;将上述业务活动借助于计算机系统完成。1.2 基本要求每种书的登记内容至少包括书号、书名…基于C语言实现B树存储的图书管理系统一、需求分析1.1 问题描述图书管理基本业务活动包括对一本书的采编入库、清除库存、借阅和归还等等。试设计一个图书管理系统将上述业务活动借助于计算机系统完成。1.2 基本要求每种书的登记内容至少包括书号、书名、著者、现存量和总库存量等五项。作为演示系统不必使用文件全部数据可以都在内存存放。但是由于上述四项基本业务活动都是通过书号(即关键字)进行的所以要用B树(2-3树)对书号建立索引以获得高效率。系统应实现的操作及其功能定义如下①采编入库新购入一种书经分类和确定书号之后登记到图书账目中去。如果这种书在帐中已有则只将总库存量增加。②清除库存某种书已无保留价值将它从图书账目中注销。③借阅如果一种书的现存量大于零则借出一本登记借阅者的图书证号和归还期限。④归还注销对借阅者的登记改变该书的现存量。⑤显示以凹入表的形式显示B树。这个操作是为了调试和维护的目的而设置的。下列B树的打印格式如下所示1.3 已完成情况基本功能选做功能图书入库已完成操作日志已完成删除图书已完成查询作者著作已完成借书已完成查询书籍状态已完成还书已完成预约借书已完成拓展功能拓展功能拓展功能拓展功能查询读者状态查询读者状态查询读者的借阅、预约列表已完成查询读者的借阅、预约列表已完成总结总结总结总结1、图书管理系统的四个基本功能已经全部完成。2、选择内容四个功能全部完成。3、增加了一个拓展功能可以更具读者借书证号查询他的借阅状态。1.4 程序亮点亮点一系统输入排错功能完善处理用户的乱输入乱操作增加了系统的稳健性。亮点二系统功能有序使用功能界面完善用户体验效果好二、概要设计2.1 数据类型的定义2.2 功能模块关系三、详细设计3.1 数据类型定义typedef struct{ //被借阅的书籍 int tag; //状态 0-预约1-借阅 int readerId; //读者id int borrowTime; //出借时间 int backTime; //归还时间 char readerName[30]; //读者名字 char bookName[30]; //书籍名字 }LendBook, *LendBookP; typedef struct linkNode { int type; //类型0-借阅记录、1-操作记录、3-作家的书 LendBook *lenBook; //借阅记录 char *log; //操作记录 char *book; //作家的书 struct linkNode *next; }LinkNode, *LinkType; typedef struct{ //书籍 int id; //书籍id char name[30]; //书名 int authorId; //作者id char authorName[30]; //作者 int totalNum; //书籍数量 int stockNum; //书籍库存 LinkNode *borrowList; //借阅列表 LinkNode *appointList; //预约列表 }Book; typedef struct{ //作者 int id; //作者id char name[30]; //作者名字 LinkNode *bookList; //出版书籍 }Author; typedef struct{ //读者 int id; //读者id char name[30]; //读者名字 LinkNode *borrowList; //借阅列表 LinkNode *appointList; //预约列表 }Reader; typedef struct rcdNode{ int type; //结构体数据类型 //0-书籍、1-作者、2-读者 Book *book; //书籍 Author *author; //作者 Reader *reader; //读者 }RcdNode, *RcdType; typedef struct BTNode{ //B树和B树结点类型 int keynum; //结点关键字个数 KeyType key[MAXM]; //关键字数组key[0]不使用 BTNode *parent; //双亲结点指针 BTNode *ptr[MAXM]; //孩子结点指针数组 RcdNode *rcd[MAXM]; }BTNode,*BTree; typedef struct{ //B树查找结果类型 BTNode *pt; //指向找到的结点 int i; //在结点中的关键字位置; int tag; //查找成功与否标志 }Result; typedef struct LNode{ //链表和链表结点类型 BTree data; //数据域 struct LNode *next; //指针域 }LNode, *LinkList;3.2 函数功能具体设计图书入库删除图书预约借书借书还书查询图书查询作者查询读者查看全部打印B树操作日志四、调试分析4.1 问题分析与解决难题一图书、作者、读者数据存储定义。一开始构思的时候并没有打算将作者和读者也用B树存储起来初步设想是用两个链表。但是后来想到查询作者和查询读者的查询难度和查询书籍应该一个等级所以用B树存储的话能够提高查询速度和存储效率所以选择了给图书、作者、读者分别用一个B树存储起来。难题二数据结构体之间的关系设计。在图书、作者、读者关系里面他们互有指向又相互独立所以三者的结构体以及对应信息的指针指向就需要好好梳理。举个例子图书里面要有借阅信息读者里面也要有借阅信息而借阅信息里面有图书信息和读者信息。结构体的定义指向不能形成闭环所以为了实现我将图书信息里面的图书名称和读者信息里面的作者名称抽取出来放到了借阅信息里面。而关于借阅信息链表的增删改查关键信息也就变成了作者名称和图书名称。难题三日期的定义。无论是借书、预约、还书都和日期有关直接让用户输入时间的话可能引发诡异的BUG所以我将这个系统的日期做了简化初始默认是第一天每一个操作增加一天用户借书、预约的时候都是只输入一个借书天数num程序会将这个天数处理所以借书的时候以今天第x天为借书日期还书日期就是第xnum天而预约成功的话就以这本书被上一个借走的人还书的那一天y为借书日期还书日期就是ynum。当然这个方法有些取巧但是能简化预约功能的实现和合理化整体系统的功能。4.2 经验体会最大的体会就是如果要设计一个整体性功能完善的系统的话一开始一定要构思好整体的逻辑包括各种功能的具体定义、实现的合理性、交互的实用性以及功能和功能之间整体性。功能和功能之间关联性是很强的一旦一个功能发生改变或者增删某一个功能的时候其他的许多逻辑也要跟着改这是很没必要也很浪费时间的。举个例子我一开始并没有将读者查询、作者查询放入我的规划功能里面所以结构体的定义都是基于图书B树来的后来想要尝试选做内容的时候整体上逻辑大改结构体修改和新定义了一大堆。再来就是灵活debug吧c语言的封装性比较强很多bug都隐藏在这个指针和那个指针之间如果不用特殊方法去检测的话是很难找出来的。所以要灵活利用断点、打印printf这些来实现程序的实时监控。最后呢就是坚持、耐心、细心。这三个在这次课设都充分地帮助到了我让我在一次又一次的逻辑闭环和死debug的苦海中挣脱出来。五、用户使用说明5.1 功能菜单5.2 使用说明基本用法用户通过a~k等11个字母输入选择具体功能。特殊说明每一次使用完一个功能之后会重新清空命令行重新渲染菜单每一次使用完一个功能之后日期会增加一天日期输入采取简化输入用户输入x代表第x天当前日期显示在菜单右下角一个人预约一本书的话会在上一个读者还书的时候帮他成功预约测试数据:作者:序号1——曹雪芹 序号2——吴承恩 序号3——施耐庵序号4——罗贯中 序号5——唐家三少 序号6——天蚕土豆序号7——江南读者:读书证号111——小红 读书证号222——小明读书证号333——小华书籍书号和作家序号相对应书号1——《红楼梦》 书号2——《西游记》 书号3——《水浒传》书号4——《三国演义》 书号5——《斗罗大陆》 书号6——《斗破苍穹》书号7——《龙族IV》六、测试结果6.1 图书入库示例加入书籍《数据结构》书号12——李教授(作者序号12)亮点输入非数字排错处理6.2 删除图书示例删除书籍《三国演义》书号4亮点输入不存在书号排错处理6.3 预约借书示例小明读书证号222预约书籍《数据结构》书号12亮点书号、借书证号、借书天数的排错处理6.4 借书示例小红读书证号111借阅书籍《数据结构》书号12亮点书号、借书证号、借书天数的排错处理6.5 还书示例小红读书证号111还书《数据结构》书号12亮点没有借阅书籍读者、没有借阅记录的书籍的排错处理还书之后该书如有预约成功预约6.6 查询图书6.7 查询作者6.8 查询读者6.9 查看全部打印B树6.10 操作日志
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

吉首市建设局官方网站企业网站 阿里云

Foundation 标签(Labels)是 ZURB 开发的 Foundation 前端框架中的一个 UI 组件,主要用于在网页中创建小型、内联的文本标签,常用于突出显示状态、类别、提示信息等(如“New”、“Hot”、“Sale”等)。它类似…

张小明 2025/12/27 17:12:31 网站建设

南昌网站开发模板商城建站

网络安全工具深度剖析:Paros、hping2 与 Ettercap 在当今数字化时代,网络安全至关重要。各种网络安全工具层出不穷,它们既可以被安全专业人员用于维护网络安全,也可能被黑客利用来实施攻击。本文将深入介绍三款网络安全工具:Paros、hping2 和 Ettercap,探讨它们的功能、…

张小明 2025/12/27 17:12:33 网站建设

快速的网站开发做视频网站要多大的主机

Voron 2.4终极指南:打造高速专业级3D打印机的完整教程 【免费下载链接】Voron-2 项目地址: https://gitcode.com/gh_mirrors/vo/Voron-2 Voron 2.4是一款开源的高性能3D打印机项目,由Voron Design团队开发,专门为追求高速打印和精度的…

张小明 2025/12/29 2:55:24 网站建设

佛山网站建设网站WordPress怎么添加音乐

从零开始:手把手教你搞定 Multisim 安装与配置,轻松开启电路仿真之旅 你是不是也曾在搜索引擎里反复输入“ multisim下载 ”,却在一堆广告、破解包和英文官网之间迷失方向? 刚入门电子设计的你,是否被老师一句“用…

张小明 2025/12/28 22:10:19 网站建设

做网站淄博专做it招聘的网站

灵活用工平台技术演进与效能评估:聚焦头部解决方案行业痛点分析当前,灵活用工平台领域正面临多重技术挑战。首要挑战在于系统的高并发处理能力与稳定性。随着用工需求的瞬时爆发式增长,传统架构难以支撑大规模、高频率的在线签约、任务派发与…

张小明 2025/12/27 17:12:34 网站建设