图书管理系统实验报告

合集下载

图书管理系统 实验报告

图书管理系统 实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

图书管理系统详细设计报告范文

图书管理系统详细设计报告范文

图书管理系统详细设计报告范文实验报告一、实验名称二、实验目的完成图书管理系统(学生选课系统,学校人事管理系统,医院病历管理系统,四者任选其一)的详细设计;系统掌握软件开发过程中详细设计的写法;完成图书管理系统(学生选课系统,学校人事管理系统,医院病历管理系统)的详细设计报告。

三、实验主要内容在概要设计的基础上,详细设计概要设计所划分的模块,确定每个模块功能所需要的算法和数据结构,并设计出程序的详细规格说明,可画出详细的程序流程图,为编码做准备,写出详细设计报告。

四、实验原理详细设计也称过程设计,是程序设计的蓝图。

该设计是在数据设计、体系结构设计和接口设计完成之后进行的。

过程设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程尽可能的简明易懂。

结构化程序设计是实现上述目标的关键技术,因此是过程设计的逻辑基础。

过程设计的结果基本上决定了最终程序设计的质量。

将程序体系结构元素变换为对软件构件的过程描述。

该实验主要是利用过程设计工具进行程序设计。

五、实验结果Ⅰ、可行性分析本系统主要实现对图书馆信息的管理,主要功能为管理有关读者,书籍,借阅和管理者的信息等。

本系统结构分为读者信息管理模块,书籍信息管理模块,借阅信息管理模块,管理者信息管理模块。

读者信息管理部分有两方面的功能,可以浏览读者的信息,可以对读者信息进行维护。

书籍信息管理可以浏览书籍的信息,可以对书籍信息进行维护。

借阅信息管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。

管理者信息管理可以显示数据库中管理者的情况,可以对管理者信息进行维护。

可见,本系统并不复杂,主要解决的问题是利用关键字对数据库进行查询。

Ⅱ、图书馆概况数据处理手段。

但一直以来人们使用传统人工的方式进行图书管理和借阅管理,这种管理方式存在着许多缺点,如:效率低、易忘记、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

C语言图书管理系统实验报告

C语言图书管理系统实验报告

程序设计实践信息类 1110开辟一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③ 按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加之学生信息,并扩充为图书借阅系统。

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

一、提交材料应包括: (1)系统源代码 (2)课程报告二、整个设计过程具体要求(1要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4按照要求完成系统设计和实现报告,并进行总结、答辩。

1 需求分析这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。

通过这些信息使之提供以下功能:(1)图书信息创建功能。

其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。

(图书信息用文件保存)。

(2)图书信息查看功能。

用来查看各项图书信息。

(3)图书信息查找功能。

通过已知信息来查找想要的图书。

(4)图书信息的删除。

可以删除特定图书。

(5)图书信息的修改。

可以修改图书的各项信息。

(6)图书信息的排序功能。

按图书信息对录入的图书进行排序。

(7)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能2 概要设计图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。

uml图书管理系统实验报告

uml图书管理系统实验报告

UML 实验报告计算机与信息技术学院综合性实验报告一、实验目的学生的信息管理系统的目标是在学生的信息管理中,使用计算机的网络技术,通讯技术和信息处理技术,使学生的信息得到加工,依次传达及保存。

根据学生的信息管理的电子化和网络化,来实现全面改善学生信息的管理环境,提高管理效率。

系统要对使用要求不同的用户群体,设置不同的权限,设置系统的不同功能。

管理员能有效管理学生的信息,同时,学生可以随时大量检索查询多种信息。

这个项目从结构上分为:(1)管理员:通过已有学生信息仓库,管理学生的信息,还可以管理教师的信息,管理课程的信息,管理班级的信息;(2)学生:可以修改学生的信息,选择课程,检索成绩等;(3)教师:修改教师的信息,检索学生的成绩,登记授课的学生状况等。

二、实验仪器或设备学生用计算机一台三、总体设计(设计原理、设计方案及流程等)设计原理:用例图:被称为参与者的外部用户所能观察到的系统功能的模型图,在UML语言中,用例模型也就是用例视图是用例图描述的。

用例模型可以由若干个用例图组成,用例图中包含系统、角色和用例三种模型元素。

用例是外部可见的一个系统功能单元,这些功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换消息所表达。

顺序图:它描述对象是如何交互的并且将重点放在消息序列上,也就是说描述消息是如何在对象间发送和接收的。

设计方案及流程:1.系统功能(1)学生功能:查询课表,选课,成绩,修改学生个人信息。

(2)教师功能:录入成绩,查询教授学生状况,修改老师个人信息。

2.管理员功能(1)学生管理:学生用户的追加,学生信息的浏览,修改,删除。

(2)教师管理:教师用户的追加,教师信息的浏览,修改,删除。

(3)课程管理:课程查询,添加,修改,删除,公布课表等。

(4)班级管理:班级的查询,添加,修改,删除四、实验步骤(包括主要步骤、用例图、时序图等)一、打开rational rose画图结果如下:二、用例图:1.系统用户参与的总的用例图:用例分析如下:选课:用例名称选课标识符UC0001基本操作流程1.登陆选课页面2.输入选课科目进行选课3.退出选课页面可选操作流程1a.登陆成功,继续操作1b.登陆失败,重新登陆2a.选课科目不存在或出现错误,进行确认2b.选课成功3a.成功退出选课页面2. 管理员参与的用例图:用例分析如下:课程删除:用例名称课程删除标识符UC0002基本操作流程1.管理员输入课程信息2.检索选择该课程学生信息3.删除该课程可选操作流程1a.输入信息不存在,进行确认3a.删除课程错误,重新删除学生信息的修改:用例名称学生信息的修改标识符UC0003基本操作流程1.管理员输入学生信息2.检索学生信息3.修改学生信息可选操作流程1a.输入的学生信息不存在,进行确认3a.修改后学生信息出现错误,重新修改3.教师参与的用例图:用例分析如下:录入成绩:用例名称录入成绩标识符UC0004基本操作流程1.登陆录入成绩页面2.老师输入学生信息3.录入成绩4.退出登陆可选操作流程1a.登陆失败,重新登陆2a.输入的学生不存在,进行确认3a.录入成绩失败,重新录入4a.退出失败,重新退出4b.注销登录查询教授学生状况:用例名称查询教授学生状况标识符UC0005基本操作流程1.登陆查询教授学生状况页面2.老师输入学生信息3.查询学生状况4.退出登陆可选操作流程1a.登陆失败,重新登陆2a.输入得学生不存在,进行确认4a.退出失败,重新退出4b.注销登录4.学生参与的用例图:用例分析如下:查询成绩:用例名称查询成绩标识符UC0006基本操作流程1.登陆查询成绩页面2.查询成绩3.退出登陆可选操作流程1a.登陆失败,重新登陆2a.查询出现错误,重新查询2b.查询成绩不存在,进行确认3a.退出失败,重新退出3b.注销登录三、顺序图:1. 管理员时序图:管理员时序图说明: (1) 登陆到登陆页面(2) 在学生信息管理页面中进行追加学生用户、浏览、修改、删除学生信息操作,提交到学生信息数据库,并在本页面显示(3) 返回成功(4) 在教师信息管理页面中进行追加教师用户、浏览、修改、删除教师信息操作,提交到教师信息数据库,并在本页面显示(5) 返回成功:(6)在课程信息管理页面中进行查询、添加、修改、删除、公布课表操作,提交到课程信息数据库,并在本页面显示(7)返回成功(8)在班级信息管理页面中进行查询、添加、修改、删除班级操作,提交到班级信息数据库,并在本页面显示(9)返回成功(10)退出登录2.教师时序图:教师时序图说明:(1)登陆到登陆页面(2)在教师信息管理页面中进行修改老师个人信息操作,提交到教师信息数据库,并在本页面显示(3)返回成功(4)在学生信息库中进行录入成绩、查询教授学生状况操作,提交到学生信息数据库,并在本页面显示(5)返回成功(6)退出登陆3.学生时序图:学生时序图说明:(1)登陆到登陆页面(2)在学生信息管理页面中进行查询课表、选课、查询成绩、修改学生个人信息操作,提交到学生信息数据库,并在本页面显示(3)返回成功(4)退出登陆五、结果分析与总结用例图:(1)用例是用户期望系统具备的功能,每一个用例说明一个系统提供给它的使用者的一种服务或功能。

图书管理系统实验报告

图书管理系统实验报告
实验心得
在做实验设计之前我没有接触过的知识,通过老师和同学们的帮助,我终于完成了这个系统。我无法表达由自己一个人独立开发软件的成就感觉,尽管它还有很多不完善的地方。是一门很好上手的语言,至少我是这么认为,为了很好的与时俱进,我在这次制作过程中还学习了很多新的技术,也使用了一些比较成熟的技术。在这次设计过程中,我也学得到了很多和开发相关的技术领域的知识,同时也通过亲身实践,了解了多种软件的特性和使用方法,也增强了动手能力和独立解决问题的能力,从而更进一步地理解了所学的理论知识。开发一个好的系统需要熟练的技巧和丰富的知识,由于自己能力有限和时间的限制,本系统还有许多不尽人意之处,功能也很简单,需要今后不断的改进。
Dimfrm1AsNew管理员功能选项
Me.Hide()
frm1.Show()
进入管理员管理选项界面
点击管理用户信息按钮跳转到管理用户界面
进入添加用户信息界面
管理员输入用户学号姓名等信息确认按钮代码:
PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click
mandText ="select * from tushu where 编号 = '"& TextBox1.Text &"'"
SqlConnection1.Close()
TsqDataSet.Clear()
SqlDataAdapter1.Fill(TsqDataSet)
上海电力学院
信息网络技术
课程设计报告
题 目:图书馆借阅系统
姓 名:白志强

图书管理系统 实验报告

图书管理系统 实验报告

需求分析、本图书管理系统就是将传统图书馆业务的手工操作转变成由计算机馆理,即图书馆的图书期刊、音像资料等各种载体文献的采编、典藏、流通、检索及常规业务管理等工作,利用计算机技术,使得图书馆的管理更智能、更有效的进行,最终的目的以方便图书借阅者方便借阅及管理者高效、方便管理为目的。

1、图书馆管理系统需求,通过调查,要求系统需要有以下功能:⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面;⑵ 由于该系统的使用对象多,要求有较好的权限管理;⑶ 原始数据修改简单方便,支持多条件修改⑷ 方便的数据查询,支持多条件查询;⑸ 在相应的权限下,删除数据方便简单,数据稳定性好;⑹ 数据计算自动完成,尽量减少人工干预;2、开发环境本系统的设计是在Windows 2003以上中文版操作系统环境下,用C#语言实现功能,使用Microsoft Visual Studio 2010平台下开发设计的。

数据库是使用SQL server 2000中文版,它是基于客户机/服务器体系结构的多线程、高性能的数据库管理系统。

由于它具有对数据集中进行管理,保证数据的安全性和完整性,可以优化系统性能,支持开放性等优点,在各个行业中都得到了广泛的应用。

3、系统设计目标系统功能依据用户需求而设计,主要包括信息管理对象的特征、事物流程的内容和数据流量,根据用户需求和方便用户使用的原则确定相应的功能模块。

本系统为学校的图书馆信息而设计,实现信息处理的自动化、规范化,主要用于处理图书日常借阅和还书、图书入库、各种查询操作,系统具有以下功能。

1)图书借阅处理2)图书与读者信息查询与修改、删除3)图书入库与图书的信息修改、删除4)员工信息的修改、删除4、系统功能设计要求系统实现图书馆日常管理事务最主要的功能,包括图书的借出于还回,图书信息的录入、修改和查询,读者信息的录入、修改和查询,员工信息的录入、修改和查询。

实现这些基本功能,组建了图书管理系统的基本框架,根据功能的关联关系和集中分组的原则,将系统细化的结构图。

idea+swing图书管理系统实验报告

idea+swing图书管理系统实验报告

idea+swing图书管理系统实验报告实验题目:基于idea+swing的图书管理系统实验内容:本次实验主要是要实现一个基于idea+swing的图书管理系统,包括以下功能模块:1. 用户管理模块:实现用户注册,登录,修改密码等操作。

2. 图书管理模块:实现图书的查询,添加,修改,删除等操作。

3. 借阅管理模块:实现借阅记录的查询,添加等操作。

4. 统计分析模块:实现图书总数,已借阅图书数,借阅率等信息的统计和分析。

实验步骤:1. 环境搭建:安装jdk、idea和MySQL数据库,并创建一个数据库用于存储图书和用户信息。

2. GUI设计:利用swing的GUI组件进行图形化界面的设计,包括登录、注册、图书管理、借阅管理和统计分析界面。

3. 数据库连接:使用MySQL连接器插件连接数据库,并编写DAO层代码实现对数据库的CRUD操作。

4. 业务逻辑实现:编写Service层代码实现业务逻辑操作,如用户登录、注册、修改密码、图书查询、添加、修改、删除等功能。

5. 界面跳转:利用各种监听器实现不同模块的界面跳转和数据传递等功能。

6. 统计分析:编写代码实现图书总数,已借阅图书数,借阅率等信息的统计和分析。

7. 调试优化:排查代码中可能出现的错误,并根据实际测试情况进行代码的优化和改进。

实验结果:本次实验完成了一个基于idea+swing的图书管理系统,用户能够注册、登录、修改密码,实现图书的添加、修改、删除、查询,能够管理借阅记录,还能够进行各种统计和分析操作。

实验收获:通过本次实验,我掌握了利用swing进行图形化界面设计的方法,学会了如何使用DAO和Service层实现对数据库的CRUD操作,还学习了如何使用监听器实现界面跳转和数据传递等功能,同时也提高了调试和优化代码的能力。

图书馆管理系统实验报告

图书馆管理系统实验报告

图书馆管理系统实验报告图书馆管理系统实验报告一、引言图书馆作为知识的宝库,承载着人们获取信息和知识的重要场所。

然而,传统的图书馆管理方式已经无法满足日益增长的用户需求和信息管理的复杂性。

为了提高图书馆的管理效率和用户体验,我们设计并实现了一套图书馆管理系统。

二、系统概述我们的图书馆管理系统旨在提供一个全面且易于使用的平台,以实现图书馆的资源管理、借还书管理、用户管理等功能。

系统主要包括以下几个模块:用户管理模块、图书管理模块、借还书管理模块和统计报表模块。

三、用户管理模块用户管理模块是系统的核心模块之一,它负责管理图书馆的读者信息和权限。

通过该模块,管理员可以进行读者信息的录入、修改和删除,并设置不同用户的权限等级。

同时,读者也可以通过该模块进行个人信息的查看和修改。

四、图书管理模块图书管理模块是系统的另一个核心模块,它负责管理图书馆的图书资源。

管理员可以通过该模块录入新书籍的信息,包括书名、作者、出版社等,并进行图书分类和标签的设置。

此外,管理员还可以对图书进行上架、下架和库存管理等操作。

五、借还书管理模块借还书管理模块是系统的重要模块之一,它负责管理读者的借书和还书操作。

读者可以通过该模块查询图书的借阅情况,并进行借书和还书的操作。

系统将自动记录借阅和归还的时间,并提醒读者还书的截止日期。

此外,系统还支持续借功能,读者可以在规定的时间内续借图书。

六、统计报表模块统计报表模块是系统的辅助模块,它可以帮助管理员进行数据统计和分析。

通过该模块,管理员可以生成图书馆的借阅统计报表、图书流通情况报表等,为图书馆的决策提供参考依据。

七、系统实现我们使用Java语言和MySQL数据库来实现图书馆管理系统。

前端界面使用HTML、CSS和JavaScript技术,后端采用Spring框架和MyBatis框架进行开发。

系统的部署采用了云服务器和域名解析等技术,以实现远程访问和数据备份。

八、实验结果通过对图书馆管理系统的实际测试和用户反馈,我们发现系统具有良好的稳定性和易用性。

javaswing图书管理系统实报告

javaswing图书管理系统实报告

四、实验方法和步骤
实验方法:
1、本系统是基于Java Swing+MySQL实现的图书管理系统。

2、采用Java Swing作为UI界面
3、MySQL数据库作为存储
4、JDBC原生方法操作
(封装了公共的增删改查方法,见src.model.access.Connect.java)
5、采用MVC模式分为Model层、View层、Controller层
6、采用了MD5进行密码加密
实验步骤:
1、需求分析
2、概念结构,绘制E-R图
3、逻辑结构设计:将E-R图转化为等价的关系模式
4、物理结构设计:数据库表的基本结构
5、功能实现
五、实验结果(截图)
1、登录界面
2、普通用户登录界面
3、管理员登录界面
4用户界面功能分别是
图书查询借阅、借阅归还信息、个人信息管理4.1借阅
4.3查询
4.4借阅信息
4.5归还
4.6个人信息管理4.7修改个人信息
4.8修改密码
5.登录界面功能5.1注册功能
6.忘记密码功能
7.管理端功能
图书信息管理、图书种类管理、读者类型管理、图书借阅信息、超级用户7.1界面
7.2添加图书
7.3删除图书
7.4修改图书
7.5图书类型管理7.6读者信息管理历史借阅信息
7.7超级管理员界面修改个人信息
修改个人密码
7.8超级管理员验证查询管理员信息
新增管理员
删除管理员
修改该管理员信息。

图书管理系统-实验报告

图书管理系统-实验报告

图书管理系统实验报告班级:软件工程0807程序员:赵博聪 200826630726傅钦聪 200826630708成金诚 2008266307042009.6报告目录1总体说明....................................................................1.1需求说明..............................................................1.11需求分析.........................................................1.12系统性能.........................................................1.2功能介绍..............................................................1.2.1详细功能........................................................登录..............................................................读者模块..........................................................工作人员模块......................................................管理员模块........................................................1.3设计思路.............................................................. 2数据设计与程序实现:........................................................2.1数据设计..............................................................2.1.1图书数据设计....................................................2.1.2读者数据设计....................................................2.1.3其他用户数据设计................................................2.1.4存储文件设计....................................................2.2类的作用..............................................................2.2.1 people类.......................................................2.2.2 reader类.......................................................2.2.3 workers类......................................................2.2.4 manger类.......................................................2.2.5 book类.........................................................2.2.6 DBFile类3数据测试3.1选择登录类型……………………………………………………………………………....3.1.1读者登录…………………………………………………………………………….3.1.2工作人员登陆……………………………………………………………………….3.1.3管理人员登陆……………………………………………………………………….3.1.4读者注册…………………………………………………………………………….3.1.5退出系统…………………………………………………………………………….4 总结:..................................................... 错误!未定义书签。

图书管理信息系统设计实验报告

图书管理信息系统设计实验报告

图书管理系统设计报告所在院系:经济与管理学院专业班级:会计1002姓名:xx学号:011030382012年6月15日一、选题的目的及意义目的:图书管理系统主要目的是对图书馆种类繁多的书籍进行管理,并且合理管理好用户的借还信息。

提高图书馆的工作效率,降低管理成本。

意义:通过对管理信息系统的学习,运用Visual Basic 6。

0软件平台以及SQL 2000的后台数据库制作一个小型图书管理系统。

旨在锻炼我们的动手能力和思考能力,同时加强我们对Visual Basic 6.0软件平台以及和SQL 2000软件的实践应用能力,能够学以致用。

通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步了解和掌握本书中所讲解的内容。

二、软件功能1、该软件具有如下主要功能:(1)查询功能(2)插入功能(3)修改功能(4)删除功能(5)浏览功能2、功能描述(1)查询功能:书目匹配查询;读者匹配查询;书目与读者相关匹配查询。

(2)插入功能:增加一个书目记录;增加一个读者记录。

(3)修改功能:修改某一个已存在的记录内容,提供确认机制。

(4)删除功能:授权读者访问数据的权限。

(5)浏览功能:列出当前数据库文件中书籍和读者的所有记录;可选出一项记录,显示所有域。

三、数据库设计数据库需要表述的信息有以下几种:(1)图书信息(2)学生信息(3)学生借阅归还图书信息由系统E-R图可得其主要数据流和主要处理过程:1、主要数据流定义(1)数据流名称:读者信息定义:学号+密码+姓名+性别+班级(2)数据流名称:图书信息定义:流水号+ 书目代码+书名+作者+出版社+出版日期(3)数据流名称:借阅图书定义:流水号+学号+图书编码+借书日期2、主要处理过程的定义(1)处理过程:读者管理输入:读者编号输出:读者的注册信息处理操作:对所有注册的读者信息建表,用学号作为读者统一编号,编号是唯一的。

(2)处理过程:图书管理输入:书名输出:图书的基本信息处理操作:对所有进馆的图书编号,建立图书信息表,图书编号具有唯一性。

Java实验报告之图书管理系统

Java实验报告之图书管理系统

Java实验报告图书管理系统1.管理员界面<<密码验证<<展示所有图书<<查找图书<<添加书籍<<删除书籍<<修改密码<<返回上一层<<结束2.学生界面<<身份识别<<查找图书<<借阅图书<<归还书籍<<返回上一层<<结束3.退出程序源代码:Main.javapackage pany;import java.util.Date;import java.util.Scanner;public class Main {public static void main(String[] args) {// write your code hereUser U;Library L=new Library("东北大学图书馆");System.out.println("欢迎来到东北大学图书馆");Book b1=new Book("java编程思想","sdhf","554532",new Date(2016,12,13),15);Book b2=new Book("C++编程","nimei","15654",newDate(2017,5,13),5);Students s1=new Undergraduate("黎明","20175821"); Students s2=new Master("狭隘","20164545");b1.BookUser.add(s2);b1.BookUser.add(s1);b2.BookUser.add(s2);b2.BookUser.add(s1);L.addBook(b1);L.addBook(b2);//在以上的代码中都是为了增加图书馆中的藏书Scanner sc=new Scanner(System.in);String order;//命令操作板while(true){System.out.println("命令操作符\n<<AccessADInterface\n<<AccessSTInterface\n<<over");System.out.print("<<");order=sc.next();if(order.equals("AccessADInterface")){Administrators A=new Administrators();if (A.getPassWord() == 1){while(true) {System.out.println("命令操作符\n<<ShowAllBook\n<<SearchBook\n<<AddBook\n<<DeleteBook\n<< ChangePassWord\n<<GoBack\n<<over");System.out.print("<<");order = sc.next();if (order.equals("ShowAllBook")) {L.ShowBook();} else if(order .equals( "SearchBook")) {L.ShowBook(L.SearchBook());} else if(order.equals( "AddBook") ){L.addBook();} else if(order .equals( "DeleteBook")) {L.DeleteBook();} elseif(order.equals("ChangePassWord")){A.changePassWord();} else if (order .equals( "GoBack")) {break;} else if (order .equals( "over")) { System.out.println("已退出图书管理系统");System.exit(0);}}}else{System.exit(0);}} else if(order.equals("AccessSTInterface")){ U=erComing();while (true){System.out.println("<<SearchBook\n<<BorrowBook\n<<ReturnBo ok\n<<GoBack\n<<over");System.out.print("<<");order=sc.next();if(order.equals("SearchBook")) {L.ShowBook(L.SearchBook());}else if(order.equals("BorrowBook")){ L.SearchBook().BookBorrow(U);}else if(order.equals("ReturnBook")){ L.ReturnBook(U);}else if(order.equals("GoBack")){break;}}}else if(order.equals("over")){System.out.println("已退出图书管理系统"); System.exit(0);}else {System.out.println("输入了错误的指令");continue;}}}}Library.javapackage pany;import java.util.Scanner;import java.util.Vector;public class Library {public static final int OK=1;public static final int ERROR=1;Vector<Object> book= new Vector();//用来存储书类丹书类中也存有用户类private String Libraryname;Scanner sc=new Scanner(System.in);Library (String name){this.Libraryname=name;}public User UserComing() {int kind;User U;Scanner sc = new Scanner(System.in);System.out.println("如果你是老师请输入1,若是学生请输入2");while (true) {while(true){kind = sc.nextInt();if (kind == 1) {U = new Teacher();return U;} else if (kind == 2) {System.out.println("如果你是本科生请输入1,若是硕士研究生请输入2");while (true){kind=sc.nextInt();if(kind==1){U = new Undergraduate();return U;}else if(kind==2){U=new Master();return U;}else{System.out.println("输入错误");break;}}} else {System.out.println("输入错误");System.out.println("请重新输入:");break;}}}}public void addBook(Book b){book.add(b);}public void addBook(){int i;i=1;Book b;while(i==1){b=new Book();this.addBook(b);System.out.println("如果要继续输入书本信息就输入1,否则就输入2");i=sc.nextInt();}}public Book SearchBook(){String BookName;Book b;System.out.println("请输入你要借查询的书"); BookName=sc.next();for(int i=0;i<this.book.size();i++){b=(Book)this.book.elementAt(i);if(b.bookName.equals(BookName)){return b;}}return null;}public void ReturnBook(User U){User u;Book b;b=this.SearchBook();for(int i=0;i<b.BookUser.size();i++){u=(User) b.BookUser.elementAt(i);if(u==U){U.numBookBor--;b.BookUser.remove(i);b.surplus++;System.out.println("还书成功");return;}else {System.out.println("您不是这本书的借阅者,不能还书");return;}}System.out.println("找不到你要的书");}public void DeleteBook(){String BookName;Book b;System.out.println("请输入你要删除的书");BookName=sc.next();for(int i=0;i<this.book.size();i++){b=(Book)this.book.elementAt(i);if(b.bookName.equals(BookName)){if(b.BookUser.size()==0){this.book.remove(i);System.out.println("已经成功的删除书籍");}else {System.out.println("还有人尚未还书,不能够删除书籍");}}}}public void ShowBook(){Book b;for(int i=0;i<this.book.size();i++){b=(Book)book.elementAt(i);System.out.println((i+1)+"\t"+b.bookName+"\t"+b.auther+"\t" +b.bookNum+"\t"+b.depositTime.getYear()+"\t"+b.depositTime. getMonth()+"\t"+b.depositTime.getDay()+"\t"+b.surplus);}}public void ShowBook(Book b){System.out.println("\t"+b.bookName+"\t"+b.auther+"\t"+b.boo kNum+"\t"+b.depositTime.getYear()+"\t"+b.depositTime.getMon th()+"\t"+b.depositTime.getDay()+"\t"+b.surplus);}}Book.javapackage pany;import java.util.Scanner;import java.util.Vector;public class Library {public static final int OK=1;public static final int ERROR=1;Vector<Object> book= new Vector();//用来存储书类丹书类中也存有用户类private String Libraryname;Scanner sc=new Scanner(System.in);Library (String name){this.Libraryname=name;}public User UserComing() {int kind;User U;Scanner sc = new Scanner(System.in);System.out.println("如果你是老师请输入1,若是学生请输入2");while (true) {while(true){kind = sc.nextInt();if (kind == 1) {U = new Teacher();return U;} else if (kind == 2) {System.out.println("如果你是本科生请输入1,若是硕士研究生请输入2");while (true){kind=sc.nextInt();if(kind==1){U = new Undergraduate();return U;}else if(kind==2){U=new Master();return U;}else{System.out.println("输入错误");break;}}} else {System.out.println("输入错误");System.out.println("请重新输入:");break;}}}}public void addBook(Book b){book.add(b);}public void addBook(){int i;i=1;Book b;while(i==1){b=new Book();this.addBook(b);System.out.println("如果要继续输入书本信息就输入1,否则就输入2");i=sc.nextInt();}}public Book SearchBook(){String BookName;Book b;System.out.println("请输入你要借查询的书");BookName=sc.next();for(int i=0;i<this.book.size();i++){b=(Book)this.book.elementAt(i);if(b.bookName.equals(BookName)){return b;}}return null;}public void ReturnBook(User U){User u;Book b;b=this.SearchBook();for(int i=0;i<b.BookUser.size();i++){u=(User) b.BookUser.elementAt(i);if(u==U){U.numBookBor--;b.BookUser.remove(i);b.surplus++;System.out.println("还书成功");return;}else {System.out.println("您不是这本书的借阅者,不能还书");return;}}System.out.println("找不到你要的书");}public void DeleteBook(){String BookName;Book b;System.out.println("请输入你要删除的书");BookName=sc.next();for(int i=0;i<this.book.size();i++){b=(Book)this.book.elementAt(i);if(b.bookName.equals(BookName)){if(b.BookUser.size()==0){this.book.remove(i);System.out.println("已经成功的删除书籍");}else {System.out.println("还有人尚未还书,不能够删除书籍");}}}}public void ShowBook(){Book b;for(int i=0;i<this.book.size();i++){b=(Book)book.elementAt(i);System.out.println((i+1)+"\t"+b.bookName+"\t"+b.auther+"\t" +b.bookNum+"\t"+b.depositTime.getYear()+"\t"+b.depositTime. getMonth()+"\t"+b.depositTime.getDay()+"\t"+b.surplus);}}public void ShowBook(Book b){System.out.println("\t"+b.bookName+"\t"+b.auther+"\t"+b.boo kNum+"\t"+b.depositTime.getYear()+"\t"+b.depositTime.getMon th()+"\t"+b.depositTime.getDay()+"\t"+b.surplus);}}User.javapackage pany;import java.util.Date;import java.util.Scanner;class User{public String name;public int numBookBor;//借书的数量//public Date borrowTime;public String Id;public Scanner sc=new Scanner(System.in); User(){}}class Students extends User{}//想想其实也不过如此class Undergraduate extends Students{Undergraduate(String sName,String id){=sName;this.Id=id;}Undergraduate(){System.out.println("请输入你的姓名:");=sc.next();System.out.println("请输入你的学号:");this.Id=sc.next();this.numBookBor=0;}}class Master extends Students{Master(String sName,String id){=sName;this.Id=id;}Master(){System.out.println("请输入你的姓名:");=sc.next();System.out.println("请输入你的学号:");this.Id=sc.next();this.numBookBor=0;}}class Teacher extends User{Teacher(String tName,String id){=tName;this.Id=id;}Teacher(){System.out.println("请输入你的姓名:");=sc.next();System.out.println("请输入你的工号:");this.Id=sc.next();this.numBookBor=0;}}Administrators/javapackage pany;import java.util.Scanner;public class Administrators {; private String passWod;Scanner sc=new Scanner(System.in);Administrators(){this.passWod="neu123";}public int getPassWord(){String passWord;for(int i=0;i<3;i++){System.out.println("请输入密码:");System.out.print("<<");passWord=sc.next();if( passWord.equals(this.passWod)){return 1;}else {System.out.println("密码错误,您还有"+(2-i)+"机会");}}return 0;}public void changePassWord(){String passWord;for(int i=0;i<3;i++){System.out.println("请输入原密码:\n<<");passWord=sc.next();if( passWord.equals(this.passWod)){System.out.println("请输入新密码:\n<<");this.passWod=sc.next();break;}else {System.out.println("密码错误,您还有"+(2-i)+"机会");}}}}。

数据库之图书管理系统实验报告

数据库之图书管理系统实验报告

《数据库技术》课程设计说明书设计题目:图书馆数据库系统 设计者:xxxxxxxxxxxxxxx指导教师:xx xxx完成时间:2011年12月31日目录引言 (3)编写目的 (3)背景 (3)任务理解 (4)课设目标 (4)系统基本功能模块 (4)书籍管理子系统 (5)读者管理子系统 (5)借阅管理子系统 (5)需求分析 (5)系统分析 (6)系统设计 (6)概念结构设计 (7)概念结构 (7)整体E-R图 (7)局部E-R图 (8)数据字典 (8)逻辑结构设计 (13)数据库的实施 (15)总体视图 (15)关系图截图 (16)数据载入 (16)结构查询 (19)表的查找 (21)更新表中记录 (22)插入表中记录 (23)删除 (24)创建视图 (25)创建触发器 (26)存储过程 (27)索引 (28)实验小结 (29)引言随着计算机技术的不断应用和提高,计算机已经深入到社会生活的各个角落。

学生对知识的可望有增无减,图书馆用手工管理图书的方法,不仅效率低、易出错、手续繁琐,而且耗费大量的人力。

为了满足其管理人员对图书馆书籍,读者资料,借还书等进行高效的管理,在工作人员具备一定的计算机操作能力的前提下,此图书管理系统软件力求提高其管理效率。

编写目的本文档的编写一方面是为了完善图书管理系统软件的开发途径和应用方法,以求在最短的时间高效的开发图书管理系统。

另一方面从另一个角度培养我们对SQL的运用,将学到的知识运用于实际生活中。

1)通过对应用问题的功能分析,掌握功能分解与模块设计的基本模式,建立总体设计的概念。

2)进一步提高建库、索引、查询、关联等数据库基本操作技术。

3)通过对功能模块的具体实现,得到面向对象的程序设计方法的初步训练。

4)通过分析、设计、实现的全过程训练,提高我们分析问题、解决问题的能力,培养我们的创新意识。

背景数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,使现在计算机信息系统和计算机运用系统的基础和核心,对与任何一个企业来说,数据是企业的重要资产,如何有效利用这些数据,对于企业发展起着及其重要的作用。

数据库课程设计(图书管理系统)实验报告

数据库课程设计(图书管理系统)实验报告

海南大学应用科技学院数据库系统原理课程设计报告————图书管理系统组长:学号:组员:学号:组员:学号:组员:学号:指导老师:起始时间:起始时间:目录第一章概述 (3)1.1项目背景 (3)1.2软件定义 (3)1.3编写目的 (3)1.4开发环境 (3)第二章需求分析 (4)2.1信息要求 (4)2.2处理要求 (7)2.3安全性与完整性要求 (8)第三章概念结构设计 (21)3.1流程图及数据字典 (21)3.2全局E-R图 (23)第四章逻辑结构设计 (24)4.1关系模式 (24)4.2基本表 (25)4.3视图 (30)4.4索引 (32)第五章数据库与表的创建与实施 (33)第六章主要模块设计及代码 (38)第七章总结 (41)第八章参考文献 (41)第一章概述1.1项目背景随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对图书信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,是与世界接轨的重要条件。

1.2编写目的记录图书借阅情况是非常繁琐工作。

使用计算机可以高速,快捷地完成工作.有鉴于此,开发一套图书馆信息管理系统,是十分必要的。

采用数据库技术开发的图书馆信息管理系统可以用来实现对图书的信息管理,可以提高管理的效率.图书馆都是封闭式管理,要求藏书全部公开开放,师生共享,开架阅览。

这种阅览方式是适合当前我国国情、发挥图书馆应用作用的最佳方式,也是素质教育的最好体现。

它充分发挥了图书馆的功效,最大限度地为师生服务,这也是图书馆自动化管理的最终目标。

实现这一目标,必须有现代化的管理手段和管理体制。

1.3 软件定义图书管理系统,是一个由人、计算机等组成的能进行管理信息的收集、传递、加工、保存、维护和使用的系统。

图书管理系统实验报告(共10篇)

图书管理系统实验报告(共10篇)

图书管理系统实验报告(共10篇)图书馆管理系统课程设计报告书图书馆管理系统班级:软件0801班小组成员:刘静蒋玲李辉姚华真日期:2011年1月10日第一章系统概述1.1系统背景当今时代是飞速发展的信息时代。

在各行各业中离不开信息处理,这正是计算机网被广泛应用于管理信息系统的外部环境。

计算机的最大好处在于利用它能够进行信息管理。

使用计算机进行信息处理,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

计算机进行信息管理与管理信息系统的开发密切相关,系统的开发是系统管理的前提。

本系统就是为了管理好图书馆信息而设计的。

图书馆作为一种信息资源的集聚地,图书和用户借阅资料繁多,包含很多的信息数据的管理。

本案例的问题定义是:为了减轻新生入学(或新员工入公司)、不断增加、修改图书给图书馆带来的不便而设计的。

图书馆管理系统是办公自动化不可缺少的一部分,是适应现代管理制度要求、推动学生学籍管理走向科学化、规范化的必要条件。

该软件最终的使用者是学校,公司,图书馆管理者,并提供以下的功能: 1. 默认页提供关于图书馆的基本信息;2. 图书馆管理者可以根据读者信息创建读者的帐户;3. 如果读者输入的电子邮件ID 在数据库中已存在,系统将显示错误页;4. 图书馆管理者必须先登录才能在了解图书馆的详细信息和自己的基本信息,并可以对图书进行添加、查找、修改、注销等的操作,还可对读者进行管理与归类;5. 读者必须先登录才能对图书进行借阅、归还、续借等操作。

1.2 可行性研究1.2.1 [技术条件方面的可能性]技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。

图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。

所使用的语言是C#和SQL之间连接,这是大家还比较熟悉的内容,可行性绝对可行。

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

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

课程设计实验报告课程名称:管理信息系统系(院):物流管理班级:14级指导教师:摘要随着人类社会的发展,人类对知识的需求也不断地增长。

在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置。

随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要。

因此结合开入式图书馆的要求,对Access数据库、SQL语言原理应用程序设计,数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。

系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、系统管理员、图书管理员和读者三方面的需要。

为了联系实际,考虑各层次学校的情况,软件本身要求易学,界面友好,容易掌握,可以较简单方便的管理各种图书信息;硬件的配置要求不能太高,这样可以很好的适应当前的学校图书馆。

系统的总体特点应该是方便、简单、实用。

关键词:SQL语言;管理;图书管理系统;分析;设计目录第一章绪论 (5)一、课题背景 (5)二、图书馆信息化管理 (5)第二章图书管理系统需求分析 (6)一、引言 (6)1、编写目的 (6)2、项目背景 (6)二、任务概述 (6)1、目标 (6)2、用户特点 (6)3、需求概述 (7)4、功能层次图 (7)三、数据描述 (8)1、数据 (8)2、动态数据 (8)3、数据库描述 (8)4、数据流图与数据字典 (8)四、功能需求 (11)1、功能划分 (11)2、功能描述 (11)五、性能需求 (11)1、数据精确度 (11)2、系统响应时间 (11)3、适应性 (11)六、运行需求 (12)1、用户界面 (12)2、硬件接口 (12)3、软件接口 (12)4、故障处理 (12)第三章图书馆管理系统数据库分析 (13)一、数据库 (13)二、用户数据 (13)三、源数据 (13)四、索引 (13)五、数据 (13)1、创建数据库 (13)2、数据库创建语句 (14)3、图书馆管理系统E-R (17)4、图书馆管理系统数据表清单 (18)第四章图书管理系统的功能实现 (20)一、登陆界面编码设计 (20)二、读者管理界面编码设计 (20)三、图书管理界面编码设计 (21)四、借阅信息管理界面编码设计 (22)第五章结论与体会 (23)参考文献 (23)第一章绪论一、课题背景随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要。

java图书馆管理系统实验报告

java图书馆管理系统实验报告

java图书馆管理系统实验报告Java图书馆管理系统实验报告一、引言图书馆是一个重要的知识资源中心,为读者提供各种书籍和资料,帮助他们获取知识和信息。

然而,传统的图书馆管理方式存在一些问题,如借阅过程繁琐、图书管理不便等。

为了解决这些问题,我们设计并实现了一个基于Java的图书馆管理系统。

二、系统需求分析1. 用户管理:系统需要提供用户管理功能,包括读者和管理员两种角色。

读者可以注册、登录、查询图书信息、借阅和归还图书等;管理员可以管理图书信息、读者信息、借阅记录等。

2. 图书管理:系统需要提供图书管理功能,包括图书的增加、删除、修改和查询等。

管理员可以根据图书的编号、名称、作者等信息进行查询和操作。

3. 借阅管理:系统需要提供借阅管理功能,包括读者的借阅记录、借阅期限的控制、逾期罚款等。

读者可以查询自己的借阅记录,管理员可以审核借阅申请、处理逾期情况等。

三、系统设计与实现1. 技术选型:我们选择使用Java语言进行系统的设计与实现。

Java具有跨平台性、面向对象的特点,适合用于开发图书馆管理系统这样的应用。

2. 数据库设计:我们使用MySQL数据库来存储系统的数据。

设计了读者表、图书表、借阅记录表等,并建立了相应的关系。

3. 界面设计:系统的界面采用了Java Swing技术来实现。

我们设计了用户登录界面、主界面、图书查询界面、借阅记录界面等。

4. 功能实现:根据系统需求,我们实现了用户管理、图书管理和借阅管理等功能。

通过编写相应的Java代码,实现了用户注册、登录、图书增删改查、借阅和归还等操作。

四、系统测试与评估1. 功能测试:我们对系统的各个功能进行了测试,包括用户注册、登录、图书查询、借阅和归还等。

测试结果显示系统的功能正常,能够满足用户的需求。

2. 性能评估:我们对系统的性能进行了评估,包括响应时间、并发处理能力等。

评估结果显示系统的性能良好,能够满足一般图书馆的需求。

3. 用户反馈:我们邀请了一些用户进行系统的使用,并收集了他们的反馈意见。

c语言图书管理系统实验报告

c语言图书管理系统实验报告

c语言图书管理系统实验报告C语言图书管理系统实验报告引言:图书管理系统是现代图书馆必备的管理工具,它通过计算机技术的应用,实现了图书的借阅、归还、查询等功能,提高了图书馆的管理效率。

本实验旨在通过使用C语言编写一个简单的图书管理系统,掌握C语言的基本语法和数据结构的应用。

一、系统需求分析在开始编写图书管理系统之前,我们首先需要明确系统的需求。

根据实际情况,我们确定了以下几个主要功能模块:1. 图书信息管理:包括图书的录入、修改、删除等操作。

2. 学生信息管理:包括学生的注册、借书、还书等操作。

3. 借阅记录管理:记录学生借阅图书的时间、归还时间等信息。

4. 查询功能:可以根据图书名称、作者、学生姓名等信息进行查询。

二、系统设计与实现1. 数据结构设计:为了实现图书管理系统的各项功能,我们需要定义一些数据结构,如图书信息结构体、学生信息结构体、借阅记录结构体等。

通过定义这些结构体,我们可以方便地对图书信息、学生信息进行管理和操作。

2. 主菜单设计:系统启动后,会显示一个主菜单,用户可以通过输入相应的数字选择不同的功能模块。

我们使用switch语句来实现主菜单的功能选择,确保用户可以根据自己的需求进行操作。

3. 功能实现:根据需求分析中确定的功能模块,我们逐一实现了相应的功能。

例如,对于图书信息管理模块,我们实现了图书的录入、修改、删除等功能。

对于学生信息管理模块,我们实现了学生的注册、借书、还书等功能。

通过合理的函数设计和调用,我们保证了系统的正常运行。

三、系统测试与优化在完成系统的设计与实现后,我们进行了一系列的测试。

通过输入不同的数据,测试系统的各项功能是否正常运行。

我们发现了一些问题,如输入错误时系统的错误提示不够友好、系统的响应速度较慢等。

为了解决这些问题,我们进行了相应的优化。

通过增加错误提示信息、优化算法等方式,提高了系统的用户体验。

四、总结与展望通过本次实验,我们掌握了C语言的基本语法和数据结构的应用。

mysql(图书管理系统实验报告)

mysql(图书管理系统实验报告)

数据库课程设计报告专业:微电子技术系班级:2940710820姓名:指导教师:成绩:2011年12月12日一、课程设计概述1.课程设计背景某大学图书馆开发一个图书管理系统,要求在读者登记处可以将读者的信息添加,信息系统中保存,当读者信息发生变化,对计算机内容进行修改,当读者办理退卡手续要删除此读者信息,图书管理负责图书和出版社的管理,读书借还处进行借书管理,还书管理,罚款处理,库存查询,图书排行榜,生成超期未还书的读者,进行通知.给不同用户设置不同权限,供用户访问数据库.2.编写目的让学生熟练掌握mysql中的创建数据库、创建表、显示、查询、select语句、视图、存储过程、创建检索、对表的添加、删除、修改和用户权限的设置等基本运用,并通过编写这个图书管理系统,来实际演练,达到融会贯通的效果。

3.软件定义Mysql是目前最流行的开源的中小型关系数据管理系统,目前被广泛的应用于internet 上得中小型网站中,它由mysql AB公司开发、发布并支持。

本实验用的是mysql 5.1版本4.开发环境本实验用的是mysql 5.1版本,windows2007二、需求分析1.问题的提出1:怎么通过mysql和信息之间的关系来创建图书管理系统的数据库及表?2:怎样来实现对插入读者信息并保存、修改及删除?3:怎么来实现对图书的管理?4:怎样实现对借书后在读书借还处添加读者借书信息和还书后删除读者借还处中的借书信息且更新图书管理处的图书数量?5:怎么实现对超期读者进行罚款操作和生成这些读者的名单,以方便通知?6:怎样实现图书的借书排行榜和查看库存书量?7:怎么样来根据不同用户对数据库的等级的不同来设置这些用户的权限?2.需要完成的功能及各部分功能概述1:读者登记建卡处的功能是对读者基本信息进行登记,读者信息发生变化对读者基本信息进行修改,读者要求退还借书卡时对读者信息进行删除等操作2:图书管理处的功能是对图书和出版社、作者、书价,数量,剩余书量进行管理更新。

图书管理系统实验报告

图书管理系统实验报告

图书管理系统1、用例图(1)借阅者用例图说明:借阅者能够通过该系统进行以下活动:1)查找图书:借阅者可以通过图书名称或ISBN/ISSN号查找图书的详细信息。

2)登录系统:借阅者能够通过校园卡编号和相关密码登陆自助机器,查询图书信息、个人信息和进行图书预订。

3)查询个人信息:每一个借阅者都可以通过自助机器在登录后查询自己的信息,但是不允许在未授权的情况下查询他人的信息。

为了防止有人蓄意查看他人信息,所以系统登录绑定手机号,每次借阅者登录系统时,自身的手机就会收到验证短信,只有输入验证码,才能登录系统。

4)预订图书:在登录自助机器后,借阅者可以预订相关书籍内容。

5)借阅图书:借阅者可以通过图书管理员借阅相关书籍。

6)归还图书:借阅者通过图书管理员归还书籍,如果未按时归还,需要缴纳罚金。

(2)图书管理员用例图说明:图书管理员能够通过该系统进行以下活动:1)处理借阅:借阅者可以通过图书管理员借阅书籍。

当图书管理员处理借阅时,需要检查用户的合法性,如果不合法,不允许借阅书籍,如果之前该图书已经被该借阅者预订,需要删除其预订信息。

2)处理归还:借阅者可以通过图书管理员归还书籍,当借阅者借阅的书籍超过一定的期限时,图书管理员需要收取罚金。

(3)系统管理员用例图说明:系统管理员能够通过该系统进行以下活动:1)查询书籍信息:系统管理员有权限去查询各种图书的信息。

2)添加书籍:书籍的添加时通过系统管理员进行的,图书添加时要输入书籍的详细信息。

3)删除书籍:书籍的删除也是通过系统管理员进行的,图书删除时书籍的所有信息都将被删除。

4)修改书籍:书籍的信息可以被系统管理员修改。

5)查询读者信息:系统管理员有权限去查询读者的信息。

6)添加读者:读者的添加是通过系统管理员进行的,读者被添加时要输入读者的详细信息。

例如新生开学和旁听生补办校园卡时,系统管理员需要更新读者数据库。

7)删除读者:读者的删除也是通过系统管理员进行的,读者被删除时读者的所有信息都将被删除。

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

图书管理系统实验报告一、问题描述有一个小型书库保管了大量图书,关于图书有大量信息需要处理,这些信息包括图书的分类、书名、作者名、购买日期、价格等。

现要求编写一个程序以便于对图书的管理。

基本要求:a.建立图书信息。

b.提供想找功能,按照多种关键字查找需要的书籍。

例如按书名查找,输入书名后,将显示出该图书的所有信息,或显示指定信息。

c.提供排序功能,按照多种关键字对所有的书籍进行排序,例如按出版日期进行排序。

d.提供维护功能,可以对图书信息进行添加、修改、删除等功能。

数据结构与算法分析数据存储结构可根据需要自选。

如:顺序表、单链表、双链表、栈等。

算法主要要求用到对数据的查询与排序算法。

二、概要设计有四个模块1)图书初始化输入图书的一些信息,编号、作者、书名、数量,使有一定的库存。

2)新书入库新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。

3)查询图书信息4)退出退出读书管理系统并保存图书信息。

三、算法设计进入系统后首先进行图书初始化,输入图书的信息。

1)采编入库否2)查询图书信息四、运行结果和调试分析图书信息初始化同一本新书入库的运行结果图不同的新书采编入库采编入库后查询图书信息的运行结果图借书借书后查询图书信息的运行结果图借同一本书的运行结果图退出五、总结体会虽然这次的程序是通过上网查出来的,但是通过这次的实验使我知道了图书管理系统的流程,知道了一些以前不知道的知识,在运行程序时也遇到了一些问题,借书时只能借一本书,再借书就不能显示是借了还是不能借,把最多能借书的数量改了一下还是不行,最后在每一个判断输出之后都加了goto END借书,就能正常借书了。

程序有点长,本来一个函数就能完成一个功能,他用了两个函数就我把自己能改成一个的改了。

借书系统比较复杂,不容易懂,和同学交流了一下自己看了看才明白。

这次的实验还让我复习了数据结构的一些知识,如数组,while语句,switch 语句,链表,还知道了如何使用system("cls")清屏,还知道了strcmp是用来比较字符串s1和s2大小的,strcpy使用来把字符串s2的值赋给s1的。

这次的实验增加了我们自己动手动脑的能力,希望多做一些这样的实验,很有意义,和现实生活结合的程序增加了我的兴趣。

源代码#include<stdio.h>#include <string.h>#include <stdlib.h>#include<conio.h>#define Max 4typedef struct book{char book_num[10];char book_name[20];char book_writer[10];int book_xy;int book_kc;struct book *next;}BK;typedef struct borrow{char borrow_book_num[10];char limit_date[8];}BO;typedef struct reader{char reader_num[10];char reader_name[10];int right;BO borrow[Max];struct reader *next;}RD;BK *h_book;RD *h_reader;void Login();int Menu();void Init();void Init_book();void Menu_select();void Insert_New_Book(); void Find_Book();void add_reader();void Print_reader();void Print_book();void Borrow_Book();void Return_Book();void Save();void Save_Book();void Save_Reader();void Load();void Load_Reader();void Load_Book();void Login(){system("cls");printf("\n\n\n\t\t***************************************\n"); printf("\n\n\n\t\t\t欢迎使用图书管理系统\n");printf("\n\n\n\t\t***************************************\n"); printf("\n\n\t\t本程序制作人王学号:\n\n\n\n\n\n\n");printf("\n\n\n\t\t 按任意键进入系统...");getch(); system("cls");}int Menu() /*主菜单*/{ int dm;printf("\n\t\t图书管理系统主菜单\n");printf("=================================================\n"); printf("*\t0----退出系统 \n");printf("*\t1----采编入库 \n");printf("*\t2----登记读者 \n");printf("*\t3----借阅登记 \n");printf("*\t4----还书管理 \n");printf("*\t5----查询图书信息 \n");printf("*\t6----查询读者信息 \n");printf("=================================================\n"); printf("请选择相应的代码:");for(;;){ scanf("%d",&dm); //dm输入的数字if(dm<0||dm>6)printf("\n错误!请重新输入:");else break;}return dm;}void Menu_select()/*主菜单选择函数*/{for(;;){switch(Menu()) /*功能选择*/{ case 0:system("cls");Save();printf("\n\n\t文件保存成功!\n");printf("\n\n\t欢迎下次使用本系统!\n");getch();exit(0);case 1:Insert_New_Book();break;case 2:add_reader();break;case 3:Borrow_Book();break;case 4:Return_Book();break;case 5:Print_book();break;case 6:Print_reader();break;default:printf("\n错误!");exit(0);}}}void Init() /*初始化*/{BK *p0;printf("\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n"); p0=(BK*)malloc(sizeof(BK));h_book=p0;printf("\n请输入图书信息:\n");printf("图书编号:"); /*输入图书编号(唯一)*/scanf("%s",p0->book_num);printf("图书名称:"); /*输入图书名称*/scanf("%s",p0->book_name);printf("图书作者:"); /*输入图书作者*/scanf("%s",p0->book_writer);printf("图书数量:"); /*输入图书数量*/scanf("%d",&p0->book_kc);p0->book_xy=p0->book_kc; /*开始时图书现有量和库存量相等*/ p0->next=NULL;printf("\n图书信息初始化完毕!按任意键继续下一步操作..\n");getch();system("cls");}void Insert_New_Book()/*新书入库*/{BK *p,*p0,*p1;p=p1=h_book;printf("\n新书入库模块...\n");printf("\n请输入新书信息..\n包括书号.书名.数量..\n");p0=(BK *)malloc(sizeof(BK));printf("图书编号:");scanf("%s",p0->book_num);while(strcmp(p0->book_num,p1->book_num)!=0&&p1->next!=NULL)p1=p1->next;if(strcmp(p0->book_num,p1->book_num)==0) /*此处分两种情况,若图书编号存在,则直接进库,只须输入书的数量*/{printf("\n此编号图书已存在!!直接入库!\n");printf("图书数量:");scanf("%d",&p0->book_kc);p1->book_kc+=p0->book_kc;p1->book_xy+=p0->book_kc;}else/*若不存在,则需要输入其他的信息,然后在进行插入操作*/{printf("图书名称:");scanf("%s",p0->book_name);printf("图书作者:");scanf("%s",p0->book_writer);printf("图书数量:");scanf("%d",&p0->book_kc);//库存数量while(p->next){ p=p->next; }if(h_book==NULL) h_book=p0; /*此处分两种情况,链表中没有数据,head 直接指向p0处*/else p->next=p0; /*此处分两种情况,链表中有数据,链表中最后元素的next指向p0处*/p0->next=NULL;p0->book_xy=p0->book_kc;}printf("\n新书入库完毕!按任意键继续下一步操作..\n");getch();system("cls");void add_reader()/*添加读者*/{ RD *p0;int i;printf("\n读者初始化开始,请输入读者信息..\n包括书证号.姓名..\n"); p0=(RD*)malloc(sizeof(RD)); /*申请新结点存储空间*/h_reader=p0;printf("\n请输入读者的信息:\n");printf("读者书证号:");scanf("%s",p0->reader_num);printf("读者姓名:");scanf("%s",p0->reader_name);p0->right=0;for(i=0;i<Max;i++){strcpy(p0->borrow[i].borrow_book_num,"0"); /*所借图书直接置为(即没有借书)*/strcpy(p0->borrow[i].limit_date,"0");}p0->next=NULL;printf("\n读者信息初始化完毕!按任意键继续下一步操作..\n");getch();system("cls");}void Borrow_Book() /*借书模块*/{BK *p0; RD *p1;char bo_num[10],rea_num[10],lim_date[8];int i;p0=h_book; p1=h_reader;printf("\n借书模块...\n");printf("\n请输入借书的读者书证号:");scanf("%s",rea_num);while(p1->next!=NULL&&strcmp(rea_num,p1->reader_num)!=0)p1=p1->next;if(p1->next==NULL&&strcmp(rea_num,p1->reader_num)!=0){printf("\n此读者编号不存在!按任意键返回..\n");goto END;}printf("\n请输入你要借的书的编号:");scanf("%s",bo_num);while(strcmp(bo_num,p0->book_num)!=0&&p0->next!=NULL)p0=p0->next;if(p0->next==NULL&&strcmp(bo_num,p0->book_num)!=0){printf("\n此图书编号不存在!按任意键返回..\n");goto END;}else if(p0->book_xy<=0){printf("\n抱歉,此书已借完!请等待新书的到来!!\n按任意键返回...."); goto END;}else if(p1->right>Max||p1->right==Max){printf("\n不好意思,借书数目已满!不能借书!\n按任意键返回....");goto END;}else if(strcmp(p1->borrow[0].borrow_book_num,"0")!=0){for(i=0;i<Max;i++){if(strcmp(p1->borrow[i].borrow_book_num,bo_num)==0){printf("\n抱歉!同一个读者不能同借两本相同的书!\n按任意键返回....");goto END;}else if(strcmp(p1->borrow[i].borrow_book_num,"0")==0){printf("\n请输入你要归还图书的日期:");scanf("%s",lim_date);strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); strcpy(p1->borrow[p1->right-1].limit_date,lim_date);p0->book_xy--;p0->book_kc--;printf("\n读者编号%s借书完毕!按任意键继续下步操作..",p1->reader_num);goto END;}}else{printf("\n请输入你要归还图书的日期:");scanf("%s",lim_date);strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); strcpy(p1->borrow[p1->right-1].limit_date ,lim_date );p0->book_xy--;p0->book_kc--;printf("\n读者编号%s借书完毕!按任意键继续下步操作..",p1->reader_num);}END:getch(); system("cls");}void Return_Book() /*还书模块*/{BK *p; RD *q;int i,j,find=0;char return_book_num[10],return_reader_num[10];p=h_book; q=h_reader;printf("\n还书模块...\n");printf("\n请输入要还书的读者编号:");scanf("%s",return_reader_num);while(q->next!=NULL&&strcmp(return_reader_num,q->reader_num)!=0) q=q->next;if(q->next==NULL&&strcmp(return_reader_num,q->reader_num)!=0){find=2;printf("\n此读者编号不存在!按任意键返回..\n");goto end;}printf("\n请输入读者还书的编号:");scanf("%s",return_book_num);while(p->next!=NULL&&strcmp(return_book_num,p->book_num)!=0)p=p->next;if(p->next==NULL&&strcmp(return_book_num,p->book_num)!=0){find=2;printf("\n错误!此图书编号不存在!按任意键返回..\n");goto end;for(i=0;i<Max;i++)if(strcmp(return_book_num,q->borrow[i].borrow_book_num)==0) /*如果此读者借了此书*/{find=1;for(j=i;j<Max-1;j++){strcpy(q->borrow[j].borrow_book_num,q->borrow[j+1].borrow_book_num); strcpy(q->borrow[j].limit_date,q->borrow[j+1].limit_date);}strcpy(q->borrow[Max-1].borrow_book_num,"0");strcpy(q->borrow[Max-1].limit_date,"0");p->book_xy++;p->book_kc++;q->right--;printf("\n编号%s的读者还书完毕!按任意键继续下步操作..",return_reader_num);}if(find==0)printf("\n错误!此读者未借此书!按任意键返回..\n");end: getch(); system("cls");}void Print_book() /*查询图书信息*/{BK *p;p=h_book;printf("\n图书信息如下:\n\n");printf("图书编号\t图书名称\t图书作者\t现有\t\t库存\n");while(p!=NULL){printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",p->book_num,p->book_name,p->book_w riter,p->book_xy,p->book_kc);p=p->next;}printf("\n图书信息打印完毕!按任意键继续下一步操作..");getch();system("cls");}void Print_reader() /*查询读者信息*/{RD *p;int i;p=h_reader;printf("\n读者信息如下:\n\n");printf("读者书证号\t\t读者姓名\n");printf("\n");while(p!=NULL){printf("\t%s\t\t%s",p->reader_num,p->reader_name);for(i=0;i<Max;i++){printf("\n");printf("图书编号",i+1);printf("\t还书日期",i+1);printf("\n");printf("\t%s",p->borrow[i].borrow_book_num);printf("\t\t%s",p->borrow[i].limit_date);}printf("\n");p=p->next;}printf("\n读者信息打印完毕!按任意键继续下一步操作..");getch();system("cls");}void Save() /*保存信息*/{Save_Reader();Save_Book();}void Save_Reader() /*保存读者信息*/{FILE *fp_reader;RD *p,*p0;p=h_reader;if((fp_reader=fopen("Reader.txt","wb"))==NULL) /*创建文件,进行保存*/ {printf("\n文件保存失败!\n请重新启动本系统...\n");exit(0);}while(p!=NULL){if(fwrite(p,sizeof(RD),1,fp_reader)!=1) /*将链表中的信息写入文件中*/printf("\n写入文件失败!\n请重新启动本系统!\n");p0=p;p=p->next;free(p0); /*释放所有结点*/}h_reader=NULL;fclose(fp_reader); /*关闭文件*/}void Save_Book() /*保存图书信息*/{FILE *fp_book; /*创建文件型指针*/BK *p,*p0;p=h_book;if((fp_book=fopen("Book.txt","wb"))==NULL) /*创建文件,进行保存*/ {printf("\n文件保存失败!\n请重新启动本系统...\n");exit(0);}while(p!=NULL){if(fwrite(p,sizeof(BK),1,fp_book)!=1) /*将链表中的信息写入文件中*/printf("\n写入文件失败!\n请重新启动本系统!\n");p0=p;p=p->next;free(p0);}h_book=NULL;fclose(fp_book); /*关闭文件*/}void Load() /*加载信息*/{Load_Reader();Load_Book();}void Load_Reader() /*加载读者信息*/{RD *p1,*p2,*p3;FILE *fp; /*创建文件型指针*/fp=fopen("book.txt","rb"); /*打开文件*/ p1=(RD *)malloc(sizeof(RD));fread(p1,sizeof(RD),1,fp);h_reader=p3=p2=p1;while(! feof(fp)) /*读出信息,重新链入链表*/ { p1=(RD *)malloc(sizeof(RD));fread(p1,sizeof(RD),1,fp);p2->next=p1;p3=p2;p2=p1;}p3->next=NULL;free(p1);fclose(fp); /*关闭文件*/}void Load_Book() /*加载图书信息*/{BK *p1,*p2,*p3;FILE *fp; /*创建文件型指针*/fp=fopen("Book.txt","rb"); /*打开文件*/p1=(BK *)malloc(sizeof(BK));fread(p1,sizeof(BK),1,fp);h_book=p3=p2=p1;while(! feof(fp)) /*读出信息,重新链入链表*/ { p1=(BK *)malloc(sizeof(BK));fread(p1,sizeof(BK),1,fp);p2->next=p1;p3=p2;p2=p1;}p3->next=NULL;free(p1);fclose(fp); /*关闭文件*/}void main(){FILE *fp_book,*fp_reader; /*创建文件型指针*/Login();if((fp_book=fopen("Book.txt","rb"))==NULL||(fp_reader=fopen("Reader.txt" ,"rb"))==NULL){ Init(); }else Load();Menu_select(); /*调用主菜单*/}#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define MAX 100typedef struct book{char book_num[10];char book_name[20];char book_writer[20];int book_amount;struct book *next;}BOOK;BOOK *head;void Login();int Menu();void Init();void Init_book();void Menu_select();void Insert_New_Book();void Find_Book();void add_reader();void Print_reader();void Print_book();void Borrow_Book();void Return_Book();void Save();void Save_Book();void Save_Reader();void Load();void Load_Reader();void Load_Book();void Login(){system("cls");printf("\n\n\t\t***************************************\n");printf("\n\n\t\t\t欢迎使用图书管理系统\n");printf("\n\n\t\t***************************************\n");printf("\n\n\t\t 按任意键进入系统...");getch();system("cls");}int Menu() /*主菜单*/{int fanction;printf("\n\t\t图书管理系统主菜单\n");printf("=================================================\n");printf("*\t0----退出系统 \n");printf("*\t1----采编入库 \n");printf("*\t2----登记读者 \n");printf("*\t3----借阅登记 \n");printf("*\t4----还书管理 \n");printf("*\t5----查询图书信息 \n");printf("*\t6----查询读者信息 \n");printf("=================================================\n");printf("请选择相应的代码:");for(;;){scanf("%d",&fanction); //dm输入的数字if(fanction<0||fanction>6)printf("\n错误!请重新输入:");else break;}return fanction;}void Menu_select()/*主菜单选择函数*/{for(;;){switch(Menu()) /*功能选择*/{case 0:system("cls");Save();printf("\n\n\t文件保存成功!\n");printf("\n\n\t欢迎下次使用本系统!\n");getch();exit(0);case 1:Insert_New_Book();break;case 2:add_reader();break;case 3:Borrow_Book();break;case 4:Return_Book();break;case 5:Print_book();break;case 6:Print_reader();break;default:printf("\n错误!");exit(0);}}}void Init() /*初始化*/{BOOK *p0;printf("\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n");p0=(BOOK*)malloc(sizeof(BOOK));head=p0;printf("\n请输入图书信息:\n");printf("图书编号:"); /*输入图书编号(唯一)*/ scanf("%s",p0->book_num);printf("图书名称:"); /*输入图书名称*/scanf("%s",p0->book_name);printf("图书作者:"); /*输入图书作者*/scanf("%s",p0->book_writer);printf("图书数量:"); /*输入图书数量*/scanf("%d",&p0->book_amount);p0->next=NULL;printf("\n图书信息初始化完毕!按任意键继续下一步操作..\n");getch();system("cls");}void Insert_New_Book()/*新书入库*/{BOOK *p,*p0,*p1;p=p1=head;printf("\n新书入库模块...\n");printf("\n请输入新书信息..\n包括书号.书名.数量..\n");p0=(BOOK *)malloc(sizeof(BOOK));printf("图书编号:");scanf("%s",p0->book_num);while(strcmp(p0->book_num,p1->book_num)!=0&&p1->next!=NULL){p1=p1->next;}if(strcmp(p0->book_num,p1->book_num)==0) /*此处分两种情况,若图书编号存在,则直接进库,只须输入书的数量*/{printf("\n此编号图书已存在!!直接入库!\n");printf("图书数量:");scanf("%d",&p0->book_amount);p1->book_amount+=p0->book_amount;}else/*若不存在,则需要输入其他的信息,然后在进行插入操作*/{printf("图书名称:");scanf("%s",p0->book_name);printf("图书作者:");scanf("%s",p0->book_writer);printf("图书数量:");scanf("%d",&p0->book_amount);//库存数量while(p->next){p=p->next;}if(head==NULL)head=p0; /*此处分两种情况,链表中没有数据,head直接指向p0处*/else p->next=p0; /*此处分两种情况,链表中有数据,链表中最后元素的next指向p0处*/p0->next=NULL;}printf("\n新书入库完毕!按任意键继续下一步操作..\n");getch();system("cls");}void Print_book() /*查询图书信息*/{BOOK *p;p=head;printf("\n图书信息如下:\n\n");printf("图书编号\t图书名称\t图书作者\t库存\t");while(p!=NULL){printf("%s\t\t%s\t\t%s\t\t%d\t\n",p->book_num,p->book_name,p->book_write r,p->book_amount);p=p->next;}printf("\n图书信息打印完毕!按任意键继续下一步操作..");getch();system("cls");}void Save() /*保存信息*/{FILE *fp_book; /*创建文件型指针*/BOOK *p,*p0;p=head;if((fp_book=fopen("Book.txt","wb"))==NULL) /*创建文件,进行保存*/{printf("\n文件保存失败!\n请重新启动本系统...\n");exit(0);}while(p!=NULL){if(fwrite(p,sizeof(BOOK),1,fp_book)!=1) /*将链表中的信息写入文件中*/printf("\n写入文件失败!\n请重新启动本系统!\n");p0=p;p=p->next;free(p0);}head=NULL;fclose(fp_book); /*关闭文件*/}void Load() /*加载信息*/{BOOK *p1,*p2,*p3;FILE *fp; /*创建文件型指针*/fp=fopen("Book.txt","rb"); /*打开文件*/p1=(BOOK *)malloc(sizeof(BOOK));fread(p1,sizeof(BOOK),1,fp);head=p3=p2=p1;while(! feof(fp)) /*读出信息,重新链入链表*/{ p1=(BOOK *)malloc(sizeof(BOOK));fread(p1,sizeof(BOOK),1,fp);p2->next=p1;p3=p2;p2=p1;}p3->next=NULL;free(p1);fclose(fp); /*关闭文件*/}void main(){FILE *fp_book; /*创建文件型指针*/ Login();if((fp_book=fopen("Book.txt","rb"))==NULL){ Init(); }else Load();Menu_select(); /*调用主菜单*/}六.附录:带注释的源程序。

相关文档
最新文档