数据结构-c语言-图书管理系统.doc
《数据结构-c语言-图书管理系统.doc》由会员分享,可在线阅读,更多相关《数据结构-c语言-图书管理系统.doc(31页珍藏版)》请在咨信网上搜索。
1、课程设计任务书 题目: 图书管理系统 学 号 200912220280 姓 名 张志涛 专 业 计算机应用技术 课 程 数据结构 指导教师 曾德藩 职称 完成时间:20 年 月-20 年 月枣庄学院计算机科学系制说明一、课程设计写作框架(仅供参考) 摘要目录正文1、 基本设计任务及要求、所用仪器设备;2、 总体设计方案及主要设计原理;3、 实现技术及源程序代码;4、 测试及分析5、 结束语(心得体会、改进方向)参考文献二、写作要求:课程设计写作要求论点明确、论据充分、说明透彻,语言准确恰当,书面整洁,字迹工整。课程设计的篇幅本科一般为4000字左右,专科一般为3000字左右。程设计任务书及成绩
2、评定课程设计的任务和具体要求目的要求: 本课程设计任务的目地是要求学生按照分析、设计、编码、调试和测试的软件开发过程完成管理系统设计,以及c语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学到以前调试短程序没有的经验。具体要求:1、 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过选择希望运行的操作项目;2、 要求以上功能分别用函数实现。并要求c语言的文件操作语句将以上所有结果保存在文件xx.out。指导教师签字: 日期: 指导教师评语成绩: 指导教师签字: 日期: 课程设计所需软件、硬件等: Win-tc软件 计算机 鼠标 键盘 课程设计进度计划起至日期
3、工作内容备注1、 选择合适的数据结构2、 结点结构的设计3、 算法设计与分析4、 程序设计、实现、调试课程设计说明书参考文献、资料索引序号文献、资料名称编著者出版单位1、c语言设计(第三版) 谭浩强 清华大学出版社2、数据结构(C语言版) 严蔚敏 、吴伟民 清华大学出版社3、数据库系统基础 姚世斌 图书借阅管理是图书馆一个最基本的工作,这里用C语言的知识设计开发一个简单的图书借阅管理系统,系统主要实现图书信息和学生信息的管理,图书查询及图书借阅管理。 系统设计要求 系统主要实现以下六个功能: 用户登录。系统用户分为管理员和学生。管理员登录时必须输入密码,密码正确才能进入系统;学生登录时无需密码
4、,输入学号即可。 图书信息管理。图书信息包括:书号、书名、作者、图书分类、出版社、出版时间、单价、总量和库存量。图书信息管理包括:输入图书信息(从键盘或从文件)、保存图书信息、修改图书信息、增加图书信息、删除图书信息和输出图书信息。 学生信息管理。学生信息包括:学号、姓名、借书卡(借阅标记、书号、借阅时间)。学生信息管理包括:输入学生信息(从键盘或从文件)、保存学生信息、修改学生信息、增加学生信息、删除学生信息和输出学生信息。 图书查询功能。图书查询分为:按书名查询、按作者查询、按图书分类查询、按出版社查询和按出版时间查询。 借书功能。借书时,先判断学生是否有空闲的借书卡,若没有则应输出提示信
5、息;若有空闲的借书卡,则要求学生输入所借图书的书号,若该书库存量不为0,则将该书借出,同时在借书卡上记录该书的书号和借阅时间,并修改该书的库存量。 还书功能。还书时,先检查学生的借书卡,若借书卡都为空,则不能进行还书操作,若有借书卡不为空,则可以还书,此时要求学生输入所还图书的书号,将对应借书卡上的记录清零,并修改该书的库存量。 数据结构设计系统共定义了四个结构体类型,包括日期类型、借书卡类型、图书类型和学生类型,其中在图书类型中要使用日期类型,而在学生类型中要使用日期和借书卡类型,定义如下:typedef struct date /日期类型 short year; /年 short mont
6、h; /月 short day; /日 SDATE;typedef struct library_card /借书卡类型 Short flag; /是否借阅标记 Char ISBN20; /所借图书的书号 SDATE bor_time; /借阅时间SLCARD;typedef struct student /学生类型 char num15; /学号 char name20; /姓名 SLCARD card5; /借书卡(规定每人最多有5张)SSTUD;typedef struct book /图书类型 char ISBN20; /书号 char bookname40; /书名 char aut
7、hor20; /作者 char publisher30; /出版社 char bookclass20; /图书分类 short total_num, stock_num; /总量,库存量 float price; /单价 SDATE publish_time; /出版时间 SBOOK;系统定义了两个全局变量数组,分别存放图书信息和学生信息,因数组大小是固定的,为使用方便在系统中定义两个符号常量,具体定义如下:#define BOOKNUM 1000 / BOOKNUM为系统允许的最大图书数量#define STUDNUM 100 / STUDNUM为系统允许的最多学生人数SSTUD stude
8、ntSTUDNUM=0; /学生数组,初始化为0SBOOK bookBOOKNUM=0; /图书数组,初始化为03. 功能模块设计(1) main函数的设计:由于图书信息和学生信息都保存在文件中,系统运行的第一个工作是从文件中将图书信息和学生信息读入到内存数组book和数组student中,在读入信息的过程中同时统计出目前图书的数量和学生的人数,并将数据分别存放在整型变量bn和sn中,bn为图书数量,sn为学生人数。如果bn=0或sn=0,系统会输出提示信息,让管理员输入图书信息和学生信息。然后系统会显示主菜单,用户必须登录后才能使用系统提供的各种服务。(2) 用户登录管理模块包括2个函数:M
9、anagerLogin()和StudentLogin(),该模块由main函数调用。函数ManagerLogin()用来完成管理员登录工作,首先要求管理员用户输入密码,若密码错误,则直接返回主菜单界面;密码正确时将显示管理员用户的功能菜单,输入数字可执行相应的功能。函数StudentLogin()用来完成学生登录工作,要求学生输入学号,若学号错误则要求学生重新输入学号;输入学号正确则显示学生用户的功能菜单,输入数字可执行相应的功能。(3) 图书信息管理模块包括11个函数:InputOnebook()、LoadBooks()、SaveOnebook()、SaveAllbooks()、Origin
10、alBook()、ModifyBook()、AddBook()、DelBook()、OutputOnebook()、OutputAllbooks()和OutputBrief ()。只有管理员用户可以调用图书信息管理模块。函数InputOnebook()用来实现从键盘输入一本图书的全部信息。函数LoadBooks()用来实现从文件“book.dat”中输入全部图书的信息,并将这些数据存放到内存数组book中。函数SaveOnebook()用来实现将一本图书的信息保存到文件“book.dat”中。函数SaveAllbooks()用来实现将全部图书的信息保存到文件“book.dat”中。函数Orig
11、inalBook()用来实现图书信息的初始化,在程序第1次运行时必须调用该函数,输入若干本图书的信息,并将这些信息保存在文件中。该函数是通过循环多次调用InputOnebook()函数实现多本图书信息的输入,然后调用SaveAllbooks()函数将已输入的所有图书的信息保存在文件“book.dat”中。函数ModifyBook()用来实现对图书信息的修改,用户首先输入书号,书号错误则输出提示信息,要求用户重新输入;书号正确则用户可以选择要修改的数据项对图书信息进行修改(用switch结构实现),一本图书的信息修改完毕后,调用SaveOnebook()函数,将修改后的信息保存到文件中。然后询问
12、用户是否继续修改其他图书的信息,用户选择y,则重复上述的修改过程;用户选择n,则结束函数,返回到管理员菜单界面。函数AddBook()用来实现添加图书信息,通过调用InputOnebook()函数,从键盘输入一本图书的信息,然后将该信息写入文件。然后询问用户是否继续添加其他图书的信息,用户选择y,则重复上述过程;用户选择n,则结束函数,返回到管理员菜单界面。函数DelBook()用来实现删除图书信息,用户首先输入书号,书号错误则输出提示信息,要求用户重新输入;书号正确则会先输出该书号对应图书的信息,然后询问用户是否确定要删除该书的信息,用户选择y才能真正删除该书信息。最后询问用户是否继续删除其
13、他图书的信息,用户选择y,则重复上述过程;用户选择n,则结束函数,返回到管理员菜单界面。函数OutputOnebook()用来实现输出一本图书的全部信息。函数OutputAllbooks()通过多次调用OutputOnebook()函数来实现输出全部图书的信息。函数OutputBrief()用来实现以列表方式输出全部图书的简要信息,简要信息包括:书号、书名、作者和总量。(4) 学生信息管理模块包括10个函数:InputOnestud()、LoadStuds()、SaveOnestud()、SaveAllstuds()、OriginalStud()、ModifyStud()、AddStud()、
14、DelStud()、OutputOnestud()和OutputAllstuds()。 管理员用户可以使用学生信息管理模块的全部功能,学生用户只能使用该模块中的一个功能,即OutputOnestud()函数(输出一个学生的信息)。学生信息管理模块中函数的实现方法与图书信息管理中的类似,以下仅作简单说明。函数InputOnestud()用来实现从键盘输入一个学生的信息。函数LoadStuds()用来实现从文件“stud.dat”中输入全部学生的信息,并将这些数据存放到内存数组student中。函数SaveOnestud()用来实现将一各学生的信息保存到文件“stud.dat”中。函数SaveAl
15、lstuds()用来实现将全部学生的信息保存到文件“stud.dat”中。函数OriginalStud()用来实现学生信息的初始化,在程序第1次运行时必须调用该函数。该函数是通过循环多次调用InputOnestud()函数实现多个学生信息的输入,然后调用SaveAllstuds()函数将已输入的所有学生的信息保存在文件“stud.dat”中。函数ModifyStud()用来实现学生信息的修改。函数AddStud()用来实现添加学生信息。函数DelStud()用来实现删除学生信息。函数OutputOnestud()用来实现输出一个学生的全部信息。函数OutputAllstuds()用来实现输出全
16、部学生的基本信息(即学号和姓名)。(5) 图书信息查询模块包括6个函数:SearchMenu()、SearcBname()、SearchAuthor()、SearchBclass()、SearchPublisher()、SearchPubtime()。管理员和学生都可以使用图书信息查询模块。 函数SearchMenu()用来显示图书查询服务菜单,用户输入数字可执行相应的查询服务。函数SearcBname()用来实现按书名进行图书信息的查询。用户可以输入完整的书名进行精确查询(如输入“C语言程序设计”),精确查询是使用字符串比较函数strcmp(),将输入的书名与已有图书的书名逐一进行比较,当该
17、函数的返回值等于0,表示这两个书名完全相同,即找到要查询的图书。另外,用户也可以输入书名中的几个字进行模糊查询(如输入“C语言”,或输入“程序设计”),模糊查询是使用求子串函数strstr(),在已有图书的书名中寻找输入的字符串,如果该函数的返回值不为空,则说明该书名中包含这个字符串,那么就应该输出这本图书的信息。通常,模糊查询会列出多个查询结果。函数SearchAuthor()用来实现按作者姓名进行图书信息的查询。用户可以输入完整的姓名进行精确查询(如输入“谭浩强”),也可以只输入姓氏进行模糊查询(如只输入“张”),具体方法与按书名查询类似。函数SearchBclass()用来实现按图书分类
18、进行图书信息的查询。考虑到用户可能不能输入完全正确的图书分类名称,所以在该函数中只采用模糊查询方式。函数 SearchPublisher()用来实现按出版社名称进行图书信息的查询。用户在输入出版社名称时,一般不会输入“出版社”这三个字(如想查询清华大学出版社的图书,通常用户会输入“清华大学”),所以在该函数中也是只采用模糊查询方式。函数 SearchPubtime()用来实现按出版日期进行图书信息的查询。使用该函数必须注意要按系统规定的格式输入日期,若想查询2004年5月份出版的图书,则应输入“2004.5”;若想查询2004年出版的图书,则应输入“2004”。假设输入日期为“2004.5”,
19、进行查询时,先判断输入的年份与出版日期中的年份是否相等,若不相等则结束本次循环,若相等则用变量k记录其下标,然后再判断月份是否相等,月份若不相等则用continue结束本次循环,月份若相等则可输出这本书(即第k本书)的信息,然后再继续判断下一本图书。(6) 图书借阅管理模块包括2个函数:BorrowBook()和ReturnBook()函数。 函数BorrowBook()用来实现借书管理。由学生类型定义可知,每个学生有5张借书卡,借书卡的信息包括:借阅标记flag、所借图书的书号ISBN和借阅时间bor_time。借书时,首先查找学生是否有空闲的借书卡(即判断该生借书卡的借阅标记flag是否为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 语言 图书 管理 系统
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。