图书管理系统代码设计和界面设计(图书管理系统代码设计和界面设

http://www.itjxue.com  2023-02-14 09:30  来源:未知  点击次数: 

求用C++设计实现图书管理系统 代码

这是我之前期末做到,要的就拿走吧#include iostream #include iomanip #include cstring #includecstdlib #include fstream//输入/输出文件流类 using namespace std; const int Maxr=100;//最多的读者 const int Maxb=100;//最多的图书 const int Maxbor=5;//每位读者最多借五本书 //读者类,实现对读者的信息的描述 class Reader { public: Reader() {} char *getName() {return name;} //获取姓名 int getFlag() {return flag;} //获取删除标记 int getNum() {return num;} //获取读者编号 void setname(char na[]) //设置姓名 { strcpy(name,na); } void delbook(){ flag=1; }//设置删除标记 1:已删 0:未删 void addreader(int n,char *na)//增加读者 { flag=0; num=n; strcpy(name,na); for(int i=0;iMaxbor;i++) borbook[i]=0; } void borrowbook(int bookid)//借书操作 { for(int i=0;iMaxbor;i++) { if (borbook[i]==0) { borbook[i]=bookid; return; } } } int retbook(int bookid)//还书操作 { for(int i=0;iMaxbor;i++) { if(borbook[i]==bookid) { borbook[i]=0; return 1; } } return 0; } void disp()//读出读者信息 { cout setw(5) num setw(10) name"借书编号:["; for(int i=0;iMaxbor;i++) if(borbook[i]!=0) cout borbook[i] "|"; cout "]"endl; } private: int flag; //删除标记 1:已删 0:未删 int num; //读者编号 char name[10]; //读者姓名 int borbook[Maxbor];//所借图书 }; //读者类库,实现建立读者的个人资料 class RDatabase { private: int top; //读者记录指针 Reader read[Maxr];//读者记录 public: RDatabase() //构造函数,将reader.txt读到read[]中 { Reader s; top=-1; fstream file("reader.txt",ios::in);//打开一个输入文件 while (1) { file.read((char *)s,sizeof(s)); if (!file)break; top++; read[top]=s; } file.close(); //关闭 reader.txt } void clear()//删除所有读者信息 { top=-1; } int addreader(int n,char *na)//添加读者时先查找是否存在 { Reader *p=query(n); if (p==NULL) { top++; read[top].addreader(n,na); return 1; } return 0; } Reader *query(int readerid)//按编号查找 { for (int i=0;i=top;i++) if (read[i].getNum()==readerid read[i].getFlag()==0) { return read[i]; } return NULL; } void disp() //输出所有读者信息 { for (int i=0;i=top;i++) read[i].disp(); } void readerdata();//读者库维护 ~RDatabase() //析构函数,将read[]写到reader.txt文件中 { fstream file("reader.txt",ios::out); for (int i=0;i=top;i++) if (read[i].getFlag()==0) file.write((char *)read[i],sizeof(read[i])); file.close(); } }; void RDatabase::readerdata() { char choice; char rname[20]; int readerid; Reader *r; while (choice!='0') { cout"★ ★ ★ ★ ★ ★ ★ ★ ★ 读 者 信 息 ★ ★ ★ ★ ★ ★★ ★ ★"endl; cout"-------------------------------------------------------------------------------"endlendl; cout"☆ ☆ ☆ ☆ 1、新 增 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 2、更 改 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 3、删 除 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 4、查 找 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 5、显 示 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 6、全 删 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 0、退 出 ☆ ☆ ☆ ☆"endlendl; cin choice; switch (choice) { case '1': system("cls"); cout "输入读者编号:"; cin readerid; cout "输入读者姓名:"; cin rname; addreader (readerid,rname); system("pause"); system("cls"); break; case '2': system("cls"); cout "输入读者编号:"; cin readerid; r=query(readerid); if (r==NULL) { cout " 不好意思,该读者不存在 "endl; break; } cout "输入新的姓名:"; cin rname; r-setname(rname); system("pause"); system("cls"); break; case '3': system("cls"); cout " 输入读者编号:"; cin readerid; r=query(readerid); if (r==NULL) { cout " 该读者不存在" endl; break; } r-delbook(); system("pause"); system("cls"); break; case '4': system("cls"); cout "读入读者编号:"; cin readerid; r=query(readerid); if (r==NULL) { cout "不好意思,该读者不存在" endl; system("pause"); system("cls"); break; } r-disp(); break; case '5': system("cls"); disp(); system("pause"); system("cls"); break; case '6': system("cls"); clear(); system("pause"); system("cls"); break; case '0': break; default:cout"输入错误,请从新输入:";break; } } } //图书类,实现对图书的描述,图书的编号,书名,借出,还入等 class Book { public: Book(){} char *getName() { return name; }//获取姓名 int getNum(){ return num; }//获取图书编号 int getFlag(){ return flag; }//获取删除标记 void setname(char na[])//设置书名 { strcpy(name,na); } void delbook(){ flag=1;}//删除图书 void addbook(int n,char *na)//增加图书 { flag=0; num=n; strcpy(name,na); onshelf=1; } int borrowbook()//借书操作 { if (onshelf==1) { onshelf=0; return 1; } return 0; } void retbook()//还书操作 { onshelf=1; } void disp()//输出图书 { cout setw(6) num setw(18) name setw(10) (onshelf==1? "在架":"已借") endl; } private: int flag;//删除标记 1:已删 0:未删 int num;//图书编号 char name[20];//书名 int onshelf;//是否再架 1:再架 2:已借 }; //图书库类,实现对图书的维护,查找,删除等 class BDatabase { public: BDatabase()//构造函数,将book.txt读到book[]中 { Book b; top=-1; fstream file("book.txt",ios::in); while (1) { file.read((char *)b,sizeof(b)); if (!file) break; top++; book[top]=b; } file.close(); } void clear()//全删 { top=-1; } int addbook(int n,char *na)//增加图书 { Book *p=query(n); if (NULL==p) { top++; book[top].addbook(n,na); return 1; } return 0; } Book *query(int bookid)//查找图书 { for (int i=0;i=top;i++) if (book[i].getNum()==bookid book[i].getFlag()==0) { return book[i]; } return NULL; } void bookdata();//图书库维护 void disp() { for (int i=0;i=top;i++) if (book[i].getFlag()==0) book[i].disp(); } ~BDatabase()//析构函数,将book[]写到book.txt文件中 { fstream file("book.txt",ios::out); for (int i=0;i=top;i++) if (book[i].getFlag()==0) file.write((char *)book[i],sizeof(book[i])); file.close(); } private: int top; //图书记录指针 Book book[Maxb]; //图书记录 }; void BDatabase::bookdata() { char choice; char bname[40]; int bookid; Book *b; while (choice!='0') { cout"★ ★ ★ ★ ★ ★ ★ ★ ★ 图 书 信 息 ★ ★ ★ ★ ★ ★★ ★ ★"endl; cout"-------------------------------------------------------------------------------"endlendl; cout"☆ ☆ ☆ ☆ 1、新 增 图 书 信 息 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 2、更 改 图 书 信 息 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 3、删 除 图 书 信 息 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 4、查 找 图 书 信 息 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 5、显 示 图 书 信 息 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 6、全 删 图 书 信 息 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 0、退 出 ☆ ☆ ☆ ☆"endlendl; cin choice; switch (choice) { case '1': system("cls"); cout "输入图书编号:"endl; cin bookid; cout "输入图书书名:"endl; cin bname; addbook(bookid,bname); system("pause"); system("cls"); break; case '2': system("cls"); cout "输入图书编号:"endl; cin bookid; b=query(bookid); if (b==NULL) { cout " 不好意思,该图书不存在 "endl; system("pause"); system("cls"); break; } cout "输入新的书名:"endl; cin bname; b-setname(bname); break; case '3': system("cls"); cout " 读入图书编号:"endl; cin bookid; b=query(bookid); if (b==NULL) { cout " 不好意思,该图书不存在" endl; break; } b-delbook(); system("pause"); system("cls"); break; case '4': system("cls"); cout " 读入图书编号:"endl; cin bookid; b=query(bookid); if (b==NULL) { cout " 不好意思,该图书不存在" endl; break; } b-disp(); system("pause"); system("cls"); break; case '5': system("cls"); disp(); system("pause"); system("cls"); break; case '6': system("cls"); clear(); system("pause"); system("cls"); break; case '0': break; default:cout"输入错误,请从新输入:"; } } } //main() 函数的实现,程序的主界面的引导 int main(void) { char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while(choice!='0') { cout"★ ★ ★ ★ ★ ★ ★ ★ ★ ★ 欢 迎 使 用 本 系 统 ★ ★ ★ ★ ★ ★ ★ ★★ ★"endlendl; cout"★ ★ ★ ★ ★ ★ ★ ★ ★ 请 根 据 提 示 选 择 操 作 ★ ★ ★ ★ ★ ★★ ★ ★"endl; cout"-------------------------------------------------------------------------------"endlendl; cout"☆ ☆ ☆ ☆ 1、借 书 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 2、还 书 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 3、图 书 信 息 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 4、读 者 信 息 ☆ ☆ ☆ ☆"endl; cout"☆ ☆ ☆ ☆ 0、退 出 ☆ ☆ ☆ ☆"endlendl; cin choice; switch (choice) { case '1': system("cls"); cout"借书"endl; cout " 请输入读者编号:"; cin readerid; cout " 请输入图书编号: "; cin bookid; r=ReaderDB.query(readerid);//按编号查找 if (NULL==r) { cout " 不好意思,不存在该读者" endl; system("pause"); system("cls"); break; } b=BookDB.query(bookid); if (b==NULL) { cout " 不好意思,不存在该图书" endl; system("pause"); system("cls"); break; } if (b-borrowbook()==0) { cout " 不好意思,该图书已借出" endl; system("pause"); system("cls"); break; } r-borrowbook(b-getNum()); break; case '2': system("cls"); cout"还书"endl; cout" 请输入读者编号:"; cin readerid; cout " 请输入图书编号:"; cin bookid; r=ReaderDB.query(readerid); if (r==NULL) { cout " 不好意思,不存在该读者" endl; system("pause"); system("cls"); break; } b=BookDB.query(bookid); if (b==NULL) { cout " 不好意思,不存在该图书" endl; system("pause"); system("cls"); break; } b-retbook(); r-retbook(b-getNum()); break; case '3': system("cls"); BookDB.bookdata(); system("pause"); system("cls"); break; case '4': system("cls"); ReaderDB.readerdata(); system("pause"); system("cls"); break; case '0': break; default:cout"输入错误,请从新输入:"; } } return 0; }

用C语言编写图书管理系统代码中的查询系统

图书馆管理系统,能进行图书馆管理系统能实测国民经济和企业的各种运行情况;利用过去的数据预测未来;从企业全局出发辅助企业进行管理决策;利用信息控制企业的行为;帮助企业实现其规划目标。

图书管理系统软件

图书馆管理系统合运用了管理科学,系统科学,运筹学,统计学,计算机科学等学科的知识。可以通俗的简化的描述图书馆管理系统的三要素:系统的观点、数学的方法以及计算机的应用。

图书馆管理系统概念结构主要由四大部分组成即信息源、信息处理器、信息用户、信息管理者组成。

结构

其中信息源是图书馆管理系统(MIS)的产地,信息处理器担负信息的传输、加工、保存等任务。信息用户是信息的使用者,它应用信息进行决策。信息管理者负责信息系统的设计实现。图书管理系统

特点及功能

1.3.1 图书馆管理系统的界面特点

在计算机软件技术中,人机界面已经发展成为一个重要的分支。MIS人机界面设计一般遵循以下一些基本原则:

图书管理系统

1.以通信功能作为界面设计的核心

2.界面必须始终一致

3.界面必须使用户随时掌握任务的进展情况

4.界面必须能够提供帮助

5.界面友好、使用方便

6.输入画面尽可能接近实际

7.具有较强的容错功能

图书馆管理系统的功能

1. 准备和提供统一格式的信息,使各种统计工作简化,使信息成本最低;

2. 及时全面地提供不同要求的、不同细度的信息,以期分析解释现象最快,及时产生正确的控制。

3. 全面系统的保存大量的信息,并能很快的查询和综合,为组织的决策提出信息支持。

4. 利用数学方法和各种模型处理信息,以期预测未来和科学地进行决策。

SQL设计图书管理系统

目 录

图书管理信息系统的设计和实现

端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。

本图书管理信息系统是利用计算机管理信息处理的迅速、准确、可靠且具有强大存储能力的突出特点,全面提高图书馆的管理水平和工作效率,并以及时、完整的业务经营资料,为图书馆的及时转换提供一定的支持。本图书管理系统涵盖了六个主要的子系统:图书资料管理、读者资料管理、借书操作、还书操作、修改密码和查询处理,并通过信息的收集、整理、存储、传递将它们有机地结合起来,提高了工作的准确率和效率。

本论文从系统分析、需求分析、概要分析、详细分析到系统实施、系统运行、系统维护等几个方面详细阐述了图书管理系统的开发过程,记录了开发过程中的分析依据和设计思路及相关图表,阐明了主要的设计内容和实施、运行情况,为本系统的使用、升级提供了完备的资料。

本系统开发时间将近四个月,初步完成了图书管理信息系统的初级版本,系统基本上实现了原定的基本功能,并将在以后进行陆续的改进和完善。

关键词:Delphi;SQL Server 2000;数据库;图书管理信息系统

Design And Implementation of The Books Management Information System

Abstract:The books management information system is the typical information management system (MIS), It mainly develops including two respects ,one is setting-up and maintenance of backstage supporter's database . Another is developing the front application program. As to the former demand set up data consistency , integrality strong and data security kind database.require to the latter the function of the application program is complete , Easy to use and so on the characteristic.

This books management information system is using the computer management information processing rapid, accurate, is reliable also has the formidable memory property the prominent characteristic, comprehensively enhances the library the management level and the working efficiency, and take the prompt integrity account executive material, provides the certain support for newer books and reference materials in time of the library. The books management information system has covered six subsystems: The books and reference materials management, the reader material management, taking advantage of the book operation, modify password and also the book operation, inquiry processing, and through the information collection, the reorganization, the memory, the transmission organically unifies them, enhanced the work rate of accuracy and the efficiency.

This thesis from the system analysis, the demand analysis, the outline analysis, the multianalysis to the system implementation, the system movement, the system maintenance and so on several aspects in detail elaborated the books management information system performance history, recorded in the performance history analysis to rest on and to design the mentality and the correlation graph, had expounded the main design content and the implementation, the movement situation, for this system use, the promotion have provided the complete material.

This system is nearly four months construction period, finished the elementary edition of the books administrative system tentatively, the system has basically realized the original basic function, and will carry on improvement and completion successively afterwards.

Keyword: Delphi ; SQL; database; books management information system

前 言

随着我国经济的高速发展,人们的物质需求已趋向饱和,而精神上的需求却日益提高。学习的繁重、工作的压力、竞争的刺激使人们感到知识的困乏,渴望进一步的充电。同时当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,正是因此计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。管理信息系统是先进的科学技术和现代管理相结合的产物,建立以计算机为主要手段的管理信息系统,已成为现代企业、政府部门等各类组织提高自身素质、实现组织的战略目标。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。

为满足图书馆业务发展的需要,提高竞争能力,我决定利用计算机来提高图书馆管理水平和工作效率。根据图书馆的日常需要,确定系统要实现六个基本功能:图书资料管理、读者资料管理、借书操作、还书操作、修改密码和查询处理。同时该系统具有强大的查询功能和可靠性。

目标是努力达到:读者满意。图书馆内藏书丰富,品种齐全,但随着信息处理量的快速增大,工作越来越繁多、要求全面、先进、高效。纯办公软件无论从准确度还是及时性上都已无法满足业务的需要。因此,开发一个界面友好,易于操作的图书馆软件进行自动化处理变得十分重要,本系统开发目的和意义就是为了管理好图书馆信息,使图书管理工作规范化、系统化、程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。此图书管理信息系统以“以人为本”为服务宗旨,提高对读者的服务质量。

1 Delphi和SQL简介

1.1 数据库的介绍

数据库技术是计算机科学技术中的重要领域,也是应用最广的技术之一,而且已经成为电子信息系统的重要核心技术。众所周知,计算机应用从科学计算进入数据处理是一个划时代的转折。数据处理是指对各种形式的数据进行收集、存储、加工和传播的一系列活动的总和。其目的是从大量的,原始的数据中抽取,推导出对人们有价值的信息经作为行动和决策的依据,是为了借助计算机科学地保存和管理复杂的,大量的数据以便人们能方便而充分地利用这些宝贵的信息资源。数据库技术所研究的问题就是如何科学地组织和存储数据,如何高效地获取和处理数据。数据库系统就是当代计算机系统的重要组成部分。

数据处理的中心问题是数据管理,数据管理随着计算机硬件和软件的发展而不断发展,经历了三个阶段:人工管理阶段,文件系统阶段和数据库系统阶段。数据库系统具有以下特点:(1)数据结构化。(2)数据的共享性高、冗余度低、易扩展。(3)数据独立性高。(4)数据由DBMS统一管理和控制。包括数据的安全性保护,数据的完整性检查,并发控制以及数据库备份和恢复[2]。我做的图书管理系统中主要是用了Delphi和SQL 。

1.2 Delphi的简介

计算机软件的开发分为两个不同的分支,其中一个分支是使用传统的程序设计语言开发数值控制、数值运算等软件,围绕它们的重点是算法,数据结构以及面向对象技术,这里基本采用Pascal,Basic和C等到高级程序设计语言。另一个分支则是通用的数据库管理软件领域即数据库应用程序的开发。这两个分支的发展都有极为迅速,但是二者并没出现混合渗透的迹象。如果使用数据库语言进行传统的编程,虽然也能完成相应的功能,但是其编程过程可能极为复杂。反之,如果使用传统的编程语言进行数据库编程,通过调用专用的数据库应用程序接口函数据和过程,可能也会做出比较完善的数据库管理程序,但做起来大多是极其困难的。而Delphi结合了两个分支的优点,它结合了传统的编程语言Object Pascal和数据库语言的强大功能,既可以用于传统的算法编程,又可以用于数据库编程。特别是Delphi具有强大的数据库开发功能,利用Delphi的数据库开发工具,根本不需要编写任何Object Pascal代码便可以创建一个一般的数据库应用。

Delphi是面向对象的开发工具,它是目前开发客户/服务器数据库应用程序的强有力的工具。Delphi目前有两个版本:标准版本和客户/服务器版本。标准版本包含一个Borland Database Engine的局部拷贝,它允许用户创建能访问Dbase,Paradox 和 Local Inter Base服务器的数据库应用,它还支持具有ODBC(Open Database Connecticity)接口的数据库。客户/服务器版本包括Borland SQL Link,它能直接访问Oracle,SyBase 和Microsoft SQL Server,Informix等多种数据库服务器。

Delphi可以访问多种数据库管理系统的数据库,凭借窗体和报表,BDE(Borland Database Engine)可以访问Paradox,dbase,本地Inter Base服务器的数据库,也可以访问远程数据库服务器的

2 系统分析

2.1 系统调查

系统调查的主要内容有:系统的基本情况、系统中信息处理的状况、系统的资源情况及系统的各类人员对信息系统的态度。同时我了解到图书馆的使用人员有(1)系统管理员:维护整个系统的正常运行、及时更新系统,给每个新用户建立读者信息,给每个注销用户删除相应的读者信息。(2)图书管理员:负责给同学办理借书、还书、修改图书基本信息和图书流通状态。(3)读者:包括学生用户、老师用户和外界人士。

图书馆的组织机构设置如图1所示。

图1图书馆的组织结构

系统中信息处理状况:

通过对原有系统数据流程的分析,可以发现这种模式存在着一些不合理之处,完全可以改进,使工作效率提高,减少信息迂回。

图书馆现行系统存在的问题:第一,日常管理工作缺乏规范性,随意性很大,对人的经验水平有很大的依赖性,因此具体操作往往因人而异;第二,资料多次手工处理,如逾期通知等,出错率高,完全可以用数据库检索自动生成。第三,数据重复率高,有些地方人员多次使用相同数据,有些信息完全可以归类,第四,缺乏统计工作。

所以完全可以通过建立一套完整的图书管理信息系统,来对信息进行查询、修改、统计、检索等日常管理工作,尽量减少的人员介入和数据冗余,以简练实用为基础,实现信息管理计算机化提高工作效率和信息化水平。

2.2 可行性分析

可行性分析对系统的开发至关重要,可以大幅减少不必要的损失,保证系统开发的顺利进行。因此要对系统进行技术可行性、经济可行性、操作可行性三方面的系统可行性分析:

2.2.1 技术可行性

近几年来计算机技术发展异常迅猛,高速度大容量的电脑已成为许多学校里日常工作必不可少的设备,随着办公自动化的软件不断涌现,微机的普及为该系统的开发奠定了坚实的基础。

2.2.2 经济可行性

一方面,系统的开发不需要额外增加设备购置费、软件开发费、管理和维护费用。另一方面,系统的开发可以较好地解决图书馆因日常事务繁杂而造成的处理效率低,出错率偏高的局面,并可以及时了解各项日常事务的进展情况,为及时调整库存资料提供可靠的数据支持,从而明确工作目标,同时还可以减少人工劳动、提高工作效率、增加书本流通量。

2.2.3 操作可行性

计算机以强大的信息处理能力作为人类脑力劳动的有利助手登上历史舞台后,已渗透到社会生活的各个领域,使现代社会组织、特别是企业,学校的信息处理能力适应现代化管理的要求,且系统逐步从单项事务信息处理系统迅速向综合服务(决策支持系统)的管理信息系统发展。本系统使用界面良好,易于操作。图书馆拥有一批较高素质的员工,只需了解相关知识,就可熟练操作本系统了。

通过以上分析,图书馆管理信息系统的开发在经济上、技术上、操作上都是可行的。

2.3 系统的总目标

图书馆管理信息系统的总目标是按照管理信息系统的管理和开发方法,采用先进的信息技术和手段,支持并规范图书和读者资料的管理、借书、还书、修改密码、查询书本或学生等操作的全过程,并加强上述过程中各种信息资源的管理和应用,提高各部门管理工作的现代化水平,实现各部门信息的准确、及时处理和沟通及共享,为图书馆对库存资料的决策提供有利的支持和反馈信息,以实现图书馆的总体目标。

2.4 具体目标

(1)每年开学,新生报到的时候,图书馆系统管理员要给每一位新生的信息建立个人档案,办理图书借阅证。学生的个人档案包括学生的学号、姓名、性别、班级、年级、所属专业、电话号码。

(2)学生毕业的时候,图书馆系统管理员要及时对每位学生的信息进行删除。

(3)每次新进图书的时候,图书管理员要对每本图书的信息进行管理和录入,以方便读者的借阅。图书的基本信息有:图书索引号、图书名、作者、出版社、出版日期和图书的使用状态。

(4)当图书被读者借阅的时候,图书管理员要改变图书的使用状态,不再允许借阅,但是允许预约,而且每本书只允许被一个读者借阅,也只能被一个读者预约。

(5)当学生借阅的图书延期的时候,图书管理员要及时通知学生归还图书,并对其进行相应的处罚。学生可以在图书未超期的情况下办理续借。

(6)学生可以在图书管理系统中查询自己的借阅情况。

(7)当图书被损坏或图书出馆时,图书管理员要及时修改相应的图书信息。

(8)系统还应该提供强大的数据统计,查询等功能。

(9)系统应充许外界人士通过规定的步骤注册成为新用户,并享有一定的权利。

(10)系统应该有很好的可扩展性。

3 需求分析

需求分析阶段的根本任务是要明确图书馆在决策和日常事务处理上的信息需求,以便提出整个系统的总体方案。在需求分析中,主要采用流程图和数据字典来描述。

3.1 事务流程图

通过对图书馆的多次调查,大致了解了图书馆的日常的管理事务流程。每日处理的工作如图2所示。

图2图书馆的事务图

(1) 图书资料的管理

图书管理员将采购的图书入库分类处理,同时建立相关的图书资料信息,如果该书已有,则修改现有书本数等于原有书本数加新增书本数。如有图书损坏及罚款处理,也修改图书资料信息。如果图书出馆,则删除相关的图书资料信息。

(2) 读者资料管理

每年新生入校的时候,系统管理员要为每一个学生办理相应的图书借阅许可证,学生填写登记表包括学生学号、姓名、性别、年级、班级、专业名称、电话号码等基本信息。核对无误后交由系统管理员办理学生借阅证,如果读者更改任何个人信息,则应由学生写出书面申请,由系统管理员在相应的读者基本信息中进行修改。如果学生要离开学校,则审核该读者是否有逾期书籍和损坏,如无,则办理撤消业务,同时在读者资料库中删除该读者。最后给读者合格注销通知。对于教师用户也是一样的处理过程。

(3) 借书操作

读者把借阅证及想要借的图书交给图书管理员,图书管理员进行审核,如该读者是否有过期未还的图书,是否借阅图书已超过五本或未交清罚款,有上述情况之一则通知该读者借阅不成功。否则借阅成功,图书交给读者。同时图书管理员修改图书、读者及图书流通信息表。如读者逾期则可电话联系。如读者发现该图书已借出,则只可在图书资料库中进行预约。一本书同一时间只能被一个读者预约。如读者续借,则延长读者应还书日期。读者只可在该书本尚未超期的情况下才可以进行续借,否则续借不成功。

(4) 还书操作

读者把借阅证及要还图书交给图书管理员,由他进行审核,如该图书有逾期或破损,则通知该读者按比例罚款。否则图书交图书管理员放回书库。并修改图书、读者借书信息表。读者遗失书本则给予原价五倍赔偿。

(5) 查询处理

读者可以到图书馆内的电脑上查询自己的借书信息表,查询图书是否逾期,是否可以进行续借,也可以查找自己要借的图书是否在馆,以及近期图书馆的动态和公告。图书管理员可在图书到期前一天打印逾期清单,电话联系读者,以方便读者及时还书,加快书本流通。

(6) 修改密码

为了方便管理,图书馆系统管理员会给每一个新注册的用户一个初始密码,读者用初始密码首次登录系统后,应及时修改自己的密码,以保护自己的权利。或在使用的过程中通过修改密码来防

D1 库存清单

图7 归还图书的DFD

3.3 数据字典

int 4 f 所在专业代码

varchar 20 专业名称

表3图书基本信息表

字段名 字段类型 长度 NULL 字段意义

bookid varchar 10 f 图书索引号

bookname varchar 30 f 图书名称

Autor char 10 f 作者名字

department Int 4 所在书库代码

description char 20 描述

Lend char 1 f 是否借出

appoint char 1 f 是否预约

表4学生基本信息

userid varchar 10 f 用户编号

username varchar 10 f 用户名

sdepartment char 30 部门或专业

password varchar 20 f 密码

Right_1 bit 1 f 查询权

Ringht_2 bit 1 f 管理权

表6库存信息表

字段名 字段类型 长度 NULL 字段意义

department int 4 f 书库代码

description varchar 20 书库名称

3.4 数据项的页码设计

(1)对读者编号,为了便于查找采用层次码。

如:02(年级,即入学年份) 09(学院代码) 1(专业代码) 279

[注]: 学院代码如:商学院---01 信息学院---02 土木学院---03

外语学院---04 艺术学院---05 计算机科学与工程学院---09

计算机科学与工程学院的专业代码如:计算机科学与技术专业---1

网络专业---2

(2)图书编号,为了便于得到有关信息采用层次码。

如:TP(类别) 3111(编号) 01(内部编号)

[注]: 内部编号:同时采购了五本相同的图书,在类别和编号相同的时候,用01,02,03,04,05分别代表这五本相同的图书。

编号: 计算机应用基础---3111 计算机网络---3112

计算机组成原理---3113 数据库---3114

类别: 计算机类--- TP 文学类--- I 艺术类---V

数理化---O 英语类---H

4 概要设计

4.1 总体设计

系统功能结构如图8所示。

图8系统功能结构示意图

4.2 局部 E_R图

学生基本信息,图书基本信息,用户信息和读者借书情况表的局部E-R图如图9至图12所示。

图10书本基本信息表

图12 读者借书信息表

4.3 总体E-R图

本图书管理信息系统的总体E-R图如图13所示。

图13 总体E-R图

部分联系的属性如下:

1.借阅{借阅编号、图书索引号、借阅证号、借书日期、还书日期}

2.预订{预订编号、图书索引号、借阅证号、预订日期}

3.采购{采购编号、图书索引号、采购价格、采购数量}

4.报废{图书索引号,报废时间,报废原因}

4.4 E_R图向关系模型的转化

E_R图向关系模型的转化要解决的问题是如何将实体和实体之间的联系转化为关系模式,如何

图15 修改图书记录

图16 修改学生记录

图17 查询/借阅/预约图书

图18 查询/归还已借阅图书

5.2 建立索引和嵌套查询

索引是数据库中一常用而重要的数据库对象集。索引改进了数据库的性能和可访问性,可以用来排序和快速访问数据。大大改善了数据库的性能。下面以本人的图书管理信息系统中的book表为被借出时不能被预约。

(8) 修改图书的基本信息

这是图书管理员的权力,包括添加,删除和修改图书信息。当有新添加进来的图书时,图书管理员要查看图书馆里是不是已存有这样的图书,发现已有库存时,要修改图书的数目,否则就加入新的图书信息。当有旧书或损坏了的图书要退出的时候,要及时减少相应图书的数目或是删除相应的图书信息。学生借出书或归还图书时,要及时地修改图书流通信息表。

(9) 修改学生用户的基本信息

系统管理员在这里添加,删除和修改学生和教师的基本信息。当有新生入校时,根据学生填写的基本信息表为每个新生注册一个用户名,在校期间如果学生基本信息有变化可以交系统管理员审核后修改相应的信息,毕业或注销用户时,管理员要及时删除相应的记录。教师的处理情况相同。

(10)初始化系统

当遇到不可恢复的重大意外损伤时系统管理员可以用它来重新恢复图书馆的基本信息,保证图书管理系统正常工作。除了用户信息表恢复初始值外,其它的数据信息都会被清零。

(11) 公告栏

系统管理员向所有登录用户和外界人士及时发布图书馆最新消息的地方,包括注意事项等。

(12) 意见箱

所有登录用户可以在这里向系统管理员和图书管理员提出对图书管理的宝贵意见,方便管理员及时采取相应措施修改管理方案,方便用户以后的使用,提高整个系统的性能。

本系统主要提供图书管理,学生用户管理和系统管理。以下列出了图书管理信息系统主模块,系统总体结构、图书/读者功能模块和图书流通功能模块的示意图如图19至图21所示。

图19系统总体结构

图20图书/读者功能模块

图21图书流通功能模块

5.5 界面设计及功能实现

5.5.1 登录界面设计及功能的实现

图22 登录界面

c语言程序设计课程设计 图书管理系统 求原代码

高级语言程序设计(2)课程设计

???

一 程序设计说明书

【设计题目】 图书馆借阅管理

【问题描述】图书馆,适合用C++面向对象的功能来描述。图书馆管理系统分为借书、还书、图书管理和读者服务等四个部分。设计一个读者类Reader,记录每个读者基本信息;读者库类Rdatabase,记录所有读者信息;图书类Book, 记录每本书的基本信息;图书库类Bdatabase, 记录所有图书信息。

【基本要求】

1读者库类RDatabase中,其构造函数中,将read.txt文件中所有读入读者记录rede[]中。处理完毕,在析构函数中将read[]中的所有未删记录写入到read.txt中。

2图书库类BDatabase中,其构造函数中,将book.txt文件中所有读入图书记录book[]中。处理完毕,在析构函数中将book[]中的所有未删记录写入到book.txt中。

3 利用构造函数完成读者和图书数据初始化,完成内存分配。程序结束前,析构函数完成所申请的堆内存空间。

4 编写主函数,对所编写的矩阵类进行全面测试。要求用户界面采用菜单方式。测试中需要读者和图书数据通过I/O流从磁盘文件读入,同时显示在屏幕上。得到的数据通过I/O流写入磁盘文件保存,同时显示在屏幕上。

5 源程序中要有充分的注释,报告中要有详细的流程图和文字材料。

【类的设计】

该程序包含了四个类,如下:

1.Reader类,有读者的基本管理功能,具有以下私有数据:

int tag;//删除标记 1:已删;0:未删

int no;//读者编号

char name[10];//读者姓名

int borbook[Maxbor];//所借图书

2.读者库类Rdatabase, 具有以下私有数据:

int top;//读者记录指针

Reader read[Maxr];//读者记录

3.图书库类Book,有一本图书的基本功能,有以下私有数据:

int tag;//删除标记 1:已删;0:未删

int no;//图书编号

char name[20];//书名

int onshelf;//是否在架 1在架 0已借

4.图书库类BDatabase,有以下私有数据:

int top;//图书记录指针

Book book[Maxb];//图书记录

【特殊函数的设计说明】

构造函数

1.Reader类中构造函数Reader(),初始化函数;

2.读者库类RDatabase中,其构造函数Rdatabase(),将read.txt文件中所有读入读者记录rede[]中。

3.Book类中构造函数Book(),初始化函数;

4.图书库类BDatabase中,其构造函数中,将book.txt文件中所有读入图书记录book[]中。

?

拷贝构造函数

Reader类中的拷贝构造函数将getname()的返回值读者姓名拷贝到setname()中,Book类中的拷贝构造函数将getname()函数的返回值图书名拷贝到图书名设置函数setname()中。

?

析构函数

1.读者库类RDatabase中,其析构函数~Rdatabase(),将read[]中的所有未删记录写入到read.txt中;

2.图书库类BDatabase中,其析构函数~Bdatabase(),将book[]中的所有未删记录写入到book.txt中。

?

运算符重载

重载了“=”,当比较读者编号和图书编号时,重载;重载位运算符“〈〈”和“〉〉”等。

?

【主要函数算法流程图】

?

【程序的使用方法】

1.进入操作页面,按提示操作;

2.首先,新增图书和读者信息,之后就可以对以存在的信息进行操作;

3.操作当中,可以随时增加,更改和删除图书或读者信息;

4.当选择退出时,进行清屏。

?

二 程序上机调试报告

【语法错误及其排除】

1.在敲程序时,有很多拼写错误,例好多处把Readdata()误打Readdate();结束的分号,在不同的输入法状态下输入,这些小错误刚开始很难发现,不过有了经验,就很容易了。

2.创建新的构造函数时,使用出现了错误。重载构造函数要注意函数的访问权限,结果就不会出现错误。

【算法错误及其排除】

1.读者类中借书操作函数中,采用循环语句时判断读者已借图书量时for(int i=0;iMaxbor;i++)误写为for(int i=1;iMaxbor;i++),使循环发生错误。

2.指针使用错误,指针b和r混淆,导致编译错误得到“error C2660: 'retbook' : function does not take 1 parameters”错误报告。

三 程序测试结果

【收获及体会】

除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计这段时间,时刻都感觉自己有好多不懂,要学的太多了!经过这次课程设计,让我对C++这门语言有了更深的认识,操作能力有了提高。要想得到敲的代码运行出来后的满足感,需要耐心细心,毅力以及充沛的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才达到所要的运行结果。学习编程,需要多揣摩,实践,实践,再实践,编程技能才能更上一层楼,此外还得多向高手请教!

【源程序代码】

//********************

//图书馆借阅管理

//班级:

//学号:

//姓名:

//********************

#includeiostream.h

#includeiomanip.h

#includestring.h

#includefstream.h

const int Maxr=1000;//最多的读者

const int Maxb=10000;//最多的图书

const int Maxbor=8;//每位读者最多借8本书

class Reader //读者类

{

int tag;//删除标记 1已删;0未删

int no;//读者编号

char name[10];//读者姓名

int borbook[Maxbor];//所借图书

public :

Reader(){}//构造函数

char *getname(){return name;}//获取读者姓名

int gettag(){return tag;}//获取删除标记

int getno(){return no;}//获取读者编号

void setname(char na[])//设置读者姓名

{

strcpy(name,na);

}

void delbook(){tag=1;}//设置删除标记

void addreader(int n,char *na)//增加读者

{

tag=0;

no=n;

strcpy(name,na);

for(int i=0;iMaxbor;i++)

borbook[i]=0;

}

void borrowbook(int bookid)//借书操作

{

for(int i=0;iMaxbor;i++)

{

if(borbook[i]==0)

{

borbook[i]=bookid;

}

}

}

int retbook(int bookid)//还书操作

{

for(int i=0;iMaxbor;i++)

{

if (borbook[i]==bookid)

{

borbook[i]=0;

return 1;

}

}

return 0;

}

void disp()//输出读者信息

{

coutsetw(5)nosetw(10)name"借书编号:";

for(int i=0;i,Maxbor;i++)

if(borbook[i]!=0)

coutborbook[i]endl;

}

};

?

class RDatabase//读者库类

{

int top;//读者记录指针

Reader read[Maxr];//读者记录

public:

RDatabase()//构造函数,将reader.txt读到read[]中

{

Reader s;

top=-1;

fstream file("reader.txt",ios::in);

while(1)

{

file.read((char*)s,sizeof(s));

if(!file)break;

top++;

read[top]=s;

}

file.close();

}

void clear()//删除所有读者信息

{

top=-1;

}

int addreader(int n,char *na)//添加读者,检查是否已存在

{

Reader *p=query(n);

if(p==NULL)

{

top++;

read[top].addreader(n,na);

return 1;

}

return 0;

}

Reader*query(int readerid)//按编号查找

{

for(int i=0;i=top;i++)

if(read[i].getno()==readeridread[i].gettag==0)

return read[i];

return NULL;

}

void disp()//删除读者所有信息

{

for(int i=0;i=top;i++)

read[i].disp();

}

void readerdata();//读者库维护

~RDatabase()//析构函数,将read[]写入reader.txt文件中

{

fstream file("reader.txt",ios::out);

for(int i=0;i=top;i++)

if(read[i].gettag()==0)

file.write((char*)read[i],sizeof(read[i]));

file.close();

}

};

void RDatabase::readerdata()

{

int choice=1;

char rname[20];

int readerid;

Reader*r;

while(choice!=0)

{

cout"读者服务 1新增 2更该 3删除 4查找 5显示 6全删 0退出"endl;

cinchoice;

switch(choice)

{

case 1:

cout"请输入读者编号:";

cinreaderid;

cout"读入读者姓名:";

cinrname;

addreader(readerid,rname);

break;

case 2:

cout"请输入读者编号:";

cinreaderid;

r=query(readerid);

if(r==NULL)

{

cout"读者不存在"endl;

break;

}

cout"请输入新读者姓名:";

cinrname;

r-setname(rname);

break;

case 3:

cout"请输入读者编号:";

cinreaderid;

r=query(readerid);

if(r==NULL)

{

cout"读者不存在"endl;

break;

}

r-delbook();

break;

case 4:

cout"请输入读者编号:";

cinreaderid;

r=query(readerid);

if(r==NULL)

{

cout"该读者编号不存在"endl;

break;

}

case 5:

disp();

break;

case 6:

clear();

break;

}

}

}

?

class Book//图书类

{

int tag;//删除标记 1:已删;0:未删

int no;//图书编号

char name[20];//书名

int onshelf;//是否在架 1在架 0已借

public:

Book(){}

char*getname(){return name;}//获取读者姓名

int getno(){return no;}//获取图书编号

int gettag(){return tag;}//获取删除标记

void setname(char na[])//设置书名

{

strcpy(name,na);

}

void delbook(){tag=1;}//删除图书

void addbook(int n,char*na)//增加图书

{

tag=0;

no=n;

strcpy(name,na);

onshelf=1;

}

int borrowbook()//借书操作

{

if(onshelf==1)

{

onshelf=0;

return 1;

}

return 0;

}

void retbook()//还书操作

{

onshelf=1;

}

void disp()//输出图书

{

coutsetw(6)nosetw(18)namesetw(10)(onshelf==1?"在架":"已借")endl;

}

};

?

class BDatabase//图书库类

{

int top;//图书记录指针

Book book[Maxb];//图书记录

public:

BDatabase()//构造函数,将book.txt读到book[]中

{

Book b;

top=-1;

fstream file("book.txt",ios::in);

while(1)

{

file.read((char*)b,sizeof(b));

if(!file)break;

top++;

book[top]=b;

}

file.close();

}

void clear()//全删

{

top=-1;

}

int addbook(int n,char*na)//增加图书

{

Book*p=query(n);

if(p==NULL)

{

top++;

book[top].addbook(n,na);

return 1;

}

cout"新增成功!"endl;

}

Book*query(int bookid)//查找图书

{

for(int i=0;i=top;i++)

if(book[i].getno()==bookidbook[i].gettag()==0)

return NULL;

}

void bookdata();//图书库维护

void disp()

{

for(int i=0;i=top;i++)

if(book[i].gettag()==0)

book[i].disp();

}

~BDatabase()//析构函数,将book[]写入book.txt文件中

{

fstream file("book.txt",ios::out);

for (int i=0;i=top;i++)

if(book[i].gettag()==0)

file.write((char*)book[i],sizeof(book[i]));

file.close();

}

};

void BDatabase::bookdata()

{

int choice;

char bname[40];

int bookid;

Book *b;

while(choice!=0)

{

cout"图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出"endl;

cinchoice;

switch(choice)

{

case 1:

cout"输入图书编号:";

cinbookid;

cout"输入图书书名:";

cinbname;

addbook(bookid,bname);

break;

case 2:

cout"输入图书编号:";

cinbookid;

b=query(bookid);

if(b==NULL)

{

cout"该图书不存在"endl;

break;

}

cout"输入新书名:";

cinbname;

b-setname(bname);

cout"更名成功!"endl;

break;

case 3:

cout"输入图书编号:";

cinbookid;

b=query(bookid);

if(b==NULL)

{

cout"该图书不存在!"endl;

break;

}

b-delbook();

break;

case 4:

cout"请输入图书编号:";

cinbookid;

b=query(bookid);

if(b==NULL)

{

cout"该书不存在!"endl;

break;

}

b-disp();

break;

case 5:

disp();

break;

case 6:

clear();

break;

}

}

}

?

void main()

{

int choice=1,bookid,readerid;

RDatabase ReaderDB;

Reader *r;

BDatabase BookDB;

Book *b;

while(choice!=0)

{

cout" 1借书????? "endl;

cout" 2还书????? "endl;

cout" 3图书维护? "endl;

cout" 4读者维护? "endl;

cout" 0离开????? "endl;

cinchoice;

switch(choice)

{

case 1:

cout"借书,请输入读者编号:";

cinreaderid;

cout"图书编号:";

cinbookid;

r=ReaderDB.query(readerid);

if(r==NULL)

{

cout"哈哈,借书成功!";

break;

}

b=BookDB.query(bookid);

if(b==NULL)

{

cout"不存在该书!"endl;

break;

}

if(b-borrowbook()==0)

{

cout"该书已借"endl;

break;

}

r-borrowbook(b-getno());

break;

cout"借书成功!"endl;

case 2:

cout"还书,请输入读者编号:";

cinreaderid;

cout"请输入图书编号;";

cinbookid;

r=ReaderDB.query(readerid);

if(r==NULL)

{

cout"不存在该读者!"endl;

break;

}

b-retbook();

r-retbook(b-getno());

break;

cout"还书成功!"endl;

case 3:

BookDB.bookdata();

break;

case 4:

ReaderDB.readerdata();

break;

}

}

}

【输出结果】

1借书

2还书

3图书管理

4读者服务

0退出

3

图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出

1

输入图书编号:1111

输入图书书名:武林外传

新增成功!

图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出

1

输入图书编号:2222

输入图书书名:今夜无眠

新增成功!

图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出

1借书

2还书

3图书管理

4读者服务

0退出

4

读者服务 1新增 2更该 3删除 4查找 5显示 6全删 0退出

1

请输入读者编号:001

读入读者姓名:周强

读者服务 1新增 2更该 3删除 4查找 5显示 6全删 0退出

1借书

2还书

3图书管理

4读者服务

0退出

1

借书,请输入读者编号:001

图书编号:1111

哈哈,借书成功! 1借书

2还书

3图书管理

4读者服务

0退出

2

还书,请输入读者编号:001

请输入图书编号;1111

还书成功!

1借书

2还书

3图书管理

4读者服务

0退出

3

图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出

2

输入图书编号:2222

输入新书名:金庸全集

更名成功!

Press any key to continue

c++图书管理系统设计报告

目录

一、序言 4

二、需求分析说明书 4

2.1系统介绍 4

2.2系统面向的用户群体 4

2.3系统的功能性需求 4

2.4系统的非功能性需求 5

2.4.1用户界面需求 5

2.4.2软硬件环境需求 5

2.4.3软件质量需求 5

三、可行性分析报告 5

3.1技术可行性 5

3.2人员可能性 5

3.3时间、设备可能性 5

3.4系统工作量 5

3.5代码工作量 5

3.6文档要求 5

四、开发环境与项目规划 5

4.1开发环境 5

4.2项目规划与管理 5

4.2.1开发人员安排 5

4.2.2开发进度安排 6

五、软件界面设计标准与规范 6

5.1编写目的 6

5.2界面设计思想 6

5.3界面设计原则 6

5.4界面设计样式 6

5.5常见提示信息样式 6

5.6常见错误信息样式 7

5.7其他界面约定 7

六、软件编码设计标准与规范 7

6.1对象命名约定 7

6.2常量和变量命名约定 8

6.3结构化编码约定 8

6.4数据源的约定 9

6.5数据库访问约定 9

6.6其他约定 9

七、数据库分析与设计 10

7.1数据库环境说明 10

7.2数据库命名标准与规范 10

7.3数据库逻辑设计 10

7.4数据库物理设计 10

7.4.1表、视图汇总 10

7.4.2各表、视图设计详解 11

八、软件体系结构设计说明书 15

8.1系统概述 15

8.2设计约束 15

8.3设计策略 15

8.4系统概要设计说明书 16

8.4.1图例说明 16

8.4.2系统总体结构图 16

8.4.3销售子系统流程图 17

8.4.4进货子系统流程图 17

8.4.5退货子系统流程图 17

8.5系统详细设计说明书 17

8.5.1系统模块汇总 17

8.5.2系统核心模块详解 18

8.5.3系统模块详解 28

九、用户界面设计报告 42

9.1界面设计规范 42

9.2系统窗体汇总 42

9.3主界面设计 43

9.4子界面设计 43

9.5界面资源设计 44

十、软件测试分析报告 44

10.1测试范围与主要内容 44

10.2测试方法 44

10.3测试报告 44

10.4改进建议与措施 45

十一、软件使用说明书 45

11.1软件概述 45

11.2系统安装 45

11.3使用说明 45

11.3.1系统登陆 45

11.3.2注销与退出 46

11.3.3办理进货登记 46

11.3.4办理退货登记 48

11.3.5销售图书 48

11.3.6会员管理 49

11.3.7员工管理 49

11.3.8书目检索 50

11.3.9查看统计信息 50

11.3.10修改密码 50

11.3.11关于/帮助 50

参考资料 51

图书馆管理系统设计论文

21世纪,人类社会正面临知识经济和信息社会的急剧变革,世界各个角落的人们都强烈地感受到新时代的冲击与震撼。下面是我为大家整理的图书馆管理系统设计论文,供大家参考。

图书馆管理系统设计论文篇一

图书管理系统设计

图书馆管理系统设计论文摘要

【摘要】本文介绍了利用ASP+Access编写图书管理系统的实现主要步骤与部分技术代码。

图书馆管理系统设计论文内容

【关键字】ASP;Access

随着计算机 网络技术 的普及和发展,现已逐渐进入信息化社会。人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发基于网络平台的图书管理信息系统已经成为图书管理部门的必要因此,我按照图书管理部门的需要,采用ASP+Acces实现了此图书管理系统。

一、ASP+Access

ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和 其它 程序进行交互,是一种简单、方便的编程工具。

Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。

由于Access存储方式简单,易于维护管理、移植性好,所以本系统采用ASP做为编程工具、Access做数据库来开发

二、系统模块

此系统共分为八大模块,包括图书简介、 规章制度 、图书录入、归还图书、图书查询、新购图书、未归图书、系统维护。名模块的功能如下:

一图书简介:把图书进行分类和定义索书号,以方便查询。

二规章制度:主要介绍图书管理的订购、借阅、归还等制度。

三图书录入:对新购图书按书名、作者、分类、编号等图书信息进行录入。

四图书归还:此模块是图书管理员对归还的图书,按照图书编号进行入库管理。

五图书查询:按图书信息一些主要字段对数据库进行查询并显示。

六新购图书:查询某一时间段以后所购买的图书并显示。

七未归图书:显示未归的图书,并分页显示。

八系统维护:对数据库进行备份和恢复。

三、设计数据库

此图书管理系统数据库里主要有以下几个表:

User:用来存储图书管理员的用户名和密码。字段为user、pwd。

Menu:存储程序主页面的菜单名称和链接地址。字段为ID、父菜单ID、位置、URl、字体颜色、菜单项。

Bookinfo:用来存储图书的各种信息。字段为书名、作者、图书分类、图书编号、索书号、出版社、版期版次、购入日期、价格、排架号、是否借阅、借阅日期、应归还日期、借阅科室、借阅人、备注。

Dept:用来存储科室名称。字段为dept。

四、程序设计

一登录模块及Session的使用

由于此系统有些功能是不允许普通用户使用的,如图书录入、图书归

还等模块,所以本系统采用以管理员登录的方式,来判断是何种用户使用本系统,如果是普通用户,点击“以普通用户登录”,就可以使用本系统,但图书录入、归还图书和系统维护等模块不能使用。

由于有些功能模块不允许普通用户使用,故在登录模块程序语句定义一个Session:Session("UserAcc") = Trim(rs("User"))。 Session在计算机中,尤其是在网络应用中,称为“会话”,用于保持状态的基于 Web 服务器的 方法 。Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象。因此,在限制普通用户使用并用If判断Session("UserAcc")是否为空即可。

二表单验证

在图书录入模块中,需要填写图书的各种信息,在提交表单时如果某

些信息为空,IE就会显示出错,因此,在提交表单之前对表单进行验证,JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证,只需编写一个函数就可以实现。函数如下

function checkinput() {

if (frm.bookname.value=='') {

alert('请输入书名');

frm.bookname.focus();

return false;

}

}

在提交按钮代码中加入OnSubmit="Return checkinput()"就可以完成对表单的验证了。

三数据库连接

对于Access数据库,一个文件就是一个数据库,所以可以利用数据驱动程序直接访问数据,这种方法需要利用动态连接字符串建立一个连接,具体连接字符如下:

Dim conn, connstr,db

db="./data/tushu.mdb"

connstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="Server.MapPath(db)

Set conn=Createobject("ADODB.Connection")

conn.Open connstr

这样就可连接数据了,再用SQL语句就可以读取表中数据了:

Set rs=CreateObject("ADODB.RecordSet")

sql="Select * From bookinfo"

rs.Open sql,conn,1,3

四对数据库的操作

连接好数据库后,我们就可以对表bookinfo的记录进增加、删除、修改等操作了。具体代码及释义如下:

(1):增加:

bianhao=Trim(Request("bianhao"))

sql="Select * From bookinfo Where 图书编号='" bianhao "'"

rs.Open sql,conn,1,3

If rs.recordcount0 Then

Response.Write "此图书编号已存在,请重新输入"

Response.Write "

"

Response.Write ""

Response.Write "返 回"

Else

注:在增加信息时,必须检索图书编号是否唯一,如不唯一会出给出提示:“此图书编号已存在,请重新输入”

rs.addnew

rs("书名")=trim(request("bookname"))

rs(“作者")=trim(request("author"))

……

rs.update

end if

Response.Redirect "addbook.html"

end if

set rs=nothing

(2)删除

本系统“删除”图书记录功能在查询模块中执行,但必须以管理员身份登录,才能显示对记录进行操作的功能:

删除记录采用SQL中的delete语句,代码如下:

bh=Request("bianhao")

If bh"" Then

conn.Execute "Delete From bookinfo Where 图书编号='" bh "'"

End If

(3)修改

修改只需rs.update命令即可完成,这里不再赘述。

(4)查询

本系统有精确查询、模糊查询、分类查询、编号查询、索书号查询、借阅人查询共六种方法。用SQL中select…where…就可以完成查询功能。如按分类查询:

tiaojian=Trim(request("tiaojian"))

Set rs=CreateObject("ADODB.RecordSet")

sql="select * from bookinfo where 图书分类= '" tiaojian "' order by 图书编号 desc"

rs.Open sql,conn,1,1

五、小结

此图书管理基本上可以实现图书管理的大部份工作,实现图书的计算机管理,方便借阅人员查询和借阅图书,更好的利用图书资源,把图书管理员从手工记录管理图书中解脱出来,提高了工作效率。

图书馆管理系统设计论文文献

[1]伍云辉. 程序天下 电子工业出版,2008

[2]武延军,赵彬.精通ASP网络编程. 人民邮电出版社,2000

[3][美]Michael Moncur JavaScript 入门经典 人民邮电出版,2007

图书馆管理系统设计论文篇二

图书管理信息系统设计

图书馆管理系统设计论文摘要

提要作为信息资源的集散地,图书馆在高校中的作用是尤为重要的,而图书馆传统人工管理方式已经无法快速、高效地应付日益增长的信息数据。随着计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。因此,图书管理信息系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底解脱出来,从而使人们有更多的时间来获取信息、了解信息、掌握信息,更好地发挥图书馆强大的资源优势。

图书馆管理系统设计论文内容

关键词:图书管理信息系统;数据库应用;Visual Foxpro语言;windows HC

中图分类号:G251文献标识码:A

图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序功能完备,易使用等特点。本是从我校图书馆的馆藏规模和实际操作流程程出发,针对图书馆管理的现状,经过详细的系统调查,结合效用和成本多方要素。利用Visual Foxpro6.0作为开发工具,为图书馆开发出的一个实用的单机版图书馆管理信息系统。全文共分为五部分,其分别为绪论、系统分析阶段、系统设计阶段、系统实施阶段、系统测试。

一、绪论

(一)系统开发背景。目前,在一些高校图书管理中,师生查找图书都是采用传统的查询方法,让读者在图书分类架上一本本地去查找,这样不仅很难找到自己所需要的图书,而且费时费力。而图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库账目,不仅工作量大,而且在新书入库后要经历较长的时间方能借出。另外,因图书数量有限,必须对图书实行限量借阅,因此要实施弹性借书方法是件很困难的事。

为提高图书查询效率,减少系部图书管理员的工作负担,有必要开发一个小型图书管理软件来对图书实施有效管理。该系统应具备以下功能:(1)能对各类图书实行分类管理;(2)提供必要的读者信息;(3)能进行各种高级查询;(4)具有图书检索功能等。这样,不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而且能让图书管理员以最高的效率办理借阅手续。

(二)数据库概述。从20世纪五十年代中期开始,计算机的应用由科学研究部门逐步扩展至企业、行政部门。至六十年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于六十年代末。现已形成相当规模的理论体系和实用技术。

数据库(Database)DB是统一管理的相关数据的集合。

数据库管理系统(Database Managerment System)DBMS是位于用户和 操作系统 之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。

数据库系统(Database System)DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。

数据库技术是一门研究数据库的结构、存储、管理和使用的软件学科。

二、系统分析阶段

(一)系统可行性分析。系统可行性分析包括:技术的可行性、经济可行性、法律因素可行性。

技术可行性:结合本校图书馆规模和平时业务量的具体情况,本系统采用Visual Foxpro6.0作为开发平台,可以很容易实现图书馆相关信息的记录、维护、检索,并且可以在不添加任何设备的情况下,以较少的人力较快地完成系统的设计,实现系统的功能。

经济可行性:不需要额外开支,用现有的人力物力就可实现,软件成本很低。

法律可行性研究:研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。

(二)系统需求分析

1、图书管理信息系统的总体功能要求。简单的图书管理系统主要包括下面的功能:①借书处理:完成读者借书这一业务流程,核心为快速检索到学生需要的书籍。②还书处理:完成读者还书这一业务流程。③新书上架:完成新书资料的录入工作。④旧书下架:完成图书资料的删除工作。⑤读者查询:根据读者号,查询读者借阅情况,能够对读者的基本信息资料进行管理。⑥相关帮助:便于新的系统使用者能够快速掌握该系统的使用操作。

2、图书管理信息系统的性能需求。①要求有较强的 系统安全 性,对一定范围和程度内用户的错误操作有相应的系统自我保护功能。②系统的维护时间不能超过系统总运行时间的千分之五,系统每次的维护时间不能超过系统总运行时间的千分之一,系统的故障恢复时间不得超过系统故障时间的百分之五。③其他性能要求以其相关或类似的系统为参考。

三、系统设计阶段

(一)系统功能模块设计。鉴于以上各项功能要求,将该系统划分为以下六个模块:

1、图书信息模块。对图书的基本信息进行录入、删除、修改以前信息和进行简单查询功能。

2、查询检索模块。可对书目的基本信息进行检索,其查询条件可以是按分类检索;也可以是按照作者名、图书名称或出版社进行检索。同时,也可对读者的基本信息进行检索,查阅其借阅信息。

3、读者管理模块。对读者的基本信息进行录入管理,可自动生成会员代号,可自动记录会员的借阅信息。

4、数据维护模块。可对数据库中的各项基本数据信息进行数据备份和数据恢复,并可实现数据备份文件存贮路径的自由选择。

5、报表输出模块。对图书的基本信息、会员的基本信息、会员的借阅信息等数据可按照查询条件的不同按要求打印输出。

6、帮助模块。可以提供关于图书管理信息系统各项操作的详细帮助信息,并可实现对不同操作的定点帮助提示。

(二)数据库设计

1、数据描述

(1)静态数据描述。①图书一级分类表:包括一个数据表。其中的主要信息有:分类编号和一级分类名称。一级分类中将图书共分五大类,具体分类方法、编号和分类名称参照国家统一分类方法的规定。②图书二级分类表:包括五个数据表。其中的主要信息有:二级分类的编号和分类名称。二级分类中将图书共分为二十二个小类,并分别隶属于一级分类的五个大类中,其具体分类方法、编号和分类名称参照国家统一分类方法的有关规定。③图书明细分类表:包括二十二个数据表。其中的主要信息有:明细分类的编号和分类名称。明细分类又将二十二个小类明细的分为若干细小类别,其具体的分类方法、编号和分类名称参照国家统一分类方法的有关规定。

以上数据均按国家统一规定设置录入,不能做太大改变,分类名称可以有一定的缩略但不能影响其原有的意义。系统设计完成后不可以通过录入、删除的方式进行修改。

(2)动态数据

①图书的基本数据。包括一个数据表。其中的主要数据有图书编号:是对录入图书的统一编号,以便唯一区别图书;图书名称:图书出版时的封面印刷名称;作者:图书的编写者或编写单位或组织;出版社:出版发行该册图书的发行单位;录入日期:该册图书入库的时间;借阅次数:该图书总的被借阅次数;类别编号:给图书所属的明细分类的类别号,它应与明细分类表中的图书的类别编号一致;简介:对该册图书的内容总体概括介绍。

②读者基本数据:包括一个数据表。其中的主要数据有:读者代号:读者的统一编号,由系统自动生成,唯一的标示一个会员的身份;姓名:读者的真实姓名;电话:读者的有效联系电话,可选择填写;地址:读者的有效联系地址,可选择填写;身份证号:读者的身份证号码,可选择填写;注册日期:读者本人正式注册成功时的日期(为系统自动填写)。备注:读者的个人其他资料。

以上两部分数据的录入具有一定的界面,并提供修改的方式。还提供随时的查询,对查询结果有相应的显示和打印输出,对全体的数据可进行备份与恢复。

③借阅记录。包括一个数据表。其中的主要数据有:读者代号、图书编号、借阅日期。这些数据信息都是由系统自动填写。此表中的所有数据不提供修改方式,只供查阅、显示和打印输出。可以对全体数据进行备份和恢复。

④登录密码。包括一个数据表。其主要数据有:管理员代号、密码、权限。

2、数据库描述。该系统建立一个数据库,其中包括三十二个数据表。全部用Visual Foxpro实现。其中,部分数据表的结构和联系如图1所示。(图1)其他分类数据表的连接通过“下级分类表名”实现连接调用。

3、数据采集。对于图书分类数据表的信息参照国家图书分类方法;对于图书基本信息数据可通过对现存图书进行分类录入;对于读者方面的信息数据可以在系统运行使用中获得。

(三)用户界面设计。本系统设计原则:1、界面美观、操作方便并能高效率地完成工作;2、界面根据用户需求设计;3、界面能引导用户操作的功能,并能提供一些帮助功能。

主要的用户界面有:1、登录界面;2、主表单界面;3、各类信息查询;4、读者信息管理列表;5、图书信息管理列表等。

四、系统实施阶段

(一)计算机系统的性能和软硬件环境。在软件方面本系统运行平台为Windows2000专业版,开发工具采用易学易用的软件开发工具Visual Foxpro6.0。因Visual Foxpro6.0在应用程序的开发上具有灵活、效率高等特点和使用简便的数据库管理功能。硬件要求:Inter PentiumⅢ、128M内存、40G硬盘等。

(二)编写程序。依据各阶段的开发文档,使用Visual Foxpro6.0进行程序编写。此系统的编码设计(表单设计、代码设计、变量定义、控件的定义)严格按照大众化的标准和风格。

对于系统的帮助功能的实现,则使用windows help compiler来单独编译,最后通过Visual Foxpro提供的接口命令(set help to)和系统相连。帮助文件的数据字典、源代码见附件。

五、系统测试

测试的步骤主要有以下三个方面:1、单元测试:采用的是白盒测试法,检查模块控制结构的某些特殊路径;2、综合测试:采用的是自顶向下集成法;3、确认测试包括:功能测试、性能测试。

有关图书馆管理系统设计论文推荐:

1. 图书管理系统毕业论文

2. 浅谈图书馆管理论文

3. 关于图书馆设计论文

4. 图书馆管理毕业论文范文

5. 有关图书馆结构设计论文

6. 图书馆管理论文

(责任编辑:IT教学网)

更多

推荐ASP.NET教程文章