C程序设计策划方案图书管理系统n.docx

上传人:b****6 文档编号:16392250 上传时间:2023-07-13 格式:DOCX 页数:12 大小:151.92KB
下载 相关 举报
C程序设计策划方案图书管理系统n.docx_第1页
第1页 / 共12页
C程序设计策划方案图书管理系统n.docx_第2页
第2页 / 共12页
C程序设计策划方案图书管理系统n.docx_第3页
第3页 / 共12页
C程序设计策划方案图书管理系统n.docx_第4页
第4页 / 共12页
C程序设计策划方案图书管理系统n.docx_第5页
第5页 / 共12页
C程序设计策划方案图书管理系统n.docx_第6页
第6页 / 共12页
C程序设计策划方案图书管理系统n.docx_第7页
第7页 / 共12页
C程序设计策划方案图书管理系统n.docx_第8页
第8页 / 共12页
C程序设计策划方案图书管理系统n.docx_第9页
第9页 / 共12页
C程序设计策划方案图书管理系统n.docx_第10页
第10页 / 共12页
C程序设计策划方案图书管理系统n.docx_第11页
第11页 / 共12页
C程序设计策划方案图书管理系统n.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C程序设计策划方案图书管理系统n.docx

《C程序设计策划方案图书管理系统n.docx》由会员分享,可在线阅读,更多相关《C程序设计策划方案图书管理系统n.docx(12页珍藏版)》请在冰点文库上搜索。

C程序设计策划方案图书管理系统n.docx

C程序设计策划方案图书管理系统n

基于文件的图书管理系统

项目需求

一、新书入库

图书信息包括书名,书号,库存量,现存量共4项.首先输入3本书的信息,并将其存入文件”book.dat”中.当有新书入库时,先判断文件中是否有此书(即比较书名),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到文件中。

二、图书查询

输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。

三、借阅管理

1.每个读者的信息包括姓名,编号,1张借书卡(限借一本书),输入3个读者的信息存入文件“reader.dat”中.

2.借书登记:

输入读者的编号,所借图书的书号,先判断姓名是否在文件“reader.dat”中,若有则将书号存入一张借书卡上(注:

初始时借书卡的信息都为零,借书后借书卡的信息改为所借书的书号),并修改文件“reader.dat”的相应内容,同时修改文件“book.dat”中此书的现存量.若“reader.dat”无此姓名,则应提示错误。

3.还书管理:

输入读者的编号,所还图书的书号,将借书卡的信息置为零,并修改文件“reader.dat”的相应内容,同时修改文件“book.dat”中此书的现存量。

四、输出全部图书信息和全部读者信息

五、退出系统

六、附加说明

系统将来完善的功能有:

添加读者;一位读者可同时借阅和归还多本图书等等。

总体设计

一、系统主功能模块

1.新书入库模块:

可用一个函数insert_new_book(charbook_num[],charbook_name[],intnumber)来实现。

形参分别为:

书名,书号,以及有多少本书要入库,再根据要求将信息写入文件boot.dat中。

又由于最开始要输入三本新书,故可以加一个初始化函数init_book(),但是初始化函数只执行一次,也就是在系统第一次运行的时候执行,此时可以根据判断是否存在boot.dat这个文件来决定是否执行初始化函数。

2.查询模块:

可用一个函数voidfind_book(charbook_num[])来实现。

找到就输出此书全部信息,找不到就输出查找失败信息。

3.借阅管理模块:

(1)三个读者的信息可以在系统初始化时完成.即可用初始化函数init_reader()来实现对读者的初始化。

因为读者初始化函数也只是在系统第一次运行的时候执行一次,故也可以根据是否存在reader.dat文件来确定是否执行此函数。

(到现在可以发现在系统初始化函数里,至少已经需要调用两个初始化函数了)

(2)借书登记模块:

可用一个函数borrow_book(charreader_num[],charbook_num[])来实现。

在函数中要分别判断:

a.该读者的编号是否已经存在,如果不存在,则提示错误。

b.该读者的借阅书是否已满(即最多只能借1本书)如果是,则提醒该用户先去还书。

c.输出的书号对应的书是否存在,如果不存在,则提醒读者不存在此书。

借书过程完成后,则对读者信息里的借书信息写上所借书号,并修改库存量。

(3)还书管理模块:

可用一个函数return_book(charreader_num[],charbook_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)

二、数据结构设计

考虑到图书信息和读者信息中都包含有不同类型的数据,故分别建立图书和读者两种类型的结构体;由于图书和读者的数量非固定,所以采用动态链式存储来实现。

图书类型:

typedefstructbk{

charbook_num[11];/*书号采用10位编码最后1位为字符串结束标志(下同)*/

charbook_name[41];/*书名规定不超过40个字母(20个汉字)*/

unsignedbook_kc,book_xc;/*book_kc代表库存梁,book_xc代表现存量*/

structbk*next;

}book;

读者类型:

typedefstructrd{

charreader_num[11];/*读者编号采用10位编码*/

charreader_name[11];/*读者姓名*/

charreader_book_num[11];/*表示所借书号,初始值为“0”*/

structbk*next;

}reader;

 

三、主要功能流程图

1.系统主要结构流程图:

 

初始化

 

 

新书入库

 

 

2.新书入库功能程序结构图

 

3.图书查询程序结构图:

 

 

 

 

 

 

4.借书登记程序结构流程图:

 

 

 

5.还书管理程序结构图:

 

6.输出读者和图书信息

 

四、文件存储路径

可执行文件tsglxt.exe及book.dat、reader.dat,都存储在c:

\tsgl文件夹下。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2