VC++课程设计图书馆管理系统0415.docx
- 文档编号:5605644
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:18
- 大小:31.41KB
VC++课程设计图书馆管理系统0415.docx
《VC++课程设计图书馆管理系统0415.docx》由会员分享,可在线阅读,更多相关《VC++课程设计图书馆管理系统0415.docx(18页珍藏版)》请在冰豆网上搜索。
VC++课程设计图书馆管理系统0415
图书管理系统
1.课程设计目的
VC++程序设计课程设计是计算机科学与技术专业的《VC++程序设计》课程的综合性实践环节。
VC++程序设计是一门实用性很强的学科,是进行软件开发的主要工具,只有进行实际操作,才能将理论知识和实际应用有机的结合起来,锻炼学生分析解决实际问题的能力,提高学生实际运用的能力,为学生毕业设计,日后工作中的软件开发打下良好的基础。
具体掌握如下技能:
1掌握VC++6.0开发环境开发软件的方法;
2掌握单文档应用程序结构,熟悉多文档和基于对话框应用程序的方法;
3掌握资源编辑器进行图标、光标、菜单、工具栏、对话框等资源的编辑,熟悉应用程序界面的设计方法;
4掌握对话框,常用控件和Active控件的使用方法;
5熟悉文档结构试图,掌握文档和视图,视图与视图的数据传递技巧;
6熟悉切分窗口及一档多视的编程方法;
7实现视图和对话框控件等窗口中绘制图形的方法;
8掌握用MFC编写ODBC数据库应用程序的方法和技巧。
2.系统需求分析
系统开发的总体任务是实现图书信息管理。
下面就其系统功能作简单的说明。
主要完成的功能有:
登录功能、图书管理、借阅信息、读者查询、新增图书。
图1.系统总体设计
3.设计方案论证
3.1数据库设计
1)逻辑结构
图书管理系统数据模型:
图书(编号,名称,作者,出版日期,登记日期)
管理员(编号,姓名,性别,年龄,工作时间)
会员(编号,姓名,性别,家庭住址,联系方式)
2)图书信息表
字段名称
数据类型
说明
tno
文本
图书编号
tname
文本
图书名称
twriter
文本
作者姓名
tcbs
文本
出版社名称
Tcbrq
日期/时间
出版日期
tdgrq
日期/时间
登记日期
表1.图书信息
表1为图书信息数据表—图书信息数据表记录了图书的基本信息,图书的编号,名称,作者姓名,出版社名称,出版日期,登记日期。
3)管理员信息表
字段名称
数据类型
说明
gno
数字
管理员编号
gname
文本
姓名
gsex
文本
管理员性别
gage
数字
管理员年龄
ggztime
数字
工作时间
表2管理员信息
表2为管理员信息数据表—管理员信息数据表记录了管理员的基本信息,管理员的编号,姓名,性别,年龄,工作时间。
4)会员信息表
字段名称
数据类型
说明
hno
数字
会员编号
hname
文本
会员姓名
hsex
文本
会员性别
haddress
数字
家庭住址
htel
数字
联系方式
表3.会员信息
表3为会员信息数据表—会员信息数据表记录了会员的基本信息,会员的编号,姓名,性别,家庭住址,联系方式。
3.2模块设计
图2.管理员模块、
图2为管理员模块,在管理员模式下可以进行的修改密码,信箱管理,天家图书,新书入库,还书管理等管理员功能。
图3.用户模块
图3为用户模块,会员模式下用户的功能,如修改密码,信箱管理,个人信息,图书查询等。
4.应用软件的实现与运行结果
4.1显示模块
1.登陆
输入账号密码时显示的界面:
图4.登录界面
2.进入图书管理系统
图5.进入管理系统
其中系统登录可以登录和退出系统,登录后可以查看图书资料、读者资料,进行图书馆里和读者管理;图书资料中可以增加、修改、删除、查询图书信息;读者资料中可以增加、修改、删除、查询读者信息;结束管理中可以借阅相关图书;还书管理可以归还借阅图书。
3.图书信息
图6.图书信息
4.借阅信息
图7.借阅信息
5.借阅查询
图8.借阅查询
6.读者信息管理
图9.读者信息管理
7.归还图书
图10.归还图书
8.续借图书
图11.续借图书
9.新增图书
图12.新增图书
10.新增读者
图13.新增读者
4.2具体实现
#include"stdafx.h"
#include"LMSystem.h"
#include"AddBookManage.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAddBookManagedialog
CAddBookManage:
:
CAddBookManage(CWnd*pParent/*=NULL*/)
:
CDialog(CAddBookManage:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CAddBookManage)
m_actorEdit=_T("");
m_bookIDEdit=_T("");
m_bookNameEdit=_T("");
m_bookTypeEdit=_T("");
m_positionEdit=_T("");
m_yearEdit=_T("");
m_ISBNEdit=_T("");
//}}AFX_DATA_INIT
}
voidCAddBookManage:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAddBookManage)
DDX_Control(pDX,IDC_POSITIONEDIT,m_ctrPosition);
DDX_Control(pDX,IDC_YEAREDIT,m_ctrYear);
DDX_Control(pDX,IDC_BOOKTYPEEDIT,m_ctrBookType);
DDX_Control(pDX,IDC_BOOKNAMEEDIT,m_ctrBookName);
DDX_Control(pDX,IDC_BOOKLIST,m_bookList);
DDX_Control(pDX,IDC_BOOKIDEDIT,m_ctrBookIDEdit);
DDX_Control(pDX,IDC_ACTOREDIT,m_ctrActorEdit);
DDX_Text(pDX,IDC_ACTOREDIT,m_actorEdit);
DDX_Text(pDX,IDC_BOOKIDEDIT,m_bookIDEdit);
DDX_Text(pDX,IDC_BOOKNAMEEDIT,m_bookNameEdit);
DDX_Text(pDX,IDC_BOOKTYPEEDIT,m_bookTypeEdit);
DDX_Text(pDX,IDC_POSITIONEDIT,m_positionEdit);
DDX_Text(pDX,IDC_YEAREDIT,m_yearEdit);
DDX_Text(pDX,IDC_ISBNEDIT,m_ISBNEdit);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAddBookManage,CDialog)
//{{AFX_MSG_MAP(CAddBookManage)
ON_EN_KILLFOCUS(IDC_BOOKIDEDIT,OnKillfocusBookidedit)
ON_BN_CLICKED(IDC_ADDBUTTON,OnAddbutton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CAddBookManagemessagehandlers
BOOLCAddBookManage:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
iFlag=0;
DBOpt.DBConnecte();
m_bookList.SetExtendedStyle(LVS_EX_GRIDLINES);
m_bookList.InsertColumn(0,"ISBN编号",LVCFMT_LEFT,120);
m_bookList.InsertColumn(1,"书名编号",LVCFMT_LEFT,120);
//m_bookList.InsertColumn(2,"年代",LVCFMT_LEFT,120);
//m_bookList.InsertColumn(3,"作者",LVCFMT_LEFT,120);
//m_bookList.InsertColumn(4,"类型",LVCFMT_LEFT,120);
//m_bookList.InsertColumn(5,"位置",LVCFMT_LEFT,120);
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
voidCAddBookManage:
:
OnKillfocusBookidedit()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_bookList.DeleteAllItems();
CStringstrSQL;
m_bookIDEdit.TrimRight();
strSQL.Format("select*frombooktypewhereISBN_ID='"+m_bookIDEdit+"'");
DBOpt.BookTypeOperate(strSQL);
if(DBOpt.curItem==1)
{
m_bookNameEdit=DBOpt.strArrayOne.GetAt(0);
m_yearEdit=DBOpt.strArrayTwo.GetAt(0);
m_actorEdit=DBOpt.strArrayThree.GetAt(0);
m_bookTypeEdit=DBOpt.strArrayFour.GetAt(0);
//m_bookIDEdit=DBOpt.strArrayFive.GetAt(0);
iFlag=1;
m_ctrActorEdit.EnableWindow(FALSE);
m_ctrBookName.EnableWindow(FALSE);
m_ctrBookType.EnableWindow(FALSE);
m_ctrYear.EnableWindow(FALSE);
m_ctrPosition.EnableWindow(FALSE);
}
else
{
iFlag=0;
m_ctrActorEdit.EnableWindow(TRUE);
m_ctrBookName.EnableWindow(TRUE);
m_ctrBookType.EnableWindow(TRUE);
m_ctrYear.EnableWindow(TRUE);
m_ctrPosition.EnableWindow(TRUE);
m_bookNameEdit="";
m_yearEdit="";
m_actorEdit="";
m_bookTypeEdit="";
m_positionEdit="";
}
strSQL.Format("select*frombookidwhereISBN_ID='"+m_bookIDEdit+"'");
DBOpt.ReadBookID(strSQL);
for(inti=0;i { m_bookList.InsertItem(i,DBOpt.strArrayTwo.GetAt(i)); m_bookList.SetItemText(i,1,DBOpt.strArrayOne.GetAt(i)); } strSQL.Format("select*frompositionwhereISBN_ID='"+m_bookIDEdit+"'"); CStringstrAddress; strAddress=DBOpt.ReadPosition(strSQL); for(i=0;i { m_positionEdit=strAddress; } UpdateData(FALSE); } voidCAddBookManage: : OnAddbutton() { //TODO: Addyourcontrolnotificationhandlercodehere UpdateData(TRUE); CStringstrSQL; if(m_ISBNEdit.GetLength()<1||m_ISBNEdit.GetLength()>10) { MessageBox("图书编号为空或长度太长! "); return; } if(m_bookIDEdit.GetLength()<1||m_bookIDEdit.GetLength()>10) { MessageBox("ISBN编号为空或长度太长! "); return; } if(iFlag==0) { if(m_bookNameEdit.GetLength()<1||m_bookNameEdit.GetLength()>20) { MessageBox("书名为空或长度太长,请重新输入! "); return; } if(m_positionEdit.GetLength()<1||m_positionEdit.GetLength()>20) { MessageBox("书名为空或长度太长,请重新输入! "); return; } if(m_yearEdit.GetLength()>10||m_actorEdit.GetLength()>20||m_bookTypeEdit.GetLength()>20) { MessageBox("年代、作者、图书类型或方位长度太长,请重新输入! "); return; } strSQL.Format("insertintobooktype(ISBN_ID,book_name,yeartime,actor,book_type,allnumber,lastnumber)values('%s','%s','%s','%s','%s','1','1')",m_bookIDEdit,m_bookNameEdit,m_yearEdit,m_actorEdit,m_bookTypeEdit); DBOpt.ReaderTypeOperate(strSQL); strSQL.Format("insertintoposition(ISBN_ID,book_position)values('%s','%s')",m_bookIDEdit,m_positionEdit); DBOpt.ReaderTypeOperate(strSQL); } else { strSQL.Format("select*frombookidwherebook_id='%s'",m_ISBNEdit); DBOpt.ReadBookID(strSQL); if(DBOpt.curItem>0) { MessageBox("此书已经存在! "); return; } strSQL.Format("updatebooktypesetallnumber=allnumber+1,lastnumber=lastnumber+1whereISBN_ID='%s'",m_bookIDEdit); DBOpt.ReaderTypeOperate(strSQL); } strSQL.Format("insertintobookid(ISBN_ID,book_id)values('%s','%s')",m_bookIDEdit,m_ISBNEdit); DBOpt.ReaderTypeOperate(strSQL); OnKillfocusBookidedit(); } #if_MSC_VER>1000 #pragmaonce #endif//_MSC_VER>1000 //AddBookManage.h: headerfile // #include"DBOperate.h" ///////////////////////////////////////////////////////////////////////////// //CAddBookManagedialog classCAddBookManage: publicCDialog {//Construction public: CAddBookManage(CWnd*pParent=NULL);//standardconstructor CDBOperateDBOpt; intiFlag; //DialogData //{{AFX_DATA(CAddBookManage) enum{IDD=IDD_ADDBOOKDIALOG}; CEditm_ctrPosition; CEditm_ctrYear; CEditm_ctrBookType; CEditm_ctrBookName; CListCtrlm_bookList; CEditm_ctrBookIDEdit; CEditm_ctrActorEdit; CStringm_actorEdit; CStringm_bookIDEdit; CStringm_bookNameEdit; CStringm_bookTypeEdit; CStringm_positionEdit; CStringm_yearEdit; CStringm_ISBNEdit; //}}AFX_DATA //Overrides //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CAddBookManage) protected: virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport //}}AFX_VIRTUAL //Implementation protected: //Generatedmessagemapfunctions //{{AFX_MSG(CAddBookManage) virtualBOOLOnInitDialog(); afx_msgvoidOnKillfocusBookidedit(); afx_msgvoidOnAddbutton(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} //MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline. #endif//! defined(AFX_ADDBOOKMANAGE_H__CBF00BEE_87DD_4CD9_8B61_134915710C31__INCLUDED_) #include"stdafx.h" #include"LMSystem.h" #include"AdminManage.h" #ifdef_DEBUG #definenewDEBUG_NEW #undefTHIS_FILE staticcharTHIS_FILE[]=__FILE__; #endif ///////////////////////////////////////////////////////////////////////////// //CAdminManagedialog CAdminManage: : CAdminManage(CWnd*pParent/*=NULL*/) : CDialog(CAdminManage: : IDD,pParent) { //{{AFX_DATA_INIT(CAdminManage) m_editPassward=_T(""); //}}AFX_DATA_INIT } voidCAdminManage: : DoDataExchange(CDataExchange*pDX) {//Implementation protected: //Generatedmessagemapfunctions //{{AFX_MSG(CAddBookManage) virtualBOOLOnInitDialog(); afx_msgvoidOnKillfocusBookidedit(); afx_msgvoidOnAddbutton(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} //MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline. #endif//! defined(AFX_ADDBOOKMANAGE_H__CBF00BEE_87DD_4CD9_8B61_134915710C31__INCLUDED_) #include"stdafx.h" #include"LMSystem.h" #include"AdminManage.h" #ifdef_DEBUG #definenewDEBUG_NEW #undefTHIS_FILE staticcharTHIS_FILE[]=__FILE__
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 课程设计 图书馆 管理 系统 0415
![提示](https://static.bdocx.com/images/bang_tan.gif)