vc图书管理系统.docx
《vc图书管理系统.docx》由会员分享,可在线阅读,更多相关《vc图书管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
![vc图书管理系统.docx](https://file1.bdocx.com/fileroot1/2022-11/16/961b9f20-188a-4892-a5a0-258085fc7e6e/961b9f20-188a-4892-a5a0-258085fc7e6e1.gif)
vc图书管理系统
一绪论
1.1课题背景及现状
图书馆管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端的应用程序的开发两个方面。
对于前者要求建立数据的一致性和完整性,对于后者则要求应用程序功能的完备,易用等的特点。
该图书管理系统是一款多功能的图书管理类工具,可以快速、准确、详细地查询书籍和读者,以及出版社信息,及受欢迎程度等。
开发化境:
VC++6.0。
1.2开发工具介绍
数据库的建立基于SQL-Server2000,前台应用程序基于vc(有相应的数据库访问组件)。
二需求分析
立足于校园实际,建成符合标准化协议、通用性较强、实用的系统,以提高图书信息的现代化管理水平,实现信息资源的共享。
图书管理系统是一种基于集中统一规划的数据库数据管理新模式。
在对图书、读者、出版社信息的管理,其实是对图书、读者数据出版社信息的管理。
本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。
使用该系统之后,图书馆管理人员可以管理读者的登记、图书的购入、借出、归还以及注销、图书归还中的问题;还可以查询某位读者、某本图书的借阅情况,对当前借阅情况给出一些统计,给出统计表格,以全面掌握图书的流通情况,还可以根据图书类别查询图书,可以查询出版社的信息,以及某出版社的图书在本校的借阅情况和平均价钱等信息。
图书管理系统,最主要处理两个过程,借书与还书。
借书之前先看看是不是有借书的资格。
还书时,检查一下书是否过期等如有进行相关的处理。
其他的一些功能主要是围绕这两个功能展开。
图书模块的功能应包括:
图书信息的添加、删除、修改、编辑、并可以根据图书类别查询图书。
管理员,出版社等信息查询与图书相类似。
当然为了更好的订阅,要给出出版社相对质量的参照,便于以后订购较受欢迎的图书。
当然考虑到前台应用程序的需要,以及相关要求,要定义一部分视图(后面遇到时,再详细介绍)。
前台应用程序的界面要尽量的友好美观,便于用户操作,使用户可以不用怎样刻意的去学习,只要看到界面就可以做出正确的操作。
用vc作为前台的开发工具,定义Cdatabase、CRecordset建立与数据库的连接。
要求应前台用程序和后台数据库在数据类型方面要统一,否则会出现插入和更新异常等,导致系统异常,不利于使用。
本系统的宗旨是提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学、合理的规划,系统、高效的实施。
三概要设计
读者
图3-1读者
图书:
图3-2图书
出版社:
图3-3出版社
管理员涉及两张表,密码登陆上次时间放在表MP中,另一张表结构如下:
图3-4管理员
借书关系:
图3-4借阅属性
罚金:
图3-5罚款
图3-6借阅关系
四逻辑设计
book(bidchar(8)primarykey,//编号
bnamechar(20),
isbnchar(13),
typechar(8),
publisherchar(20),
writerchar(10),
pricefloat,
locationchar(12),
bcountint,
)
reader(ridchar(6)primarykey,
rnamechar(10),
rsexchar
(2),
raddrchar(20),
)
mang(midchar(6)primarykey,
mnamechar(10),
msexchar
(2),
mbirthdatetime,
maddrchar(20),
)
borrow(bidchar(8),
ridchar(6),
outdatedatetime,//借书日期
indatedatetime,//还书日期
midchar(6),
primarykey(bid,rid),
foreignkey(bid)referencesbook(bid),
foreignkey(rid)referencesreader(rid),
foreignkey(mid)referencesmang(mid),
)
publisher(pnamechar(20),
pdirchar(10),
paddrchar(20),
ptelchar(11)
)
table罚金(nindexintprimarykey,
ridchar(6),
typechar(4),
btimedatetime,
finefloat,
foreignkey(rid)referencesreader(rid)
)
Mp//保存管理员登陆时间密码的表
(midchar(6)primarykey,
lasttimedatetime,
pwchar(8),
foreignkey(mid)referencesmang(mid)
)
至于定义的视图等,在前台应用程序中用到时再进行说明。
五详细设计
准备工作:
1.重写CButton类CbuttonST,用到的功能较少,只需改写按钮的颜色,使之美观。
所以重载虚函数DrawItem(LPDRAWITEMSTRUCTlpDrawItemStruct).
2.程序中,要将借书期限以及最大借书数目文件存储,所以要写头文件Keep.h
代码如下:
classKeep
{public:
Keep(){};
~Keep(){};
intGetVs();
intSetVs(intday);//最大借书天数
intGetKs();
intSetKs(intkep);//最大借书数目
};……
3.应用程序中为美化界面用到很多图片、图标要准备。
可以根据自己的喜好制作:
如
图5-1登录标题图片
其他图片图标等不再描述。
4.数据库建好后要建立数据源,数据源的名字为library
具体设计:
在描述过程中以视图类为主线。
图5-2主界面图片
……
CMalibView:
:
CMalibView()
:
CRecordView(CMalibView:
:
IDD)
{
……
m_db.Open(NULL,FALSE,FALSE,"ODBC;DSN=library",FALSE);//连接数据库
m_set=newCRecordset(&m_db);//用已经连接的数据库创建视图
m_allBack.CreateSolidBrush(RGB(241,252,249));//定义主界面画刷
}
BOOLCMalibView:
:
PreCreateWindow(CREATESTRUCT&cs)
{
if(m_checkin.DoModal()==IDOK)
m_mid=m_checkin.m_str;//登陆对话框,m_mid为视图类中定义的变量,用于存储登陆的管理员的编号,便于后边使用
}
…
voidCMalibView:
:
OnBBorrow()//借书
{
CBBorrowdlg;
//将当前管理员编号的值赋给m_Mid便于向borrow中插入数据与还书公用一个对话框,根据m_flag,隐藏还书按钮
}
voidCMalibView:
:
OnBook()//查询图书信息
{
ShowInf("select*frombook");
}
voidCMalibView:
:
OnBorrrow()//查询借阅信息
{
ShowInf("select*fromborrow");
}
voidCMalibView:
:
OnMang()//¹ÜÀíÔ±
{
ShowInf("select*frommang"str);
}
voidCMalibView:
:
OnReader()//查询读者信息
{
ShowInf("select*fromreader");
}
BOOLCMalibView:
:
ShowInf(CStringstr)//显示信息函数
{
try{
BeginWaitCursor();//启动鼠标等待
根据不同的str打开不同的表
将属性列的名字读取到控件
……
根据属性要求调整列宽
}
……
}//将记录的值读取到界面控件m_MSG中
EndWaitCursor();
}catch(CDBException*e)//异常处理
{
……}
returntrue;
}
voidCMalibView:
:
OnPublisher()//查询出版社信息
{
ShowInf("select*frompublisher");
}
voidCMalibView:
:
OnReaderadd()//添加读者
{}
voidCMalibView:
:
OnReaderborrowinf()//借书信息
{}
voidCMalibView:
:
OnReaderdel()//删除读者信息
{}
voidCMalibView:
:
OnBookadd()//添加图书
{}
voidCMalibView:
:
OnBookkind()//根据图书种类查询图书位置
{}
voidCMalibView:
:
OnPinfin()//出版社信息录入
{}
voidCMalibView:
:
OnPinf()//出版社受欢迎程度的参考
{}
voidCMalibView:
:
OnReaderbreak()//查看逾期不还书的信息
{}
voidCMalibView:
:
OnMmin()//管理员信息录入
{}
voidCMalibView:
:
OnBookcon()//图书续借
{}
voidCMalibView:
:
OnBookReturn()//还书
{}
voidCMalibView:
:
OnBrake()//罚款记录对话框
{}
voidCMalibView:
:
OnSetting()//系统设置对话框
{}
voidCMalibView:
:
OnPaint()//绘图
{}
VoidCMalibView:
:
OnDestroy()//关闭应用程序前系统调用的函数,将管理员的登陆时//间改为当前时间
{}
voidCMalibView:
:
OnDraw()//绘制标题图片
{}
HBRUSHCMalibView:
:
OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor)//对话框底//色
{}
voidCMalibView:
:
OnButtonMain()//打开学校主页
{}
voidCMalibView:
:
ShowMT()//显示当前登录的管理员信息
{}
intCMalibView:
:
OnCreate(LPCREATESTRUCTlpCreateStruct)//设置时间函数便于显//示当前时间
{}
voidCMalibView:
:
OnTimer(UINTnIDEvent)//显示时间函数
{}
voidCMalibView:
:
OnContextMenu(CWnd*,CPointpoint)//右键菜单通过active控件//生成
{}
具体功能模块的设计:
1.登录对话框
图5-3登录对话框
CCh