操作系统:Windows7;
开发工具:VS2010。
2.3相关技术
限于技术水平与时间的关系,该系统的开发理念是:系统功能完善;系统性能稳定;开发按时完成;技术能够掌握。基于这几个理念,所选择的开发技术如下:
2.3.1 MFC
MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。MFC是Win API与C++的结合,API,即微软提供的WinDOS下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方的编程语言来进行对WinDOS下应用程序的开发,使这些被开发出来的应用程序能在WinDOS下运行。
MFC库中的所有类形成了建立应用程序的框架,利用这些类可以充分支持Windows应用程序开发。构建MFC库的主要目的是为方便Windows应用程序的开发和设计。正是由于MFC编程方法充分利用了面向对象技术的优点,它使得编程时极少需要关心对象方法的具体实现细节,同时类库中的各种对象的强大功能足以完成设计任务中的绝大部分,这使得应用程序设计中,程序员所需编写的代码大为减少,有力地保证了程序的良好的可调试性。MFC是一个框架式类库,框架式类库同一般的类库的不同之处在于,库中的各个类之间是有联系的它们是按照框架所定义的模式去协作完成任务的。它具有以下特点。MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它你可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。有时人们说vc呢也指它的内部编译器,集成开发环境必须有一个编译器内核,要不有什么用,例如DevC++其中一个编译器内核就是gcc。 MFC除了是一个类库以外,还是一个框架,你应该试过,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了mfc内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但是MFC的封装很浅,所以效率上损失不大,灵活性还可以,虽然也有很多缺陷,但还是一个比较好的东西。
构成MFC框架的是MFC类库。MFC类库是c++类库。这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问功能。
MFC抽象出众多类的共同特性,设计出一些基类作为实习其他类的基础。在这些类中最重要的就是CObject和CCmdTarget。CObject是MFC的根类,绝大多数MFC类是其派生的,它实现一些重要特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持等。所有从CObject派生的类都具备或者可以具备CObject所拥有的特性。CCmdTarget通过封装一些属性和方法,提供了消息处理的架构。MFC中,任何可以处理消息的类都从CCmdTarget派生。针对每种不同的对象,MFC都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。这些对象包括以下种类:窗口对象,基类是CWnd;应用程序对象,基类是CwniThraed;文档对象,基类是Cdoeument,等等。程序员将结合自己的实际,从适当的MFC类中派生出自己的类,实现特定的功能,达到自己的编程目的。
MFC以C++为基础,自然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存,效率低下。例如,CWnd封装Windows窗口对象时,每一条Wnidows消息对应一个成员函数,这些成员函数为派生类所继承。如果这些函数都设计成虚拟函数,由于数量太多,实现起来不现实。于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。 C++sqlserver酒店管理系统设计(4):http://www.youerw.com/jisuanji/lunwen_12245.html