图书管理系统课程报告
- 格式:doc
- 大小:386.50 KB
- 文档页数:36
图书管理系统java课程设计报告一、教学目标本课程旨在通过学习Java语言实现图书管理系统,使学生掌握Java编程的基本语法和面向对象编程思想,具备运用Java语言解决实际问题的能力。
具体目标如下:1.知识目标:–掌握Java基本语法和数据结构;–理解面向对象编程的基本概念和方法;–熟悉图书管理系统的业务流程和设计方法。
2.技能目标:–能够使用Java编写简单的程序;–能够运用面向对象编程思想进行程序设计;–能够独立完成图书管理系统的开发和调试。
3.情感态度价值观目标:–培养学生的团队合作意识和沟通能力;–培养学生的问题解决能力和创新精神;–培养学生的自主学习能力和持续进步意识。
二、教学内容本课程的教学内容主要包括Java基本语法、数据结构、面向对象编程思想和图书管理系统的设计与实现。
具体安排如下:1.Java基本语法:介绍Java语言的基本元素、运算符、控制结构等;2.数据结构:讲解数组、链表、栈和队列等基本数据结构的使用和实现;3.面向对象编程:讲解类和对象、继承和多态、封装等基本概念和应用;4.图书管理系统:介绍图书管理系统的业务需求、设计方法和实现技巧。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解基本概念、原理和方法,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解图书管理系统的业务流程和设计方法;3.实验法:通过动手实践,使学生熟悉Java编程环境和开发工具,提高编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。
1.教材:选用权威、实用的Java编程教材,如《Java核心技术》等;2.参考书:提供相关的Java编程参考书籍,如《Java编程思想》等;3.多媒体资料:制作课件、视频等多媒体教学资料,以便学生随时复习和巩固知识;4.实验设备:提供计算机、网络等实验设备,确保学生能够进行实验和实践。
课程报告课程名称:专业班级:学生姓名:学号:任课教师:学期:课程报告任务书开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。
使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。
比如(1)简单的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。
(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。
成绩评定教师:1 需求分析本次实验目的是开发一个图书管理系统,且该图书管理系统中应包含以下基本功能:(1)图书信息录入功能(2)图书信息浏览功能(3)查询功能例如:按书名查询、按作者名查询等等(4)排序功能例如:按照价钱排序、按出版时间排序等等(5)图书信息的删除与修改除此之外,个人还可以根据自己的爱好进行各方面的扩展。
例如权限处理、图书排序等等。
在我们设计自己的程序时不仅可以利用课本上的知识,还可以在互联网上查询有关该类信息,将其学习总结并利用在此次程序设计中。
利用这次程序设计实验,我们可以提高自己的设计和编辑程序的能力、了解一般程序的编写过程,还可以巩固加深我们对C语言程序基本知识的了解与掌握。
我在该实验中不仅利用了课本上的函数知识、文本的输入和读出,还用互联网查阅了相关知识。
如“("")”,用汉语解释就是清屏功能;还有“()”函数,输入不读出,不过在利用“()”进行密码的改写时老是出错误,就舍弃了该函数。
在利用“("")”时感觉还是很好的,用该函数后不仅可以使程序在运行时美观大方,还可以一眼扫描到我们要找的信息。
JIANGSU UNIVERSITY 项目实践 II图书馆管理系统Library Management System学院名称:计算机科学与通信工程专业班级:嵌入式软件2012学号:3120609004学生姓名:孙静指导教师:宋和平2014 年 6 月[正文]一、课程设计概述1,目的:本系统为学校的图书馆信息而设计,实现信息处理的自动化、规范化,主要用于处理图书日常借阅和还书、图书入库、各种查询操作,系统具有以下功能:1)图书借阅与归还处理,罚款与赔偿2)图书与读者信息查询与修改、删除3)图书入库与图书的信息修改、删除4)员工信息的修改、删除2,任务:1)新建数据库,进行表的设计,实现数据录入与更新2)创建界面,实现客户端的友好界面3)对系统进行功能的实现4)解决实现过程中的问题3,开发环境:本系统采用sql server创建后台数据库,前台开发工具采用的Visual Studio 2010,编程语言为C#二、项目的需求分析1.分析系统的功能(1)所有人员需要登陆才能操作系统,可以修改密码。
(2)图书管理员可以添加图书(包括书号、书名、出版社、作者、图书简介、价格、封面图片等信息)、删除图书,假设每种图书只有一本。
(3)图书管理员可以添加借阅者(包括借书证号、姓名、类别(教师或学生)、学院、性别、照片等信息)、删除借阅者。
(4)借阅者可以根据书名或者作者模糊查询图书,可以查看自己所借图书信息。
(5)借阅者可以借阅图书,此时需要记录借书日期和应还日期信息(设置借阅日期为30天)。
(6)借阅者包括教师和学生,教师最多可以借阅10本图书,学生最多可以借阅5本图书。
(7)借阅者如果有超期图书则不能再借。
(8)借阅者还书时,检查是否超期,如果超期,按照0.1元/天计算罚款金额,缴纳罚款后还书。
如果图书丢失,按照图书价格的两倍赔偿。
(9)实现系统时请考虑数据的参照完整性,例如借阅图书时应该是存在的图书,删除图书时同时删除该图书的借阅信息。
课程报告(JAVA项目开发)CURRICULUM DESIGN,XI′AN SIYUAN UNIVERSITY题目:图书管理系统二级学院 : 电子信息工程学院专业:计算机科学与技术班级: 13计科01姓名:陈华健学号 : 131040200208指导教师:田新志西安思源学院教务处制二零一六年目录一、课程目的及要求 _________________________________________________ 1二、课程环境 _______________________________________________________ 1三、课程内容 _______________________________________________________ 1四、课程步骤 _______________________________________________________ 24.1系统功能设计 __________________________________________________ 2 4.2系统性能要求 __________________________________________________ 2 4.3系统功能要求 __________________________________________________ 2 4.4系统总体功能模块设计 __________________________________________ 34.5系统管理 ______________________________________________________ 3五、课程结果 ______________________________________________________ 20六、总结____________________________________________________________________ 21一、课程目的及要求⑴由于操作人员的计算机知识普遍较差,要求有良好的人机界面;⑵由于该系统的使用对象多,要求有较好的权限管理;⑶原始数据修改简单方便,支持多条件修改⑷方便的数据查询,支持多条件查询;⑸在相应的权限下,删除数据方便简单,数据稳定性好;⑹数据计算自动完成,尽量减少人工干预;二、课程环境本系统的设计是在Windows 2003以上中文版操作系统环境下,用JSP实现功能,使用MyEclipse平台下开发设计的。
北华航天工业学院《基于C++的面向对象程序设计实例》课程设计报告报告题目:媒体库管理系统作者所在系部:计算机科学与工程系作者所在专业:计算机科学与技术作者所在班级:作者姓名:指导教师姓名:完成时间:北华航天工业学院教务处制摘要在当前的媒体资料日益增多的情况下,图书馆对资料的管理难度也有所增加,如果能分类对资料流通进行管理,将会带来很多方便,从而达到对图书馆媒体资料的管理母的。
本文利用Visual Basic6.0的ADO编写程序,实现了用户对图书馆资料添加、查询、统计、存盘等管理操作。
本系统主要有四个功能模块:图书管理系统、视频光盘管理系统、图画管理系统、信息统计系统。
已经过全面的系统测试,能够很好的运行,达到了预期的效果。
关键词:系统设计数据库信息流通管理目录摘要 (Ⅰ)第1章绪论 (1)1.1 课程设计的目的 (1)1.2 课程设计的背景和意义 (1)1.2.1 课程设计的背景 (1)1.2.2 课程设计的意义 (1)1.3 课程设计环境 (1)第2章需求分析 (2)2.1问题描述 (2)2.2功能要求 (2)2.3问题的解决方案 (3)第3章系统设计................................................................................................................. .43.1数据设计 (4)3.1.1 类设计 (4)3.1.2 类之间的关系 (4)3.1.3 函数设计 (5)3.2结构设计 (5)3.2.1 系统流程图 (5)3.2.2 界面设计 (6)第4章系统实现 (12)4.1类实现 (12)4.2函数实现 (16)4.3主函数实现 (23)第5章系统测试 (25)5.1 模块测试 (25)5.1.1 主菜单各功能的实现 (25)5.1.2 各媒体管理菜单内各功能的实现 (28)5.2 课程设计过程中遇到的问题 (32)总结 (33)致谢 (34)参考文献 (35)附录 (36)第1章绪论1.1 课程设计的目的(1)要求学生能够熟练掌握C++语言的基本知识和技能。
图书管理系统课程设计报告随着科技的发展,电子化图书馆的发展也推动了图书管理系统的发展。
本篇报告详细地介绍了一个图书管理系统的课程设计,它实现了图书的全部增删改查,从而达到了进行精确的图书管理的目的。
在设计中,我们着重介绍了系统的功能实现;然后,我们采用了C#语言和Visual Studio进行实现,并采用数据库My SQL存储数据。
最后,我们对图书管理系统的功能进行了测试,检验了系统的正确性和可靠性。
关键词:图书管理系统,C#,MySQL,Visual Studio一、系统背景随着科技的发展,电子化图书馆的发展也推动了图书管理系统的发展。
传统的图书管理系统以人工管理为主,采用传统的图书藏书、图书流通和藏书统计等方式,收录保管图书藏书,图书流通,提供咨询服务,使用材料等;而电子化图书馆则新增了计算机网络系统,全面发挥计算机网络的优势,实现了多媒体的信息流、图书的藏书、图书的流通交流和协同管理等多个模块的图书管理系统。
二、系统设计(一)系统分析本系统的主要功能是图书的信息查询、图书的入库及出库操作,图书的借还操作,以及图书的状态检测等。
此外,系统还提供了多种数据报表分析功能,以便于对现有图书情况进行分析,(二)需求分析系统需求分析是设计系统的基础,它涉及到客户的使用要求、功能性需求和无功能性需求,以及系统设计人员的开发要求。
(三)系统设计1、系统结构设计:系统由用户管理模块、图书信息管理模块、管理者管理模块、图书搜索模块、图书借出模块和报表模块组成。
系统功能模块的设计如图1所示。
2、系统数据设计:系统数据设计包括数据元、物理数据模型、逻辑数据模型和数据库设计,其中数据元主要包括:用户名、密码、姓名、性别、出生日期、学历、专业、图书编号、书名、出版社、作者、出版时间、出版地点、图书类型、图书数量、书架位置、数量、图书简介、借出时间、归还时间。
(四)系统实施1、系统实施环境:本系统采用C#语言和Visual Studio环境实现,数据库采用MySQL,系统设计采用界面设计技术,如果要实现系统需求,需要具备C#语言、Visual Studio等开发环境,以及My SQL 数据库2、系统实现过程:本系统分成若干模块,依次实现各个模块功能,实现过程如下:首先,建立用户界面,绘制系统的各个模块;其次,建立用户管理模块,实现登录,添加,删除和修改用户信息的功能;再次,建立图书管理模块,实现添加,删除,修改和图书查询等功能;然后,建立管理者管理模块,实现管理者信息的添加,删除,修改和查询等功能;接着,建立图书搜索模块,实现按照书名的首字母搜索,按照图书类别搜索,按照关键词搜索,按照出版时间搜索等功能;最后,建立图书借出模块,实现图书的借出,归还功能,并可以查看已经借出的图书列表,以及建立报表模块,实现图书查询报表和用户查询报表功能。
图书管理系统报告题目: 图书管理系统:学生专业: 计算机信息管理班级: 信管1202班:信息工程学院目录摘要 (3)Abstract (4)引言 (5)第一章系统开发的意义和目的 (7)1.1 图书管理的现状 (7)1.2 系统开发意义 (7)1.3 系统开发目的 (8)1.4 项目背景 (9)1.5 技术简介 (10)第二章可行性分析 (11)2.1 技术可行性 (11)2.2 经济可行性 (13)2.3 操作可行性 (13)第三章需求分析 (14)3.1 图书馆管理系统需求概述 (14)3.2 功能需求 (14)3.2.1 与读者相关的基本功能元素 (14)3.2.2 与管理员相关的基本功能元素 (15)3.2.3 总体系统的基本功能元素 (15)3.3 性能需求 (16)3.3.1 人身和环境安全性需求 (16)3.3.2 易用性 (16)第四章系统分析 (17)4.1 图书馆管理系统设计指导思想和原则 (17)4.2 图书馆管理系统总体功能概述 (17)4.3 图书馆管理系统各功能模块概述 (18)4.3.1系统登录模块 (18)4.3.2 图书管理模块 (19)4.3.3 学生管理模块 (21)4.3.4 借阅信息管理模块 (23)4.3.5 图书检索模块 (24)4.4系统数据库设计 (26)4.4.1 概念结构设计 (26)4.5 数据逻辑结构设计 (27)第五章系统测试 (31)结束语 (31)摘要随着人类社会的发展, 人类对知识的需求也不断地增长。
在这种形势下, 书籍就渐渐的成为人们获取并增长知识的主要途径, 而图书馆、图书室就自然而然的成为人们获取知识的重要场所。
如何更科学、更高效的管理图书信息就成为十分重要且迫在眉睫的工作, 因此开发图书管理系统就必不可少了。
图书管理系统是学校管理机制中的重要组成部分, 通过对图书馆管理系统的运行管理机制进行调查和研究, 开发了此图书馆管理系统。
目录第一章课程设计目的与要求 (2)1.1课程设计目的 (2)1.2课程设计环境 (2)1.3课程设计内容和要求 (2)第二章课程设计内容 (3)2.1数据库设计 (3)2.1.1需求分析 (3)2.1.2概念设计 (4)2.1.3逻辑设计 (5)2.1.4物理设计 (6)2.1.5数据库实现 (6)2.2程序设计 (2)2.2.1系统流程图 (2)2.2.2数据库存储过程 (3)第三章课程设计总结 (8)参考文献 (8)第一章课程设计目的与要求1.1课程设计目的1、掌握运用数据库原理进行系统分析和设计的方法;2、掌握关系数据库的设计方法;3、掌握利用SQL Server 2000技术;4、掌握应用程序对数据库的访问方法。
1.2课程设计环境硬件:计算机一台。
软件: Windows XP、SQL Server 2000、Microsoft Visual Basic 6.01.3课程设计内容和要求一、内容1.要求根据数据库原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。
2.需求分析具体实现3.在sql server2000 上实现设计的数据库模型。
4.对应用程序进行概要设计。
5.用VB实现简单的调用。
二、要求课程设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。
正确地完成上述内容,规范完整地撰写出课程设计报告。
第二章课程设计内容2.1数据库设计图书管理系统主要设计目的是利用数据库软件编制一个管理软件,用以实现图书、读者以和日常工作等多项管理。
同时对整个系统的分析、设计过程给出一个完整论证。
图书管理系统是一种基于集中统一规划的数据库数据管理新模式。
在对图书、读者的管理,其实是对图书、读者数据的管理。
本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。
2.1.1需求分析数据需求需求分析是指准确了解和分析用户的需求,这是最困难、最费时、最复杂的一步,但也是最重要的一步。
它决定了以后各步设计的速度和质量。
《数据库系统概论》课程设计报告题目:图书管理系统专业:网络工程班级:姓名:指导教师:成绩:计算机学院2017年12月8日目录1设计内容及要求1.1 背景1.2 设计要求2概要设计2.1 部分E-R图2.2 总体E-R图3逻辑结构设计3.1表结构介绍4设计结果与分析4.1系统开发平台4.2用户界面的实现5 结束语5.1课程设计心得6 参考文献1、设计内容及要求1.1 背景今天,计算机的价格已经十分低廉,性能却有了长足的进步。
它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。
(1)基本思路根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。
使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。
此时模块也发展成为最终产品了。
我作为一个网络工程专业的本科生,希望可以在这方面有所贡献。
改革的总设计师邓小平同志曾经说过:“科学技术是第一生产力”,我希望能用我这几年的所学编制出一个实用的应用程序来帮助这些学校图书馆进行更有效的图书管理。
归纳起来,好处大约有以下几点:(1)可以存储所有的图书档案,安全、高效;(2)只需一到二名图书录入员即可操作系统,节省大量人力;(3)可以迅速查到所需信息。
1.2 设计要求借书------根据您提供的图书条形码和图书编号确认图书,再据读者的编号确认读者后把此书借给这位读者。
还书------根据您提供的图书条形码和图书编号确认图书,再据读者的编号确认读者后把此书归还。
图书管理------对所有图书的资料进行添加,修改和删除等操作。
读者管理------对所有读者的资料进行添加,修改和删除等操作。
c图书管理系统课程设计报告一、教学目标本课程的教学目标是使学生掌握C图书管理系统的基本概念、设计原理和实现方法。
通过本课程的学习,学生应能够:1.理解C图书管理系统的基本组成部分及其功能;2.掌握C图书管理系统的设计原理和实现方法;3.能够运用C图书管理系统进行图书管理;4.培养学生的信息素养和创新能力。
二、教学内容本课程的教学内容主要包括:1.C图书管理系统的基本概念:介绍C图书管理系统的发展历程、基本功能和应用场景;2.C图书管理系统的设计原理:讲解C图书管理系统的架构设计、模块划分和算法实现;3.C图书管理系统的实现方法:介绍C图书管理系统的开发环境、编程语言和开发工具;4.实践操作:通过案例分析法和实验法,使学生熟练掌握C图书管理系统的操作和使用。
三、教学方法本课程采用多种教学方法相结合的方式,包括:1.讲授法:讲解C图书管理系统的基本概念、设计原理和实现方法;2.案例分析法:分析典型实例,使学生更好地理解C图书管理系统的应用;3.实验法:让学生动手实践,熟练掌握C图书管理系统的操作和使用;4.讨论法:鼓励学生提问、发表见解,培养学生的独立思考能力。
四、教学资源为实现本课程的教学目标,我们将提供以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、全面的学习资料;2.参考书:推荐相关参考书籍,丰富学生的知识体系;3.多媒体资料:制作课件、演示文稿等多媒体教学资源,提高课堂教学效果;4.实验设备:为学生提供充足的实验设备,确保实验教学的顺利进行。
通过以上教学资源的支持,我们期望学生能够在本课程学习中取得良好的效果。
五、教学评估本课程的教学评估将采取多元化方式进行,以全面、客观、公正地评价学生的学习成果。
评估内容包括:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性;2.作业:布置适量作业,评估学生的理解和应用能力;3.考试:设置期中考试和期末考试,评估学生对课程知识的掌握程度;4.实践操作:通过实验报告和实际操作评估学生的动手能力和创新能力。
课程报告课程名称:专业班级:学生姓名:学号:任课教师:学期:课程报告任务书开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。
使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。
比如(1)简单的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。
(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。
成绩评定教师:1 需求分析本次实验目的是开发一个图书管理系统,且该图书管理系统中应包含以下基本功能:(1)图书信息录入功能(2)图书信息浏览功能(3)查询功能例如:按书名查询、按作者名查询等等(4)排序功能例如:按照价钱排序、按出版时间排序等等(5)图书信息的删除与修改除此之外,个人还可以根据自己的爱好进行各方面的扩展。
例如权限处理、图书排序等等。
在我们设计自己的程序时不仅可以利用课本上的知识,还可以在互联网上查询有关该类信息,将其学习总结并利用在此次程序设计中。
利用这次程序设计实验,我们可以提高自己的设计和编辑程序的能力、了解一般程序的编写过程,还可以巩固加深我们对C语言程序基本知识的了解与掌握。
我在该实验中不仅利用了课本上的函数知识、文本的输入和读出,还用互联网查阅了相关知识。
如“system("cls")”,用汉语解释就是清屏功能;还有“getch()”函数,输入不读出,不过在利用“getch()”进行密码的改写时老是出错误,就舍弃了该函数。
在利用“system("cls")”时感觉还是很好的,用该函数后不仅可以使程序在运行时美观大方,还可以一眼扫描到我们要找的信息。
而我在我编写的程序中设计了如下的功能:①登陆权限功能②查找全部图书并总图书本数功能③查找每本图书功能④添加图书功能⑤删除图书功能⑥修改图书功能⑦图书排序功能⑧金额管理功能2 概要设计在实验中我主要是用函数来解决该程序的文件模块问题,用函数的嵌套调用来解决各模块间的联系问题。
在编写程序时,我首先用结构数组struct list d[40]来定义图书的各种信息。
如:编号、书名、作者、出版社、类别等等。
然后定义了全局变量number和total用来计算书本总数和金额总量。
而后在主函数中用循环变量中的while语句和分支结构中的switch语句,来编写登录权限;创建文本并用文本的输入和输出语句将图书信息输入文本;用函数的嵌套来将各部分联系下面介绍一下各个部分的程序:1.查看全部图书功能该功能函数名称为:search_allbook。
先定义整形变量:i;而后用system("cls")进行清屏;再输入提示信息“查看全部图书!”,后利用for循环进行循环输出。
最后输出总书本数number。
2.查找每本图书功能该函数名称为find_book。
这个函数也是这样,首先用system("cls")进行清屏处理;然后进行定义:int i, fg=0,char s[20];然后输出:输入图书编号和查找图书!再利用for循环语句将输入的图书编号与该程序中的图书编号相等再输出该本图书的所有信息即图书的编号、书名、作者、出版社、类别、出版时间、价格。
这个程序的流程图与上一流程图差别不大,这里就不再写。
3.添加图书功能该部分函数名称为:add_book。
首先定义int i, count=0, choice3、struct list p和文件指针FILE *fp2,然后进行清屏处理。
然后输出:添加图书!接着依次输入图书的编号、书名、作者、出版社、类别、出版时间、价格。
然后显示是否显示添加后信息,如果选择是则会用switch函数和for循环进行依次输出,最后显示“谢谢您对图书添加!”并且最后以一排星号结束,选择否则会显示“谢谢您对图书添加!”并且最后以一排星号结束。
其函数流程图如下:4.删除图书功能该部分函数名称为:delete_book。
先定义int i, fg= 0,ch;char s[20];和文件指针FILE *fp3,然后利用system("cls")进行清屏处理。
然后输出:删除图书,接着输出“请输入图书编号”,然后利用for循环语句将输入的图书编号与该程序中的图书编号相等,再将这个图书编号所在的图书删除并将信息录入文档。
接着显示“是否显示删除后的信息”,如果选择是则会用switch函数和for循环进行依次输出该图书的编号、书名、作者、出版社、类别、出版时间、价格。
最后以一排星号结束。
选择否也会显示一排星号结束。
该函数的流程图与查看全部图书的流程图类似,这里也不再写出。
5.修改图书功能该函数名称为:xiugai_book。
先定义int i,k;char s[20];和文件指针FILE *fp2,然后利用 system("cls")进行清屏处理。
然后输入要修改图书的编号,将新图书的信息重新输入保存到文档中即可。
6.图书排序功能该函数名称为:paixu_book。
先定义int a;然后用system("cls")进行清屏处理!然后会输出1-按图书编号排序 2-按出版时间排序 3-按图书价格排序,然后根据输入数据会进入不同的子函数。
当选择1时,其函数名称为:num_paixu。
在这个函数中先对变量进行定义:int i,k,index,b和struct list temp。
然后清屏,用for函数进行对图书编号的大小比较,然后利用变量temp将不符合次序的进行交换。
然后显示“排序成功!”和“是否显示排序结果? 1:是 ; 2:否”,如果输入1则会依次输出排序后的图书,最后以一排星号结束。
当选择2当选择3时,其函数名称为:price_paixu。
该函数与选择1时基本类似,在这就不一一叙述了。
7.金额管理功能该函数名称为:cash_manage。
该函数就是将全局变量total输出。
3 详细设计①主函数根据程序要求,一个程序只能有一个主函数。
因此主函数是一个程序好坏的基础,也是一个程序在运行时外在的表现,因此对主函数设计我做了很多修改,一直修改到让我满意。
我把函数分为几个部分说吧!1.写完函数库及建立一个结构数组:#include<stdio.h>#include<string.h>#include<stdlib.h>struct list{ /*图书结构体*/char num[50]; /*图书编号*/char name[50]; /*图书名称*/char author[50]; /*作者*/char press[50]; /*图书出版社*/char sort[50]; /*图书类别*/int time; /*图书出版时间*/double price; /*图书价格*/struct list *next;};struct list d[40] ;2.全局变量;int number=0;double total;3.所有的函数声明;void search_allbook (struct list d[]) ; /*查看全部图书*/ void find_book (struct list d[]) ; /*查找图书*/void add_book (struct list d[]) ; /*添加图书*/double delete_book (struct list d[]) ; /*删除图书*/void paixu_book (struct list d[]) ; /*图书排序*/void num_paixu(struct list d[]); /*按图书编号排序*/void time_paixu(struct list d[]); /*按图书出版时间排序*/void price_paixu(struct list d[]); /*按图书价格排序*/void xiugai_book(struct list d[]); /*图书丢失*/ double cash_manage();4.Main函数的头以及定义的变量和文本指针;int main(){int q=1,w,r,l,i=0;char b[20],b1[20]="gpf";char m[20],m1[20]="1";FILE *fp ;5.登陆权限功能函数while(q){system("cls");printf("\n\n\n\n");printf(" ********** 欢迎光临**********\n\n");printf(" *************图书管理系统**************\n\n");printf(" 1.用户登录\n");printf(" 0.退出登录\n");printf(" 请输入您的选择:");scanf("%d",&w);printf("\n");getchar();switch(w){case 0:q=0;break;case 1:printf(" 请输入用户名:");scanf("%s",b);printf("\n");printf(" 请输入密码:");scanf("%s",m);getchar();printf("\n");if(strcmp(b,b1)!=0||strcmp(m,m1)!=0){printf(" 用户名或密码错误!\n");printf(" 请重新输入:");scanf("%c",&l);getchar();system("cls");}else{printf(" 验证通过!请按Enter键进入!\n");scanf("%c",&l);}6.文本的输出;fp = fopen ("f.txt" , "r") ;if(fp == NULL){printf("File open the file 1!\n") ;exit (0) ;}while (! feof(fp)){fscanf(fp," %s %s %s %s %s %d %lf\n",d[i].num, d[i].name, d[i].author, d[i].press, d[i].sort, &d[i].time, &d[i].price) ;i++ ;}number=i;fclose (fp);7.图书管理系统的功能列表函数及main函数结尾;do{system("cls");printf("\n\n\n\n");printf("|**********************************************|\n");printf(" | *图书信息管理系统* |\n");printf("|**********************************************|\n");printf(" 1.查看全部图书5.修改图书\n");printf(" 2.查找图书6.图书排序\n");printf(" 3.添加图书7.金额管理\n");printf(" 4.删除图书8.退出程序\n");printf("\n\n");printf("请输入所选择的序号:");scanf("%d",&r);getchar();switch(r){case 1:search_allbook(d);getchar();break ;case 2:find_book(d);getchar();break ;case 3:add_book(d);getchar();break ;case 4:delete_book(d);getchar();break ;case 5:xiugai_book(d);getchar();break ;case 6:paixu_book(d);getchar();break ;case 7:cash_manage();getchar();break;case 8:break;}}while (r!=8);printf("谢谢使用!\n");}}return 0;}②查看全部图书函数void search_allbook(struct list d[]){int i;system("cls");printf("|**********************************|\n");printf(" | 查看全部图书! |\n");printf("|**********************************|\n");printf("图书的相关信息:编号书名作者出版社类别出版时间价格\n");for(i=0;i<number;i++){printf(" %s %s %s %s %s %d %.2lf\n", /*将数据输出到屏幕中*/d[i].num,d[i].name,d[i].author,d[i].press,d[i].sort,d[i].time,d[i].price);}printf("书本总数:%d \n" , number);printf("********************************************************************************\n");}③查找图书void find_book(struct list d[]){system("cls");int i, fg=0;char s[20];printf("输入图书编号:\n") ; /*提示输入图书编号*/scanf("%s" ,s);printf("|***********************************|\n");printf(" | 查找图书! |\n");printf("|***********************************|\n");for(i=0;i<number;i++)if (strcmp(s, d[i].num)==0){printf("该图书的相关信息:编号书名作者出版社类别出版时间价格\n");printf("%s %s %s %s %s %d %.2lf\n",d[i].num, d[i].name, d[i].author,d[i].press, d[i].sort, d[i].time, d[i].price);fg = 1;break;}if (fg == 0){printf("该图书编号不存在!\n");printf("是否要继续查找? y:是 ; n:否\n") ;getchar();switch(getchar()){case 'y':find_book(d); /*调用函数本身继续查找*/case 'n' :break ;}}printf("**************************************************** ****************************\n");getchar();}④添加图书函数;void add_book(struct list d[]){int i, count=0, choice3;struct list p ;FILE *fp2 ;system("cls");printf(" |***********************************|\n"); printf(" | 添加图书! |\n"); printf(" |***********************************|\n");printf("请输入图书编号:");scanf("%s",p.num);printf("请输入图书名:");scanf("%s",);getchar();printf("请输入作者名:");scanf("%s",p.author);getchar();printf("请输入出版社:");scanf("%s",p.press);getchar();printf("请输入类别:");scanf("%s",p.sort);getchar();printf("请输入出版时间:");scanf("%d",&p.time);getchar();printf("请输入价格:");scanf("%lf",&p.price);printf(" 是否添加并显示添加后的信息? 1:是 ; 2:否 \n"); printf(" 请选择:");scanf("%d" , &choice3);switch (choice3){case 1 :{for(i=0;i<number;i++)if(strcmp(p.num,d[i].num)>0)count ++ ;for(i=number;i>count;i--)d[i] = d[i-1] ;d[i] = p ;number++; /*每添加一本图书,图书数目都会增加一个*/fp2= fopen ("f.txt" , "w") ;if(fp2== NULL){printf("File open the file 2 !\n");exit (0) ;}for(i=0;i<number;i++)fprintf(fp2," %s %s %s %s %s %d %.2lf\n" ,d[i].num,d[i].name,d[i].author,d[i].press,d[i].sort,d[i].time,d[i].pri ce);fclose (fp2) ;printf("添加后的图书信息:\n编号书名作者出版社类别出版时间价格\n");for(i=0;i<number;i++)printf(" %s %s %s %s %s %d %.2l f\n" ,d[i].num,d[i].name,d[i].author,d[i].press,d[i].sort,d[i].time,d[i].pri ce);printf("谢谢您对图书的添加!\n");break;}case 2 :printf("谢谢您对图书的添加!\n");break ;}printf("************************************************************** ******************\n");getchar();}⑤删除图书函数double delete_book(struct list d[]){int i,count=0,fg= 0,ch;char s[20];FILE *fp3;system("cls");printf(" |***********************************|\n"); printf(" | 删除图书 |\n"); printf(" |***********************************|\n");printf("请输入图书编号:");scanf("%s", s);for(i=0;i<number;i++)if(strcmp(s,d[i].num)==0){printf(" 是否删除并显示删除后的信息? 1:是 ; 2:否 \n");printf(" 请选择:");scanf("%d" , &ch);getchar();switch (ch){case 1 :{for(i=0;i<number;i++)if(strcmp(s,d[i].num)>=0)count ++ ;for(i=(count-1);i<number;i++)d[i]=d[i+1];// d[i] = p ;number--; /*每删除一本图书,图书数目都会减少一个*/fp3=fopen ("f.txt" , "w") ;if(fp3== NULL){printf("File open the file 3 !\n");exit (0) ;}for(i=0;i<number;i++)fprintf(fp3," %s %s %s %s %s %d %.2lf\n " ,d[i].num,d[i].name,d[i].author,d[i].press,d[i].sort,d[i].time,d[i]. price);fclose (fp3) ;printf("删除后的图书信息:\n编号书名作者出版社类别出版时间价格\n");for(i=0;i<number;i++){//if(strcmp(s,d[i].num)!=0)printf("%s %s %s %s %s %d %.2lf\n",d[i].num, d[i].name, d[i].author,d[i].press, d[i].sort, d[i].time, d[i].price);}break ;case 2 :break ;}}fg = 1 ;getchar();//break ;}if(fg == 0)printf("该图书编号不存在!\n");printf("************************************************************** ******************\n");return total;getchar();}⑥修改图书函数void xiugai_book(struct list d[]){int i,k;char s[20];FILE *fp4;system("cls");printf(" |***********************************|\n"); printf(" | 图书修改 |\n"); printf(" |***********************************|\n");printf("请输入图书编号:");scanf("%s", s);for(i=0;i<number;i++)if(strcmp(s,d[i].num)==0){printf("您要修改的图书信息为:\n编号书名作者出版社类别出版时间价格\n");printf("%s %s %s %s %s %d %.2lf\n",d[i].num, d[i].name, d[i].author, d[i].press,d[i].sort, d[i].time, d[i].price);printf("请输入修改后的图书信息:\n");printf("请输入图书名:");scanf("%s",d[i].name);getchar();printf("请输入作者名:");scanf("%s",d[i].author);getchar();printf("请输入出版社:");scanf("%s",d[i].press);getchar();printf("请输入类别:");scanf("%s",d[i].sort);getchar();printf("请输入出版时间:");scanf("%d",&d[i].time);getchar();printf("请输入价格:");scanf("%lf",&d[i].price);fp4=fopen ("f.txt" , "w") ;if(fp4==NULL){printf("File open the file 4 !\n");exit (0) ;}for(i=0;i<number;i++)fprintf(fp4," %s %s %s %s %s %d %.2lf\n " ,d[i].num,d[i].name,d[i].author,d[i].press,d[i].sort,d[i].time,d[i]. price);fclose (fp4) ;}printf("是否显示修改后的图书信息: 1:是 ; 2:否\n");scanf("%d",&k);getchar();switch(k){case 1:for(i=0;i<number;i++)if (strcmp(s, d[i].num)==0){printf("该图书的相关信息:\n编号书名作者出版社类别出版时间价格\n");printf("%s %s %s %s %s %d %.2lf\n",d[i].num, d[i].name, d[i].author, d[i].press, d[i].sort, d[i].time, d[i].price);}case 2:printf("谢谢您对图书的修改!\n");break;default:printf("您的输入有误!\n");break;printf("*********************************************************** *********************\n");getchar();}}⑦图书排序函数void paixu_book(struct list d[]){int a;system("cls");printf("****************************************************************\n");printf(" * ** 1-按图书编号排序 2-按出版时间排序 ** *\n");printf(" * ** 3-按图书价格排序 0-取消排序操作 ** *\n");printf("****************************************************************\n");printf("请输入您选择的编号:");scanf("%d",&a);getchar();switch(a){case 0:break;case 1:num_paixu(d);getchar();break;case 2:time_paixu(d);getchar();break;case 3:price_paixu(d);getchar();break;default:printf("您的输入有误!\n");break;}}/*按图书编号排序*/void num_paixu(struct list d[]){int i,k,index,b;struct list temp;system("cls");for(k=0;k<number-1;k++){index=k;for(i=k+1;i<number;i++){if(strcmp(d[i].num,d[index].num)<0)index=i;temp=d[index];d[index]=d[k];d[k]=temp;}}printf("排序成功!\n");printf("是否显示排序结果? 1:是 ; 2:否\n");scanf("%d",&b);switch(b){case 1:printf(" 编号书名作者出版社类别出版时间价格 \n");for(i=0;i<number;i++){printf(" %s %s %s %s %s %d %.2lf \n",d[i].num, d[i].name, d[i].author, d[i].press, d[i].sort, d[i].time, d[i].price );}break;case 2:break;default:printf("您的输入有误!\n");break;}getchar();}/*按出版时间排序*/void time_paixu(struct list d[]){int i,k,index,b;struct list temp;system("cls");for(k=0;k<number-1;k++){index=k;for(i=k+1;i<number;i++){if(d[i].time<d[index].time)index=i;temp=d[index];d[index]=d[k];d[k]=temp;}}printf("排序成功!\n");printf("是否显示排序结果? 1:是 ; 2:否\n");scanf("%d",&b);switch(b){case 1:printf(" 编号书名作者出版社类别出版时间价格 \n");for(i=0;i<number;i++){printf(" %s %s %s %s %s %d %.2lf \n",d[i].num, d[i].name, d[i].author, d[i].press, d[i].sort, d[i].time, d[i].price );}break;case 2:break;default:printf("您的输入有误!\n");break;}getchar();}/*按图书价格排序*/void price_paixu(struct list d[]){int i,k,index;char b;struct list temp;system("cls");for(k=0;k<number-1;k++){index=k;for(i=k+1;i<number;i++){if(d[i].price<d[index].price)index=i;temp=d[index];d[index]=d[k];d[k]=temp;}}printf("排序成功!\n");printf("是否显示排序结果? 1:是 ; 2:否\n");scanf("%d",&b);switch(b){case 1:printf(" 编号书名作者出版社类别出版时间价格 \n");for(i=0;i<number;i++){printf(" %s %s %s %s %s %d %.2lf \n",d[i].num, d[i].name, d[i].author, d[i].press, d[i].sort, d[i].time, d[i].price );}break;case 2:break;default:printf("您的输入有误!\n");break;}getchar();}⑧金额管理函数;double cash_manage(){system("cls");int i;double total=0;for(i=0;i<number;i++)total=total+d[i].price;printf("共计金额:%f \n" ,total);return total;getchar();}4 调试分析测试数据,每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想等。