VC++图书管理系统课程设计报告.docx

上传人:b****3 文档编号:4000907 上传时间:2022-11-27 格式:DOCX 页数:80 大小:527.63KB
下载 相关 举报
VC++图书管理系统课程设计报告.docx_第1页
第1页 / 共80页
VC++图书管理系统课程设计报告.docx_第2页
第2页 / 共80页
VC++图书管理系统课程设计报告.docx_第3页
第3页 / 共80页
VC++图书管理系统课程设计报告.docx_第4页
第4页 / 共80页
VC++图书管理系统课程设计报告.docx_第5页
第5页 / 共80页
点击查看更多>>
下载资源
资源描述

VC++图书管理系统课程设计报告.docx

《VC++图书管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《VC++图书管理系统课程设计报告.docx(80页珍藏版)》请在冰豆网上搜索。

VC++图书管理系统课程设计报告.docx

VC++图书管理系统课程设计报告

 

C++程序设计课程设计报告

(2021--2021年度第2学期)

图书管理系统的设计

专业

学生姓名

班级

学号

指导教师

完成日期

2021年6月22日

学生成绩管理系统的设计

1概述

1.1课程设计目的

1、稳固并加深学生对C++语言程序设计知识的理解;

2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;

3、进一步掌握和应用VC++6.0集成开发环境;

4、提高运用C++语言解决实际问题的能力;

5、初步掌握开发小型实用软件的根本方法,能独立设计、实现根本的MIS系统;

6、掌握书写程序设计开发文档的能力〔书写课程设计实验报告〕。

1.2课程设计内容

课题名称:

图书管理系统的开发

说明:

实现简单图书信息的管理。

要求:

1〕权限管理:

增加或删除系统操作人员,并指定操作人员的权限;

2〕读者管理:

设置不同的读者身份,并对读者相关信息进展管理,包括建立新的读者,编辑已有的读者信息和删除读者信息的操作;

3〕图书类别的管理:

对图书的类别进展管理;

4〕图书入库管理:

录入新的图书信息;

5〕图书信息修改管理:

对已有的图书信息进展修改,包括删除指定图书操作;

6〕图书借还管理:

实现对图书的借出和归还的管理;

7〕图书查询管理:

通过各种查询方式可以来进展查询,比方书号,书名,作者等;

8〕图书超期管理:

对超期的情况能自动给出提示信息。

2系统需求分析

系统目标

实现简单图书信息的管理。

如:

登陆权限管理、读者管理、图书信息〔入库、修改、借还、查询、超期〕管理、罚金管理

主体功能

1〕权限管理:

增加或删除系统操作人员,并指定操作人员的权限;

2〕读者管理:

设置不同的读者身份,并对读者相关信息进展管理,包括建立新的读者,编辑已有的读者信息和删除读者信息的操作;

3〕图书类别的管理:

对图书的类别进展管理;

4〕图书入库管理:

录入新的图书信息;

5〕图书信息修改管理:

对已有的图书信息进展修改,包括删除指定图书操作;

6〕图书借还管理:

实现对图书的借出和归还的管理;

7〕图书查询管理:

通过各种查询方式可以来进展查询,比方书号,书名,作者等;

8〕图书超期管理:

对超期的情况能自动给出提示信息。

2.3开发环境

VC++6.0集成开发环境、ACCESS2003数据库

3系统概要设计

系统的功能模块划分

整个图书管理系统分为四个模块。

分别为图书管理模块、借阅管理模块、读者管理模块和系统管理模块。

3.2系统流程图

4系统详细设计

用access2003建立名为“Library〞的数据库,创立4个表,分别为:

BOOK,CLERK,READER,BORROW和FINE。

利用ODBC数据源管理器配置与数据库对应的数据源

建立名为“Library〞的MFC单文档应用程序向导

#include

4.1系统登录模块设计

添加系统登录对话框,属性设置为

控件类型

ID

属性设置

Button

IDC_CONFIRM

Caption设为“登录[&L]〞

Button

IDC_CANCEL

Caption设为“取消[&C]〞

StaticText

默认

Caption设为“请输入用户名和密码〞

StaticText

默认

Caption设为“用户名〞

StaticText

默认

Caption设为“密码〞

EditBox

IDC_LOGIN_NAME

默认

EditBox

IDC_LOGIN_PASSWORD

password

双击对话框翻开ClassWizard对话框,为IDD_LOGIN添加CLoginMDlg类,按下表为该类添加成员变量。

控件ID

变量名

数据类型

IDC_LOGIN_NAME

m_strName

CString

IDC_LOGIN_PASSWORD

m_strPassword

CString

创立一个新类,名为CClerkDataSet,在BaseClass中选择CRecordset

添加消息映射

最后输入按键的执行代码。

4.2系统主界面设计

其中信息可以查看管理员信息,图书信息,读者信息;日常工作中包含图书借阅,图书归还,缴纳罚款;查询中包含读者查询;帮助中可以查看系统帮助

4.3图书信息管理模块设计

添加书籍信息对话框,属性设置为IDD_BOOK_MAINTAIN,微软雅黑,10号字体

控件类型

ID

属性设置

Button

IDC_FIRST

标题设为“第一条[&F]〞

Button

IDC_PRIOR

标题设为“上一条[&P]〞

Button

IDC_NEXT

标题设为“下一条[&N]〞

Button

IDC_LAST

标题设为“末一条[&L]〞

Button

IDC_NEW

标题设为“新增[&N]〞

Button

IDC_ENQUERY

标题设为“查询[&Q]〞

Button

IDC_EDIT

标题设为“修改[&E]〞

Button

IDC_DELETE

标题设为“删除[&D]〞

Button

IDC_SAVE

标题设为“保存[&S]〞

Button

IDC_CANCEL_REC

标题设为“取消[&C]〞

Button

IDC_EXIT

标题设为“推出[&X]〞

StaticText

默认

标题设为“书名〞

StaticText

默认

标题设为“书籍条码〞

StaticText

默认

标题设为“书名〞

StaticText

默认

标题设为“书籍条码〞

StaticText

默认

标题设为“作者〞

StaticText

默认

标题设为“出版社〞

StaticText

默认

标题设为“出版日期〞

StaticText

默认

标题设为“尚能借出〞

EditBox

IDC_BOOKNAME_Q

默认

EditBox

IDC_BOOKID_Q

默认

EditBox

IDC_BOOKNAME

默认

EditBox

IDC_BOOKID

默认

EditBox

IDC_AUTHOR

默认

EditBox

IDC_PRESS

默认

EditBox

IDC_PRESSDATE

默认

EditBox

IDC_FLAG_BORROW

默认

为IDD_BOOK_MAINTAIN添加成员变量

创立一个新类,名为CBookDataSet,方法步骤同CClerkDataSet,添加消息映射

最后输入按钮代码

4.4管理员、读者信息管理模块设计

管理员信息管理

添加管理员信息对话框,属性设置为IDD_CLERK_MAINTAIN,微软雅黑,10号

控件类型

ID

属性设置

Button

IDC_FIRST

标题设为“第一条[&F]〞

Button

IDC_PRIOR

标题设为“上一条[&P]〞

Button

IDC_NEXT

标题设为“下一条[&N]〞

Button

IDC_LAST

标题设为“末一条[&L]〞

Button

IDC_NEW

标题设为“新增[&N]〞

Button

IDC_ENQUERY

标题设为“查询[&Q]〞

Button

IDC_EDIT

标题设为“修改[&E]〞

Button

IDC_DELETE

标题设为“删除[&D]〞

Button

IDC_SAVE

标题设为“保存[&S]〞

Button

IDC_CANCEL_REC

标题设为“取消[&C]〞

Button

IDC_EXIT

标题设为“退出[&X]〞

StaticText

默认

标题设为“用户姓名〞

StaticText

默认

标题设为“用户条码〞

StaticText

默认

标题设为“用户姓名〞

StaticText

默认

标题设为“用户条码〞

StaticText

默认

标题设为“身份证号〞

StaticText

默认

标题设为“密码〞

StaticText

默认

标题设为“职位〞

EditBox

IDC_USERNAME_Q

默认

EditBox

IDC_USERID_Q

默认

EditBox

IDC_USERNAME

默认

EditBox

IDC_USERID

默认

EditBox

IDC_IDCARD

默认

EditBox

IDC_PASSWORD

默认

DropList

IDC_POSITION

默认

其中职位有

为IDD_CLERK_MAINTAIN添加成员变量

建立新类CClerkMDlg,按图书信息模块设计步骤做相似操作,添加消息映射

最后输入按钮代码

读者信息管理

添加读者信息对话框,属性设置为IDD_READER_MAINTAIN,微软雅黑,10号

控件类型

ID

属性设置

Button

IDC_FIRST

标题设为“第一条[&F]〞

Button

IDC_PRIOR

标题设为“上一条[&P]〞

Button

IDC_NEXT

标题设为“下一条[&N]〞

Button

IDC_LAST

标题设为“末一条[&L]〞

Button

IDC_NEW

标题设为“新增[&N]〞

Button

IDC_ENQUERY

标题设为“查询[&Q]〞

Button

IDC_EDIT

标题设为“修改[&E]〞

Button

IDC_DELETE

标题设为“删除[&D]〞

Button

IDC_SAVE

标题设为“保存[&S]〞

Button

IDC_CANCEL_REC

标题设为“取消[&C]〞

Button

IDC_EXIT

标题设为“推出[&X]〞

StaticText

默认

标题设为“读者姓名〞

StaticText

默认

标题设为“读者条码〞

StaticText

默认

标题设为“读者姓名〞

StaticText

默认

标题设为“读者条码〞

StaticText

默认

标题设为“身份证号〞

EditBox

IDC_READERNAME_FOR_Q

默认

EditBox

IDC_READERID_FOR_Q

默认

EditBox

IDC_READERNAME

默认

EditBox

IDC_READERID

默认

EditBox

IDC_IDCARD

默认

为IDD_READER_MAINTAIN添加消息函数

建立新类CReaderDataSet,按上述步骤做相似操作,添加消息映射

最后输入按钮代码

4.5借书还书管理模块设计

借书管理

添加图书借阅对话框,属性设置为IDD_LENDOUT,微软雅黑,10号字体

控件类型

ID

属性设置

Button

IDC_CONFIRM

Caption设为“确定[&O]〞

Button

IDC_CANCEL

Caption设为“取消[&C]〞

StaticText

默认

Caption设为“读者编码〞

StaticText

默认

Caption设为“书籍编码〞

EditBox

IDC_READER_ID

默认

EditBox

IDC_BOOK_ID

默认

为IDD_LENDOUT添加成员变量

建立新类LendOutDlg,按上述步骤做相似操作,添加消息响应

最后输入按钮代码

还书管理

添加图书归还对话框,属性设置为IDD_ReturnBook,微软雅黑,10号

控件类型

ID

属性设置

Button

IDC_CANCEL

标题设为“退出[&X]〞

StaticText

默认

标题设为“图书代码〞

StaticText

默认

标题设为“读者姓名〞

StaticText

默认

标题设为“借书日期〞

StaticText

默认

标题设为“还书日期〞

StaticText

默认

标题设为“超期天数〞

EditBox

IDC_EDITBook_ID

默认

EditBox

IDC_EDITReaderName

默认

EditBox

IDC_EDITBorrowDate

默认

EditBox

IDC_EDITReturnDate

默认

EditBox

IDC_EDITDays

默认

为IDD_ReturnBook添加成员变量

建立新类CReturnBookDlg,按上述步骤做相似操作,添加消息映射

最后输入代码

4.6借书、罚金查询查询模块设计

借书查询

添加借书查询对话框,属性设置为IDD_DLGREADERQRY,微软雅黑,10号

控件类型

ID

属性设置

Button

IDC_QUERY

标题设为“查询[&E]〞

StaticText

默认

标题设为“读者ID〞

StaticText

默认

标题设为“读者姓名〞

StaticText

默认

标题设为“读者身份证号〞

EditBox

IDC_READERID

默认

EditBox

IDC_READERNAME

Disabled

EditBox

IDC_READERIDCARD

Disabled

ListBox

IDC_LISTBOOK

默认

为IDD_DLGREADERQRY添加成员变量

建立新类CReaderQryDlg,按上述步骤做相似操作,添加消息映射

最后输入代码

罚金查询

添加缴纳罚金对话框,属性设置为IDD_FINE,微软雅黑,10号字体

控件类型

ID

属性设置

Button

IDC_CONFIRM

Caption设为“确定[&O]〞

Button

IDC_EXIT

Caption设为“取消[&C]〞

StaticText

默认

Caption设为“读者条码〞

StaticText

默认

Caption设为“读者姓名〞

StaticText

默认

Caption设为“罚款金额〞

StaticText

默认

Caption设为“过期天数〞

StaticText

默认

Caption设为“日期〞

EditBox

IDC_READER_ID

默认

EditBox

IDC_READER_NAME

Disabled

EditBox

IDC_AMOUNT

Disabled

EditBox

IDC_AMOUNT

Disabled

EditBox

IDC_FINE_DATE

Disabled

为IDD_FINE添加成员变量

建立新类CFineHistoryDataSet,按上述步骤做相似操作,添加消息映射

最后输入代码

5测试

5.1测试方案

采用黑盒测试方法。

对功能进展逐一测试,在输入合理及不合理的数据后测试系统的正常运作情况

测试1:

系统登录测试

测试2:

图书管理测试

测试3:

读者管理测试

测试4:

管理员管理测试

测试5:

借书测试

测试6:

还书测试

测试7:

借书、罚金查询测试

5.2测试结果

1、登录测试:

正确登录错误登录

2、图书管理测试

新增

3、读者管理测试

修改

4、管理员管理测试

查询

5、借书测试

借阅成功

借阅失败

6、还书测试

7、借书、罚金查询测试

借书查询

罚金查询

6小结

在这次的课程设计中,让我学到了很多在课堂上和书本上学不到的知识,我在这次课程设计中最大的收获有以下几方面:

一、领略到了数据库设计在计算机领域的重要性。

数据库作为一个永久存储形式在应用中发挥着重要的作用。

在数据库设计中,我明白了数据库设计不是范式越高越好的,我们要根据我们的应用来决定,一切应该以需求为首要选择。

二、对编程环境、一些控件的使用和界面的设计更加熟悉。

因为?

图书管理系统?

中设计到很多控件的使用,只有很好的使用这些控件才可以给出一个很好的界面呈现在用户面前。

这样更有利于数据库和用户之间的交流。

三、利用软件工程学开发系统。

虽然这个?

图书管理系统?

是一个小的系统,但从这个小的工程中也让我明白了数据库作为任何一个系统的后台的重要性,在开发系统设计和实现中学到和总结很多经历和教训。

 

参考文献

[1]谭浩强. C程序设计(第三版).北京:

清华大学出版社,2005

[2]谭浩强. C程序设计题解与上机指导(第三版).北京:

清华大学出版社,2005

附录

附录1源程序清单

附录1.1系统登录模块源程序

CLoginDlg:

:

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

:

CDialog(CLoginDlg:

:

IDD,pParent)

{

//{{AFX_DATA_INIT(CLoginDlg)

m_strName=_T("");

m_strPassword=_T("");

//}}AFX_DATA_INIT

m_bSuccess=FALSE;

m_strUSERID=_T("");

}

voidCLoginDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CLoginDlg)

DDX_Text(pDX,IDC_LOGIN_NAME,m_strName);

DDV_MaxChars(pDX,m_strName,8);

DDX_Text(pDX,IDC_LOGIN_PASSWORD,m_strPassword);

DDV_MaxChars(pDX,m_strPassword,8);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CLoginDlg,CDialog)

//{{AFX_MSG_MAP(CLoginDlg)

ON_BN_CLICKED(IDC_CONFIRM,OnConfirm)

ON_BN_CLICKED(IDC_CANCEL,OnCancel)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CLoginDlgmessagehandlers

voidCLoginDlg:

:

OnConfirm()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CClerkDataSetmrsDataSet;/*声明记录集*/

CStringmSqlStr;

UpdateData(TRUE);

if(m_strName.IsEmpty())/*判断用户名信息是否为空*/

{

AfxMessageBox("请输入用户名!

");

return;

}

mSqlStr="SELECT*FROMCLERKWHERENAME='";

mSqlStr=mSqlStr+m_strName;

mSqlStr=mSqlStr+"'ANDPASSWORD='";

mSqlStr=mSqlStr+m_strPassword;

mSqlStr=mSqlStr+"'";

if(!

mrsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mSqlStr))

{

AfxMessageBox("CLERK表翻开失败!

");

return;

}

if(!

mrsDataSet.IsEOF())

{

//Openallfunctionforuser

m_bSuccess=TRUE;

m_strUSERID=mrsDataSet.m_CLERK_ID;

CDialog:

:

OnOK();

}

else

{

AfxMessageBox("登录失败!

");

m_strUSERID=_T("");

return;

}

}

voidCLoginDlg:

:

OnCancel()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CDialog:

:

OnCancel();

}

附录1.2系统主界面源程序

voidCMainFrame:

:

OnLoginIn()

{

//TODO:

Addyourcommandhandlercodehere

CLoginDlgmDlg;

if(mDlg.DoModal()==IDOK)

{

m_bLogin=TRUE;

trName;

m_strUserID=mDlg.m_strUSERID;

}

else

{

m_bLogin=FALSE;

m_strUserName=_T("");

m_strUserID=_T("");

}

CStringName;

Name="当前用户:

"+m_strUserName;

m_wndStatusBar.SetPaneText(0,Name);

}

voidCMainFrame:

:

OnUpdateFine(CCmdUI*pCmdUI)

{

//TODO:

AddyourcommandupdateUIhandlercodehere

pCmdUI->Enable(m_bLogin);

}

voidCMainFrame:

:

OnUpdateBookMaintain(CCmdUI*pCmdUI)

{

//TODO:

AddyourcommandupdateUIhandlercodehere

pCmdUI->Enable(m_bLogin);

}

voidCMainFrame:

:

OnUpdateConfigMaintain(CCmdUI*pCmdUI)

{

//TODO:

AddyourcommandupdateUIhandlercodehere

pCmdUI->Enable(m_bLogin);

}

voidCMainFrame:

:

OnUpdateLendOut(CCmdUI*pCmdUI)

{

//TODO:

AddyourcommandupdateUIhandlercodeh

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1