欢迎来到天天文库
浏览记录
ID:6382382
大小:43.61 KB
页数:8页
时间:2018-01-12
《模拟图书馆管理系统(算法与数据结构)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、http://www.qadk.com/quanxunwang/“程序设计专周”报告实验题目:模拟图书馆管理系统班级:学号:30号姓名:指导教师:日期:19周一~周五http://www.qadk.com/quanxunwang/一、题目:模拟图书馆管理系统模拟图书管理系统:图书管理的基本业务包括对一本书的入库、清除、查询、借出、归还等,设书的内容至少包括书号、书名、作者、库存总量和现存量等。二、算法基本思想描述: 将整个程序划分为五个模块,分别定义了五个函数来实现管理系统的功能,采用单链表的结构进行数据操作。三、设计1.数据结构的设计typede
2、fstructBookList{charnum[10];charname[20];charauthor[20];inttotal;intleavings;structBookList*next;}Book;采用链表的结构来进行数据操作,一本书的数据包括:书号、书名、作者、库存总量、现存量以及指针区域。2.算法的设计(1)关键算法设计思路描述在构思图书馆管理系统的结构时,我将整个程序划分为五个模块,分别定义了五个函数来实现管理系统的功能,除此之外在对程序的界面设计上加入了一些动画效果。在数据结构上采用单链表的结构方式,这样在读取文件中数据的时候能够节省
3、内存空间。 设计主菜单时,用while(1)和switch()来实现功能的选择以及运行一项功能后返回主菜单。 在整个程序中,统一采用了以输入0的方式返回或退出,并在模块有需要键盘输入地方加入了防错误输入的功能,防止输入错误导致程序错误运行,此功能采用判断输入值的ASCII码或字符串的比较。入库模块:首先判断数据文件是否存在,如存在以追加的方式打开,如不存在以写入的方式打开。输入图书的具体数据(在输入过程中,如输入的书号为0则返回主菜单)、存盘,判断存盘成功则打印“成功添加”,如存盘失败打印“添加失败”。最后返回入起始界面(入库模块)。清除模块:进入
4、清除模块则将文件中的全部数据用单链表的结构读入内存,提示输入要删除的书号,在内存中寻找并删除,删除后可以马上存盘或是直到全部删除完成后再选择操作,在防止操作后忘记存盘,在程序中加入了自动判断操作过的数据是否己经进行过存盘的功能。查询模块:本模块分为三个子模块:以书号方式查询、以书名的方式查询、以作者的方式查询。前两个查询功能只要找到符合条件的数据时就停止,以作者方式因为考虑到一个作者不止一本作品,所以对全部的数据进行查找,并打印出所有符合条件的数据。如果未找到则打印“没有找到”,最后返回子功能模块起始,直到输入0返回上一级。借出、还书模块:http:
5、//www.qadk.com/quanxunwang/这两个功能的思路完全一样,不同的是对数据中的现存量的运算。两个功能都是先建立一个图书类型的数据指针,逐条将文件中的数据读入内存,并与输入的数据进行比较,如果一致则先对内存中的数据进行操作,再将文件中的fp指针后退sizeof(Book)个字节,将内存中的经过修改过的数据写入文件。完成一条操作后,提示进行下一条操作,输入0时返回主菜单。(2)程序结构及模块名称描述 主程序界面初始化入库清除查询借出归还书号查询书名查询作者查询全部列表a)voidmain()//主程序b)voids(long)
6、 //时间延迟函数 c)voidsta() //界面初始效果d)voidwel() //界面初始效果e)voidbookadd() //入库f)voidsa_ve(sqtype) //清除函数中保存文件函数g)voiddel() //清除h)voidr() //查询j)voids_1() //查询功能中以书号方式查询k)voids_2() //以书名方式查询l)voids_3() //以作者方式查询m)voidreadal
7、l()//列出全部图书n)voidborrow() //借出o)voidback() //归还p)voidbye() //退出效果(3)主要模块算法描述/*添加*/voidbookadd()/*添加图书*/{FILE*fp;Bookfinger;chartemp[10];fp=fopen("blist.db","rb");/*读方式打开文件*/if(fp==NULL)fp=fopen("blist.db","wb");/*写方式打开文件*/else/*如果有书就添加*/{http://www.qadk.com
8、/quanxunwang/fclose(fp);fp=fopen("blist.db","ab");/*追加
此文档下载收益归作者所有