数据结构实践项目-图书借阅管理系统(附GUI)

目录

一、 需求分析

二、 概要设计

三、详细设计

四、用户使用说明

五、程序演示

七、界面设计展示

一、 需求分析

编写一个图书借阅管理系统,对图书馆书籍的借阅情况进行管理。

(1)输入的形式和输入值的范围:

   输入的形式:输入的内容在文本文件中,通过daoru这个函数将书籍信息导入进程序中,在后面将最新的信息录入到文本文件中采用的是saveBooks这个函数,将一个包含最新图书借阅情况的信息录入到一个新的文本文件中。

输入值的范围:其中书籍的ISBN号必须为4位数字,学生的借书证号必须为3位数字,书籍的名称,作者,出版社等未做限制,但书籍的定价不可低于0元,库存不可为负数,最多不可超过1000本。

(2)输出的形式; 

   当想查询一本书籍的信息时,会在控制台上输出包含这本书籍信息的全部内容。书籍的名称,ISBN,作者,出版社以字符的形式(%s)输出,书籍的定价以浮点型数字输出(%f),书籍的库存以整型数字(%d)输出。

(3) 程序所能达到的功能; 

   本程序可以达到六个功能:

1.将保存在txt文件中的书籍信息导入到管理系统当中。

2.可以通过管理系统新增或者对已有书籍的各个信息进行添加或更新

3.可以通过管理系统快速查找到某一书籍的具体信息和借阅情况。

4.可以通过管理系统对书籍的借阅进行准确的借阅和登记。

5.可以通过管理系统实现对已借阅书籍的快速还书。

6. 用户可以选择将当前最新的图书信息保存到文本文件中,以便下次使用时导入。

(4) 测试数据:

程序开始:

图书借阅管理系统

1. 添加或修改图书信息

2. 查找图书信息

3. 借阅图书

4. 归还图书

5. 打印所有图书信息

6. 保存图书信息到文件

0. 退出

正确输入:1

正确输出:请输入图书信息(ISBN(4位) 书名 主编 出版社 定价 库存):

正确输入:1008 《计算机科学导论》 鲍勃 清华大学出版社 59.99 30

正确输出:图书信息添加成功!

错误输入:abc12e32e9

错误输出:输入无效,请重新输入选项中的数字!

二、 概要设计

(1)编写一个图书借阅管理系统,要求如下:

  1. 图书信息:包括ISBN、书名、主编、出版社、定价、库存;借阅者信 息包括:借书证号、姓名,联系方式 。
  2. 要求用线性表实现,采用顺序存储结构实现
  3. 图书借阅信息应另外设一线性表保存信息
  4. 界面要求:简单的人机交互界面

 (2)设计思想:

  我用的是结构体数组去实现的,用一个结构体去装一种书籍的全部信息,很多种书籍就装在一个结构体数组,然后对结构体进行一系列的操作。

(3) 函数的功能:

  1. 辅助函数
  1. findBookIndex(string ISBN):根据ISBN在books数组中查找图书的索引。
  2. if_number(string str):检查字符串是否仅由数字组成。
  1. 文件输入输出函数
  1. daoru(string filename):从TXT文件导入图书信息到程序中。
  2. saveBooks(string filename):将程序中的图书信息保存到TXT文件中。
  1. 图书管理函数
  1. add_or_up(Book book):添加或更新图书信息到books数组中。
  2. findBook(string ISBN):根据ISBN查找图书信息。
  3. jie_book(string ISBN, string cardNumber, string jie_date):处理图书借阅操作。
  4. huan_book(string ISBN, string cardNumber):处理图书归还操作。
  5. printBooks():打印程序中存储的所有图书信息。
  1. 主要功能
  1. main()函数:
    1. 在开始时从文件中导入图书信息。
    2. 显示菜单,提供添加/修改图书信息、查找图书信息、借阅图书、归还图书、打印所有图书信息、保存图书信息到文件和退出等选项。
    3. 根据用户选择调用相应的函数执行相应的操作。
    4. 循环执行,直到用户选择退出(输入0)。

三、详细设计

(1)数据及数据类型

  1. 结构体定义
  1. Book存储图书信息,包括ISBN、书名、作者、出版社、定价和库存数量。
  2. jie_info存储借阅信息,包括ISBN、借书证号和借出日期。
  1. 全局变量
  1. MAX_BOOKS允许存储的最大图书数量。
  2. books[MAX_BOOKS]用于存储图书信息的数组。
  3. numBooks当前存储的图书数量。
  4. jie_infos[MAX_BOOKS]用于存储借阅信息的数组。
  5. numjie_infos当前的借阅记录数量。
  1. 数据类型:
  1. 字符串类型(string):用于存储图书信息、借阅者信息等的字符串。在结构体 jie、Book、jie_info 中,用来表示借书证号、ISBN号、书名、作者、出版社等信息。
  2. 浮点数类型(double):用于表示图书的定价。在结构体 Book 中,表示图书的定价。
  3. 整数类型(int):用于表示图书的库存数量、借阅信息数量等。
  4. 文件流类型(ifstream、ofstream):用于文件输入输出的类和函数。在函数 daoru 和 saveBooks 中,分别用于从文件导入图书信息和将图书信息保存到文件。
  5. 字符串流类型(stringstream):用于字符串流的类和函数,主要用于将字符串转换为其他类型的数据。在函数 daoru 中,用于解析读取的每行文本,提取图书信息。

(2)操作流程

① 导入图书信息

  1. 通过函数 daoru 从文件中导入图书信息。

   ② 显示菜单

  1. 在主函数 main 中,使用循环显示菜单,等待用户输入选择操作。

③ 选择操作

  1. 根据用户输入的数字选择相应的操作:

1:添加或修改图书信息。

2:查找图书信息。

3:借阅图书。

4:归还图书。

5:打印所有图书信息。

6:保存图书信息到文件。

0:退出程序。

   ④ 执行相应操作

  1. 根据用户选择执行相应的操作,具体操作包括:

1.添加或修改图书信息:用户输入图书信息,并调用 add_or_up 函数进行处理。

2.查找图书信息:用户输入 ISBN,调用 findBook 函数查找图书信息并打印。

3.借阅图书:用户输入图书 ISBN、借书证号和借出日期,调用 jie_book 函数进行借阅处理。

4.归还图书:用户输入图书 ISBN 和借书证号,调用 huan_book 函数进行归还处理。

5.打印所有图书信息:调用 printBooks 函数打印当前所有图书信息。

6.保存图书信息到文件:调用 saveBooks 函数将当前图书信息保存到文件。

⑤ 循环操作

  1. 用户可以反复选择操作,直到选择退出程序(输入 0)为止。

(3)流程图

四、用户使用说明

该程序是一个简单的图书借阅管理系统,可以实现图书信息的添加、修改、查找,图书的借阅和归还以及打印所有图书信息等功能。以下是对程序中各功能的使用说明:

程序一开始会出现一个可交互的功能选择界面:

(1)添加或修改图书信息:

选择菜单中的选项1,按照提示输入图书的ISBN(4位数字)、书名、作者、出版社、定价和库存数量。

如果要修改已存在的图书信息,程序会提示是否覆盖原有信息,选择Y即可更新信息,选择N则取消更新。

(2)查找图书信息:

选择菜单中的选项2,按照提示输入要查找的图书的ISBN(4位数字)。

如果图书存在,则会显示该图书的详细信息;如果不存在或ISBN输入错误,则会提示未找到图书信息。

(3)借阅图书:

选择菜单中的选项3,按照提示依次输入要借阅的图书的ISBN(4位数字)、借书证号(3位数字)和借出日期。

如果图书库存充足且借阅成功,会显示借阅成功的提示;否则会提示库存不足。

(4)归还图书:

选择菜单中的选项4,按照提示依次输入要归还的图书的ISBN(4位数字)和借书证号(3位数字)。

如果归还成功,会显示归还成功的提示;如果未找到借阅记录或借书证号错误,则会提示相应信息。

(5) 打印所有图书信息:

选择菜单中的选项5,会打印出所有图书的详细信息,包括ISBN、书名、作者、出版社、定价和库存数量。

(6) 保存图书信息到文件:

选择菜单中的选项6,会将当前的图书信息保存到文件中,以便下次程序运行时导入已有信息。

退出程序:

选择菜单中的选项0,即可退出程序。

注意事项:

在使用各项功能之前,请根据程序提示输入相应的信息。

如果要查看或修改程序中新建的文件内容,用户可以在删除文件之前设置断点,以便在程序执行过程中查看文件内容。

在程序结束后,新建的文件(如books_xin.txt)会被自动删除,以防止文件内容重复。如需保留文件内容,请在程序结束后手动删除对应的删除操作。

五、程序演示

纯代码(无界面):

(1)测试数据:

books.txt:

1001         红楼梦     曹雪芹     人民文学出版社     59.8 0

1002    西游记     吴承恩     人民文学出版社     39.80       80    0

1003         水浒传     施耐庵     人民文学出版社     45  119

1004         三国演义         罗贯中     人民文学出版社     59.8 90

(2)正确的输入输出:

(a) 查询所有图书信息:

(b) 添加或修改图书信息:

 输入:‘1’

(c) 查询一本图书信息:

 输入:‘2’

(d) 借阅图书:

输入:‘3’

(e) 还书:

输入‘4’

(f) 保存图书信息到文件:

输入‘6’

七、界面设计展示

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值