图书管理系统课程报告

合集下载

图书管理系统 实验报告

图书管理系统 实验报告

图书管理系统实验报告图书管理系统实验报告引言:图书管理系统是现代图书馆不可或缺的一部分,它通过计算机技术的应用,实现了对图书的分类、借阅、归还等操作的自动化管理。

本实验旨在通过设计和实现一个简单的图书管理系统,探索其功能和效果,并对系统进行评估和改进。

一、系统设计与功能1.1 系统设计本系统采用了客户端-服务器的架构,客户端通过图形界面与服务器进行交互。

服务器端负责处理用户请求,包括图书查询、借阅、归还等操作,并将结果返回给客户端。

1.2 系统功能本系统具有以下功能:1) 图书查询:用户可以根据图书的名称、作者、ISBN等信息进行查询,并获取相关的图书信息。

2) 图书借阅:用户可以选择所需图书,并进行借阅操作。

系统会自动检查图书的可借状态,并记录借阅信息。

3) 图书归还:用户可以将已借阅的图书归还给图书馆。

系统会更新图书的借阅状态,并记录归还信息。

4) 用户管理:系统支持用户注册、登录和个人信息管理等功能,以便用户进行借阅操作。

二、实验过程与结果2.1 实验过程在实验过程中,我们首先进行了需求分析,明确了系统的功能和性能要求。

然后,我们进行了系统设计,包括数据库设计、界面设计等。

接下来,我们使用Python编程语言实现了系统的客户端和服务器端,并进行了功能测试和性能测试。

2.2 实验结果经过测试,我们的图书管理系统能够正常运行,并且具备良好的用户界面和交互体验。

系统能够快速响应用户请求,并正确处理各种操作。

同时,系统的性能表现也较好,能够处理大量并发请求,并保持稳定的运行状态。

三、系统评估与改进3.1 系统评估在实验过程中,我们对系统进行了评估。

通过用户反馈和测试结果,我们发现系统在功能和性能方面都达到了预期的要求。

用户对系统的易用性和交互体验给予了较高的评价。

3.2 系统改进尽管系统已经达到了预期的要求,但我们仍然发现了一些可以改进的地方。

例如,系统的查询功能可以进一步优化,提供更多的查询条件和搜索选项。

图书管理系统课程报告

图书管理系统课程报告

课程报告课程名称:专业班级:学生姓名:学号:任课教师:学期:课程报告任务书开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。

使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。

比如(1)简单的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。

(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。

成绩评定教师:1 需求分析本次实验目的是开发一个图书管理系统,且该图书管理系统中应包含以下基本功能:(1)图书信息录入功能(2)图书信息浏览功能(3)查询功能例如:按书名查询、按作者名查询等等(4)排序功能例如:按照价钱排序、按出版时间排序等等(5)图书信息的删除与修改除此之外,个人还可以根据自己的爱好进行各方面的扩展。

例如权限处理、图书排序等等。

在我们设计自己的程序时不仅可以利用课本上的知识,还可以在互联网上查询有关该类信息,将其学习总结并利用在此次程序设计中。

利用这次程序设计实验,我们可以提高自己的设计和编辑程序的能力、了解一般程序的编写过程,还可以巩固加深我们对C语言程序基本知识的了解与掌握。

我在该实验中不仅利用了课本上的函数知识、文本的输入和读出,还用互联网查阅了相关知识。

如“("")”,用汉语解释就是清屏功能;还有“()”函数,输入不读出,不过在利用“()”进行密码的改写时老是出错误,就舍弃了该函数。

在利用“("")”时感觉还是很好的,用该函数后不仅可以使程序在运行时美观大方,还可以一眼扫描到我们要找的信息。

图书管理系统课程设计报告.

图书管理系统课程设计报告.

《管理信息系统》课程设计报告书设计题目:图书管理系统专业:计算机科学与技术班级:学生姓名:学号:指导教师:2014年6月信息工程学院目录摘要 (1)第一章绪论 (1)第二章需求分析 (3)第三章相关技术介绍 (6)第四章系统模型构建 (7)第五章系统实现 (15)总结与心得 (21)参考文献 (22)附录 (23)摘要图书馆管理系统是采用Java做前台,后台数据库则采用的是SQL Server 2008,本系统提供6个功能模块,分别是图书类别管理模块、图书信息管理模块、读者信息管理模块、新书订购管理模块、图书借阅模块,以及系统维护模块。

这6个模块里又有许多子模块,通过这些模块之间的相互连接与配合,完成操作员发出的各种指令。

图书馆管理系统是一个供内部人员使用的系统。

而图书馆的工作人员也分为两类,一类是操作人员,主要负责图书的借阅和归还的工作;一类是管理员,除了操作人员的所有功能外,还能够对书籍列表、书籍信息、读者信息等进行管理。

此设计的图书馆管理系统的系统功能和业务流程,并对系统进行详细的数据分析和设计采用SQL Server 2008 数据库作为后台数据库, java 作为前台的开发语言关键词:管理信息系统图书馆管理系统 Java SQL Server 2008第一章绪论1.1管理信息系统概述定义:所谓MIS(管理信息系统--Management Information System)系统,现代管理信息系统是一个以人为主导,利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以企业战略竞优、提高效益和效率为目的,支持企业的高层决策、中层控制、基层运作的集成化的人机系统。

特点:1. 面向管理决策2. 综合性3. 人机系统4. 现代管理方法和手段相结合的系统5. 多学科交叉的边缘科学功能:(1)数据处理功能(2)预测功能(3)计划功能(4)控制功能(5)辅助决策功能1.2课题背景当今由于信息技术的飞速发展,图书馆作为社会知识信息媒介的功能日益重要,网络环境下的信息资源建设知识仓库的设计,开放存取学术交流模式,知识管理系统,智能检索,数字参考咨询,数字图书馆领域成为图书馆系统的研究方向。

图书管理系统报告

图书管理系统报告

图书管理系统报告一、引言。

图书管理系统是图书馆管理工作的重要组成部分,它通过计算机技术和信息管理手段,实现了对图书馆藏书、读者信息、借阅情况等数据的自动化管理和统计分析。

本报告旨在对图书管理系统的设计、实施和效果进行全面分析,为图书馆管理工作提供科学依据。

二、图书管理系统的设计与实施。

1. 系统需求分析。

在设计图书管理系统之前,首先要对图书馆的管理需求进行全面分析。

这包括对图书馆藏书规模、读者数量、借阅情况等方面的调查研究,以便确定系统的功能模块和技术架构。

2. 系统设计与开发。

基于系统需求分析的结果,可以进行图书管理系统的详细设计与开发工作。

这包括数据库设计、界面设计、功能模块设计等方面的工作,同时需要进行系统的编码、测试和上线部署工作。

3. 系统实施与推广。

系统开发完成后,需要进行系统的实施与推广工作。

这包括对系统进行培训、技术支持和推广宣传工作,以便让图书馆工作人员和读者能够熟练使用该系统,提高工作效率和服务质量。

三、图书管理系统的效果评估。

1. 提高了图书管理效率。

通过图书管理系统,图书馆工作人员可以实现对图书的快速检索、借阅和归还等操作,大大提高了图书管理的效率,节省了人力和时间成本。

2. 优化了读者服务体验。

图书管理系统可以帮助读者快速查找到所需图书的位置和借阅情况,提高了读者的借阅体验,同时也可以通过系统对读者的借阅情况进行分析,为图书采购和馆藏管理提供科学依据。

3. 加强了图书馆管理决策。

图书管理系统可以对图书的流通情况、读者需求等数据进行统计和分析,为图书馆的管理决策提供科学依据,帮助图书馆更好地满足读者的需求。

四、图书管理系统的发展趋势。

随着信息技术的不断发展,图书管理系统也在不断完善和创新。

未来,图书管理系统将更加智能化、个性化,可以通过大数据分析、人工智能等技术手段,为图书馆提供更加精准的服务和管理。

五、结论。

图书管理系统是图书馆管理工作的重要工具,它可以提高图书管理效率,优化读者服务体验,加强图书馆管理决策,是图书馆信息化建设的重要组成部分。

图书馆管理系统课程设计报告

图书馆管理系统课程设计报告

目录第一章课程设计目的与要求 (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需求分析数据需求需求分析是指准确了解和分析用户的需求,这是最困难、最费时、最复杂的一步,但也是最重要的一步。

它决定了以后各步设计的速度和质量。

图书管理系统课程设计报告

图书管理系统课程设计报告

北华航天工业学院《基于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++语言的基本知识和技能。

图书管理系统报告

图书管理系统报告

图书管理系统报告题目: 图书管理系统:学生专业: 计算机信息管理班级: 信管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)摘要随着人类社会的发展, 人类对知识的需求也不断地增长。

在这种形势下, 书籍就渐渐的成为人们获取并增长知识的主要途径, 而图书馆、图书室就自然而然的成为人们获取知识的重要场所。

如何更科学、更高效的管理图书信息就成为十分重要且迫在眉睫的工作, 因此开发图书管理系统就必不可少了。

图书管理系统是学校管理机制中的重要组成部分, 通过对图书馆管理系统的运行管理机制进行调查和研究, 开发了此图书馆管理系统。

图书管理系统报告

图书管理系统报告

图书管理系统报告图书管理系统报告一、引言图书管理系统是一种用于管理图书馆中图书信息、借阅记录、读者信息等的软件系统。

本报告旨在对图书管理系统进行需求分析、设计和实现等方面进行详细描述,并对系统的功能和性能做出评估。

二、系统需求分析1. 用户需求系统的用户包括图书管理员和读者。

图书管理员需要能够对图书的增删改查进行操作,并能够管理读者的借阅信息。

读者需要能够查询和借阅图书。

2. 功能需求系统应具备以下功能:- 图书管理:包括图书的增删改查、图书分类、图书借阅归还等。

- 读者管理:包括读者的注册、登录、查询读者信息等。

- 借阅管理:包括读者的借阅记录、图书归还等。

- 统计分析:包括图书借阅量统计、图书馆资源分析等。

3. 性能需求系统需要保证查询速度和响应速度,尤其是在并发访问较高的情况下。

系统需要具备一定的容错能力,能够应对异常情况,如网络中断、图书损坏等。

三、系统设计1. 系统架构系统采用三层架构,包括表示层、业务逻辑层和数据访问层。

表示层负责接受用户的请求并展示结果,业务逻辑层实现系统的各种功能逻辑,数据访问层负责与数据库进行交互。

2. 功能模块系统划分为图书管理模块、读者管理模块、借阅管理模块和统计分析模块。

每个模块根据功能需求划分成若干子模块,以便于实现和维护。

3. 数据库设计系统的数据库包括图书表、读者表和借阅记录表等。

每个表的设计根据系统功能需求确定,确保数据的一致性和完整性。

四、系统实现系统的开发采用Java语言和MySQL数据库。

选择Java语言的原因是其跨平台性和广泛的应用性,选择MySQL数据库的原因是其开源性和可靠性。

五、系统评估根据系统使用情况和用户的反馈,系统能够满足用户的需求,并且在性能方面表现良好。

系统的界面友好,操作简便,功能完善。

六、结论本报告对图书管理系统进行了详细的需求分析、设计和实现等方面的描述,并对系统的功能和性能做出了评估。

系统能够满足用户的需求,并具备良好的性能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程报告课程名称:专业班级:学生姓名:学号:任课教师:学期:课程报告任务书开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。

使之能提供以下基本功能:(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 调试分析测试数据,每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想等。

相关文档
最新文档