C程序设计项目(图书管理系统)n

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1基于文件的图书管理系统项目需求...........................................................................................................................................1总体设计...........................................................................................................................................2详细设计...........................................................................................................................................3项目需求一、新书入库图书信息包括书名,书号,库存量,现存量共4项.首先输入3本书的信息,并将其存入文件”book.dat”中.当有新书入库时,先判断文件中是否有此书(即比较书名),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到文件中。二、图书查询输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。三、借阅管理1.每个读者的信息包括姓名,编号,1张借书卡(限借一本书),输入3个读者的信息存入文件“reader.dat”中.2.借书登记:输入读者的编号,所借图书的书号,先判断姓名是否在文件“reader.dat”中,若有则将书号存入一张借书卡上(注:初始时借书卡的信息都为零,借书后借书卡的信息改为所借书的书号),并修改文件“reader.dat”的相应内容,同时修改文件“book.dat”中此书的现存量.若“reader.dat”无此姓名,则应提示错误。3.还书管理:输入读者的编号,所还图书的书号,将借书卡的信息置为零,并修改文件“reader.dat”的相应内容,同时修改文件“book.dat”中此书的现存量。四、输出全部图书信息和全部读者信息五、退出系统2六、附加说明系统将来完善的功能有:添加读者;一位读者可同时借阅和归还多本图书等等。总体设计一、系统主功能模块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(3)还书管理模块:可用一个函数return_book(charreader_num[],charbook_num[])来实现。在实现此函数时要判断:a.该读者的姓名是否已经存在,如果不存在,则提示错误。b.该读者是否已经借阅此书。如果没有,则提示错误。c.还书过程完成后,则对读者信息里的借书信息清零,并修改库存量。3.输出图书和读者信息:可分别用模块print_book()和print_reader()来实现,直接从book.dat文件和reader.dat文件中读取信息并输出。4.退出系统:可用一个函数exit()来实现。首先将信息保存到文件,释放动态创建的内存空间,再退出此程序。二、系统主功能模块结构图:详细设计一、界面设计图书管理系统新书入库图书查询借书登记还书管理输出图书信息输出读者信息退出系统4此系统界面采用图形和数字化菜单设计。主界面设计如下:图书管理系统图书管理系统主菜单请选择相应的数字执行相应的功能:0:退出此系统1:新书入库2:图书查询3:借书登记4:还书管理5:输出全部图书信息和读者信息各子界面如下:1.新书入库界面:请选择相应的数字执行相应的功能:10:返回主菜单11:新书入库请输入新书名:请输入新书号:请输入新书数量:(注:新书入库成功后,程序返回到子界面1)2.图书查询界面界面:请选择相应的数字执行相应的功能:20:返回主菜单21:图书查询请输入需要查询的书号:(注:图书查询完成后,返回到子界面2)`3.借书登记界面:请选择相应的数字执行相应的功能:30:返回主菜单31:借书登记请输入读者编号:请输入所借书号:(注:借书过程完成后,返回到子界面3)``4.还书管理:请选择相应的数字执行相应的功能:40:返回主菜单41:还书登记5请输入读者编号:请输入所借书号:(注:还书过程完成后,返回到子界面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.系统主要结构流程图:62.新书入库功能程序结构图新书入库初始化已做初始化开始TF初始化功能选择1图书查询借阅登记还书管理输出图书信息输出读者信息入库完否T退出系统新书入库F234551520开始输入新书名、新书号和新书数量已存在此新书if(还有新书)结束(即返回主菜单)根据数量修改库存book.dat中增加此新书,根据数量设置库存量TTFF73.图书查询程序结构图:开始输入要查询的书号是否存在此书输入此书的全部信息输入信息:此书不存在是否继续查询结束(即返回主菜单)TTFF84.借书登记程序结构流程图:书号存在否开始输入读者编号是否存在编号输出出错信息提示不能借书借书卡是否满是否还书进入还书模块输入需要借的书号还有读者借书结束(即返回主菜单)是否重输否满借书登记,修改book.dat中的现存信息,reader.dat中的借书卡信息TTTTFFFFTFFTTT95.还书管理程序结构图:开始输入读者编号是否存在编号输出出错信息核对书号是否重输进入查询模块输入还书的书的编号还有读者还书结束(即返回主菜单)是否重输否满还书将读者信息借书卡清0,修改book.dat现存信息TFFFTFTF106.输出读者和图书信息四、文件存储路径可执行文件tsglxt.exe及book.dat、reader.dat,都存储在c:\tsgl文件夹下。开始是否输出图书信息输出全部图书信息输出全部读者信息结束(即返回主菜单)TF

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功