毕业设计(论文)_图书管理系统毕业设计.doc_第1页
毕业设计(论文)_图书管理系统毕业设计.doc_第2页
毕业设计(论文)_图书管理系统毕业设计.doc_第3页
毕业设计(论文)_图书管理系统毕业设计.doc_第4页
毕业设计(论文)_图书管理系统毕业设计.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学高等教育自学考试 1 继续教育学院综合作业报告继续教育学院综合作业报告 二一年五月十五日 课程名称:课程名称: 图书管理系统 考考 号:号: 姓姓 名:名: 专专 业:业: 计算机及应用 单 位: 山西计算机科技学院 指导老师:指导老师: 成成 绩:绩: 优 良 中 及格 不及格 太原理工大学高等教育自学考试 2 摘 要 本文首先介绍了数据库管理系统 (dbms)的基本概念及关系模型等。然后对问题 的来源进行深入分析,指出 图书借阅者、图书馆工作人员和图书馆管理人员 是问题主 要来源,并指出本数据管理系统的实用性功能就是 管理好图书馆信息,提高工作效率, 避免数据处理手工操作,工作量大,出错率高 的弊端。接着对需求分析进行细致的分 析,特别对图书借阅者、图书馆工作人员和图书馆管理人员 三者权限进行分配。接着 对系统功能模块进行分析,指出本系统功能模块主要分为 “图书资料管理”模块、 “学生资料管理”模块、“借还书操作”模块。总的来说,本图书管理系统,介绍了 该系统组成结构、功能特点、使用原理和方法,本系统实现了系统登陆、图书管理、 学生管理图书的借阅与归还、图书借阅排行榜和查看逾期未还图书以及各种信息的 打 印等功能。有了这个系统就使图书馆的工作变得简单了许多,使图书馆的图书管 理形 成了一个整体自动化管理模式。 管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新 型 学科,企业要生存要发展,要高效率地把企业活动有机地组织起来,就必须加强 企业 管理,即加强对企业内部的各种资源(人、财、物等)的有效管理,建立与自 身特点 相适应的管理信息系统。图书馆管理系统是典型的信息管理系统,其开发主 要包括后 台数据库的建立和维护以及前端的应用程序的开发两个方面。对于前者要 求建立数据 的一致性和完整性,对于后者则要求应用程序功能的完备,易用等的特 点。基于上述 考虑本系统主要利用microsoft visual studio 2005 作前端的应用开发工具 ,利用 sql server 2000 作为后台的数据库,利用windows 作为系统平台开发的图书管理系 统。另外本图书馆管理系统利用软件工程化思想和方法,总体上是 采用结构化生命法 进行系统分析和设计的,而系统实现等步骤则采用了原型法和面 对对象的方法。 关键词关键词:c#程序设计语言, sql server 2000,软件工程 太原理工大学高等教育自学考试 3 目录目录 摘摘 要要.2 第第 1 1 章章 基础理论知识基础理论知识.5 1.1 数据库应用系统开发简介.5 1.2 数据库管理系统.5 1.3 microsoft visual studio 2005 简介6 1.4 c#语言简介.6 .1 c#c#中中 oopoop 概述概述6 .2 面向对象的面向对象的 c#c# 编程编程.8 .3 接口与继承接口与继承12 第二章第二章 系统开发背景系统开发背景.14 第三章第三章 需求分析需求分析.15 3.1 应用需求分析.15 3.2 实际需求分析 .15 第四章第四章 可行性分析可行性分析.16 4.1 环境可行性分析.16 4.2 面向对象的程序分析.16 第五章第五章 系统概要设计系统概要设计.17 5.1 模块分析.17 .1 功能模块图功能模块图17 5.2 模块分析.17 .1 “图书资料管理图书资料管理”模块模块17 .2 “学生资料管理学生资料管理”模块模块18 .3 “借还书操作借还书操作”模块模块18 第六章第六章 详细设计详细设计.18 6.1 设计创建数据库.18 .1 设计数据库设计数据库18 .2 创建数据库创建数据库19 6.2 创建系统主程序.22 6.3 创建系统常用类.22 .1 创建创建“移动记录工具栏移动记录工具栏”类类23 .2 创建创建“命令按钮工具栏命令按钮工具栏”类类23 6.4 创建登录表单.23 .1 系统主表单的功能系统主表单的功能23 .2 创建系统主表单界面创建系统主表单界面24 .4.3. 新书入库新书入库25 太原理工大学高等教育自学考试 4 .4 图书借阅图书借阅26 .5 图书归还图书归还27 .6 图书信息查询图书信息查询28 .7 图书信息修改图书信息修改29 .8 旧书销毁旧书销毁30 .9 图书证的办理及证件信息修改图书证的办理及证件信息修改32 .10 证件挂失与注销证件挂失与注销.32 .11 图书类别信息排行图书类别信息排行33 .12 库存外借信息库存外借信息34 .13 图书借阅排行榜图书借阅排行榜35 第七章第七章 结果分析结果分析.36 项目学习心得体会项目学习心得体会.37 结结 束束 语语.38 致致 谢谢.39 太原理工大学高等教育自学考试 5 第第 1 1 章章 基础理论知识基础理论知识 1.11.1 数据库应用系统开发简介数据库应用系统开发简介 在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的 结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认 识。 数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要 过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为 实际的数据库,并且这些数据库带有功能完备、高效能的应用。 数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于 60 年代, 40 多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实 用系统。并且,近年来,随着 world wide web(www)的猛增及 internet 技术的迅 速发展,使得数据库技术一时成为最热门技术之一。 1.21.2 数据库管理系统数据库管理系统 数据库管理系统(dbms)是指数据库系统中管理数据的软件系统。dbms 是 数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制, 都是通过 dbms 进行的。dbms 总是基于某种数据模型,可以把 dbms 看成是某 种数据模型在计算机系统上的具体实现。根据数据模型的不同,dbms 可以分成层 次型、网状型、关系型、面向对象型等。sql server 2000 就是一种关系型数据库 管理系统。 关系模型。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联 系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类 型,它的实例称为关系,每个关系实际上是一张二维表格。 关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表 格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化 模型。sql 语言是关系数据库的标准化语言,已得到了广泛的应用。 太原理工大学高等教育自学考试 6 1.31.3 microsoftmicrosoft visualvisual studiostudio 20052005 简介简介 2005 年,微软发布了 visual studio 2005。.net 字眼从各种语言的名 字中被抹去,但是这个版本的 visual studio 仍然还是面向 .net 框架的 (版本 2.0) 。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的 手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。这 个版本的 visual studio 包含有众多版本,分别面向不同的开发角色。同时还 永久提供免费的 visual studio express 版本 运行库实际上在组件的运行时和开发时操作中都起到很大的作用,尽管 名称中没有体现这个意思。在组件运行时,运行库除了负责满足此组件在其他 组件上可能具有的依赖项外,还负责管理内存分配、启动和停止线程和进程, 以及强制执行安全策略。在开发时,运行库的作用稍有变化;由于做了大量的 自动处理工作(如内存管理),运行库使开发人员的操作非常简单,尤其是与今 天的 com 相比。特别是反射等功能显著减少了开发人员为将业务逻辑转变为 可重用组件而必须编写的代码量。 1.41.4 c#c#语言简介语言简介 c#(c sharp)是微软于 2000 年提出的一种源于 c+、类似于 java 的面向对象 编程语言,适合于分布式环境中的组件开发。c# 是专门为.net 设计的,也是. net 编程的首选语言。 .1 c#c#中中 oopoop 概述概述 程序设计语言,在思想上发展很快,在技术上也是不断创新。经历了手工操作 (控制面板) 、机器语言、汇编语言、宏汇编语言、高级语言和第 4 代语言等多个 阶段。oop 只是在高级程序设计语言中,流行的多种编程技术之一。 1基本特征 面向对象编程的三个基本特征是: 封装(encapsulation) 是对问题的抽象,以达到信息隐藏的目的。通 过类和对象,将属性(数据/变量)和方法(操作/函数)封装在一个黑箱内, 太原理工大学高等教育自学考试 7 将细节隐藏起来。既可以保护数据不被他人恶意或大意地修改,又能防止 其他程序员编写高耦合度的代码,还方便了今后对对象内部的修改和升级。 继承(inheritance) 利用问题和事物的相似性,通过类的(多层)继 承机制,可以达到减少软件开发难度和重用已有对象的属性和方法之目的。 多态(polymorphism) 同一操作或响应,可以同时针对多个可选的类 型和对象,并且能够自动在它们中间选择最合适的来进行。多态可以分为: 编译时多态:包括函数和运算符的重载(overload) ,通过早期的静态 绑定(binding)来实现。 运行时多态:通过继承结合晚期动态绑定来实现用同一基类的指 针,可以访问各个不同派生类中的同名方法和函数。 2基本概念 面向对象编程的基本概念(类似的概念多、表达不够准确、各处的用法各异): 抽象(abstraction) 一个问题的本质特征。忽略一个对象的细节,致 力于一般的合适级别的程序能力。抽象是在事物的周围绘制透明的盒子, 是定义事物接口的行为。 信息隐藏(information hiding) 限制外部对类属性(数据成员)的访 问。 封装(encapsulation) 将某种保密和隐匿应用到类中的数据和一些方 法(函数或子例程)上。封装确保一个对象只能通过确定的渠道(即类的 公用方法)才可被修改。封装意味着将数据及相关函数打包到一个单一的 单元(类)中。每个对象暴露一个接口(公用方法) ,规定其他对象可以如 何读取或修改它。 类(class) 问题的抽象,对象的模版,接口的实现。例如 int 是整数 的模版、cpoint 是点的模版。 对象(object) 问题中的事物,类的实例(变量) ,拥有数据和功能。 太原理工大学高等教育自学考试 8 若 int i; cpoint p; 则 i 是 int 的实例变量,p 是 cpoint 的实例对象。 实例(instance) 一个对象,是某个类的示例。 实例化(intantiate) 由类定义创建对象。 继承(inheritance) 创建子类的机制,一种“is a”或“is like”关系, 形成类层次结构。是 oop 中对象重用的核心概念。 子类(subclass) 继承自另一个类的派生类(derived class) 。 超类(superclass 父类) 被另一个类继承的基类(base class) 。 虚函数(virtual function) 可以在子类中被覆盖(override)的函数。 纯虚函数(pure virtual function) 只有声明没有定义的函数,必须在 派生类中被覆盖。 抽象类(abstract class) 至少包含一个纯虚函数的类,不能被实例化。 具体类(concrete class) 可以实例化的类,不包含纯虚函数。 接口(interface) 纯抽象的类,类的模版。接口中的所有的方法(成 员函数)都只有声明,没有定义(都是纯虚函数) 。必须在接口的派生类中, 实现接口的全部方法。接口可以看成是一个,定义了一套内部行为的,若 干操作特征标记的集合。 (在 c+中,也把类的公用成员函数叫做接口) 。 属性(attribute) 类和接口中的数据信息,又叫数据成员(data member)或成员变量(member variable) 。属性是类知道的事物。 方法(method) 类操作的实现,又叫成员函数(member function) 。 方法是类要做的事情。 (在 c+中,也把虚函数叫做方法) 。 重载(overload) 一个类中的,参数的数目、类型或排列顺序不同的 多个同名方法(成员函数) 。 覆盖(override) 在子类中重新定义(与父类中的定义有区别的)属 性和方法。 持久化(persistence) 将对象存入永久存储中(如文件、数据库等) 。 持久对象(persistent object) 存入永久存储的对象。 .2 面向对象的面向对象的 c#c# 编程编程 1类 类类型定义包含数据成员、函数成员和嵌套类型的数据结构,其中数据成员包 太原理工大学高等教育自学考试 9 括常量和字段,函数成员包括方法、属性、事件、索引器、运算符、实例构造函数、 析构函数和静态构造函数。类类型支持继承,继承是派生类可用来扩展和专门化基 类的一种机制。 功能与 c+/cli 的可见性说明符类似,只是增加了 static 修饰符。 partial(分部的)用于定义分部类、结构和接口等对象类型,即将它们的定义 分成多个部分,保存到多个代码文件中。这是 c# 2.0 新引进的功能,用于解决大 型对象类型的定义问题,因为 c# 不支持类体之外的方法和函数体定义。 (1)访问修饰符 类成员可以有如下访问修饰符(access modifiers): public(公用的)访问无限制。 protected(保护的)只可被包含类(containing class)或其派生的类型 访问。 internal(内部的)只能被此程序访问。 protected internal(保护内部的)只能被此程序或其包含类所派生的 类型访问。 private(私有的)只能被其包含类访问,为默认的。 c# 类的 public、protected、private 等成员修饰符,每次只能修饰一个成员,直 接位于成员声明的开始处,而且没有冒号分隔符。而不是像 c+那样,一个修饰符 可以修饰位于其后(直到下一个修饰符为止)的若干成员。 (2)数据成员 类的数据成员(data member)有: 属性 常量修饰符 const 标识符 = 常量表达式 , ; 其中,常量修饰符有:new、public、protected、internal、private 及它们的有效 组合。 类的数据成员可以是静态数据(使用了 static 修饰符) ,也可以是实例数据(未 使用 static 修饰符) 。静态数据为类的所有实例对象所共有,而实例数据则每个实 例对象都自己的副本。常量默认是(总是)静态的。 字段还可以是只读的(使用了 readonly 关键字,这是 c# 新增的)和易变的 (使用了 volatile 关键字,字段值一般位于 cpu 中的寄存器中,高效但是有效期短 太原理工大学高等教育自学考试 10 暂) 。 (3)函数成员 类的函数成员(function member)有: 属性(property)提供对对象或类的特性(characteristic)进行访问的 成员。声明格式为: 其中,属性修饰符与方法修饰符相同,访问修饰符有 protected、internal、private、protected internal 和 internal protected,与类成 员的普通访问修饰符相比,没有 public、多了 internal protected(内部保护 的) 。 事件(event)定义该类可生成的通知(notifications) 。在发生某些行 为时,可让对象通知程序。客户程序可以调用事件处理程序代码来响应该 事件。声明格式为: 其中,事件修饰符与方法修饰符相同。 索引器(indexer)允许对象像数组一样被索引的一种成员。声明格式 为: 其中,索引器修饰符与方法修饰符类似,只是少了 static。 用户定义的运算符(operator)运算符重载函数。声明格式为: 构造函数(constructor)包括实例构造函数和静态构造函数。 实例构造函数(instance constructor)实现初始化一个类实例所需 的行为,会在创建每个类实例时被系统调用。注意:因为 c# 会自动 给字段初始化,所以构造函数在 c# 中的作用没有在 c+的大。格式 为:类型名(参数列表); 注意:即使调用没有任何参数的默认构造函数,也不能省去后面的圆 括号“()” ,不然是语法错误。例如:a a = new a(); 静态构造函数(static constructor)实现初始化一个类所需的行为, 会在程序装入时被系统调用。为类编写无参数的具体构造函数是 c# 的一个新特征,主要用于类的静态字段或属性的运行时初始化。格式 为: static 类型名(参数列表); 太原理工大学高等教育自学考试 11 终结器(finalizer)在 c# 的旧版本中叫析构函数(destructor) ,但由 于引用类型的对象是位于具有垃圾内存自动回收功能的 clr 堆上,所以 c# 中的析构函数的功能与 c+的很不一样。为了与 c+的析构函数有所 区别,在 c# 的新版本中,改叫终结器。格式(与 c+的析构函数相同) 为:类型名();。 2结构 c# 中的结构(struct)与 c+中的类似,也可以封装数据和函数(属性和行为) ,是一种轻量级的类。但是它与 c# 的(位于 clr 堆中的)类(为引用类型)不 同,它是一种(位于局部栈中的)值类型。 1)结构与类的区别 c# 中的结构与类的区别有: 结构是值类型,而类是引用类型。 结构是密封的(sealed) ,因此不能被继承。 结构不能继承类和其他的结构。 结构隐式地继承了 system.valuetype 类型。 结构的(无参数)默认构造函数不能被自定义的构造函数取代。 结构的自定义的构造函数,必须初始化结构中全部成员的值。 结构没有析构函数。 不允许初始化结构的字段,但是可以初始化结构的常量成员。 2)结构声明 结构的完整声明格式为: 其中,结构的修饰符与枚举修饰符相同: new、public、protected、internal、private,但是与类的有所不同:因为 c# 的结构 不支持继承,所以没有类的 sealed 和 abstract 修饰符;也没有 static 修饰符;还与 c+一样,结构的默认修饰符为 public(类的默认修饰符为 private) 。 结构成员声明与类的基本相同,只是没有 finalizer-declaration(终结器声明,即 析构函数定义) 。 c# 的结构和类一样,其 public、protected、private 等成员修饰符,每次只能修 饰一个成员,也是直接位于成员声明的开始处,而且也没有冒号分隔符。而不是像 太原理工大学高等教育自学考试 12 c+那样,一个修饰符可以修饰位于其后(直到下一个修饰符为止)的若干成员。 3分部类和静态类 分部类和静态类都是 c# 所特有的,而且都是 c# 2.0 版新增加的。前者允许将 一个类、结构或接口的定义,放到多个文件中;后者则是仅包含静态成员的类。 1)分部类 分部类和结构是在类和结构的声明中,使用了 partial 修饰符的类和结构。位于 不同文件中的同一个分部类,必须位于同一个命名空间或包含类型(对嵌入式分部 类)之中,而且在所有类修饰符必须完全一致。对泛型类,还要求声明中的类型参 数和对类型参数的约束也完全一致。但是类的属性、基类和实现接口的列表却可以 不同。另外,分部类也可以用作嵌套类,不过其包含类必须也是分部类。 编译时,编译器会合并位于不同文件中的同一个分部类的 xml 注释、属性、 基类、接口和成员。 2)静态类 静态类是在类的声明中,使用了 static 修饰符的类。静态类中只能包含静态成 员,可以用静态构造函数来初始化这些静态成员。静态类是密封的(不能派生其他 类) ,静态类不能被实例化,也不能包含实例构造函数。 静态类一般用于定义公用的常数和方法(如.net 中的 math 类) ,使用时不需 要创建实例,直接用“类名.字段”或“类名.方法”即可。例如: .3 接口与继承接口与继承 继承(inheritance)是面向对象的基本特征,所有的 c# 类和结构都是直接或 间接地从类 object 派生的。c# 中没有明确指出基类的类,都以 object 作为其默认 基类。c# 中的结构不支持继承,但是 c# 支持类的单一继承(single inheritance) , 多重继承的问题(与 java 一样)需通过接口来解决。 1接口 接口(interface,界面)的概念来源于组件编程的思想。接口定义统一的公用 方法的原型,但是不包含方法的具体实现代码,方法体(代码)由实现接口的类来 定义(编写) 。 所以接口定义的是一种契约(contract) ,实现该接口的类则遵守(adhere)此 契约。接口相当于组件的界面,供使用组件的用户查询和调用,而实现接口的类则 是组件的编码模块本身。 太原理工大学高等教育自学考试 13 在 c# 中,一个接口可以继承自多个接口,一个类也可以实现多个接口。实现 某个接口的类,必须实现该接口中的所有方法。 2继承的种类 c# 中的继承有两种类型: 实现继承(类继承)派生类型继承了基类型的所有成员,包括方法、 属性、事件和索引的实现代码,派生类既可以直接调用基类的各种函数成 员的实现代码,也可以自己编写代码来覆盖或重写它们,还可以为派生类 添加新的数据和函数成员。 接口继承(非实现继承)派生类型只继承了基类型中的函数签名 (signature of a function) ,包括函数名、类型参数的个数、每个形参 (formal parameter)的类型和种类(kind,值、引用、输出) ,从左到右的 顺序,但是不包括函数的返回类型、参数名称、类型参数的名称、以及可 对最右边的参数指定的参数修饰符。而没有继承基类型中的实现代码。接 口继承主要用于指定派生类应该具有什么特性和功能。接口继承相当于接 口的实现。 c+只支持实现继承,vb 则只支持接口继承,c+/cli、java 和 c# 都既支持 实现继承,也支持接口继承,所以非常适用于编写基于组件的分布式软件。 c# 中的结构,支持(多重)接口继承,但是不支持实现继承。即,你可以在 结构中实现多个接口中定义的函数成员,但是你却不能从类或结构来派生新的结构, 也不能从结构派生新的类。不过,用户定义的结构,总是自动派生于 system.valuetype 抽象类,还可以派生于(实现)多个接口。 c# 中的类,则支持单一实现继承和多重接口继承。 3方法的继承 c# 中方法的继承关系非常多样,除了传统 c+的虚函数(c# 增加了 override 修饰符)和纯虚函数(即 c# 的 abstract 抽象函数)外,还增加了隐藏方法(new) 、 密封方法(sealed)和基类方法的调用指令(base.方法名)等诸多新方式。 1)虚方法 override 虚函数是面向对象编程中实现运行时多态性的标准途径,而编译时的多态性则 是由具有同样函数名,但是函数签名不同的多个重载(overload)函数来实现的。 太原理工大学高等教育自学考试 14 与 c+不同的是,在 c# 中重写基类的虚方法时,必须使用 c# 特有的重写修 饰符 override(覆盖) 。 2)隐藏方法 new 在 c+中,不需要添加任何修饰符,就可以任意重载或覆盖基类的虚函数和非 虚函数,但是在 c# 中,这样做会得到一个编译警告。目的是,为了避免程序员的 笔误,也为了适应代码的维护与升级。解决办法是,上面介绍过的使用 override 修 饰符来明确重载基类的虚方法,以及使用 new 修饰符来显式隐藏(覆盖)基类中 具有同样签名的(非虚)方法。 第二章 系统开发背景 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算 机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息 管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全 性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息 管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是 为了管理好图书馆信息而设计的。 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信 息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进 行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等 纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数) 的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借 阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁 多,容易丢失,且不易查找。总的来说,缺乏系统、规范的信息管理手段。尽管有 的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突 出,这就是管理信息系统的开发的基本环境。 数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工 太原理工大学高等教育自学考试 15 方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混 乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中, 图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询, 就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的 图书进行更改就更加困难了。 基于这些问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化, 系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及 时、准确、有效的查询和修改图书情况。 第三章 需求分析 3.13.1 应用需求分析应用需求分析 图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图 书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个 人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进 行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为 复杂,包括对工作人员、图书借阅者、图书进行管理和维护及系统状态的查看、维 护并生成催还图书报表。 3.23.2 实际需求分析实际需求分析 图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和 密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下, 图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅 者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很 难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者 的个人隐私。 图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员 太原理工大学高等教育自学考试 16 登陆本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图书借阅者加入 借书记录或是还书记录,并打印生成相应的报表给用户查看和确认。 图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现 对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员 信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的 基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、 查询、统计图书馆的借阅信息。 第四章第四章 可行性分析可行性分析 4.14.1 环境可行性分析环境可行性分析 由于本系统管理的对象单一,都是学生,且每个数据内容具有较强的关联性, 涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。在技术难度 方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考 其它程序的功能,因此完全可以实现。 本系统的设计是在 windows xpxp 操作系统环境下,使用 visual studio.net 2003 中文版开发成功的。 visual studio 具有以下特点: 4.24.2 面向对象的程序面向对象的程序分析分析 1、面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑 如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性, 便于程序的维护与扩展。 2、所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西” 。一个窗 口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在 窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一。对象内部的数据是不 能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。用户无需 太原理工大学高等教育自学考试 17 知道其任何细节,操作是封闭的,对象之间能通过函数调用相互通信。 3、类可视为一个产品模具、一个模块。在面向对象设计中,类是对象的原型, 是对象的制作器。类的概念是面向对象程序设计最重要的特征。所谓类,是指由数 据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一 组性质相同的对象的程序描述,概括了对象的共同性质和数据。 4、面向对象设计的核心是类的设计。例如:可以定义一个“成绩查询”类, 该类中可以定义查询的姓名、学号、班级等信息,则以此类为原型可以设计出众多 的“成绩查询”类的对象实例,这些实体都具有类中所定义的特征。 第五章第五章 系统概要设计系统概要设计 5.15.1 模块分析模块分析 .1 功能模块图功能模块图 太原理工大学高等教育自学考试 18 图示 3.2.1 5.25.2 模块分析模块分析 .1 “图书资料管理图书资料管理”模块模块 “图书资料管理”模块主要实现图书资料的分条浏览、添加、修改、删除、查 询和打印功能。在表单的“书籍资料”页框中可以通过“移动记录工具栏”分条查 看系统内所有的图书的详细资料,包括图书的名称、类别、作者、出版社、购买日 期等。单击“命令按钮工具栏”中的按钮可以对 “书籍资料”页框中的记录进行 相应的操作。 .2 “学生资料管理学生资料管理”模块模块 “学生资料管理”模块主要实现学生资料的分条浏览、添加、修改、删除、查 询和打印功能。在表单的“学生资料”页框中可以通过“移动记录工具栏”分条查 看系统内所有的学生详细资料,包括学生姓名、性别、系别、班级等资料。单击 “命令按钮工具栏”中的按钮可以对“学生资料”页框中的记录进行相应的操作。 .3 “借还书操作借还书操作”模块模块 “借还书操作”模块主要实现读者借书记录的查看、借还书操作、图书借阅排 行榜、查看逾期未归还图书和记录打印等功能。 读者借书记录查看功能可以查看所有的借书记录 ,也可以只查看目前尚未归还 的借书记录。在“读者借书记录”表单中单击“借书”按钮 ,在打开的“输入”表 单中 ,输入要借出的图书编号 ,如果该图书在馆中而且该读者还能借书 , 则借书 成功。 “读者借书记录”表单中单击“还书”按钮 , 在打开的“输入”表单中输入 要归还的图书的图书编号 ,如果该图书是被当前读者借出 ,则还书成功。 当表单中显示的是读者未归还的图书列表时 , 在列出借书记录的表格中双击 要归还的图书的“图书编号”栏即可将此图书还入。 在“读者借书记录”表单中 , 单击“过期”按钮 , 可以查看系统内到了归还 日期而未归还的图书的借阅记录。 在“读者借书记录”表单中 ,单击“排行”按钮 ,可以查看系统内借阅次数在 所有图书内排行前 10 名的图书的列表。 太原理工大学高等教育自学考试 19 第六章第六章 详细设计详细设计 6.16.1 设计创建数据库设计创建数据库 .1 设计数据库设计数据库 本系统实现了系统登录功能 , 而系统登录需要账号和密码 , 这就需要 创建 一个“系统帐号”(accounts) 数据表 , 用来存储系统登录用的账号和密码。 本系统要实现图书资料和学生资料的管理 , 所以需要创建 “学生信息” (student)数据表和“图书信息 ”(book) 数据表。 “学生信息 ”(student) 数 据表中包含了学生的“系别”信息 , 在本系统中为了简化系别的管理 , 另外创建 了一个“系别”(xibie)数据表用来存储系别的信息 , 在“学生信息”(student) 数据表中只存储系别的编号。 由于系统要实现读者借还书功能、还要实现读者借还书记录的查看 ,所以还需 创建一个“读者借书记录 ”(jyrec) 数据表来保存读者的借阅记录。 .2 创建数据库创建数据库 “图书借阅管理系统”作为一个完整的数据库管理系统 , 在创建阶段利用项 目管理器可以更好组织管理各种格式的文件 , 因此首先需要创建一个项目 , 然后 在项目管理器创建其他格式的文件。 在 vfp 主窗口中选择“文件”菜单下“新建”子菜单 , 在打开的“新建” 对话框的“文件类型“区域中选中”项目”,然后单击右侧的”新建文件”按钮,打开” 创建“对话框中的”项目文件“文本框中输入项目名称 , 在此输入 “tushu”, 单击“保存”按钮即创建了一个项目。 在项目管理器的“数据”选项卡中选中“数据库”单击右侧的“新建”按钮, 在弹出的“新建数据库”对话框中单击“新建数据库”, 在弹出的“创建”对话 框的“数据库名”文本框中输入数据库的名称 , 在此输入“tushu”作为数据库 名 , 单击“保存“按钮即创建了一个空的数据库。 在项目管理器的“数据”选项卡中打开刚才创建的“tushu”数据库的目录树, 选中“数据表”,单击右侧的“新建”按钮即可开始数据表的创建。 系统关系图如下图所示 太原理工大学高等教育自学考试 20 图示 4.1.2 本系统中要用到的数据表的字段的属性设置分别设置如下。 “系统账号”(图书卡号) 数据表的宇段属性设置如表 1 所示。 表 1 “图书卡号” (lentcardtype)数据表字段属性设置 字段名数据类型说明 帐号字符型字段宽度 20,主索引字段,不能为空 姓名字符型字段宽度 20 密码字符型字段宽度 20 创建“系统账号”(图书卡号) 数据表后向数据库中添加一条记录作为系统的 默认帐号,该记录的各字段的值如下 :“cyr”,“cyr”,“楚雅茹”。 “学生信息”(bookinformation) 数据表各字段的属性设置如表 2 所示。 表 2 “图书类型” ( bookinformation)数据表字段属性设置 图书 id数据类型说明 图书编号字符型字段宽度 6,主索引字段,输入掩码为“999999” 太原理工大学高等教育自学考试 21 书名字符型字段宽度 20 作者名字符型字段宽度 20 出版社字符型字段宽度 4,为普通索引 出版日期字符型字段宽度 10 图书价格字符型字段宽度 12,输入掩码为“999#9999999” 邮件字符型字段宽度 30 借出次数数据类型整数据; 图书状态字符型字段宽度 10 “系别信息” (图书类别)数据表各字段的属性设置如表 3 所示 表 3 “图书类别” ( 图书类别)数据表字段属性设置 类型编号字符型字段宽度 4,主索引字段,输入掩码为“9999” 类型名称字符型字段宽度 20 “图书信息” (book)数据表各字段的属性设置如表 4 所示 表 4 “图书信息” (tushu)数据表字段属性设置 字段名数据类型说明 图书编号字符型字段宽度 6,主索引字段,输入掩码为“aa9999” 图书类别字符型字段宽度 10 图书名称字符型字段宽度 40 图书作者字符型字段宽度 20 出版社字符型字段宽度 40 购买日期日期型字段宽度 8 购买价格货币型字段宽度 8 借阅次数数值型字段宽度 4,默认值 0 是否借出逻辑型字段宽度 1,默认值“.f.” 对“图书信息” (book)数据表的字段属性设置需要说明的是“借阅次数”和 “是否借出”字段的默认值一定要设置,因为对于新添加的图书,其一定是没有被 借出的,而且其借阅次数一定是 0,所以在表单中向数据表添加记录时,这两个字 段应该是不需要添加的,可以由默认值生成。 太原理工大学高等教育自学考试 22 “读者借书记录” (jyrec)数据表的字段属性如表 5 所示。 表 5 “读者借书记录” (readerinfor)数据表字段属性设置 字段名数据类型说明 学号字符型字段宽度 6,普通索引字段,输入掩码为“999999” 图书编号字符型字段宽度 6,普通索引字段,输入掩码为“aa9999” 借阅日期日期型字段宽度 8 归还日期日期型字段宽度 8 数据表之间的关系,将在具体表单的数据环境中设置。 将“借书卡” (lentbookcard)数据表、 “借书卡类别” (lentcardtype)数据 表、 “图书信息” (bookinformation)数据表、 “读者借书记录” (lentnoteinfor) 数据表添加到表单的数据环境中,用主外键建立关联。 6.26.2 创建系统主程序创建系统主程序 winform 是.net 开发平台中对 windows form 的一种称谓。 .net 为开发 winform 的应用程序提供了丰富的 class library(类库) 。这些 winform 类 库支持 rad(快速应用程序开发 ),这些类库被封装在一个名称空间之中,这个 名称空间就是 system.windows.forms。在此名称空间中定义了许多类,在开发 基于.net 的 gui 应用程序的时候,就是通过继承和扩展这些类才使得我们的程 序有着多样的用户界面。 将一个文件设为项目主文件的方法是在项目管理器中选中该文件 , 然后在右 键快捷菜单中选择“设为主文件”子菜单或者选择“项目”菜单下“设为主文件” 子菜单即可。一个文件设为项目的主文件后 , 该文件的将以粗体显示 librarylogin 程序的代码为:(见附表) 6.36.3 创建系统常用类创建系统常用类 系统主表单中“学生资料”和“书籍资料”页框控件中都需要用到“移动记录 工具栏”和“命令按钮工具栏”, 这两个命令按钮工具栏如果在表单中分别创建会 太原理工大学高等教育自学考试 23 使工作变得繁琐,可以采用创建工具栏类 , 然后在表单中用实例化的方式来简化 工作。 .1 创建创建“移动记录工具栏移动记录工具栏”类类 “移动记录工具栏”类基于“commandgroup”基类,存储于“adminbutton” 可视类库中,命名为“moverecord”。 “移动记录工具栏”类包括“首记录”、“上一个”、“下一个”和“末记录” 4 个按钮,在表单中可以利用这 4 个按钮定位数据表中的记录指针。 需要指出的是,在本系统中当鼠标移动到按钮上时,鼠标指针变为一个特定 指针,这就需要一个鼠标指定文件,在本系统中使用“h_point.cur”文件,将该 鼠标指针文件放在系统的根目录下,添加按钮“mousemove”事件如下:(见附表) .2 创建创建“命令按钮工具栏命令按钮工具栏”类类 与“移动记录工具栏”类相同,为了改变鼠标停留在按钮时的指针,还需添加 按钮的“mousemove”事件,代码与“移动记录工具栏”类中的相同。 6.46.4 创建登录表单创建登录表单 .1 系统主表单的功能系统主表单的功能 为了系统有安全,一般系统都设有登录窗体,登录该系统除了输入正确的用 户名和密码外,还必须选择用户登录的权限.不同权限的用户登录系统分别执行 不同有操作. 本系统登录权限分为四类: 图书管理员:能够对图书进行增加,删除,修改,查询,以及图书证件的查询操作. 证件管理员:能对图书证件进行增加,删除,修改,查询操作等. 普通管理员:能对图书信息进行增,删,改,查,并能对图书证件进行增,删,改,查. 高级管理员:能执行本系统全部功能. 太原理工大学高等教育自学考试 24 图示 6.4.1 .2 创建系统主表单界面创建系统主表单界面 设计 winform 父窗体,命名为“librarymainwindow” 。创建好的表单效果中有 两个页框,其中“学生资料”页面效果如下图所示。 图示 6.4.2 太原理工大学高等教育自学考试 25 图书管理主窗体主窗体主要包括: 标题栏:图书管理系统; 菜单栏:图书管理(新书入库,图书查询,图书借阅,图书归还,图书信息修改, 旧书销毁),证件管理(新证办理,证件信息修改,图书证挂失、注销) ,图书 预览(热门图书排行) ,信息统计(库存借出比例,类别信息统计) ,系统设置 (用户设置) ,帮助(关于窗体) 。 工具栏:相当于工具栏的快捷方式,包括图书信息(图书查询,图书借阅,图 书归还) ,修改信息(图书修改,证件修改,添加代码) ,新书入库,新政办理, 证件挂失、注销,旧书销毁,借出比例,图书类别信息,用户设置, 窗体容器区:存放子窗体; 状态栏(初始化信息,系统当前时间) ; .4.3. 新书入库新书入库 当图书馆新进一批图书时,管理员要通过该系统将所有图书添加到系统数据 库中。 为了保证系统的安全性和 健壮性,该系统的文本框。 使用设置掩码控件限制 用户的输入。从而保证系统的安全性。 该窗体用 tabcotrol 控件将同类型的信息层叠在一个窗体以方便操作。如果用 户输入有误将给出提示,不得将错误信息插入数据库。可以点击重置按钮清空 文本框。以便重新输入。 如果用户输入正确无误,单击保存,将输入的图书信息插入库存中。如果用户 要退出系统,单击退出按钮,用户还可以通过点击 pa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论