C课程设计图书借阅管理系统报告 .pdf
沈 阳 工 程 学 院课 程 设 计设计题目:图书借阅管理系统院系信息学院班 级软本 132 学生姓名学号指导教师姜柳、吕海华职 称副教授、讲师起止日期:2014 年 7 月 7 日起至 2014 年 7 月 11日止名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 44 页 -沈 阳 工 程 学 院课程设计任务书课程设计题目:图书借阅管理系统院系信息学院班级软本 132 学生姓名学号指导教师姜柳、吕海华职称 讲师、讲师课程设计进行地点:实训 F座任 务 下 达 时 间:2014年 7 月 2 日起止日期:2014年 7 月 7 日起至 2014年 7 月 11 日止教 研 室 主任张欣 2014年 7 月 3 日 批 准名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 44 页 -一、课程设计的原始资料及依据在数字化、网络化的今天,社会信息量与日俱增,图书作为信息存储的主要媒体之一,数量,规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书借阅管理系统来管理自己的书籍,会方便很多,这也充分应用硬件资源;对图书管理部门而言,以前单一的手工检索已不能满足人们的需求,为了便于图书资料的管理更为需要有效的图书管理软件。查阅有关程序设计的案例资料,进一步理解程序设计模块化的思想,并利用此思想,根据对程序设计学习编写一个简单的图书借阅管理系统。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。二、课程设计主要内容及要求1认真阅读资料,掌握程序设计模块化的思想。2要求在设计的过程中,建立清晰的层次结构。3画出主要的功能结构图和主要模块的流程图。4新进图书基本信息的输入。5图书基本信息的查询。6对撤消图书信息的删除。7为借书人办理注册。8办理借书手续(非注册会员不能借书)。9办理还书手续10要求操作简单,用户界面友好。11运行程序,检查结果是否和理论值一致。12环境使用 Turbo C 环境。三、对课程设计说明书撰写内容、格式、字数的要求1课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、设计小组评语、参考文献等。一般不应少于3000 字。2在适当位置配合相应的实验原理图、数据通路图、微程序流程图、实验接线图、微指令代码表等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。设计小组评语处注明设计组编号、设计组组长、设计组成员,并由设计组组长给出评语。4课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为 20mm,正文采用宋体小四号字,行间距18名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 44 页 -磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。5课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。四、设计完成后应提交成果的种类、数量、质量等方面的要求1完成“任务书”中指定的操作功能,运行稳定。2课程设计说明书。五、时间进度安排顺序阶段日期计 划 完 成 内 容备注1 第 1 天阅读资料2 第 2 天系统分析设计3 第 3 天程序编制、调试及运行4 第 4 天成绩评定5 第 5 天撰写课程设计说明书六、主要参考资料(文献)1 郭翠英.C 语言课程设计案例精编.北京:中国水利水电出版社.2004.3 2 谭浩强.C 语言程序设计.北京:清华大学出版社.1999.12 3 张翔.C 语言函数大全.北京:清华大学出版社.2002.4 4 浦滨.C 游戏编程从入门到精通.北京:北京希望电子出版社.2002.5 5 陈天洲.C 语言高级程序设计.北京:人民邮电出版社.2002 6 杨旭.C 语言程序设计案例教程.北京:人民邮电出版社.2005 7 王为青 C 语言高级编程及实例剖析北京:人民邮电出版社 200802 8徐慧.C 语言实例解析精粹.北京:人民邮电出版社.2006.049姚大鹏 栾好利 张翼英 等编著.C 语言程序设计教程习题与上机实训指导.中国水利水电出版社.2005 10 王为青 C 语言实例解析北京:人民邮电出版社 200802名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 44 页 -沈 阳 工 程 学 院程序设计基础课程设计成绩评定表院(系):信息学院班级:软本132 学生姓名:指 导 教 师 评 审 意 见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.1 5 4 3 2 工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,0.2 5 4 3 2 工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.2 5 4 3 2 说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.5 5 4 3 2 指导教师评审成绩(加权分合计乘以8)分加权分合计指 导 教 师 签 名:年月日评 阅 教 师 评 审 意 见评价内容具体要求权重评分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.2 5 4 3 2 工作量工作量饱满,难度适中。0.5 5 4 3 2 说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.3 5 4 3 2 评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名:年月日答 辩 小 组 评 审 意 见评价内容具体要求权重评分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55 4 3 2 答辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55 4 3 2 答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名:年月日课 程 设 计 总 评 成 绩分名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 44 页 -沈 阳 工 程 学 院程序设计基础课程设计成绩评定表院(系):信息学院班级:软本132 学生姓名:指 导 教 师 评 审 意 见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.1 5 4 3 2 工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,0.2 5 4 3 2 工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.2 5 4 3 2 说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.5 5 4 3 2 指导教师评审成绩(加权分合计乘以8)分加权分合计指 导 教 师 签 名:年月日评 阅 教 师 评 审 意 见评价内容具体要求权重评分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.2 5 4 3 2 工作量工作量饱满,难度适中。0.5 5 4 3 2 说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.3 5 4 3 2 评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名:年月日答 辩 小 组 评 审 意 见评价内容具体要求权重评分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55 4 3 2 答辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55 4 3 2 答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名:年月日课 程 设 计 总 评 成 绩分名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 44 页 -沈 阳 工 程 学 院程序设计基础课程设计成绩评定表院(系):信息学院班级:软本132 学生姓名:指 导 教 师 评 审 意 见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.1 5 4 3 2 工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,0.2 5 4 3 2 工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.2 5 4 3 2 说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.5 5 4 3 2 指导教师评审成绩(加权分合计乘以8)分加权分合计指 导 教 师 签 名:年月日评 阅 教 师 评 审 意 见评价内容具体要求权重评分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.2 5 4 3 2 工作量工作量饱满,难度适中。0.5 5 4 3 2 说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.3 5 4 3 2 评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名:年月日答 辩 小 组 评 审 意 见评价内容具体要求权重评分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55 4 3 2 答辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55 4 3 2 答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名:年月日课 程 设 计 总 评 成 绩分名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 44 页 -沈 阳 工 程 学 院程序设计基础课程设计成绩评定表院(系):信息学院班级:软本132 学生姓名:指 导 教 师 评 审 意 见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.1 5 4 3 2 工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,0.2 5 4 3 2 工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.2 5 4 3 2 说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.5 5 4 3 2 指导教师评审成绩(加权分合计乘以8)分加权分合计指 导 教 师 签 名:年月日评 阅 教 师 评 审 意 见评价内容具体要求权重评分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.2 5 4 3 2 工作量工作量饱满,难度适中。0.5 5 4 3 2 说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.3 5 4 3 2 评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名:年月日答 辩 小 组 评 审 意 见评价内容具体要求权重评分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55 4 3 2 答辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55 4 3 2 答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名:年月日课 程 设 计 总 评 成 绩分名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 44 页 -沈阳工程学院课程设计报告摘要I 摘要近年来,当今社会的高速发展,各个领域的突飞猛进,计算机也有它卓越的进步。C 语言不仅为计算机专业工作者所使用,而且为广大计算机应用人员所喜爱和使用。许多高等学校,不仅在计算机专业开设C语言课程,而且在非计算机专业也开设了C语言课程。学习 C语言已经成为广大计算机应用人员和广大青年学生的迫切要求。图书借阅管理系统是为了方便为了便于图书资料的管理而产生的有效的图书管理软件。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书借阅管理系统来管理自己的书籍,会方便很多,这也充分应用硬件资源;对图书管理部门而言,以前单一的手工检索已不能满足人们的需求,为了便于图书资料的管理更为需要有效的图书管理软件。由于计算机的普及,完善的图书借阅管理程序是很有必要的,它在管理的过程中,对一些数据的存储和计算是相当方便,当然它的准确性很高几乎为无误。图书借阅管理系统的操作也是相当方便和快捷的,并且可以大量的节省人员。基于以上的原因,我们小组决定编写一个图书借阅管理系统的程序。程序主要分为一下七个方面:创建图书和会员信息、查询图书和会员信息、添加图书和会员、删除图书和会员、借书还书管理、便利图书和会员。在此程序中,应用了结构体、结构体数组、文件、指向文件的指针、基本的指针运用、基本的循环语句、函数的调用、switch 语句、运用字符串比较函数、动态分配存储函数、输入输出函数等库函数等C 语言基础知识。图书借阅管理系统的主要功能是首先创建图书和会员的基本信息,以便日后进行查找,这样就建立起基本信息了。建立基本信息后利用系统提供的查询、添加、删除、借阅等功能就可以实现设计目的了。在编写此程序中,我们应用了课本上所学过的主要知识,而且也减少的不少的存储空间。函数的合成、调试用到是数组程序和指针函数,而且也添加了结构体,这在操作中也比较灵活运用。数组是有序数组的集合,数组中的每一个元素都属于同一个数据类型,用一个统一的数组名和下标来唯一地确定数组中的元素,将数组与循环结合起来,可以有效地处理大批量的数据,大大提高了工作效率,十分方便。此系统中应用了结构体,数组,链表,基本的指针运用,基本的循环语句,函数的调用等。关键词 指针,结构体,链表名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 44 页 -沈阳工程学院课程设计报告目录目录第一章 引言.11.1 题目背景 .11.2 设计目的 .11.3 解决问题 .1第二章 C 语言的运行环境及其特点.32.1 C 语言的起源及特点 .32.2 C 语言的运行步骤 .3第三章 系统分析与设计 .53.1 系统功能 .53.2 功能设计 .63.2.1 需求分析 .63.2.2 概要设计 .63.2.3 详细设计 .8第四章 系统功能实现 .94.1 主函数 .94.1.1 库函数的调用 .174.1.2 初始数据的定义 .174.1.3 全局变量的定义 .184.2 借书还书功能设计 .184.3 添加图书及会员功能设计.234.4 删除图书及会员功能设计 .264.5 遍历图书及会员功能设计.229结论.262致谢.33参考文献 .34名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 44 页 -沈阳工程学院课程设计报告第一章 引言1 第一章引言1.1 题目背景随着计算机技术的飞速发展,它不仅改变了世界,同时也改变了人类的生活。作为新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。C语言成了在国内外使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。现在大多数的高校都把 C语言作为第一门计算机语言进行教学,这是可行的,学生是能够学习好的。学习 C语言已经成为广大计算机应用人员和广大青年学生的迫切要求。在信息时代,采用传统的图书检索系统已经显得十分的落后,而且效率低下,尤其在会员管理与图书借阅方面,效率低且误差大。为了适应现代化的环境,许多的管理事务都由电脑来管理,从而提高了管理的速率和效率。1.2 设计目的图书借阅管理系统是进行图书及会员信息的创建、查询、添加、删除以及图书借阅管理的系统。它是随着管理科学和技术科学的发展而形成的。图书借阅管理系统对一个个人及图书馆都有很大用途的软件,对于个人可实现轻松管理自己的私人书籍,对于图书馆而言更是不可或缺的,其可实现图书及会员的计算机化管理。开发一个图书借阅管理系统,采用计算机对图书与会员管理,进一步提高了传统手工检索的可靠性和安全性。此外,图书借阅管理系统支持的对记录随意的进行输入、添加、查询、删除及修改的操作可以减轻图书管理人员的工作量,提高工作效率。1.3 解决问题图书借阅管理系统的设计主要运用程序设计模块化的思想,综合运用平时所学知识并查找了大量的资料编写一个可实现创建图书和会员信息、查询图书和会员信息、添加图书和会员、删除图书和会员、借书还书管理、遍历图书和会员的管理戏系统。其间遇到过许多的困难,但经过团队的一起努力,都一一克服,其中主要难点如下:1.创建图书和会员信息模块的设计:需考虑创建基本信息的功能是否放在主菜名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 44 页 -沈阳工程学院课程设计报告第一章 引言2 单里实现,经过小组研究:此功能应在登录页面就实现,放在主菜单之前。2.添加图书和会员模块的设计:添加图书和会员功能是使用动态链表实现的,需要综合运用指针和链表的相关知识,创建对应的动态链表。3.借书还书管理模块的设计:本系统可实现对非注册会员不能借书的限制,经过老师指导,此功能用含指针的for 循环实现,其中需选择相应的指针作循环变量初值,循环条件和循环变量增值,实现只借书给有注册会员号的会员。4.遍历图书和会员模块的设计:此功能实现只输出当前图书库和会员库中所包含的基本信息,要输出新增加的信息而不输出已删除的信息,即用指针的指向实现,每运行其他模块一次之后让指针重新指向最开始的地址,即可实现本功能。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 44 页 -沈阳工程学院课程设计报告第二章 C 语言运行环境及其特点第二章 C 语言的运行环境及其特点2.1 C语言的起源及特点早期的操作系统等系统软件主要是用汇编语言编写的(包括 UNIX 操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能,人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C 语言就在这种情况下应运而生了。C语言是在 B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。后来 C 语言多次做了改进,但主要还是在贝尔实验室内部使用直到1975 年 UNIX第 6 版发布后,C 语言突出的优点才引起人们的普遍注意。Brian W.Kernighan和 Dennis.M.Ritchie(合成 K&B)以 1978年发布的 UNIX第 7 版中的 C语言编译程序为基础,合著了影响深远的名著The C Programming Language,这本书中介绍的 C语言成为后来广泛使用的C语言版本的基础。C语言特点如下:语言简洁、紧凑、使用方便、灵活。C 语言程序比其他许多高级语言简练,源程序短、因此输入程序时工作量少。运算符丰富。C语言的运算符包含的范围很广,共有34 种运算符。灵活使用各种运算符可以实现在其他高级语言种难以实现的运算。数据类型丰富。C 语言提供的数据类型有:整形、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型等。尤其是指针类型数据,使用十分灵活和多样化。具有结构化的控制语句(如if,else 语句、while语句、do,while 语句、switch 语句、for 语句)。语法限制不太严格,程序设计自由度大。C语言允许直接访问物理地址。生成目标代码质量高,程序执行效率高。用 C语言编写的程序可移植性好(与汇编语言比)名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 44 页 -沈阳工程学院课程设计报告第二章 C 语言运行环境及其特点2.2 C语言的运行步骤1.新建一个 C+文件,如图 2-1 所示:图 2-1 新建文件2.在此环境下编写个人记账管理系统的程序,如图2-2 所示:图 2-2 在 VC 环境下编写程序3.调试个人记账管理系统程序,如图2-3 所示图 2-3 调试程序图名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 44 页 -沈阳工程学院课程设计报告第三章 系统分析与设计键入文字 5 第三章系统分析与设计3.1 系统功能具体图书借阅管理功能,如图3-1 所示。图书借阅管理系统1 创建图书和会员信息2 查询图书和会员信息3 添加图书和会员4 删除图书和会员5 借书还书管理6 遍历图书和会员图 3-1 图书借阅管理系统功能1.创建图书和会员信息1)创建图书信息即完成图书信息的输入,包括图书名称、图书编号、单价、作者名字;2)创建会员信息即完成会员信息的输入,包括会员名字、会员性别、会员学号。2.查询图书和会员信息1)查询图书信息的三种方式:按编号查询、按名称查询、按价格区间查询;2)查询会员信息的两种方式:按学号查询、按姓名查询。3.添加图书和会员1)添加图书需输入新添加的图书信息:图书名称、图书编号、单价、作者名字;名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 44 页 -沈阳工程学院课程设计报告第三章 系统分析与设计键入文字 6 2)添加会员需输入新添加的会员信息:会员名字、会员性别、会员学号。4.删除图书和会员1)只需输入所要删除的图书编号即可实现删除图书;2)只需输入所要删除的会员学号即可实现删除会员。5.借书还书管理1)借书:输入所借图书编号和借书人学号,本系统通过查询图书和会员信息的功能,在确认所借图书存在且借书人为注册会员之后,可成功借阅!否则,不满足以上两个条件之一者,系统会自动提示:暂无次图书或您还未注册会员!2)还书:输入所还图书编号和还书人学号,即可成功归还图书,并显示图书信息。6.遍历图书和会员1)遍历图书:按图书编号、图书名称、图书单价、图书作者的顺序将图书信息输出;2)遍历会员:按会员姓名、会员性别、会员学号的顺序将会员信息输出。3.2 功能设计3.2.1需求分析经过大一上下两个学期的理论学习,本学期开设了C 程序设计课程设计。课程设计要求我们对已经学习的基础知识进行整合与衔接处理,并最终形成一个系统性质的规模较大的程序。本次课程设计要求我们达到能独立完成一个图书借阅管理系统,完成后要求实现的功能图书和会员基本信息的创建(即输入)、查询、修改、删除、遍历(即输出)以及借书还书的管理(非注册会员不能借书)。当然,我们也根据自己的能力对系统进行了完善性的拓展,例如提供多种查询图书和会员信息的方式。通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉 C 语言开发的全过程,提高综合应用C 语言的能力,为学习软奖工程专业的后续功课打好基础。3.2.2概要设计1.图书和会员信息及数据格式图书信息:图书名称、图书编号、单价、作者名字;会员信息:会员名字、会员性别、会员学号;数据格式:本系统采用单向链表来对图书和会员信息进行各项操作。其中图书的编号和会员编号为整型数据,单价为双精度浮点型,其余的图书名称、作者、存名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 44 页 -沈阳工程学院课程设计报告第三章 系统分析与设计键入文字 7 在状态、会员姓名、会员性别、会换借书数量均由字符数组定义。struct book char book_name30;int bianhao;double price;char author20;char state20;char name20;char sex10;int xuehao;struct book*book_next;struct club char name20;char sex10;int xuehao;char borrow30;struct club*club_next;结点的示意图如下图所示:book_name bianhao price author state name sex xuehao name sex xuehao borrow 2.程序的整体框架图书借阅管理系统创建(录入)查询修改删除借阅遍历(输出)名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 44 页 -沈阳工程学院课程设计报告第三章 系统分析与设计键入文字 8 3.模块划分1)Print_Book(struct book*head_book);遍历(浏览)所有图书的函数2)Print_Club(struct club*head_club);遍历(浏览)所有会员的函数3)struct book*Create_New_Book();创建新的图书库的函数(图书编号输入为0 时结束)4)struct book*Search_Book_bianhao(int bianhao,struct book*head_book);5)按编号查询图书的函数6)struct book*Search_Book_name(char*b_name,struct book*head_book);按书名查询图书的函数7)struct book*Search_Book_price(double price_h,double price_l,struct book*head_book);按价格区间查询图书的函数8)struct book*Insert_Book(struct book*head_book,struct book*stud_book);逐个添加图书的函数9)struct book*Delete_Book(struct book*head_book,int bianhao);删除图书的函数10)struct club*Create_New_Club();创建新的会员库的函数(会员编号输入为0时结束)11)struct club*Search_Club_xuehao(int xuehao,struct club*head_club);按会员编号查询会员的函数12)struct club*Search_Club_name(char*c_name,struct club*head_club);按会员姓名查询会员的考试13)struct club*Insert_Club(struct club*head_club,struct club*stud_club);逐个添加会员的函数14)struct club*Delete_Club(struct club*head_club,int xuehao);删除会员的函数15)struct book*Lent_Book(int bianhao,int xuehao,struct book*head_book,struct club*head_club);借书办理的函数16)struct book*back(int bianhao,int xuehao,struct book*head_book,struct club*head_club);还书办理的函数注:(3)-(16)的函数类型为返回指针值的函数3.2.3 详细设计程序的主题设计思想是根据结构化程序设计思想分模块进行设计,由一个主函数和多个自定义函数构成。1.主函数主函数定义本程序中需要使用的全局变量以及用多分支语句(switch 语句)实现用户功能的选择,并在每个case语句中实现函数的调用,以实现用户所选择的功能。2.自定义函数本系统要实现创建、查询、修改、删除、借阅、遍历(输出)的功能,即6 个功能模块。程序中用相应的返回指针值的函数的实现每个模块功能。名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 44 页 -沈阳工程学院课程设计报告第四章 系统功能实现键入文字 9 第四章系统功能实现4.1 主函数主函数实现用户功能的选择,使用C 语言中的多分支语句(switch 语句),并在每个 case 语句中实现函数的调用,以实现用户所选择的功能。主要的程序代码如下:int main()struct book*head_book,*p_book;char book_name30,name20,author20,sex10;int bianhao;double price,price_h,price_l;int size_book=sizeof(struct book);int m=1,n=1,f;char*b_name,*c_name;struct club*head_club,*p_club;int xuehao;int size_club=sizeof(struct club);int choice;printf(n 欢迎您第一次进入图书管理系统!nn);printf(-向导-新建图书库 nn);printf(注意:当输入图书编号为0 时,进入下一步.nn);head_book=Create_New_Book();system(cls);printf(n 欢迎您第一次进入图书管理系统!nn);printf(-向导-新建会员库 nn);printf(注意:当输入会员学号为0 时,进入主菜单.nn);head_club=Create_New_Club();system(cls);do printf(nttt 图书管理系统nn);printf(n);printf(ttt1:借书办理 t);printf(6:还书办理 n);printf(ttt2:查询图书 t);printf(7:查询会员 n);printf(ttt3:添加图书 t);printf(8:添加会员 n);printf(ttt4:删除图书 t);printf(9:删除会员 n);printf(ttt5:遍历图书 t);printf(10:遍历会员 nn);printf(ttt/n/n);printf(ttt0:退出nn);名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 44 页 -沈阳工程学院课程设计报告第四章 系统功能实现键入文字 10 printf(请选择:);scanf(%d,&choice);switch(choice)case 1:printf(nttt 图书管理系统nn);printf(输入所借图书编号:n);scanf(%d,&bianhao);printf(输入借书人的学号:n);scanf(%d,&xuehao);head_book=Lent_Book(bianhao,xuehao,head_book,head_club);system(cls);printf(n 借阅成功!nn);printf(相关信息如下:nn);head_book=Search_Book_bianhao(bianhao,head_book);break;case 2:system(cls);printf(nttt 图书管理系统nn);printf(1.按编号查询 nn);printf(2.按名称查询 nn);printf(3.按价格区间查询 nn);printf(0.返回主菜单 nn);printf(请选择:);scanf(%d,&f);if(f=1)printf(请输入查询图书编号:);scanf(%d,&bianhao);printf(相关信息如下:nn);head_book=Search_Book_bianhao(bianhao,head_book);break;else if(f=2)b_name=book_name;getchar();printf(请输入查询图书名称:);gets(b_name);printf(相关信息如下:nn);head_book=Search_Book_name(b_name,head_book);break;else if(f=3)printf(请输入最高价格:);scanf(%lf,&price_h);名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 44 页 -沈阳工程学院课程设计报告第四章 系统功能实现键入文字 11 printf(请输入最低价格:);scanf(%lf,&price_l);printf(相关信息如下:nn);head_book=Search_Book_price(price_h,price_l,head_book);break;else if(f=0)break;break;case 6:printf(nttt 图书管理系统nn);printf(输入所还图书编号:n);scanf(%d,&bianhao);printf(输入还书人的学号:n);scanf(%d,&xuehao);head_book=back(bianhao,xuehao,head_book,head_club);system(cls);printf(/n 归还成功!nn);printf(相关信息如下:nn);head_book=Search_Book_bianhao(bianhao,head_book);break;case 3:system(cls);printf(nttt 图书管理系统nn);printf(请输入图书名称:);scanf(%s,book_name);printf(请输入图书编号:);scanf(%d,&bianhao);printf(请输入单价:);scanf(%lf,&price);printf(请输入作者名字:);scanf(%s,author);printf(n);struct book*ptr_b;for(ptr_b=head_book;ptr_b;ptr_b=ptr_b-book_next)if(ptr_b-bianhao=bianhao)printf(此编号图书已存在 n);m=0;break;名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 44 页 -沈阳工程学院课程设计报告第四章 系统功能实现键入文字 12 if(m)p_book=(struct book*)malloc(size_book);strcpy(p_book-book_name,book_name);p_book-bianhao=bianhao;p_book-price=price;p_book-xuehao=0;strcpy(p_book-author,author);strcpy(p_book-state,存在);strcpy(p_book-sex,待定);strcpy(p_book-name,待定);head_book=Insert_Book(head_book,p_book);printf(/n 添加图书成功!/n/n);break;case 4:system(cls);printf(nttt 图书管理系统nn);printf(输入删除图书编号:n);scanf(%d,&bianhao);head_book=Delete_Book(head_book,bianhao);printf(n 删除图书成功!nn);break;case 5:system(cls);printf(nttt 图书管理系统nn);Print_Book(head_book);break;case 7:system(cls);printf(nttt 图书管理系统nn);printf(1.按学号查询 nn);printf(2.按姓名查询 nn);printf(0.返回主