VC++论文工作备忘录管理系统.docx
- 文档编号:12774584
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:44
- 大小:878.71KB
VC++论文工作备忘录管理系统.docx
《VC++论文工作备忘录管理系统.docx》由会员分享,可在线阅读,更多相关《VC++论文工作备忘录管理系统.docx(44页珍藏版)》请在冰点文库上搜索。
VC++论文工作备忘录管理系统
面向对象VC++课程论文
题目:
工作备忘录管理系统
姓名:
学院:
通信与信息工程学院
学号:
电话:
授课教师:
摘要:
近年来,计算机技术日趋成熟,数据库技术不断发展,管理信息系统的应用已延伸到社会的各个领域。
结合管理信息系统的开发方法及步骤,以此为理论基础,开发出一个小型的信息管理系统——工作备忘录管理系统。
工作备忘录管理系统是典型的信息管理系统,它的设计开发制作包含数据库支撑系统的建立和维护以及用户界面的开发两个部分。
对于前者要求建立起数据一致性强、数据安全性好的数据库。
而对于后者则要求应用程序功能完备,易使用等特点。
本论文主要阐述以面向对象的程序开发语言VC++为开发工具,结合Access数据库,设计一个简单实用的工作备忘录管理系统。
关键词:
信息管理系统VC++数据库
Abstract:
inrecentyears,computertechnologymatures,databasetechnologydevelopment,managementinformationsystemapplicationsalreadyextendedtosocietyinallareas.Combinedwiththemanagementinformationsystemdevelopmentmethodsandstepstoasthetheoreticalbasis,anddevelopedasmallinformationmanagementsystem-amemorandummanagementsystem.Memosmanagementsystemisthetypicalinformationmanagementsystem,thedesignanddevelopmentofmakingitincludesdatabasesupportsystemsetupandmaintenanceoftheuserinterfaceandthedevelopmentofthetwoparts.Theformerrequiredtosetupconsistencyofthedataisstrong,thedatasecuritygooddatabase.Forthelatterrequirestheapplicationprogramfunctioncomplete,easytouse,etc.Thispapermainlyexpoundsthedevelopmentofproceduresonobject-orientedlanguageVC++asadevelopmenttool,combinedwiththeAccessdatabase,designasimpleandpracticalworkmemomanagementsystem.
Keywords:
informationmanagementsystemVC++database
1引言
1.1课题研究背景及意义
现代科学的发展,使计算机进入了几乎一切领域。
从科学研究到工农业生产,从企业生产管理到家庭生活,各行各业都广泛地使用着计算机。
当今社会的数据信息管理离不开计算机技术的支持。
如何实现对数据信息快捷、有效、实用的管理,是软件开发业追求的目标。
随着当今社会的快速发展,人们的压力也日渐增大,当人们在工作或学习繁忙时,经常会忘记这样那样的事情,并不是说明这个人懒散,而是因为人的思维习惯就是这样,是属于“模糊记忆”的思维。
什么是“模糊记忆”?
模糊记忆是指记忆任何东西,只能记住概要框架或者一小部分重点或突出的内容,而没有办法进行全部记忆,例如,你看过一部小说,记下来没有?
可以说没有记下,也就是不能完整地背下整篇小说,但可以将整篇小说的概要讲出来,甚至可以讲一些很经典的情节描述,但绝对不可能一字不漏,包括标点符号都记下来。
能否有“一字不漏,包括标点符号都记下来”的方法呢?
当然有,但不是使用人脑,而是使用计算机,计算机就能达到“准确记忆”的效果。
工作备忘录管理系统也就是将计算机“准确记忆”的信息进行一个整理并管理的软件工具。
2系统开发环境和工具
2.1硬件环境
Inter(R)Core(TM)2DuoCPUT8100
主频:
2.10GHz
内存:
2.00GB
硬盘:
160G
2.2软件环境
操作系统:
Microsoft®Windows™XPProfessional
数据库:
MicrosoftOfficeAccess
开发语言:
C++
开发工具:
MicrosoftVisualC++
其他辅助软件:
MicrosoftWord等
2.3开发工具与技术简介
(1)MicrosoftVisualC++简介
MicrosoftVisualC++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。
它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。
它以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。
这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。
VC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c++的一个开发平台.有些软件就是这个编出来的,另外还有VB、VF,只是使用不同语言。
VC++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。
Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。
VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以把C++看作为一种“工业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。
VC++应用程序的开发主要有两种模式,一种是WINAPI方式,另一种则是MFC方式,传统的WINAPI开发方式比较繁琐,而MFC则是对WINAPI再次封装,所以MFC相对于WINAPI开发更具备效率优势。
(2)MicrosoftOfficeAccess简介
Access是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS,即RelationalDatabaseManagementSystem),是Office系列应用软件之一。
它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
Access能够存取Access/Jet、MicrosoftSQLServer、Oracle(甲骨文软件公司),或者任何ODBC兼容数据库内的资料。
熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的"进阶用户"则能使用它来开发简单的应用软件。
虽然它支援部分面向对象(OOP)技术,但是未能成为一种完整的面向对象开发工具。
MicrosoftAccess在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。
它也常被用来开发简单的WEB应用程序.这些应用程序都利用ASP技术在InternetInformationServices运行.比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/MicrosoftSQLServer.
它的使用方便程度和强大的设计工具为初级程序员提供许多功能。
不过,这种便于使用可能使人误解。
这类开发者都是没有在应用或者数据设计方面训练的办公室从业人员。
因此许多人以为这样的开发者能够创造可用的系统,但也有很多人认为工具本身的局限性产生了这样的误导。
一些专业的应用程序开发人员使用Access用作快速应用开发,特别是给街道上的推销员制作一个初型或独立应用程序的工具。
可是如果是透过网络存取数据的话,Access的可扩放性并不高。
因此当程序被较多使用者使用时,他们的选择多会是倾向于一些客户端-服务器为本的方案,例如Oracle、DB2、MicrosoftSQLServer、WindowsSharePointServices、PostgreSQL、MySQL、AlphaFive、MaxDB,或者Filemaker。
无论如何,不少Access的功能(表单,报告,序列和VB代码)可以用作其他数据库的后期应用,包括JET(档案为主的数据库引擎,Access缺省使用)、MicrosoftSQLServer、Oracle和任何其他跟ODBC兼容的产品。
这种方法允许开发者把一个成熟的应用的数据移动到一台更大功率的服务器而没有已经在适当的位置牺牲发展。
(3)C++简介
美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普(BjarneStroustrup)博士在20世纪80年代初期发明并实现了C++(最初这种语言被称作“CwithClasses”)。
一开始C++是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。
虚函数(virtualfunction)、运算符重载(operatoroverloading)、多重继承(multipleinheritance)、模板(template)、异常(exception)、RTTI、命名空间(namespace)逐渐被加入标准。
1998年国际标准组织(ISO)颁布了C++程序设计语言的国际标准ISO/IEC1988-1998。
C++是具有国际标准的编程语言,通常称作ANSI/ISOC++。
1998年是C++标准委员会成立的第一年,以后每5年视实际需要更新一次标准。
C++0x最终国际投票已于2011年8月10日结束,所有国家都投出了赞成票,C++0x已经毫无疑义地成为正式国际标准。
先前被临时命名为C++0x的新标准将被称为C++2011。
C++2011将取代现行的C++标准ISO/IEC14882,它公开于1998年并于2003年更新,通称C++98以及C++03。
国际标准化组织于2011年9月1日出版发布ISO/IEC14882:
2011,名称是:
Informationtechnology--Programminglanguages--C++Edition:
3。
C++是一种绝对不会试图迎合某个模子的语言。
特别是它的形式可以变化多端,以解决不同类型的问题。
这主要反映在象MicrosoftVisualC++和BorlandC++Builder那样的工具身上。
它们将库、组件模型以及代码生成工具等合成到一起,以开发视窗化的末端用户应用(用于MicrosoftWindows操作系统)。
3系统分析
系统设计和分析是系统开发最为关键的一环,系统设计好了,后面的代码设计就不会偏离方向。
通过系统的设计,开发人员能够更好的把握系统的需求,了解各系统的功能模块。
3.1系统的设计思想
根据模块化的设计思想,系统可以划分为若干个独立的模块,主要包括添加备忘事情,修改备忘事情,读取备忘事情,删除备忘事情,然后利用C++编程语言对各模块进行编程实现。
系统结构如图3-1所示:
图3-1
我的主要任务是完成这4个模块的设计与实现。
3.2系统需求分析
在现代信息社会里,人们越来越重视信息的交流和沟通,更加注重时间的有效利用,其中个人信息量也在高速增长,因此个人信息的管理在日常工作和生活中成为一项必不可少的内容,方便实用的工作备忘录管理系统对于提高信息利用效率具有重要意义。
随着个人电脑的普及,简单实用的工作备忘录管理系统成为人们日常个人信息管理的不错选择。
使用者可以通过工作备忘录管理系统对日常工作和生活琐事等方面进行更有效的管理,主要是为使用者提供对工作信息更方便的记录和查询功能,为使用者在工作信息管理上带来更多的便利。
3.3系统功能描述
备忘录的主要功能还是在于可以登记事情,并且可以随时查看未来或过去登记的事情,当然,如果更强大些,如安装在手机里面的软件,可以设置闹钟功能,那当然最好,在本次的系统开发中,开发PC机的备忘录,将开发以下功能:
新增备忘事情:
选择日期,输入备忘的事情和一些备注信息,以便将来查阅。
当人们在工作繁忙的时候,就会有许多的事情要去做,许多的事情要去安排,这时候,可以用备忘录的新增备忘事情功能,选择事情要办的日期,并输入要备忘的事情,当然可以添加一些备注信息,比如某天某时要去开一个会议,就可以在备注的信息里面添加会议的主题以及参加会议的领导。
新增备忘的时候还可以选择事情的重要程度,当两件事在同一时间发生冲突时,可以根据事情的重要程度做出选择。
删除备忘录事情:
有些事情已经完成或不再需要记录,可以通过备忘录软件进行删除。
有些事情已经提前完成了,或者说已经备忘的事情不需要去做了,这时候可以用到备忘录删除的功能,当这件备忘的事情删除时,在数据库的表格中就不会有这件事的任何数据了。
修改备忘录:
修改备忘录的方式有两种,一种是直接修改该元组,不改变该元组的ID号,另外一种是直接删除需要修改的备忘录元组,再新建一个备忘录元组,由于新增的ID号是递增的,因此ID号必然会改变。
当我们想改变已经备忘的事情时,就可以用到备忘录的修改功能,我们既可以修改事情的时间,也可以修改事情的备注,以达到我们预期的结果。
读取备忘事情:
根据用户选择的日期读取备忘的事情。
当我们想知道明天或者后天有什么安排时,我们就可以根据日期来查询已经备忘的事情,从而可以合理的安排时间。
4系统设计与实现
4.1功能模块设计
从上面的功能描述中,可以把工作备忘录系统分为四个模块:
新增备忘录事情、读取备忘录事情、删除备忘录事情和修改备忘录事情。
工作备忘录管理系统的功能模块图如图4-1所示:
图4-1
我的主要任务是对各模块进行设计和实现,新增备忘录的事情:
可以传递SQL语句进行Insert操作。
读取备忘事情:
要实现该项技术,使用GetCollect()函数即可。
删除备忘录的事情:
可以传递SQL语句进行Delete操作。
修改备忘录的事情:
可以重复删除和新增备忘录的事情,也可以传递SQL语句进行Update操作。
4.2数据库的设计
数据库设计是系统开发中非常重要的一个环节。
数据库结构设计的好坏将直接影响到系统的效率和功能的实现。
在设计数据库之前,要了解数据库的需求,从而确定数据库的结构。
否则如果在代码实现过程中再修改数据库的结构,将会带来巨大人力和物力的浪费。
4.2.1数据库的需求分析
一般而言,基于数据库的应用系统可以分为两个层次。
应用程序层:
功能性的应用程序,用于控制数据库访问等。
数据库层:
用于存储数据和管理数据。
数据库层是不与用户直接打交道的,用户通过应用程序来访问数据库,因此,数据库可以看作是整个数据库应用系统的“后台”,而应用程序所展示的界面可以看作是该系统的“前台”。
因此,设计好后台,直接关系到整个系统的稳定性和应用程序设计的方便与否。
概念模型就是对信息世界的抽象建模,狭义的信息世界可以专指数据库中的数据,那么概念模型就可以理解为对数据库数据的抽象建模。
概念模型最常用的描述方法是E-R图(“实体-联系”图)描述法【3】。
本系统的E-R图如图4-2所示:
图4-2
4.2.2数据库表的设计
通过数据库的需求,可以创建以下数据表:
字段名称
数据类型
说明
ID
自动编号
日期
日期/时间
备忘录的日期
重要程度
文本
一般,重要,特别重要
事情
文本
描述备忘的事情
备注
备注
描述备忘事情的细节
表4-1
通过表4-1可以看出,数据库表设置了4个属性:
日期:
记录备忘录中进行备忘的事项的日期。
重要程度:
用于标记该事情的紧急重要性。
事情:
用于存储具体的事情。
备注:
用于存储备忘事件需要注意的事项。
4.2.3数据库表的创建
数据库作为数据库应用程序的后台数据基础,是必不可少的系统组成部分,数据库创建过程如下【5】。
(1)使用MicrosoftOfficeAccess新建一个数据库“MemoryNote”,并放在F盘的根目录下,如图4-3所示:
图4-3
(2)使用设计器创建表,根据数据库的需求,添加数据表的属性列,并在保存时创建自动递增的主键ID,如图4-4所示:
图4-4
4.3系统各模块的设计
完成了系统的需求分析和功能模块的划分,以及数据库表的设计,接下来就是各模块的详细设计了,当然在设计各模块之前要先创建应用程序。
4.3.1创建应用程序
运行VisualC++,选择File下的New命令,弹出New对话框,从Projects列表中选择MFCAppWizard(exe)向导,在Location文本框中选择项目工程的目录“F:
\MEMORANDUM\”,在Projectname文本框中输入工程文件的名称Memorandum,如图4-5所示:
图4-5
单击OK按钮,进入MFCAppWizard-step1页面,从应用程序的类型中选择Singledocument,语言列表默认为中文,单击Finish按钮,选择OK。
Memoradum的应用程序就创建完毕了。
4.3.2创建主对话框界面
应用程序创建完成之后,需要对主对话框的界面进行设计,根据前面的系统分析可以看出,由于系统分为了四个模块:
添加备忘事情,修改备忘事情,读取备忘事情,删除备忘事情,所以要针对这四个模块设计四个对应的按钮,所以主界面的布局设计如图4-6所示:
图4-6
运行结果如图4-7所示,因为还没有对按钮添加消息的定义,所以按钮是显示灰色的。
图4-7
4.3.3新增备忘事项
新增备忘事项是通过一个菜单功能来实现的,然后通过这个菜单来调用一个对话框,通过对话框中的控件来输入备忘事项和其他信息,具体步骤如下所示:
(1)在资源编辑器中新建一个对话框资源。
(2)设计新的对话框,使之符合插入备忘录的需求,如图所示。
图4-8
(3)新增对话框类。
为了使对话框中的数据能够顺利的在控件和程序中处理,必须为之添加一个C++类。
首先在当前的设计界面中,选择“Insert”中的“NewClass”选项。
然后,填写类名并选择基类为“CDialog”,如图所示。
图4-9
(4)为每个控件添加控件的变量。
使用ClassWizard为每个控件添加控件的变量,如图4-10所示。
图4-10
(5)添加“提交”按钮的消息处理函数。
在对话框资源编辑器中,双击“提交”按钮控件,添加该按钮的消息处理函数。
voidCInsertContent:
:
OnInsert()
{
UpdateData
(1);//临时变量用于构造SQL语句
CStringtemp="\"";
try
{
ADOCG:
:
_RecordsetPtrm_pRecordset;//数据集对象
m_pRecordset.CreateInstance(__uuidof(ADOCG:
:
Recordset));
m_pRecordset->Open("SELECT*FROMmenoryNote",_variant_t((IDispatch*)m_pConnection,true),ADOCG:
:
adOpenStatic,ADOCG:
:
adLockOptimistic,ADOCG:
:
adCmdText);
_variant_tGoalDpt;
_variant_tvRecords;//用于执行函数的参数传递
CStringstrTime;//日期的字符串变量
strTime.Format("%d-%d-%d",m_InsertDate.GetYear(),m_InsertDate.GetMonth(),m_InsertDate.GetDay());
CStringsql="insertintomenoryNote(日期,重要程度,事情,备注)values(";
if(m_strList==""||m_strMatter==""||m_strContent=="")
{
MessageBox("不能出现空输入框!
");
return;
}
sql+=temp+strTime+temp+",";
sql+=temp+m_strList+temp+",";
sql+=temp+m_strMatter+temp+",";
sql+=temp+m_strContent+temp+")";
MessageBox(sql);//测试是否是正确的SQL语句
m_pConnection->Execute(sql.AllocSysString(),&vRecords,ADOCG:
:
adCmdText);
m_pRecordset->Update();//更新数据集
if(m_pConnection->State)//查看数据连接对象的状态
m_pConnection->Close();//关闭数据连接对象
m_pConnection=NULL;//链接指针赋值为NULL
}
catch(_com_errore)
{
AfxMessageBox("插入异常!
");
}
CDialog:
:
OnOK();
}
上述代码,将连接数据库的SQL语句编好,并交给连接对象进行执行,也可以定义命令对象,由命令对象进行执行,它们的效果是一样的,只是连接对象进行执行后,要更新数据集,命令对象执行后,可以不更新数据集,因为命令对象直接对数据库进行操作,而连接对象是对数据集进行操作,操作完后需要更新并且写回到数据库中【5】。
(6)添加“新增备忘事项”菜单消息处理函数。
使用ClassWizard新增“新增备忘事项”菜单的命令消息处理函数,代码如下:
voidCMemorandumView:
:
OnMenuitemInsert()
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 论文 工作 备忘录 管理 系统