- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HUNAN UNIVERSITY
程序设计训练
报 告
学生姓名
学生学号
专业班级
指导老师
起 止 时 间 2009年11月8日----2009年11月20日
实训一 图书管理系统
实训目的:
掌握结构化程序设计的基本思想;
熟练掌握结构以及指针的设计和应用;
熟练掌握文件的存取方法;
了解综合系统设计的基本原理;
提高C语言程序设计的综合应用能力。
实训任务:
开发一个简单的图书管理系统,具体功能要求如下:
图书管理:增加图书、修改图书、删除图书、统计图书;
借阅管理:查找图书、借阅图书、归还图书、借阅图书统计;
读者管理:申请读者卡、删除读者卡、修改读者卡;
馆员管理:添加管理员、修改管理员信息、删除管理员。
根据以上功能说明,设计馆员信息、读者信息、读者卡信息、图书信息的存储结构,数据存储在文件中,界面要求有合理的提示,每个功能可以设立菜单,根据提示可以完成相关的功能要求。
实训设计:
基本数据结构设计:
考虑到本程序有很多增删工作,故采用链表存储结构。
在主函数中创建四个空链表:
2.系统结构设计:
系统结构设计说明了整个系统的功能模块结构以及调用关系,本设计采用自顶向下的结构化方法,将每个模块自顶向下展开。
3. 模块设计:
主控模块
在该模块中,提供系统的主菜单,通过主菜单用户选择图书管理、借阅管理、读者管理、馆员管理和退出系统。
而这些功能,我没有写成大函数,只是多写了几个界面显示函数,即二级菜单显示,再在二级菜单中选择,实现相应的功能。其中退出系统的实现很简单,在主函数main()中用return 0 语句退出main()函数即可。
图书管理模块
在该模块中,提供子菜单供用户选择增加图书、修改图书、删除图书、统计图书、返回主菜单。
增加图书通过提示输入,完成一条记录输入后,可以返回上一级菜单,再选择进行图书管理模块的操作。
删除、修改通过图书,通过编号查找到该书,然后再进行删除、修改。做完一条记录的删除、修改后可以返回上一级菜单。
统计图书,对存书进行统计输出显示图书编号、书名、作者、出版社、状态(0表示在馆,1表示已借出),显示完成后按任意键返回到图书管理模块,可以再进行相关操作。
借阅管理模块
在该模块中,提供子菜单,供用户选择查找图书、借阅图书、归还图书、借阅图书统计和返回主菜单的操作。
查找图书可以通过图书编号、图书作者进行查找,然后将查找的结果输出。
借阅图书首先输入读者卡号,然后输入所借图书编号或图书作者,找到图书后,进行借阅登录。
归还图书,首先输入所还图书编号,然后在图书库中找到这本书,并将其状态设置为0,表示此书在馆。
借阅图书统计,把已经借出的图书的信息输出,具体实现即找到书的状态为1的图书,然后将结果输出。
返回主菜单,我是直接在主函数中用了goto语句,直接跳到主菜单。
读者管理模块
在该模块中,提供子菜单供用户选择申请读者卡、删除读者卡、修改读者卡、借阅情况统计和返回主菜单。申请读者卡通过数据录入向导逐项输入,完成一条记录输入后,添加到读者链表中。删除、修改读者卡通过读者卡号查找到该记录,然后再进行删除、修改,返回读者链表的头指针。借阅情况统计。则是对图书的状态为1的图书逐一进行统计,并输出统计结果。
馆员管理模块
在该模块中,提供子菜单供用户选择增加馆员、删除馆员、修改馆员、馆员统计和返回主菜单的操作。增加馆员通过数据录入向导逐项输入,完成一条记录输入后,添加到馆员链表中;删除、修改馆员通过馆员号编号查找到该记录,然后再进行删除、修改,并将修改后的结果保存到馆员链表中;馆员统计对全体馆员进行逐项统计,并输出统计结果。
具体实现:
设计好思路后,接下来就是具体写函数实现了,在这里我就不一一对函数进行说明了,只说说图书管理模块的addbook、modbook、delbook、countbook几个函数。
addbook这个函数,就是在链表中增加新结点的操作,把头指针作为参数传进来,进行增加后再把头指针返回:
modbook这个函数,就是修改链表中某一结点的内容,先通过编号找到要修改的图书,然后选择要修改的内容,再对其进行修改即可。同样把头指针作为参数传进来,进行修改后再把头指针返回:
delbook这个函数是删除链表中的某一个结点,链表的删除操作用两个指针即可,要注意的是,要对删除点位于头结点和尾结点进行讨论。同样把头指针作为参数传进来,进行删除后再把头指针返回:
countbook这个函数,就是将链表中的节点的内容一一输出,用个循环即可:
其他几个模块的函数,跟这几个函数
您可能关注的文档
最近下载
- 急性胰腺炎急救护理措施.pptx
- 老年人跌倒风险综合管理专家共识PPT.docx VIP
- 2024-2025学年高中音乐必修《歌唱》人音版(2019)教学设计合集.docx
- 人教版小学一年级数学上册期中试卷及答案(精品推荐)..doc VIP
- 2025云南大理白族自治州检验检测院(第二批)招聘编外聘用人员5人备考练习试题及答案解析.docx VIP
- FAN-045 37#地块 电梯井施工操作架搭设 及安全防护方案 终.doc VIP
- 《油气管道安全管理》课件.ppt VIP
- 高速铁路客运服务专业职业生涯规划书.pptx
- GJ B-360B-2009 电子及电气元件试验方法.pdf VIP
- 概率论与数理统计教程(第2版) 茆诗松全套PPT课件.ppt
原创力文档


文档评论(0)