没有合适的资源?快使用搜索试试~ 我知道了~
图书管理系统--c++-数据结构实验报告.doc
需积分: 19 6 下载量 53 浏览量
2022-07-17
10:54:40
上传
评论 1
收藏 53KB DOC 举报
温馨提示
试读
20页
图书管理系统--c++-数据结构实验报告.doc
资源推荐
资源详情
资源评论
数 据 结 构
课 程 设 计 说 明 书
学生姓名:
学 院:
软件学院
专 业:
信息管理与信息系统
题 目:
图书管理系统
成 绩
指 导 教 师
2011 年 1 月 6 日
1.设计目的(小标题黑体五号字)
《数据结构》课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其
在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分
1
析和讨论.进行数据结构课程设计要达到以下目的:
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作
方法和作风。
2.设计内容和要求
1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;
2)对书号建立索引表(线性表)以提高查找效率;
3)系统主要功能如下:
*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量
增加;
*借阅:如果一种书的现存量大于 0,则借出一本,登记借阅者的书证号和归还期限,改变现
存量;
*归还:注销对借阅者的登记,改变该书的现存量。
3.本设计所采用的数据结构
定义图书链表和图书索引结构
struct Book
{
char BookID[10];/*图书编号*/
char BookName[512];/*书名*/
char Writer[512];/*作者*/
int CurrentNumber;/*现存量*/
Book *pNext;/*下一个图书信息*/
};
struct Index
{
char BookID[10];/*图书编号*/
Index *pNext;/*下一个索引指针*/
};
2
/*借阅信息结构*/
struct Borrow
{
char BookID[10];/*借阅图书编号*/
char BookName[512]; /*书名*/
unsigned long StuID; /*图书证号*/
char ReturnTime[512];/*归还日期*/
Borrow *pNext; /*下一个借阅信息*/
};
4.功能模块详细设计
4。1 详细设计思想
主函数 main()
主函数通过一个 switch 语句实现对系统功能的选择。
主菜单选择函数 ShowMainMenu()
此函数包括退出系统,图书入库,查询库存,查询借阅和归还图书五个函数,通过
调用主菜单函数判断用户做出的选择,从而进行相应的操作.
图书入库函数 PutBookInLib()
此函数通过的创建一个图书链表,达到对新进书判断,若在现有的图书中找到该书,
则直接进行入库,并记录下图书的数量,若找完整个图书量表也没找到该书,则要记录下
新进图书的名称,作者,数量,并把该书插入到已有数中,方便下次对新书的判断。
查询图书馆库存函数 QueryBookLib()
查询图书馆库存,查询不改变数据,故传入指针即可.显示图书的编号、名称、作者、
现有量以及库存量
借阅图书函数 BorrowBook()
此函数通过读者的图书证号对读者链表从头至尾进行查找,若找到读者,则显示读
者图书证号以及姓名,然后利用 for 循环和指针,对读者所借图书进行查找并显示。若
找不到读者,显示读者标号不存在,按任意键回到查找菜单选择函数界面。
借阅图书函数 BorrowBook()
3
此函数需要读者输入的图书证号,根据读者输入的要借的图书编号,再利用 while
循环遍历是否存在该书,若该书不存在,则显示此书不存在,若该书存在,再利用 if 判断
是否还有现存,若无现存,在提示此书已借完,若还有现存,提示借书成功,根据库函
数 time。h 自动登记归还日期。
查询借阅函数 QueryBorrow()
此函数通过 while 循环实现对所有已借出图书的遍历,并输出所有已借出图书的信
息。
归还图书函数 ReturnBook()
此函数也是以用图书链表和读者链表对读者还书进行操作,根据读者输入的图书证
号,利用 while 循环对读者链表进行遍历,查找是否存在该读者,若读者不存在,则提示
该读者的图书证号不存在,若读者存在,根据读者输入的要还的图书编号,再利用 while
循环遍历是否存在该书,若该书不存在,则显示此书编号不存在,若该书存在,则利用 for
循环把读者的图书链表中要还书后面的书向前移一个单位,覆盖掉链表中该书的信息,
并把读者的借书量减一,把图书的现存量加一.
4。2 核心代码
#include 〈stdio.h>
#include 〈stdlib。h〉
#include 〈string.h>
#include <time。h〉
#ifndef _DATA_STRUCT_H_
#define _DATA_STRUCT_H_
#endif/*_DATA_STRUCT_H_*/
/*图书结构*/
struct Book
{
char BookID[10];/*图书编号*/
char BookName[512];/*书名*/
char Writer[512];/*作者*/
int CurrentNumber;/*现存量*/
Book *pNext;/*下一个图书信息*/
剩余19页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3613
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- sony 索尼IMX334摄像头模组电路板AD版硬件PCB图(6层板).zip
- 基于flask和echarts融合交易策略的bitfinex可视化微服务.zip
- 包含了wvp-assist.tar wvp-talk.tar zlmediakit.tar .
- 3r4efgh53wgrf43tw
- 2024新版Java基础从入门到精通全套视频+资料下载
- Spring AI大模型视频教程+ChatGPT视频教程+OpenAI大模型视频教程(资料+视频教程)
- ABB工业机器人教程PDF版本
- 123321123323211
- yolov8实战第八天-pyqt5-yolov8实现车牌识别系统(论文(8700+字+数据集+完整部署代码+代码使用说明)
- 三相桥式全桥整流电路MATALB Simulink仿真文件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功