基于MFC的自助电话系统设计与实现毕业设计论文

基于MFC的自助电话系统设计与实现毕业设计论文

ID:24263052

大小:614.00 KB

页数:53页

时间:2018-11-13

上传者:chess95660
基于MFC的自助电话系统设计与实现毕业设计论文_第1页
基于MFC的自助电话系统设计与实现毕业设计论文_第2页
基于MFC的自助电话系统设计与实现毕业设计论文_第3页
基于MFC的自助电话系统设计与实现毕业设计论文_第4页
基于MFC的自助电话系统设计与实现毕业设计论文_第5页
资源描述:

《基于MFC的自助电话系统设计与实现毕业设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

毕业设计论文基于MFC的自助电话系统设计与实现III 毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。作者签名:日期:毕业论文(设计)授权使用说明本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名:指导教师签名:日期:日期:III 注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它III 摘要MFC是各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。MFC通过提供各种API接口让程序员可以轻松实现各种要求。自助电话系统是要求在软件平台上实现包括用户登录、电话呼出、电话呼入、通信录的查询、添加、修改、删除等功能的一个系统。本文主要对MFC及C++进行了简单的介绍,然后在Visualstudio2008平台将自助电话系统的基本功能都进行了实现,然后对整体程序的正确性进行了验证,给出了对该系统的改进的期望。关键词:MFC、C++、自助电话III ABSTRACTMFCisavarietyofclassescombinetoconstituteanapplicationframework,anditspurposeistoletprogrammersuptoestablishonthisbasistheapplicationunderWindows.MFCisamoresimplemethodthanrelativelySDK.MFCoffersavarietyofAPIinterface,sothatprogrammerscaneasilyimplementthevariousrequirements.Self-servicephonesystemsoftwareplatform,includinguserlogin,phoneoutgoingandincomingphonecalls,addressbookquery,add,modify,deletefunctionssuchasasystem.Inthispaper,asimpleintroductiontotheMFCandC++,Visualstudio2008platformwillbethebasicfunctionsoftheself-servicetelephonesystemtoachieve,andthenverifiedthecorrectnessoftheoverallprocess,giventheimprovementofthesystem.KEYWORDS:MFC、C++、Self-servicephonesystemIII 基于MFC的自助电话系统设计与实现目录摘要IABSTRACTII目录III第一章绪论11.1引言11.2平台的选择11.3本文工作1第二章MFC的基本知识介绍32.1MFC简单概述32.2对话框的体系42.3MFC的类层次和消息机制62.4重要的数据结构9第三章程序的主体框架和功能介绍163.1程序的主体框架163.2程序功能的实现17第四章软件测试214.1系统测试环境介绍214.2系统功能测试21第五章总结244.1论文的主要工作244.2工作中的不足及展望24参考文献25致谢26毕业设计小结27III 基于MFC的自助电话系统设计与实现第一章绪论1.1引言随着手机设备和计算机硬件的高速发展,在PC平台上实现一种手机的自助界面已经非常广泛了,现在比较流行的是在android平台上进行实现。在android平台上实现界面可能比较的美观和可行性更好,但是在MFC进行自助电话的实现也是一种可以实现的方法,既可以对MFC编程有一个深层次的了解,又可以对自己的自学能力和遇到问题解决问题的能力得到锻炼。1.2平台的选择在windows环境下,目前比较流行的可视化开发工具主要有[1]:VisualC++、VisualBasic、C++builder、Delphi、PowerBuilder及Jbuilder等,而本软件采用MicrosoftVisual2008作为开发工具,并使用MFCApplicationFramewor作为本软件的基本架构。采用C++来进行编程的主要原因是:与Java和C#等现代编程语言相比,C++在程序运行的小路和内存使用的可控性和编程的灵活性上具有优势。C++代码被编译成汇编语言可以在处理器上直接运行,效率比较高,而Java被编译成字节码,C#则被编译成中间语言,都是不能在处理器执行的,必须经过Java虚拟机或是.NET通用语言运行。因此效率比较低,因此采用C++进行编程比较合适。C++中大量使用指针,使得编程的灵活性很高,这虽然增加了程序出错的可能行,但是便于程序员施展编程技巧提高程序的效率。Java完全取消了指针,C#极大的限制了指针的使用,这都限制了程序员施展技巧。因此,使用C++进行界面的设计具有更大的灵活性[2]。而在以C++为核心语言的可视化编程工具中,MicrosoftVisual2008以其自身许多优异的特性而获得了最广泛的应用。鉴于以上原因,本设计使用MicrosoftVisual2008作为软件的开发平台。1.3本文工作本文的主要目的是在MFC平台上实现现在手机上界面的基本的功能。47 基于MFC的自助电话系统设计与实现包括手机账号密码的登录、登录以后电话的拨号、电话的接听、通信录的添加、保存、查找和删除等功能。论文共分为6个部分:第一章绪论部分,整体实现的自助电话界面的大概介绍。第二章MFC的基本知识介绍。第三章程序的主体框架和功能介绍第四章软件的测试第五章总结,对本次设计进行总结和展望参考文献47 基于MFC的自助电话系统设计与实现第一章MFC的基本知识介绍2.1MFC简单概述MFC也是一个window程序,那么它应该也会有一个Winmain()函数的[3-5],当然winmain()函数是存在的,但是打开MFC你会发现找不到winmain()函数。那是因为MFC将winmain()函数封装在其一个类中了。MFC包含两个最重要的类:CWinApp和CFrameWnd。CWinApp代表着程序的本体,winmain函数就是封装在其中,所以函数将从这个类中开始运行;CFrameWnd代表了一个主框窗口;在编写函数的时候你需要以这两个类为基础进行派生自己的类,并改写其一些成员函数以实现自己的程序的功能。一个骨干的MFC程序是必须包含下面这些MFC类:表2-1MFC类MFC类名称我的类名称功能CWinAppCScribbleAppApplicationobjectCMDIFrameWndCMianFrameMDI主窗口CMultiSDocTemplate直接使用管理Document/ViewCDocumentCScribbleDocDocument,负责管理数据接口和文件操作CViewCScribbleViewView,负责数据的显示和打印CMDIChildWndCChildFrameMDI子窗口CToolBar直接使用工具栏CStatus直接使用状态栏CDialogCAbotDlgAbout对话框2.1.1MFC是一个编程框架MFC(MicrosoftFoundationClassLibrary)[6-8]中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。MicrosoftVisualC++提供了相应的工具来完成这个工作:APP47 基于MFC的自助电话系统设计与实现Wizard可以用来生成初步的框架文件(代码和资源等);资源编辑辑器用于帮助直观的设计用户接口;Classwizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。2.1.2封装构成MFC枢架的是MFC类库。MFC类库是C++类库。这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能。2.1.3继承首先,MF抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。这些类中,最重要的类是CObject和CCmdTarget。CObjeet是MFC的根类,绝大多数MFC类是其派生的,包括CCmdTarget。CObject实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。所有从CObjeet派生的类都将具备或者可以具备CObjeet所拥有的特性。CCmdTarget通过封装一些属性和方法,提供了消息处理的架构。MFC中,任何可以处理消息的类都从CCmdTarget派生。2.1.4虚拟函数和动态约束[9-10]MFC以“C++”为基础,自然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数来支持动态约束,必然导致虚拟函数过于臃肿,消耗内存,效率低下。例如CWnd封装了Windows窗口对象时,每一条条Windows消息又对应一个成员函数,这些成员函数为派生类所继承。如果这些函数都设计成虚拟函数,由于数量太多,实现起来不现实。于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。这样,通过虚拟函数和消息映射,MFC类提供了丰富的编程接口。程序员继承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入MFC的编程框架。MFC编程框架将在适当的时候、适当的地方来调用程序的代码。本文将充分的展示MFC调用虚拟函数和消息处理函数的内幕,可以对MFC的编程接口有清晰的理解。2.2对话框的体系对话框是一种次要窗口,包含按钮和各种选项,通过它们可以完成特定命令或任务。查找和替换对话框对话框与窗口有区别,它没有最大化按钮、没有最小化按钮、大都不能改变形状大小。(“打开文件”对话框是可以改变大小的)对话框:是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。对话框中有单选框、复选框等。对话框有两种不同的类型:模式对话框、无模式对话框。47 基于MFC的自助电话系统设计与实现1.模式对话框一个模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框时指定WS_POPUP,WS_SYSMENU,WS_CAPTION和DS_MODALFRAME风格。即使没有指定WS_VISIBLE风格,模式对话框也会被显示。创建对话框窗口时,将发送WM_INITDIALOG消息(如果指定对话框的DS_SETFONT风格,还有WM_SETFONT消息)给对话框过程。对话框窗口被创建之后,Windows使得它成为一个激活的窗口,它保持激活直到对话框过程调用::EndDialog函数结束对话框的运行或者Windows激活另一个应用程序为止,在激活时,用户或者应用程序不可以激活它的所属窗口(Ownerwindow)。从某个窗口创建一个模式对话框时,Windows自动地禁止使用(Disable)这个窗口和它的所有子窗口,直到该模式对话框被关闭和销毁。虽然对话框过程可以Enable所属窗口,但是这样做就失去了模式对话框的作用,所以不鼓励这样做。Windows创建模式对话框时,给当前捕获鼠标输入的窗口(如果有的话)发送消息WM_CANCLEMODE。收到该消息后,应用程序应该终止鼠标捕获(Releasethemousecapture)以便于用户能把鼠标移到模式对话框;否则由于Owner窗口被禁止,程序将失去鼠标输入。为了处理模式对话框的消息,Windows开始对话框自身的消息循环,暂时控制整个应用程序的消息队列。如果Windows收到一个非对话框消息时,则它把消息派发给适当的窗口处理;如果收到了WM_QUIT消息,则把该消息放回应用程序的消息队列里,这样应用程序的主消息循环最终能处理这个消息。当应用程序的消息队列为空时,Windows发送WM_ENTERIDLE消息给Owner窗口。在对话框运行时,程序可以使用这个消息进行后台处理,当然应该注意经常让出控制给模式对话框,以便它能接收用户输入。如果不希望模式对话框发送WM_ENTERIDlE消息,则在创建模式对话框时指定DS_NOIDLEMSG风格。一个应用程序通过调用::EndDialog函数来销毁一个模式对话框。一般情况下,当用户从系统菜单里选择了关闭(Close)命令或者按下了确认(OK)或取消(CANCLE)按钮,::EndDialog被对话框过程所调用。调用::EndDialog时,指定其参数nResult的值,Windows将在销毁对话框窗口后返回这个值,一般,程序通过返回值判断对话框窗口是否完成了任务或者被用户取消。2.无模式对话框47 基于MFC的自助电话系统设计与实现一个无模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框模板时指定WS_POPUP、WS_CAPTION、WS_BORDER和WS_SYSMENU风格。如果没有指定WS_VISIBLE风格,无模式对话框不会自动地显示出来。一个无模式对话框既不会禁止所属窗口,也不会给它发送消息(WM_ENTERIDlE)。当创建一个无模式对话框时,Windows使它成为活动窗口,但用户或者程序可以随时改变和设置活动窗口。如果对话框失去激活,那么即使所属窗口是活动的,在Z轴顺序上,它仍然在所属窗口之上。应用程序负责获取和派发输入消息给对话框。大部分应用程序使用主消息循环来处理,但是为了用户可以使用键盘在控制窗口之间移动或者选择控制窗口,应用程序应该调用::IsDialogMessage函数。这里,顺便解释::IsDialogMessage函数。虽然该函数是为无模式对话框设计的,但是任何包含了控制子窗口的窗口都可以调用它,用来实现类似于对话框的键盘选择操作。当::IsDialogMessage处理一个消息时,它检查键盘消息并把它们转换成相应对话框的选择命令。例如,当Tab键被压下时,下一个或下一组控制被选中,当DownArrow键按下后,一组控制中的下一个控制被选择。::IsDialogMessage完成了所有必要的消息转换和消息派发,所以该函数处理的消息一定不要传递给TranslateMessage和DispatchMessage处理。一个无模式对话框不能像模式对话框那样返回一个值给应用程序。但是对话框过程可以使用::SendMessage给所属窗口传递信息。在应用程序结束之前,它必须销毁所有的无模式对话框。使用::DestroyWindow销毁一个无模式对话框,不是使用::EndDiaLog。一般来说,对话框过程响应用户输入,如用户选择了“取消”按钮,则调用::DestroyWindow;如果用户没有有关动作,则应用程序必须调用::DestroyWindow。2.3MFC的类层次和消息机制2.3.1MFC的类的层次关系如图2-1:47 基于MFC的自助电话系统设计与实现图2-1MFC的类的层次关系CObject:是MFC提供的绝大多数类的基类。该类完成动态空间的分配与回收,支持一般的诊断、出错信息、处理和文档序列化等。CCmdTarget:主要负责将系统事件(消息)和窗口事件(消息)发送给响应这些事件的对象,完成消息、发送、等待和派遣调度等工作,实现应用程序的对象之间的一协调运行。CWinApp:是应用程序的主线程类,它是从CWinThread类派生而来的。CWinThread:用来完成对线程的控制,包括线程的创建、运行、终止、和挂起等。CDocument:是文档类,包含了应用程序在运行期问所用到的所有数据。CWnd:是一个通用窗口类,用来提供Windows中所有的通用特性、对话框和控件。CFramewnd:是从CWnd类继承而来的,并实现了标准框架应用程序。CDialog:用来控制对话框窗口。CView:用于让永华通过窗口来访问文档。CMDIFrameWnd和CMDIChildWnd:分别用于多文档应用程序的主框架窗口和文档子窗口的显示和管理。CMiniFrameWnd:是一种简化的框架窗口,它没有最大化和最小化窗卜的按钮,也没有窗口系统菜单,一般很少用到它。47 基于MFC的自助电话系统设计与实现2.3.2消息机制消息简单的说就是指通过输入设备向程序发出指令要执行某个操作。具体的某个操作是你的一系列代码。称为消息处理函数。在SDK中消息其实非常容易理解,当窗口建立后便会有一个函数(窗口处理函数)开始执行一个消息循环,我们还可以清楚的看到消息处理的脉络。一个switchcase语句就可以搞定,消息循环直到遇到WM_QUIT消息才会结束,其余的消息均被拦截后调用相应的处理函数。但在封装了API的MFC中,消息似乎变的有些复杂了,我们看不到熟悉的switchcase语句了,取而代之的是一个叫消息映射的东西。为什么MFC要引入消息映射机制,你可以想象一下,在现在的程序开发活动中,你的一个程序是否拥有多个窗体,主窗口就算只有一个,那菜单、工具条、控件这些都是子窗口,那我们需要写多少个switchcase,并且还要为每个消息分配一个消息处理函数,这样做是多么的复杂呀。因此MFC采用了一种新的机制。利用一个数组,将窗口消息和相对应的消息处理函数进行映射,你可以理解成这是一个表。这种机制就是消息映射。这张表在窗口基类CWnd定义,派生类的消息映射表如果你没有动作它是空的,也就是说如果你不手工的增加消息处理函数,则当派生窗口接受一个消息时会执行父类的消息处理函数。这样做显然是高效的。MFC提供的消息结构同时MFC定义了下面的两个主要结构:AFX_MSGMAP_ENTRYstructAFX_MSGMAP_ENTRY{UINTnMessage;//Windows消息的ID号UINTnCode;//控制消息的通知UINTnID;//Windows控制消息的IDUINTnLastID;//表示是一个指定范围的消息被映射的范围UINTnSig;//表示消息的动作标识AFX_PMSGpfn;//指向消息处理函数的指针};AFX_MSGMAPstructAFX_MSGMAP{#ifdef_AFXDLLconstAFX_MSGMAP*(PASCAL*pfnGetBaseMap)();#elseconstAFX_MSGMAP*pBaseMap;#endif47 基于MFC的自助电话系统设计与实现constAFX_MSGMAP_ENTRY*lpEntries;};///AFX_MSGMAP可以得到基类的消息映射入口地址和得到本身的消息映射入口地址。MFC下一个消息的处理过程是一般是这样的。1、_AfxCbtFilterHook截获消息(这是一个钩子函数)2、_AfxCbtFilterHook把窗口过程设定为AfxWndProc。3、函数AfxWndProc接收Windows操作系统发送的消息。4、函数AfxWndProc调用函数AfxCallWndProc进行消息处理。5、函数AfxCallWndProc调用CWnd类的方法WindowProc进行消息处理。2.4重要的数据结构在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素,许多系统的构造经验表明,系统实现的困难程度和系统的构造的质量都严重的依赖于是否选择了最有的数据结构,很多的时候,确定了数据结构后,软件设计就容易实现了,有时候事情也会反过来,根据特定的软件设计要求来选择合适的数据结构是非常重要的。在C++里面数据结构大多是以类的形式存在的,MFC中的类当然也是。在MFC中,己经提供了足够的从本的数据类型以供使用,例如CList、CObList、CPtrList等多种链表,CMap、CMapstringTostring、CMapstringTOptr等多种映射,以及CPoint、CRect、CSize等大小方位类型,这已经给程序的设计带来了极大的便利,使程序设计人员可以专心于程序结构和逻辑的设计,而不必再做这些没有意义、重复性的劳动。在本章,将首先简单介绍几个重要的MFC数据类型,这些数据结构在本设计过程中起到了非常重要的作用:之后,将着重介绍程序中几个常乖要的数据类型,但鱼油篇幅的限制,只介绍代表这些数据结构的类内的数据成员和重要的成员函数。2.4.1MFC的重要数据结构1.CStringCString是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候力一便了很多。不管怎样,使用CString有很多特殊的技巧。使用CString可以一让你对字符串的操作更加直截了当。这里囊括了大部分常见基本问题。(1)Cstring对象的连接47 基于MFC的自助电话系统设计与实现能体现出CString类型方便性特点的一个方面就是Cstring对象的连接,使用Cstring你能很方便地连按两个字符串,正如下面的例子:Csrringgray(”Gray”);Cstringcat(’‘Cat”):Cstringgrayeat=gray+cat(2)格式化字符串与其用sprintf()函数或wsprintf()函数来格式化一个字符串,还不如用CString对象的Format()方法,CStrings;inttotal;s.Format(”Thetotalis%d”,total);用这种方法的好处足你不用担心用来存放格式化后数据的缓冲区是否足够大,这些工作由CString类替你完成。格式化是一种把其它不是字符串类型的数据转化为CString类型的最常用技巧。(3)CString对象的查找和截取截取函数的原型如下:intFind(TCHARch)const:intFind(LPCTSTRlpszsub)const:intFind(TCHARch,intnstart)const:intFind(LPCTSTRlpszsub,intnstart)const:返回值是此CString对象中与需要的子字符串或字符匹配的第一个字符的从零开始的索引;如果没有找到子字符串或字符则返回-1。截取一般和查找配合使用,函数原型如下:CStringLeft(intnCount)const:CStringRight(intnCount)const;返回值是一个包含指定字符拷贝的CString对象。参数nCount是要从这个CString对象中提取的字符数目。(4)CString的转换OPeratorLPCTSTR()Const:返回值是一个指向字符串的数据的字符指针。例如:CStringstr=”aaa”;char*Pc=LPCTSTR(str);1.CstdioFileCStdioFile继承自CFile,一个CStdioFile对象代表一个用运行时函数fopen47 基于MFC的自助电话系统设计与实现打开的C运行时流式文件。流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。(1)从文件读取CStdioFile::ReadString(LPTSTRlpsz,UINTnMax);读取一行文本到缓冲区,遇到“0x0D,0x0A”时停止读取,并且去掉硬回车“0x0D”,保留换行符“0x0A”,在字符串末尾添加“”(0x00)。nMax个字符里包含0x00这个字符。1)如果nMax<=字符数,读取(nMax-1)个字符+0x00。2)如果nMax=字符数+1,读取nMax个字符+0x00。3)如果nMax>字符数,读取nMax个字符+0x0A+0x00。CStdioFile::ReadString(CString&rString);读取一行文本到rString,遇到回车换行符停止读取。回车和换行符不读到rString,而且末尾也没有添加“”。(2)写入文件CStdioFile::WriteString(LPCTSTRlpsz);该函数不支持CString直接写入,将一个缓冲区中的数据写入与CStdioFile对象关联的文件中。结束的空字符(“”)不被写入该文件。lpsz中的所有换行符都被以一个硬回车换行符对写入该文件,即“ ”被转化成“r ”写入到文件里。(3)打开文件CstdioFile文件打开的方式有很多种,不同的模式下对与CstdioFile关联的文件的操作也就不一样。CFile::modeCreat:直接新建一个新的文件,若文件存在,则直接使其内容清空;CFile::modeNoTruncate:直接新建一个新的文件,若文件存在,对其内容部清空;CFile::modeRead:以只读方式打开文件,若无此文件则返回-1;CFile::modeReadWrite:以可读可写方式进行打开文件;CFile::modeWrite:以可写方式进行打开文件;CFile::modeNoInherit:文件不允许被子进程进行继承;例如下面:CStdioFilefile;file.Open("ts.txt",CFile::modeCreate|CFile::modeWrite);//写入文件47 基于MFC的自助电话系统设计与实现CStringstr;str.Format("%sr ","hello!Iamtalkingmute!");(4)关闭文件file.Close();2.4.2程序中重要的数据结构1.person结构体person结构体中主要记录的是通信录中的人员的对应的参数,其定义如下:typedefstructPerson{CStringm_name;CStringm_tel;CStringm_qq;CStringm_address;}person;其中CStringm_name对应的通信录中的人员的姓名CStringm_tel对应的是通信录中人员的电话号码CStringm_qq对应的是通信录中人员的QQ号码CStringm_address对应的是通信录中人员的地址,因为CString数据类型是不需要管理其长度的,故对应的地址的长度是随意长度的。2.Cphone数据类型Cphone数据类型是一个从CDialog类继承的一个子类,其定义为:classCphone:publicCDialog{DECLARE_DYNAMIC(Cphone)public:Cphone(CWnd*pParent=NULL);//标准构造函数virtual~Cphone();//对话框数据enum{IDD=IDD_CALL1_DIALOG};protected:virtualBOOLOnInitDialog();virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDV支持DECLARE_MESSAGE_MAP()public:CStringm_Edit3;47 基于MFC的自助电话系统设计与实现CStringm_Num;//拨号号码CStringMessage;CDialog*CpDlg;personm_person1[200];};Cphone子对话框是在用户登录以后的一个字对话框,是用户进行拨号和接听的时保持的一个对话框,在此对话框中用户可以进行拨号和接听电话,同时可以进行打开通信录进行修改等操作。CStringm_Edit3关联着Cphone这个对话框中的唯一的一个显示的Edit控件,用于将用户播出的号码实时的显示在Edit控件上,并记录下来。CStringMessage是一个提示信息的变量,提供当有电话呼入或呼出的时候显示信息。CDialogCpDlg是一个新的CDialog的子类,是在点击打开通信录时新建通信录对话框的。Personm_person[200]是定义的一个通信录的人员的结构体组,记录下每一个通信录中的人员的数据。1.ClistboxCListBox类提供Windows列表框的功能。列表框显示项的列表,如用户可以见到和选择的文件名称。在单选列表框里,用户只可选择一个项。在多选列表框里,可选择许多项。当用户选择某项时,其高亮显示且列表框给父窗口发送一个通知消息。(1)Listbox控件可以设置属性为:LBS_CHILD:(默认)子窗口LBS_Visible:(默认)可视LBS_Multiplesel:可选择多行LBS_Extendedsel:可以使用shift或ctrl选择多行LBS_SORT:所有行按字母顺序进行排序(2)对Listbox进行操作:Intlistbox.AddString(LPCTSTRStr):对listbox的首行添加一个str的文本行,即此时nIndex为0;Intlistbox.DeleteString(uintnIndex):删除listbox中第nIndex行的文本行,注意nIndex是从0起始的;intlistbox.InsertString(uintxIndex,LPCTSTRStr):在listbox中第nIndex行插入一个str的文本行;Intlistbox.GetCount():获取listbox的行的总数目;47 基于MFC的自助电话系统设计与实现Intlistbox.GetCurSel():得到listbox选中的文本行的行数。Voidlistbox.ResetContent():清除listbox中的所有数据;Intlistbox.GetCurCount():获取listbox被选中的行的数目;Intlistbox.FindString(intnstart,LPCTSTRStr):从第nstart行开始起进行查找,查找Str的文本行;Intlistbox.SelectString(intnstart,LPCTSTRStr):从第nstart行开始,选择包含Str字符串的那一行;(3)对Listbox中某一行进行双击操作,要产生一个响应函数的步骤:在BEGIN_MESSAGE_MAP()END_MESSAGE_MAP()之间添加响应函数的消息映射,如函数名为C**Dlg::OnLbnDblClk,添加下面代码ON_LBN_DBLCLK(IDC_LIST1,&C**Dlg::OnLbnDblClk)//IDC_LIST1为listbox控件的ID然后在C**Dlg.h中添加函数OnLbnDblClk()的声明最后在C**Dlg::OnLbnDblClk()函数中添加实现代码即可1.CAdressBookCadressBook同样是一个继承于CDialog类型的一个子对话框,其重要是实现对通信录进行添加、浏览、修改、删除等功能。其定义为:classCAddressBook:publicCDialog{DECLARE_DYNAMIC(CAddressBook)public:CAddressBook(CWnd*pParent=NULL);//标准构造函数virtual~CAddressBook();//对话框数据enum{IDD=IDD_Address_DIALOG};protected:HICONm_hIcon;virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDV支持DECLARE_MESSAGE_MAP()public:CStringm_Eaddress;CStringm_Ename;47 基于MFC的自助电话系统设计与实现CStringm_Eqq;CStringm_Etel;CListBoxm_list;Personm_person[200];afx_msgvoidOnBnClickedButAdd();voidOnFileOpen();voidSaveListToFile();BOOLOnInitDialog();afx_msgvoidOnBnClickedButAmend();afx_msgvoidOnBnClickedButDelete();afx_msgvoidOnLbnDblClk();afx_msgvoidOnBnClickedButCancel();};其中CStringm_Ename是和姓名栏的Edit控件关联的,能及时将控件和person结构体中数据进行交互CStringm_Eqq、CStringm_Etel、CStringm_Eaddress都是和对应的控件进行关联的。Personm_person[200]是通信录中的人员结构体,能从文件中读取数据到该结构体组中进行操作。OnBnClickedButAdd()函数是对通信录进行person添加操作的。OnBnClickedButAmend()函数是对当前选择的person的数据进行修改。OnBnClickedButDelete()函数是对当前选择的person的数据进行删除。OnBnClickedButCancel()函数是退出该子对话框。OnLbnDblClk()是一个映射函数,对应的是ON_LBN_DBLCLK消息的处理函数,实现了对ClistBox控件中某一行进行双击的时候,选择该一行,并将该一行对应的数据显示在Edit控件中。OnFileOpen()函数实现了对Addressbook.txt文件的打开,并从text文件中读取存取的数据到m_person[200]中。SaveListToFile()函数实现了先打开Addressbook.txt文件,并将m_person[200]中的数据存储到Addressbook.txt中,并保存。47 基于MFC的自助电话系统设计与实现第一章程序的主体框架和功能介绍本章主要先介绍程序的主体的流程和框架,然后重点介绍实现的功能。3.1程序的主体框架整个程序是基于MFC的Dialog模式下建立的电话自助服务系统,主要的框架如下:1.登录界面是第一个Cdailog类,在这个类中实现了请求输入用户名和密码的模式,而且密码以*模式进行显示,只有拥有权限的用户才能进入下一个界面。2.在登录以后,进入拨号界面,用户可以自己选择需要进行的操作,可以进行拨号,显示拨号的信息,在呼出的时候,若播出的号码是通信录中有的,直接显示通信录中的对应人员的名字,若是通信录中没有该电话号码,则直接显示该号码。3.同样在有电话呼入的时候一样,会对通信录进行查找,若该呼入的号码在通信录中存在,则显示出该号码对应的人员的姓名,若是没有,则直接显示该号码。4.在登录界面可以点击open进入通信录界面,可以对通信录存在的数据进行添加、查看、修改和删除功能。47 基于MFC的自助电话系统设计与实现3.2程序功能的实现3.2.1登录界面的实现首先必须在Visualstdio2008中建立一个MFC的工程,建立好以后,编译一下,应该是可以通过。然后添加两个Edit控件,并对控件和变量进行关联,对关联的变量进行初始化,对“确认”按钮对应函数OnBnClickedBenter()进行登录功能的实现。voidCcallDlg::OnBnClickedBenter(){UpdateData(TRUE);//检测UserID是否输入if(m_UserID.IsEmpty()){AfxMessageBox("请输入用户名!");m_CUserID.SetFocus();return;}//检查Password是否输入if(m_Password.IsEmpty()){AfxMessageBox("请输入密码!");m_CPassword.SetFocus();return;}GetDlgItem(IDC_EUserID)->GetWindowText(m_UserID);//获取IDC_EuserID控件中的内容到m_UserIDGetDlgItem(IDC_EPassword)->GetWindowText(m_Password);//获取控件IDC_Epassword的内容到m_Passwordif(m_UserID!=userid){AfxMessageBox("PleasecheckoutyourUserIDorPassword");m_UserID=_T("");m_Password=_T("");m_CUserID.SetFocus();UpdateData(FALSE);47 基于MFC的自助电话系统设计与实现}elseif(m_Password!=password){AfxMessageBox("PleasecheckyourUserIDorPassword");m_UserID=_T("");m_Password=_T("");m_CUserID.SetFocus();UpdateData(FALSE);}else{pDlg=newCphone(this);//新建一个Cphone的新窗口pDlg->Create(IDD_CALL1_DIALOG,NULL);pDlg->ShowWindow(SW_SHOW);//显示新建的窗口ShowWindow(SW_HIDE);//隐藏本窗口}}3.2.2电话呼入呼出界面添加一个新的dialog的资源,并重新建立一个与之关联的新类Cphone。在类Cphone添加一个CStringm_Edit3的变量,将界面上拨号的数据存放到该变量中。在呼出函数voidCphone::OnBnClickedBCall()中添加对通信录遍历的函数,并与变量m_Edit3对比,若没有找到与之相同的则,直接将m_Edit3显示,若找到相同的,则将对应的人员的姓名成员显示即可。对于呼入函数也一样。voidCphone::OnBnClickedBCall(){introw=0;intj=-1;CStringtemp;CStringm_temp1;CStdioFilefp;if(fp.Open("Addressbook.txt",CFile::modeRead|CFile::modeNoTruncate)!=0){while(fp.ReadString(temp)){47 基于MFC的自助电话系统设计与实现AfxExtractSubString(m_person1[row].m_name,temp,0,',');AfxExtractSubString(m_person1[row].m_tel,temp,1,',');AfxExtractSubString(m_person1[row].m_qq,temp,2,',');AfxExtractSubString(m_person1[row].m_address,temp,3,',');row++;}}for(inti=0;i=0){GetDlgItem(IDC_E_name)->SetWindowText(m_person[i].m_name);GetDlgItem(IDC_E_phone)->SetWindowText(m_person[i].m_tel);GetDlgItem(IDC_E_QQ)->SetWindowText(m_person[i].m_qq);GetDlgItem(IDC_E_addr)->SetWindowText(m_person[i].m_address);UpdateData(TRUE);//更新控件的数据}}47 基于MFC的自助电话系统设计与实现第一章软件测试1.1系统测试环境介绍本系统测试环境采用的操作系统是WindowsxpSP3,采用的编译测试工具为Visualstdio2008,其测试见面如图4-1所示:图4-1程序测试界面1.2系统功能测试1.2.1登录界面的测试系统登录进入后,若是密码或用户名不对,将会弹出警告信息,并将用户名和密码清空,请用户重新输入,见如4-2所示:47 基于MFC的自助电话系统设计与实现图4-2登录错误在成功登录以后,将进入拨号界面;如图4-3所示:图4-3拨号界面1.1.1拨号界面的测试在拨号界面,当呼出电话时,若该电话号码在通信录存在,则显示通信录中存有的对应的人员的姓名。如图4-4所示。47 基于MFC的自助电话系统设计与实现图4-4电话呼出界面1.1.1通信录界面的测试在进入通信录界面以后,在对通信录进行添加、删减、修改等功能的测试,均达到了预期的目标,图4-5显示了对通信录进行添加、删除的结果。图4-5通信录添加、删除测试47 基于MFC的自助电话系统设计与实现第一章总结4.1论文的主要工作本论文的主要任务包括:1.在MFC中实现用户登录界面的设计2.实现电话呼入呼出功能,能并能够查询通信录,若是呼入(呼出)号码存在通信录中则显示通信录中保存的姓名。3.对通信录能够实现包括人员数据的添加、修改、删除、查看等功能本论文对包括MFC的基础知识在内,对整个程序的设计进行比较简单的描述,其主要的功能基本都得到了实现。4.2工作中的不足及展望由于在本次的毕业设计的时间只有仅仅的四个月,对C++及MFC的学习都是从头开始的,所以对于整个系统都是简单的实现。本系统是自助电话系统的第一期版本,其基本实现了基本的需求,而对通信录部分没有采用数据库的结构,而是采用比较简单的文件保存和结构体的模式进行处理的,效率比较低。与此同时本系统也有很多不足之处,其中操作界面约显粗糙,对于本系统没有实现与GSM接口的数据通信,对于呼入呼出都只是进行了虚拟的假设,没有什么拨号的真正功能,只是预留了对GSM的接口,等这些都是需要下个版本以及以后版本需要进行改进的地方。47 基于MFC的自助电话系统设计与实现参考文献[1]候俊杰著,深入浅出MFC,华中科技大学出版社,2001.[2]http://baike.baidu.com/view[3]魏郎,陈涛,Visua1C++程序设计攻略教程—完全实例,从入门到提高[M],西安,西安电子科技大学出版社,2004[4]郑阿奇,VisualC++实用教程[M],北京:电子工业出版社,2000.[5]WilliamsAI,MFC技术内幕[M],龚波译,北京:机械工业出版社,1999[6]刘连喜,徐惠民,MFC枢架中的设计模式分析,计算机应用与软件,2005[7]杨合庆,Windows网络编程,北京:清华大学出版社,2002.[8]田志良等,面向对象程序设计循序渐进,北京,学苑出版社,1994[9]DavidJ.Kruglinshi,VisualC++技术内幕,王国印,北京,清华大学出版社,1996[10]何玉彬等,VisualC++5.0使用指南,西安:西安电子科技大学出版社,199847 基于MFC的自助电话系统设计与实现致谢经过半年的忙碌,我的毕业设计也已经接近尾声了,作为一个缺乏经验的本科生,对于写这篇论文,肯定有许多的不解之处。假如没有导师的辛勤的督促和指导,以及我的师兄师姐们对我的支持和帮助。想要完成这次的毕业设计是很难想象的。首先我要感谢的是我的指导老师,在这半年里,对于我的毕业设计给了明确的指导,同时对我的学习的进程时刻关注、严格要求。同时李老师他渊博的知识、严谨的治学态度、认真负责的工作作风一直影响着我,鼓励着我。其次我要感谢关心和照顾我的所有的同学,感谢我四年学习过程他们给予我的鼓励和帮助。然后我也要感谢在大学四年里的所有老师,是他们教会了我知识,让我更加明白做一个社会中的任该怎么做。同样也要感谢在大学期间关心和支持我的那些同学和朋友,是他们在我烦恼的时候给我安慰,给我支持。最后我特别感谢我的父母,是他们养育了我,在我的背后默默的支持着我,让我度过了一个又一个难关。我想真心的对他们说一声:你们辛苦了!谢谢。47 基于MFC的自助电话系统设计与实现毕业设计小结大学四年的时光转眼就要过去了,往事已不堪回首。但在这四个月的毕业设计的学习中,我学到了很多在大学课堂无法学到的东西—一种学习的方式,一种完全与以前老师的讲课、上自习、做作业不同的学习方式。我想这也是对自己的一种挑战,也将是自己在以后的学习中要面对、要实践的方式。在整个毕业设计的过程中,论文其实是次要的,主要的是在为了写好这篇论文中学到的东西。也可以说是你大学四年中学到的知识的一次与实际相结合的应用。同时也是你迈向以后的学习和工作的重要的一步。在整个毕业设计期间,除了要去学习和掌握设计的内容和相关的专业知识,我也学会如何利用发达的网络资源去查找自己想要资料,怎样的在这些杂乱繁多的资料中找到适合自己论文论点的资料。同时也学会了在别人的论文中找到疑问,并且自己去解决疑问的能力。在毕业设计的前期,我的主要的工作是对基础知识和专业知识的消化。只有对毕业设计的研究方向和基础的知识了解以后才能对整个毕业设计的完成有个整体的规划。然后是按照规划对C++、MFC进行学习,然后开始对整个程序进行编程。在论文的书写过程中遇到的word排版的问题都通过自己的查找和学习得到了解决。我想在整个毕业设计期间,我的收获是很丰盛的。毕业设计的完成也就基本上代表了我整个大学阶段的完成,它也是本科阶段给我的最后的一次考验。通过自己四个月的努力,我基本上完成了自己预想的任务,也得到了巨大的收获。在以后的学习和工作的过程中,这些经验将是我最宝贵的财富。47 基于MFC的自助电话系统设计与实现毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:     47 基于MFC的自助电话系统设计与实现学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日47 基于MFC的自助电话系统设计与实现独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名:二〇一〇年九月二十日 毕业设计(论文)使用授权声明本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名:二〇一〇年九月二十日47 基于MFC的自助电话系统设计与实现基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。毕业论文的基本教学要求是:1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。撰写意义:47 基于MFC的自助电话系统设计与实现1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。47 基于MFC的自助电话系统设计与实现论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。47 基于MFC的自助电话系统设计与实现按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类:1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的总结性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际问题的能力。从文体而言,它也是对某一专业领域的现实问题或理论47 基于MFC的自助电话系统设计与实现问题进行科学研究探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展47 基于MFC的自助电话系统设计与实现。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。47 基于MFC的自助电话系统设计与实现致谢这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得47 基于MFC的自助电话系统设计与实现及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:     47 基于MFC的自助电话系统设计与实现学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日47 基于MFC的自助电话系统设计与实现独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名:年月日 毕业设计(论文)使用授权声明本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名:年月日47 基于MFC的自助电话系统设计与实现基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。毕业论文的基本教学要求是:1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。撰写意义:47 基于MFC的自助电话系统设计与实现1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。47 基于MFC的自助电话系统设计与实现论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。47 基于MFC的自助电话系统设计与实现按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类:1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的总结性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际问题的能力。从文体而言,它也是对某一专业领域的现实问题或理论47 基于MFC的自助电话系统设计与实现问题进行科学研究探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展47 基于MFC的自助电话系统设计与实现。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。47 基于MFC的自助电话系统设计与实现致谢这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。47

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭