- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于文件的图书管理系统项目需求 1
总体设计 2
详细设计 3
项目需求
一、新书入库图书信息包括书名, 书号, 库存量, 现存量共4项. 首先输入3本书的信息, ”book.dat”中. 当有新书入库时, 先判断文件中是否有此书( 即比较书名 ), 若有则修改库存量, 现存量的信息; 若无此书, 则将该书的信息添加到文件中
二、图书查询输入一个书号, 在文件中查找此书, 若找到则输出此书的全部信息; 借阅管理
, 编号,1张借书卡( 限借一本书 ), 输入3个读者的信息存入文件“reader.dat”中.
:输入读者的,所借图书的书号, 先判断姓名是否在文件reader.dat”中, 若有则将书号存入一张借书卡上( 注: 初始时借书卡的信息都为零, 借书后借书卡的信息改为所借书的书号), 并修改文件reader.dat”的相应内容, 同时修改文件book.dat”中此书的现存量. 若reader.dat”无此姓名, 则应提示错误
3.还书管理: 输入读者的, 所还图书的书号, 将借书卡的信息置为零, 并修改文件reader.dat”的相应内容, 同时修改文件book.dat”中此书的现存量
四、输出全部图书信息和全部读者信息
退出系统num[],char book_name[],int number)来实现。形参分别为:书名, 书号,[],char book_num[])来实现。在函数中要分别判断:
a.该读者的编号是否已经存在,如果不存在,则提示错误。
b.该读者的借阅书是否已满(即最多只能借1本书)如果是,则提醒该用户先去还书。
c.输出的书号对应的书是否存在,如果不存在,则提醒读者不存在此书。
借书过程完成后,则对读者信息里的借书信息写上所借书号,并修改库存量。
(3)还书管理模块:可用一个函数return_book(char reader_num[],char book_num[])来实现。在实现此函数时要判断:
a.该读者的姓名是否已经存在,如果不存在,则提示错误。
b.该读者是否已经借阅此书。如果没有,则提示错误。
c.还书过程完成后,则对读者信息里的借书信息清零,并修改库存量。
3.输出图书和读者信息:可分别用模块print_book()和print_reader()来实现,直接从book.dat文件和reader.dat文件中读取信息并输出。
4.退出系统:可用一个函数exit()来实现。首先将信息保存到文件,释放动态创建的内存空间,再退出此程序。
二、系统主功能模块结构图:
详细设计
一、界面设计
此系统界面采用图形和数字化菜单设计。
主界面设计如下:
图书管理系统
图书管理系统主菜单
请选择相应的数字执行相应的功能:
0:退出此系统
1:新书入库
2:图书查询
3:借书登记
4:还书管理
5:输出全部图书信息和读者信息
各子界面如下:
1.新书入库界面:
请选择相应的数字执行相应的功能:
10:返回主菜单
11:新书入库
请输入新书名:
请输入新书号:
请输入新书数量:
(注:新书入库成功后,程序返回到子界面1)
2.图书查询界面界面:
请选择相应的数字执行相应的功能:
20:返回主菜单
21:图书查询
请输入需要查询的书号:
(注:图书查询完成后,返回到子界面2)
` 3.借书登记界面:
请选择相应的数字执行相应的功能:
30:返回主菜单
31:借书登记
请输入读者编号:
请输入所借书号:
(注:借书过程完成后,返回到子界面3)
` ` 4.还书管理:
请选择相应的数字执行相应的功能:
40:返回主菜单
41:还书登记
请输入读者编号:
请输入所借书号:
(注:还书过程完成后,返回到子界面4)
5.输出全部图书和读者信息:
请选择相应的数字执行相应的功能:
50:返回主菜单
51:输出全部图书信息:
书号 书名: 库存量 现存量
52:输出全部读者信息:
读者编号 读者姓名 所借书号
(注:输出图书和读者信息后,返回到子界面5)
数据结构设计
考虑到图书信息和读者信息中都包含有不同类型的数据,故分别建立图书和读者两种类型的结构体;由于图书和读者的数量非固定,所以采用动态链式存储来实现。
图书类型:
typedef struct bk{
char book_num[11]; /* 书号采用10位编码最后1
您可能关注的文档
最近下载
- 人教版初中生物会考试卷及答案.pdf VIP
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 2023年四川省广元市中考地理试题卷(含答案详解).docx
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
- 广西师范大学2020-2021学年《认知心理学》期末考试试卷(B卷)含参考答案.docx
- 羊常见疾病防治.ppt VIP
- 国开期末考试3987《Web开发基础》机考试题及答案(李老师第5套).pdf VIP
- 2024年怀化市靖州苗族侗族自治县六年级下学期小升初真题精选语文试卷含答案.doc VIP
- 2023年海南师范大学软件工程专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 2025年社区工作者招聘考试题库及答案解析.docx VIP
文档评论(0)