C++语言课程设计报告MFC设计图书管理系统.doc
《C++语言课程设计报告MFC设计图书管理系统.doc》由会员分享,可在线阅读,更多相关《C++语言课程设计报告MFC设计图书管理系统.doc(136页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、- .XX理工大学 聋人工学院?C+语言课程设计?专业:网络工程年级:2015级一班XX:志冲 学号:成绩:完成日期:20161220- . 可修编.目录第一章 简介11.1 设计题目11.2 指导教师1第二章?图书管理系统?设计意义22.1 设计容概述22.2需求分析22.3 设计意义2第三章总体设计33.1 系统运行环境33.2 系统构造图33.3 系统各模块的功能43.4 对象数据构造7第四章详细设计84.1程序源代码84.1.1登陆模块84.1.2注册模块114.1.3主菜单模块134.1.4编辑模块174.1.5查询模块274.1.6浏览模块344.1.7设置模块394.1.8组合框
2、模块414.1.9图书信息模块434.1.10 资源文件454.2系统测试554.2.1登陆对话框554.2.2编辑对话框584.2.3浏览对话框624.2.4查询对话框664.2.5设置对话框714.2.6退出734.2.7测试完毕运行734.3问题分析73第五章结论80参考文献81第一章简介1.1 设计题目图书管理系统1.2 指导教师第二章?图书管理系统?设计意义2.1 设计容概述本课程设计图书管理系统,必修要满足使用方便、操作灵活和数据平安等设计需求。本系统在设计时应满足以下几个目标:1采用人机对话的操作方式,界面设计美观友好,操作灵活、方便、快捷、准确数据保存平安可靠。2实现对图书信息
3、的管理功能。3系统运行稳定、平安可靠。2.2需求分析信息技术的飞速开展给图书企业的管理带来了全新的变革.采用图书管理系统对图书企业的经营运作进展全程管理.不仅可以使企业摆脱以往人工管理产生的一系列问题,而且可以提高管理效率、降低管理本钱、增加经济效益。通过管理系统对图书企业的开展进展规划,可以收集大量关键可靠的数据。企业决策层分析这些数据,做出合理决策,及时调整,使之能够更好地遵循市场的销售规律,适应市场的变化,从而让企业能够在剧烈的行业竞争中占据一席之地。2.3 设计意义1有助于加深我们对C+程序设计这门课程的理解,我们在课堂上学的都是根底理论知识,对于如何用程序语言来描述所学知识还是有一定
4、难度。通过课程设计,我们可以真正理解其涵。2有利于我们逻辑思维的锻炼,程序设计能直接有效地训练学生的创新思维、培养分析问题、解决问题能力。即使是一个简单的程序,依然需要学生有条不理的构思。3有利于培养严谨认真的学习态度,在程序设计过程里,当我们输入程序代码的时候,如果不够认真或细心,那么可能就导致语法错误,从而无法得出运行结果。那么,这个我们反复调试,反复修改的过程,其实也是对我们认真严谨治学的一个锻炼。第三章 总体设计3.1 系统运行环境1.硬件环境PC机2.软件环境操作系统:Windows 10 开发工具:Visual studio 20103.2 系统构造图图书管理系统构造图如图3.1所
5、以。该系统包括:添加、修改、删除、查询、浏览等。图 3.1 系统的功能模块图3.3系统各模块的功能表3.2 主要类介绍类名派生自说明CtianjinAppCWinApp为初始化应用程序Window应用程序基类的派生类LoginCDialog用户登录对话框RegisterCDialog注册对话框CtianjinDlgCDialog主程序界面对话框staCStatic由于直接用CStatic创立的静态文本控件的样式是默认,但不是理想的效果,故再次继承CStatic,可以重新改变样式。buttonCButton由于直接用CButton创立的按钮控件的样式是默认,但不是理想的效果,故再次继承CButt
6、on,可以重新改变样式。ExploreCDialog浏览对话框boxCboBox由于直接用CboBox创立的组合框控件的样式是默认,但不是理想的效果,故再次继承CboBox,可以重新改变样式。enteringCDialog编辑对话框EditPriceCEdit由于直接用CEdit创立的编辑框的功能还不够,所以再次继承CEdit,可以多加功能-限制输入字符queryCDialog查询对话框SettingCDialog设置对话框AboutCDialog关于对话框表3.3 主要函数介绍源文件函数名称功能描述Explore.cppOnInitDialogOpenFileOnClickedButton1
7、OnClickedButton2ExchangeBook对对话框进展初始化处理翻开文件函数响应“升序按钮实现排序该图书信息响应“升序按钮实现排序该图书信息交换各对象的数据表3.4 主要函数介绍源文件函数名称功能描述CtianjinDlg.cppOnInitDialogOnPaintOnQueryDragIconOnTimerUpdateFileOnExitOnEnterOnAboutOnQueryOnSettingOnExplore对对话框进展初始化处理对对话框绘制局部应用窗口系统获取鼠标图标用于实现定时控制功能用于实现更新文件来计算收了几本书响应“退出按钮实现退出本程序响应“编辑按钮实现启动
8、编辑对话框响应“关于按钮实现启动关于对话框响应“查询按钮实现启动查询对话框响应“设置按钮实现启动设置对话框响应“浏览按钮实现启动浏览对话框表3.5 主要函数介绍源文件函数名称功能描述Entering.cppOnInitDialogOnCtlColor OnBnClickedOkCheckInputOnCloseOnLvnItemchangedList1OnBnClickedOk2OnBnClickedOk3OnLvnColumnclickList1OnNMClickList1OnBnClickedButton1对对话框进展初始化处理控件窗口函数 用于画出控件菜单处理添加记录信息检查输入的容是否
9、为空输入记录信息关闭该对话框某个项已经发生变化响应“删除按钮实现删除该图书信息响应“修改按钮实现修改该图书信息单击列,用于勾选全部当鼠标单击列表视图控件时产生响应“清空按钮实现修改该图书信息表3.6 主要函数介绍源文件函数名称功能描述query.cppOnInitDialogOnBnClickedRadio1OnBnClickedRadio2OnBnClickedRadio3OnBnClickedRadio4OnBnClickedRadio5OnBnClickedButton1QueryNumQueryNameQueryAuthorQueryPressQueryAnyOpenFileTipin
10、sertOnBnClickedButton2对对话框进展初始化处理响应“书号按钮实现选择该方式查询响应“书名按钮实现选择该方式查询响应“作者按钮实现选择该方式查询响应“按钮实现选择该方式查询响应“任何容按钮实现选择该方式查询关闭该对话框查询书号函数查询书名函数查询作者函数查询函数查询任何函数翻开文件提示用于告诉用户找到了多少本将已找到的几本书插入在显示上响应“查询按钮实现根据该方式查询3.4 对象数据构造每个对象记录着每本书的信息,为了保护数据平安,故把其的这些成员变量声明为private,就是说在类外的话,不能直接调用对象的成员变量名来赋值或者获取其值,这就到达了保护数据,但是在某个时候遇到
11、数据不对可能需要修改,这时就要加成员函数来修改或者获取,而且把成员函数声明为public,由于在类外需要正常调用,故声明为公开。其表如下。 表3.7 主要变量介绍变量名类型功能描述NameNumAuthorPressTimePriceCharCharCharCharCharDouble书名书号作者时间价格表3.8 主要函数介绍源文件函数名称功能描述book.cppSetNameSetNumSetAuthorSetPressSetTimeSetPriceGetNameGetNumGetAuthorGetPressGetTimeGetPrice设置当前对象的成员变量name的值设置当前对象的成员变
12、量num的值设置当前对象的成员变量Author的值设置当前对象的成员变量Press的值设置当前对象的成员变量Time的值设置当前对象的成员变量Price的值获取当前对象的成员变量name的值获取当前对象的成员变量Num的值获取当前对象的成员变量Author的值获取当前对象的成员变量Press的值获取当前对象的成员变量Time的值获取当前对象的成员变量Price的值第四章 详细设计4.1程序源代码4.1.1登陆模块Login.h#pragma once#includetianjinDlg.h#include afxwin.h/ Login 对话框class Login : public CDia
13、logDECLARE_DYNAMIC(Login)int a;public:Login(CWnd* pParent = NULL); / 标准构造函数virtual Login();/ 对话框数据enum IDD = IDD_LOGIN ;protected:virtual void DoDataExchange(CDataExchange* pDX);CtianjinDlg dlg;DECLARE_MESSAGE_MAP()public:virtual BOOL OnInitDialog();afx_msg void OnClose();CString user;CString passwo
14、rd;afx_msg void OnBnClickedOk();CButton regis;afx_msg void OnBnClickedButton1();Login.cpp#include stdafx.h#include tianjin.h#include Login.h#include afxdialogex.h#include Register.hIMPLEMENT_DYNAMIC(Login, CDialog)Login:Login(CWnd* pParent /*=NULL*/): CDialog(Login:IDD, pParent), user(_T(), password
15、(_T()Login:Login()void Login:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT3, user);DDX_Text(pDX, IDC_EDIT4, password);DDX_Control(pDX, IDC_BUTTON1, regis);BEGIN_MESSAGE_MAP(Login, CDialog)ON_WM_CLOSE()ON_BN_CLICKED(IDOK, &Login:OnBnClickedOk)ON_BN_CLICKED(IDC_B
16、UTTON1, &Login:OnBnClickedButton1)END_MESSAGE_MAP()BOOL Login:OnInitDialog()CDialog:OnInitDialog();a=0;/初始化a的值为0 用于判断该值是否退出本程序 当输入密码错误,就使该a的值增加1CRect r;/矩形的类,数据成员是 矩形左上角的x的坐标,矩形左上角Y的坐标,矩形右下角x的坐标,矩形右下角Y的坐标CString user;this-GetClientRect(&r);/是获得窗口的当前的客户区,把各坐标值保存在r对象。this-MoveWindow(600,300,r.right,r.
17、bottom);/根据上面获得窗口的大小,来调整并且移动。GetPrivateProfileString(login,user,NULL,user.GetBuffer(20),20,./setting.ini);/从setting.ini配置文件中的login节名中获取该user键名的值并保存在user的值,如果找不到该键名,那么保存第三个参/数的值 即默认的值 表示未注册的账号,反之 找到了该值,表示已经注册了if(user!=NULL)/用于判断上面获得的值是否已经注册过 如注册过,那么执行if后边的语句regis.EnableWindow(0);/在该函数的参数赋值为0 表示制止指定的控
18、件承受鼠标和键盘的输入 由于该已经注册过的。regis.SetWindowTextA(已注册);/指定该控件的容设为 已注册用于提示return TRUE;void Login:OnClose()CDialog:OnClose();void Login:OnBnClickedOk()this-UpdateData(1);/将各控件中的数据保存到相应的变量分别为user“ password“if(!user.IsEmpty()&!password.IsEmpty()/检查该各变量的值是否为空,如该值为空,就执行else后边的语句CString user1,password1;/定义两个字符串类变
19、量 用于从配置文件的注册过的用户及密码的值保存在该变量的GetPrivateProfileString(login,user,NULL,user1.GetBuffer(20),20,./setting.ini);/从本身程序的当前的setting.ini配置/文件中的login节名中获取该user键名的值并保存在user1的值,如果找不到该键名,那么保存默认值为NULL“GetPrivateProfileString(login,password,NULL,password1.GetBuffer(20),20,./setting.ini);/如同上面的方法if(user=user1&passw
20、ord=password1)/比照各值是否一致,满足此条件表示该用户名及密码都是正确,可以登陆,即执行if后边的语句this-ShowWindow(SW_HIDE);/把该对话框的显示方式为隐藏dlg.DoModal();/启动主窗口的对话框CDialog:OnOK();elsea+;/密码错误次数if(a3)/如超过3次的错误密码就执行if后边的语句CDialog:OnCancel();return;/调用关闭该对话框的函数 CString d;d.Format(用户名或者密码错误%d次 超过三次错误即将自动退出,a);MessageBox(d,登陆提示,MB_OK|MB_ICONWARNI
21、NG);/用于提示密码错误 以防止令人觉得这程序有问题else MessageBox(用户名或者密码的字符串为空,登陆提示,MB_OK|MB_ICONWARNING);/当该值为空,那么执行该语句 用于提示。void Login:OnBnClickedButton1()Register dialog;/定义注册对话框的对象变量dialog.DoModal();/启动 注册对话框;4.1.2注册模块Register.h#pragma once#include afxwin.h/ Register 对话框class Register : public CDialogDECLARE_DYNAMIC(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言 课程设计 报告 MFC 设计 图书 管理 系统
限制150内