图书管理系统完成版复习进程.docx

上传人:b****8 文档编号:9231659 上传时间:2023-05-17 格式:DOCX 页数:40 大小:554.62KB
下载 相关 举报
图书管理系统完成版复习进程.docx_第1页
第1页 / 共40页
图书管理系统完成版复习进程.docx_第2页
第2页 / 共40页
图书管理系统完成版复习进程.docx_第3页
第3页 / 共40页
图书管理系统完成版复习进程.docx_第4页
第4页 / 共40页
图书管理系统完成版复习进程.docx_第5页
第5页 / 共40页
图书管理系统完成版复习进程.docx_第6页
第6页 / 共40页
图书管理系统完成版复习进程.docx_第7页
第7页 / 共40页
图书管理系统完成版复习进程.docx_第8页
第8页 / 共40页
图书管理系统完成版复习进程.docx_第9页
第9页 / 共40页
图书管理系统完成版复习进程.docx_第10页
第10页 / 共40页
图书管理系统完成版复习进程.docx_第11页
第11页 / 共40页
图书管理系统完成版复习进程.docx_第12页
第12页 / 共40页
图书管理系统完成版复习进程.docx_第13页
第13页 / 共40页
图书管理系统完成版复习进程.docx_第14页
第14页 / 共40页
图书管理系统完成版复习进程.docx_第15页
第15页 / 共40页
图书管理系统完成版复习进程.docx_第16页
第16页 / 共40页
图书管理系统完成版复习进程.docx_第17页
第17页 / 共40页
图书管理系统完成版复习进程.docx_第18页
第18页 / 共40页
图书管理系统完成版复习进程.docx_第19页
第19页 / 共40页
图书管理系统完成版复习进程.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

图书管理系统完成版复习进程.docx

《图书管理系统完成版复习进程.docx》由会员分享,可在线阅读,更多相关《图书管理系统完成版复习进程.docx(40页珍藏版)》请在冰点文库上搜索。

图书管理系统完成版复习进程.docx

图书管理系统完成版复习进程

 

 

《VisualC++》课程大作业

 

题目名称:

图书馆管理系统

系名称:

计算机科学与信息工程学院

专业班级:

12级软件工程一班

姓名学号:

王停201103020041

姓名学号:

徐开放201103020019

指导老师:

李源

 

2013年6月

 

第1章组员分工

图书管理系统是一个比较大的系统,本系统有两名成员共同完成。

王停主要负责系统中对整个数据库的操作、管理和设置部分,包括权限验证、用户管理、基础数据设置、数据库的备份与恢复,以实现对数据库的管理和维护工作,并提高系统的数据安全性等工作。

徐开放主要负责实现对数据库中的具体表的数据项的管理和操作,包括借阅管理、书库管理、读者管理等模块,通过添加、删除、修改等操作,来实现对图书信息、读者信息、借阅信息的管理和登记,从而能够为借阅者提供方便快捷的服务,同时也提高了操作人员的管理效率。

 

第2章需求分析

该图书管理系统是基于利用计算机管理图书信息的需求而设计的,主要致力于为图书借阅人提供方便快捷的服务,以及为图书管理人员提供准确可靠的信息,旨在提高图书管理的效率,节约相关的管理成本,增强图书管理的安全性,为学校的信息化建设提供必要的支持。

其具体需求分析如下:

1.系统需求

该系统需提供给图书借阅者、信息管理员和图书馆管理人员共三方面的需求,图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;信息管理员对图书借阅者的借阅及还书要求进行操作,同时对借书或还书信息进行查询;图书馆管理员实现图书采购及验收编目入库。

它要满足图书借阅管理、图书书库管理、图书借阅人管理的基本要求,并能实现方便的操作和扩展,满足图书馆发展的需要,保障图书管理书籍的安全、准确。

2.功能需求

该图书管理系统主要有以下几项基本功能:

⑴用户管理:

用于管理系统用户,并能设置用户口令和权限,实现用户的添加、修改和删除,从而为系统的安全性提供保障。

⑵基础数据管理:

负责维护图书管理相关的基础数据,主要包括对图书逾期罚款、图书类别、读者类别的设置。

⑶借阅管理:

完成图书的借出登记,归还登记信息,以及借书信息和还书信息的查询浏览等借阅相关的管理功能。

⑷书库管理:

维护书库中的图书信息,能够完成新书的入库登记,图书信息的查询以及图书丢失处理等功能。

⑸读者管理:

维护读者的相关信息,能够完成新读者信息的登记,读者信息的查询以及读者注销等功能。

⑹数据库管理:

对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。

3.性能需求

WindowsXP/2000/98/ME中的VisualC++开发环境,MicrosoftAccess2003数据库使用软件。

第3章总体设计

3.1系统功能模块图

通过建立该图书馆电子系统,实现借书人员的权限验证,实现管理员对其用户进行管理的使用性能,及借阅图书和借阅用户的管理,同时可实现系统管理员对整个图书馆的数据库的管理。

图书管理系统功能模块图如图3-1所示:

 

图3-1图书管理系统功能模块图

3.2系统设计流程图

图书管理系统流程图如图3-2所示:

图3-2图书管理系统流程图

3.3数据库设计

数据库的好坏关系到系统的运行速率、存储数据的效率,合理的数据库设计可以提高系统的性能。

数据库结构要能充分满足各种信息的输入和输出,收集基本数据,数据结构处理的流程,组成一份详尽的数据字典,为具体设计做准备。

针对一般图书管理系统的需求,通过对数据管理工作过程的内容和数据流程的分析,得到其系统的逻辑模型,根据综合条件的需求为本系统的数据库设计如下数据项和数据结构:

1.用户表:

用户名、用户密码、用户类型。

用户表(user)具体设计如表3-1所示。

表3-1用户表(user)

名称

字段名称

类型

主键

非空

用户名

user

文本

Yes

Yes

用户密码

passward

文本

No

No

用户类型

isAdmin

是/否

No

Yes

2.罚款设置表:

罚款类型、罚款金额。

罚款设置表(publishType)具体设计如表3-2所示。

表3-2罚款设置表(publishType)

名称

字段名称

类型

主键

非空

罚款类型

type

文本

Yes

Yes

罚款金额

money

文本

No

Yes

3.图书类型设置表:

类别名称、可借出天数。

图书类型设置表(bookType)具体设计如表3-3所示。

表3-3图书类型设置表(publishType)

名称

字段名称

类型

主键

非空

类别名称

type

文本

Yes

Yes

可借出天数

number

数字

No

Yes

4.读者类型设置表:

类别名称、可借书册数。

读者类型设置表(readerType)具体设计如表3-4所示。

表3-4读者类型设置表(readerType)

名称

字段名称

类型

主键

非空

类别名称

type

文本

Yes

Yes

可借书册数

number

数字

No

Yes

5.归还信息表:

记录号、读者编号、读者姓名、图书编号、图书名称、图书类别、图书价格、借出日期、归还日期、罚款金额、其他金额、总计金额、操作员。

图书信息表(bookInfo)具体设计如表3-5所示。

表3-5图书信息表(bookInfo)

名称

字段名称

类型

主键

非空

图书编号

code

文本

Yes

Yes

图书名称

name

文本

No

Yes

图书类别

type

文本

No

Yes

出版社

press

文本

No

No

作者

writer

文本

No

No

图书价格

price

文本

No

No

登记日期

in_date

日期/时间

No

Yes

是否借出

isBorrow

是/否

No

No

借阅人编号

reader_code

文本

No

No

说明

brief

文本

No

No

6.读者信息表:

读者编号、读者姓名、读者性别、读者类别、注册日期、联系电话、单位部门、住址、说明。

读者信息表(readerInfo)具体设计如表3-6所示。

表3-6读者信息表(readerInfo)

名称

字段名称

类型

主键

非空

读者编号

code

文本

Yes

Yes

读者姓名

name

文本

No

Yes

读者性别

sex

文本

No

Yes

读者类别

type

文本

No

Yes

注册日期

reg_date

日期/时间

No

Yes

联系电话

phone

文本

No

No

单位部门

dept

文本

No

No

住址

address

文本

No

No

说明

brief

文本

No

No

7.借出信息表:

记录号、读者编号、读者姓名、图书编号、图书名称、图书类别、图书价格、借出日期、归还日期、是否归还、操作员。

借出信息表(borrowInfo)具体设计如表3-7所示。

表3-7借出信息表(borrowInfo)

名称

字段名称

类型

主键

非空

记录号

ID

自动编号

Yes

Yes

读者编号

reader_code

文本

No

Yes

读者姓名

reader_name

文本

No

Yes

图书编号

book_code

文本

No

Yes

图书名称

book_name

文本

No

Yes

图书类别

book_type

文本

No

No

图书价格

price

文本

No

No

借出日期

borrow_date

日期/时间

No

Yes

归还日期

return_date

日期/时间

No

Yes

是否归还

isReturn

文本

No

No

操作员

operator

文本

No

Yes

8.归还信息表:

记录号、读者编号、读者姓名、图书编号、图书名称、图书类别、图书价格、借出日期、归还日期、罚款金额、其他金额、总计金额、操作员。

归还信息表(returnInfo)具体设计如表3-8所示。

表3-8归还信息表(returnInfo)的结构

名称

字段名称

类型

主键

非空

记录号

ID

自动编号

Yes

Yes

读者编号

reader_code

文本

No

Yes

读者姓名

reader_name

文本

No

Yes

图书编号

book_code

文本

No

Yes

图书名称

book_name

文本

No

Yes

图书类别

book_type

文本

No

No

图书价格

price

文本

No

No

借出日期

borrow_date

日期/时间

No

Yes

归还日期

return_date

日期/时间

No

Yes

罚款金额

punish

文本

No

No

其他金额

other

文本

No

No

总计金额

total

文本

No

No

操作员

operator

文本

No

Yes

 

第4章功能模块详细设计

1.基本界面

创建一个基于单文档的MFC应用程序,建立系统主体框架,生成应用程序类、文档类、视图类等;在菜单项中添加相应的子菜单项;在工具栏中选择必要的控件置于菜单栏,在相应的视图类中添加消息处理函数;按功能模块的划分,使用资源编辑器创建系统菜单;在视图类的Paint事件处理函数OnPaint()中添加代码,实现加载背景图片的功能。

基本界面设计如下图4-1所示。

图4-1基本界面

2.登录界面

即为权限验证模块,主要是根据用户输入的用户名和密码验证用户身份并决定其操作权限,而且会对用户的输入情况给出相应的提示信息。

在添加过相应的“用户名”、“密码”、“登录”、“退出”等功能键的基本控件后,在类视图中添加相应的消息处理函数;在视图类的Paint事件处理函数OnPaint()中添加代码,实现加载背景图片使登陆界面更加美观。

登陆界面如图4-2所示。

图4-2登陆界面

登录界面的实现核心代码如下:

CUserSetrecordset;

m_ctrUser.SetFocus();//用户身份分配权限设置

m_ctrPass.SetFocus();

CLibraryApp*ptheApp=(CLibraryApp*)AfxGetApp();

CArchivear(&file,CArchive:

:

store);//密码设置

在用户登录时,如果密码错误时,系统会给出提示“密码错误,请重新输入!

”,同时系统内部会进行信息初始化,供用户进行重新输入操作。

密码验证界面如图4-3所示。

图4-3错误提示

完成初始化工作,从数据表中提取用户名列表中的数据,以便用户选择并登录

CDialog:

:

OnInitDialog();

CUserSetrecordset;

m_ctrUser.AddString(recordset.m_user);

recordset.MoveNext();//用户信息初始化

3.用户管理模块

提供添加新用户、删除指定用户、修改用户的密码和权限的功能,该模块功能只限于具有系统管理员权限的用户使用。

模块结构:

包括添加新用户、修改用户口令、修改用户权限、删除用户。

用户管理界面设计如图4-4所示。

图4-4用户管理界面

用户管理模块实现的核心代码如下:

CUserSet:

:

CUserSet(CDatabase*pdb)

:

CRecordset(pdb)

{

m_user=_T("");

m_passwd=_T("");

m_isadmin=FALSE;

m_nFields=3;

m_nDefaultType=snapshot;

}//新增用户设置

CStringCUserSet:

:

GetDefaultConnect()

CStringCUserSet:

:

GetDefaultSQL()

voidCUserSet:

:

DoFieldExchange(CFieldExchange*pFX)

{

pFX->SetFieldType(CFieldExchange:

:

outputColumn);

RFX_Text(pFX,_T("[user]"),m_user);

RFX_Text(pFX,_T("[passwd]"),m_passwd);

RFX_Bool(pFX,_T("[isadmin]"),m_isadmin);

}

CRecordset:

:

AssertValid();

CRecordset:

:

Dump(dc);

4.基础数据设置模块

主要通过图书逾期罚款设置、图书类别设置和读者类别设置三个子模块分别来实现相应子基础数据的维护和管理。

模块结构:

罚款设置、图书类别设置、读者类别设置。

⑴罚款设置界面设计如下:

图4-5罚款设置界面

罚款设置核心代码如下:

voidCPunishTypeDlg:

:

OnOK()

{

UpdateData();

if(m_strMoney.IsEmpty())

{

AfxMessageBox("请输入罚款金额");

return;

}//检查金额输入

rs.Close();

CDialog:

:

OnOK();

}//罚款金额设置

⑵读者类型设置可根据读者类别设置可节约图书的数量,可以增加、修改和删除读者的类别设置、可借阅图书量。

读者类型设置界面如图4-6所示。

图4-6读者类型界面

读者类型模块实现核心代码如下:

CReaderTypeDlg:

:

OnInitDialog()//初始化读者类型对话框

m_ctrList.InsertColumn(0,"类别名称");

m_ctrList.SetColumnWidth(0,120);

m_ctrList.InsertColumn(1,"可借册数");

m_ctrList.SetColumnWidth(1,60);

m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

CReaderTypeDlg:

:

RefreshData()//刷新读者类型对话框的数据

m_ctrList.SetFocus();//清空列表

m_ctrList.DeleteAllItems();

m_ctrList.SetRedraw(FALSE);

UpdateData(TRUE);//打开记录集

m_ctrList.InsertItem(i,m_recordset.m_type);

itoa(m_recordset.m_number,buffer,10);

m_ctrList.SetItemText(i,1,buffer);

m_recordset.MoveNext();//添加记录

CReaderTypeDlg:

:

OnButtonNew()//添加新读者类型

m_recordset.AddNew();

m_recordset.m_type=dlg.m_strType;

m_recordset.m_number=dlg.m_nNumber;

m_recordset.Update();

m_recordset.Close();

CReaderTypeDlg:

:

OnButtonModify()//修改读者类别数据

m_recordset.Edit();

m_recordset.m_type=dlg.m_strType;

m_recordset.m_number=dlg.m_nNumber;

m_recordset.Update();

m_recordset.Close();

CReaderTypeDlg:

:

OnButtonDelete()//删除读者类别数据

m_recordset.Delete();

m_recordset.Close();

⑶图书类别设置主要包括图书类别名称和可借出天数,并且带有增加、修改、删除图书类别的功能。

图书类型设置功能界面如图4-7所示。

图4-7图书类别设置功能界面

CBookTypeDlg:

:

OnButtonNew()//新增图书类型

m_recordset.AddNew();

m_recordset.m_type=dlg.m_strType;

m_recordset.m_number=dlg.m_nNumber;

CBookTypeDlg:

:

OnButtonModify()//修改图书类型

m_recordset.Edit();

m_recordset.m_type=dlg.m_strType;

m_recordset.m_number=dlg.m_nNumber;

RefreshData();CBookTypeDlg:

:

OnButtonDelete()//删除图书类型

CBookTypeDlg:

:

OnInitDialog()//初始化对话框

m_ctrList.SetColumnWidth(0,120);

m_ctrList.SetColumnWidth(1,60);

CBookTypeDlg:

:

RefreshData()///刷新图书类型数据

m_ctrList.InsertItem(i,m_recordset.m_type);

itoa(m_recordset.m_number,buffer,10);

m_ctrList.SetItemText(i,1,buffer);

m_recordset.MoveNext();

5.借阅管理模块

该模块主要实现借书和还书的登记功能,同时提供借书记录和还书记录的查询和浏览功能。

模块结构:

借书、借书查询、还书、还书查询。

⑴借书设置界面如图4-8所示。

图4-8借书设置界面

借书设置实现的核心代码如下:

CBorrowDlg:

:

CBorrowDlg(CWnd*pParent/*=NULL*/)

:

CDialog(CBorrowDlg:

:

IDD,pParent)//借书对话框的构建

BEGIN_MESSAGE_MAP(CBorrowDlg,CDialog)

CBorrowDlg:

:

OnChangeEditReaderCode()//设置读者编号

m_nAlready=rs_BookInfoSet.GetRecordCount();

m_nLeft=m_nAllow-m_nAlready;

rs_BookInfoSet.Close();

m_bReaderEnable=TRUE;

CBorrowDlg:

:

OnChangeEditBookCode()//设置图书编号

m_strBookName=rs_book.m_name;

m_strBookType=rs_book.m_type;

m_strBookPrice=rs_book.m_price;

rs_book.Close();

m_nDays=rs_bookType.m_number;

rs_bookType.Close();

m_bBookEnable=TRUE;

CBorrowDlg:

:

OnOK()//借书对话框确定键函数

rs_book.Edit();

rs_book.m_isBorrow=TRUE;

rs_book.m_reader_code=m_strReaderCode;

rs_book.Update();

rs_book.Close();

m_recordset.AddNew();

m_recordset.m_book_code=m_strBookCode;

m_recordset.m_book_name=m_strBookName;

m_recordset.m_book_type=m_strBookType;

m_recordset.m_borrow_date=CTime:

:

GetCurrentTime();

m_recordset.m_operator=ptheApp->m_strOperator;

m_recordset.m_price=m_strBookPrice;

m_recordset.m_reader_code=m_strReaderCode;

m_recordset.m_reader_name=m_strReaderName;

m_recordset.m_return_date=CTime:

:

GetCurrentTime()+m_nDays*24*3600;

m_recordset.m_isReturn=FALSE;

m_recordset.Update();

m_recordset.Close();

m_strBookCode="";//更新界面显示

m_strBookName="";

m_strBookType="";

m_strBookPrice="";

m_nDays=0;

m_nAlready++;

m_nLeft--;

m_bBookEnable=FALSE;

UpdateData(FALSE);

RefreshData();

CBorrowDlg:

:

RefreshData()//刷新借书对话框数据

m_ctrList.InsertItem(i,m_recordset.m_book_code);

m_ctrList.SetItemText(i,1,m_recordset.m_book_name);

m_ctrList.SetItemText(i,2,m_recordset.m_price);

m_ctrList.SetItemText(i,3,m_recordset.m_book_type);

strTime.Format("%d-%d-%d",m_recordset.m_borrow_date.GetYear(),m_recordset.

m_borrow_date.GetMonth(),m_recordset.m_borrow_date.GetDay());

m_ctrList.SetItemText(i,5,strTime);

m_ctrList.SetItemText(i,6,m_recordset.m_operator);

i++;

m_recordset.MoveNext();

CBorr

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2