图书管理系统实验报告.docx
- 文档编号:8757477
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:702.24KB
图书管理系统实验报告.docx
《图书管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
图书管理系统实验报告
姓名
成绩
学号
年级、班
师学院计算机与信息工程学院
期末作品报告书
指导教师:
题目:
图书管理系统
一、试验目的、试验环境、设计思路:
1.实验目的:
计算机网络的发展为人们打开了一种新的视野,促成了一个新领域新产业的产生。
网络的发展试图用一种全新的概念冲击各个传统的商业模式,改变人们的生活方式。
新的需求产生了,人们想通过网络进行个人通信、媒体传播、商业运作、办公、教学等。
总之网络技术的发展促进了社会经济结构的变革。
反之,社会经济对网络发展提出的新的需求又大大的促进了网络的发展,计算机网络及其所涉及的一系列技术成为计算机领域新的研究热点。
在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。
对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。
而采用功能强大的数据库软件开发工具进行图书管理软件开发,具有很好的可移植性,可在应用围较广的WINDOWS系列等操作系统上使用。
除此以外,图书馆管理系统已成为方便了广大师生、学校与外界之间的沟通架起了一座桥梁。
2.实验环境:
操作系统:
WindowsXP以上
实验工具:
VisualC++6.0
数据库:
SQLServer2005
3.设计思路:
1.系统登录
对登录系统的人进行身份的验证,增强系统的安全性,有效防止了数据的丢失。
2.图书信息管理
对图书信息中的书籍名称、助记码、条形码、作者等信息的添加、修改、删除等功能的实现。
3.操作员信息管理
对操作员名称、密码、等级等信息的添加、修改、删除等功能的实现。
4.图书销售管理
能有效的了解书籍的详细信息,并将原来的价格和打完折的价格反映给购书者,节省了购书的时间,方便了顾客。
5.关于系统
对系统进行大致的说明,方便了用户的使用。
二、功能模块及结构描述(函数功能和数据结构类型的定义。
)
1.系统登录模块
对登录系统的人进行身份的验证,增强系统的安全性,有效防止了数据的丢失。
2.图书信息模块
对图书信息中的书籍名称、助记码、条形码、作者等信息的添加、修改、删除等功能的实现。
3.操作员信息模块
对操作员名称、密码、等级等信息的添加、修改、删除等功能的实现。
4.图书销售模块
能有效的了解书籍的详细信息,并将原来的价格和打完折的价格反映给购书者,节省了购书的时间,方便了顾客。
5.关于系统
对系统进行大致的说明,方便了用户的使用。
三、流程描述:
(函数流程图)
验证
添加记录
添加成功到修改
添加功能流程图
查询页面
查询
显示结果列表
退出
查询功能流程图
四、源代码:
1.登录验证信息代码
voidSysReg:
:
OnBUTTONConfirm()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CStringc_user,c_password;
m_username1.GetWindowText(c_user);
m_password1.GetWindowText(c_password);
if(c_user.IsEmpty()||c_password.IsEmpty())
{
MessageBox("用户名称或密码不能为空","用户登录信息");
return;
}
CStringsql;
sql.Format("select*fromtb_operatorwherename='%s'andpassword='%s'",c_user,c_password);
m_pRs->raw_Close();
m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
if(m_pRs->RecordCount>0)
{
Flag=true;
username=m_pRs->GetCollect("name").bstrVal;
password=m_pRs->GetCollect("password").bstrVal;
//PostMessage(WM_CLOSE,0,0);
//EndDialog(0);
BookManMenudlg;
dlg.DoModal();
}
else
{
username="";
password="";
MessageBox("用户名或密码不正确.","提示",64);
return;
}
EndDialog(0);
//CDialog:
:
OnCancel();
}
2.添加信息代码
voidOperatorDlg:
:
OnAdd()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(!
InfoIsNull())
{
CStringc_operator,c_password,c_level;
m_opename1.GetWindowText(c_operator);
m_opepwd1.GetWindowText(c_password);
m_level.GetWindowText(c_level);
intlevel=atoi(c_level);
CStringsql;
sql.Format("insertintotb_operatorvalues('%s','%s',%d)",c_operator,c_password,level);
if(m_pRs->State==adStateOpen)
m_pRs->raw_Close();
try
{
m_pRs->Open((_bstr_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
LoadOperatorInfo();
ClearInterface();
MessageBox("操作成功.","提示",MB_OK);
}
catch(__error)
{
MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR);
}
}
else
MessageBox("基础信息不能为空.","提示",MB_OK+MB_ICONINFORMATION);
}
3.修改信息代码
voidOperatorDlg:
:
OnChangeope()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(!
InfoIsNull())
{
if(m_list.GetSelectionMark()!
=-1)
{
if(MessageBox("确实要修改数据吗?
","提示",MB_YESNO|MB_ICONINFORMATION)==IDYES)
{
CStringc_operator,c_password,c_level;
m_opename1.GetWindowText(c_operator);
m_opepwd1.GetWindowText(c_password);
m_level.GetWindowText(c_level);
intlevel=atoi(c_level);
inti=m_list.GetSelectionMark();
CStringc_name=m_list.GetItemText(i,0);
CStringsql;
sql.Format("updatetb_operatorsetname='%s',password='%s',[level]=%dwherename='%s'",c_operator,c_password,level,c_name);
m_pRs->raw_Close();
try
{
m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
ClearInterface();
LoadOperatorInfo();
MessageBox("操作成功.","提示",64);
}
catch(...)
{
MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR);
}
}
}
else
MessageBox("请选择欲修改的信息.","提示",MB_OK|MB_ICONINFORMATION);
}
else
MessageBox("基础信息不完整.","提示",MB_OK|MB_ICONINFORMATION);
}
4.删除信息代码
voidOperatorDlg:
:
OnDelope()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(m_list.GetSelectionMark()!
=-1)
{
if(MessageBox("确实要删除数据吗?
","提示",MB_YESNO|MB_ICONINFORMATION)==IDYES)
{
inti=m_list.GetSelectionMark();
CStringc_name=m_list.GetItemText(i,0);
CStringsql;
sql.Format("deletetb_operatorwherename='%s'",c_name);
m_pRs->raw_Close();
try
{
m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
ClearInterface();
LoadOperatorInfo();
MessageBox("操作成功.","提示",64);
}
catch(...)
{
MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR);
}
}
}
else
MessageBox("请选择欲删除的信息.","提示",MB_OK|MB_ICONINFORMATION);
}
5.图片显示代码
voidBookManDlg:
:
OnPaint()
{
CPaintDCdc(this);//devicecontextforpainting
CRectrect;
GetClientRect(&rect);
CDCdcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmapbmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1);//IDB_BITMAP是自己的图对应的ID
BITMAPbitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap*pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
//TODO:
Addyourmessagehandlercodehere
//DonotcallCDialog:
:
OnPaint()forpaintingmessages
}
五、使用说明:
1.系统登录
2.图书管理系统界面
3.图书信息管理
4.操作员信息管理
5.图书销售管理
六、问题及解决方法
问题:
在作品编写中遇到了很多的困难,比如:
动态库无法,数据库中的信息无法映射进MFC界面中,还有使用时的类之间和界面之间的调用等等。
解决方法:
通过在书本上参考有关的程序的代码,在网上查阅相关的资料及和别的同学通过不断的讨论来解决问题。
七、总结:
在这次的期末作品编写中,我认识到后台数据库在整个系统设计中的支撑作用。
它是整个系统实现的保证,因此,数据库的设计关乎整个系统的成败。
设计之前的需求分析更是必不可少,保证数据的真实可靠也是数据库之中很重要的一部分,它是保证系统正确性的前提。
针对计算机硬件结构提前做好物理结构的分析,尽量让其占少量的存储空间,提高空间利用率,还应进行逻辑概念分析,尽量避免纪录的重复,不需要建表的时候可以利用视图提取所需信息查看。
属于同一个数据库的每表都不是独立存在的,表与表之间必然存在某种联系,分析时应格外注意这个问题,这样才能使得整个系统联系更加密切,从而使系统更加完善,功能更加齐全。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)