《初步使用VisualStu.ppt》由会员分享,可在线阅读,更多相关《初步使用VisualStu.ppt(23页珍藏版)》请在三一办公上搜索。
1、第一章 使用Visual C+,目标,C+语言发展历程 C语言是面向过程的语言 C+语言是面向对象的语言 MFC是是面向消息开发的语言 熟悉Visual C+开发环境 C语言是面向过程的语言 C+语言是面向对象的语言 MFC是是面向消息开发的语言,C语言的特点与发展。,C 是贝尔实验室的Dennis Ritchie在 1972 设计的,当时,他正和Ken Thompson合作设计 UNIX 操作系统。C 语言并不是从 Ritchie 的脑袋中产生的。C 是从 Thompson 开发的 B 语言中产生的。C语言具有功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高
2、级语言的有点,又具有低级语言的许多优点。特别适合与编写系统软件。,C语言的缺点,在大型软件开发中,它表现出如下一些缺点:代码缺乏复用性,C语言本身几乎没有支持代码复用的语言结构,因此,一个程序员精心设计的代码很难为其他程序复用。软件需求的变化可能造成程序员费尽心血而编制的代码不得不完全重写,程序的维护变得越来越困难。程序模型难以确立,程序可读性差。程序设计是对现实世界的一种抽象,结构化的设计不适合于对现实世界的描述函数功能难以划分。函数库缺乏封装。在结构化程序设计中,代码的复用主要体现在对函数的重复调用。函数与所要处理的数据是分离的。而且由于函数都是全局的,当程序操作50,000行时,名字冲突
3、就会成为问题。,C+语言的特点与发展。,为了解决在面向过程的软件设计过程中遇到的软件设计危机,上世纪80年代提出了面向对象的程序设计(Object Oriented Programming,OOP)。AT&T Bell实验室的 Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上发明了C+(C Plus Plus)语言。C+保留了C语言的所有优点,增加了面向对象的机制。,C+语言的基本特征,C+面向对象编程语言具有如下4个基本特征:抽象。抽象是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解问题的全部,而只是选择其中的
4、一部分。比如要编写一个学生成绩管理系统,考察学生这个对象时,我们只关心他所在的班级,学号,成绩等,而不用关心他的身高、体重等信息。封装。封装把描述事物的数据和行为包裹起来,形成一个独立的抽象数据类型类。封装并不等于完全封闭,类通过Private,Protected,Public访问限制符使自身的数据和行为有限制地对外公开。继承。继承非常好地提供了代码地可重用性,体现了客观现实世界中一般与特殊地关系。多态。多态性指允许不同的类的对象对同一消息自动作出不同的响应。多态性提高了代码的可重用性和可扩展性。,C+版本变迁:,带类的C(1979-1983)从带类的C到C+(1982-1985),在原有带类
5、的C基础上扩充了6种特征:虚函数、函数名和运算符重载、引用机制、常量const、用户对自由存储的控制、改进了的类型检查、注释表示的多样化。C+2.0版(1985-1989)。1989年推出的C+2.0版本增加了如下的新特征:多重继承、抽象类、静态成员函数、const 成员函数、protected成员函数、运算符重载、成员指针、赋值和初始化的递规定义、对一些特征又做了改进、重载分辨、类型完全连接、用户自定义递内存管理设施。此时各大公司相继退出C+2.0的编译器。1990年5月Borland推出Borland C+,1992年Microsoft推出Microsoft C+,DEC,IBM也于199
6、2年推出了自己的C+。C+3.0(1993)。C+3.0扩充了模版,标准化(1998)。1989年后C+开始形成热潮,同时也要求尽快标准化。1989年,由HP公司联合AT&T,DEC,IBM等公司发起建议标准化。为此,美国国家标准局成立了C+语言标准化小组X3J16,于1989年12月召开了第一次会议。1991年6月国际标准化组织ISO也为C+成立了WGI委员会,第一次会议载瑞典召开。1995年4月,ISO发行了最初的草案,以供公众评论。1998年7月10日终于通过了编号为ISO/IEC 14882的C+程序设计语言正式标准,改ISO标准同时也是ANSI的正式标准。,VC+集成开发环境(IDE
7、),VC+集成开发环境(Integrated Development Environment)集编辑、编译、调试于一身,功能非常强大,完整地支持AT&T C+3.0版。能提供丰富的调试信息。能开发多种类型的应用程序。,VC+编辑环境常用窗口,工作区窗口源代码窗口调试输出窗口堆栈窗口变量观察窗口自动变量查看窗口内存查看窗口寄存器查看窗口资源编辑器窗口汇编代码窗口模块窗口项目属性设置窗口。General标签、Debug标签、C/C+标签、Link标签、项目版本的设置,VC+常见文件,Hello项目组成文件.dsw文件:工作区(Develop Studio Wrokspace)文件,多个项目组成一个
8、工作区,并用扩展名为.dsw的文件存储有关工作区的设置情况。.dsp文件:项目(Develop Studio Project)文件,主要存储编译和连接这个项目的一些信息。.h文件:c/c+头文件,用于定义被.cpp或.c文件使用的一些标识符号,比如变量类型说明和函数原型说明。.c或.cpp文件:程序的实现文件,即程序的源文件。StdAfx.h文件:标准(Standard Afx)的头文件.通常包含Windows系统头文件。StdAfx.cpp文件:对应StdAfx.h,用于产生对StdAfx.h所包含文件的编译动作。.rc文件:资源(Resource)描述文件resource.h:资源头文件,
9、VC+常见文件,.ncb文件:No Compile Browser文件,包含语法分析过程中产生的文件。.plg文件:Build 日志(Build Log)文件,每次build,plg文件都会被最新的build信息覆盖。该文件的内容实际上也出现在build窗口中。.opt文件:工作区选项(Wrokspace Options)文件,存储用户为工作区设置的所有选项。.res文件:.rc资源文件编译后生成的二进制资源文件,用于同其他目标文件连接。Vc60.idb:用于最小重建和增量编译信息。Vc60.pdb:数据库程序文件,用于调试信息.pch文件:预编译头文件.obj文件:目标文件.lib文件:库文
10、件.ilk文件:增量连接信息文件(Incremental Link Information File)。.exe文件:最终的可执行文件。,常用快捷键,MS+M:最小化所有窗口/复原窗口Alt+F4:关闭当前应用程序Ctrl+F4:关闭应用程序的当前子窗口Alt+Tab:应用程序间的窗口切换Ctrl+Tab:应用程序内部子窗口间切换Ctrl+Z:撤消上一次操作Ctrl+Y:撤消Ctrl+Z操作Ctrl+X:剪切Ctrl+C:拷贝Ctrl+V:粘贴Ctrl+S:保存文本。Ctrl+A:选择所有文本 Ctrl+F:在当窗口查找文本Ctrl+H:在当前窗口替换文本Ctrl+G:定位到指定的行::列出系
11、统API函数,常用快捷键,Ctrl+Shift+Space:列出函数的参数信息Alt+0:显示Workspace工作区窗口Alt+2:显示输出窗口Alt+3:显示变量观察窗口Alt+4:显示变量自动查看窗口Alt+5:显示寄存器查看窗口Alt+6:显示内存窗口Alt+7:显示堆栈窗口Alt+8:显示汇编窗口F7:编译整个项目Ctrl+F7:编译当前的源文件F5:调试运行Ctrl+F5:非调试运行,直接执行生成的EXE文件Shift+F5:结束运行,常用快捷键,F9:设调试断点F10:单步调试,不进入函数体内部F11:单步调试,进入函数体内部Shift+F11:运行至当前函数体外部。Home:将
12、光标移至当前行的头部 End:将光标移动至当前行的末尾PageUp:向上翻页PageDown:向下翻页Shift+箭头键:选定指定的文本Shift+Home:选定光标所在行的前面部分文本Shift+End:选定光标所在行的后面部分文本Shift+PageUp:选定上一页文本Shift+PageDown:选定下一页文本Ctrl+左箭头:光标按单词向左跳走Ctrl+右箭头:光标按单词向右跳走Tab:将选定文本缩进Shift+Tab:将选定文本反缩进Alt+F8:格式化选定的文本,C+代码规范,程序块要采用缩进风格编写,缩进的TAB键一个。相对独立的程序块之间、变量说明之后必须加空行。较长的语句(8
13、0字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首划分出的新行要进行适当的缩进,使排版整齐,语句可读。循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。若函数或过程中的参数较长,则要进行适当的划分。不允许把多个短语句写在一行中,即一行只写一条语句。if、while、for、default、do等语句自占一行。对齐只使用TAB键,不使用空格键。函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。程序块的分界符(如C/C+语言的大
14、括号和)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如)后不应加空格。,注释,一般情况下,源程序有效注释量必须在20以上。说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,
15、头文件的注释中还应有函数功能简要说明。源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。注释的内容要清楚、明了,含义准确,防止注释二义性。避免在注释中使用缩写,特别是非常用缩写。注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。对于所有有物理含义的变量、常量,如果
16、其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或右方。数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。,标识符命名,标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。命名中若使用特殊约定或缩写,则要有注释说明。自己特有的命名风格,要自始至终保持一致,不可来回变化。对
17、于变量命名,禁止取单个字符(如i、j、k.),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的,除此之外,其他变量名一律采用匈牙利表示法,以小写字母开头,第一个单词的缩写表示变量类型,如:指针类型 p字符指针 pszTip;char chDelim;int iTmpfloat fTmpUINT类型 nNotify;LONG类型 lParam;DWORD类型 dwStart;BYTE类型 bBuf;LPSTR类型 lpCmdLine,标识符命名,LPTSTR类型 lpszClassName;LPVOID类型 lpReservedWPARAM类型 wPar
18、am,LPARAM类型 lParamHWND类型 hDlg;HDC类型 hDC;HINSTANCE类型 hInstanceHANDLE类型 hInstance,HICON类型 hIcon;,标识符命名,类成员变量必须以m_开头,如 m_nVal,m_bFlag全局变量必须以g_开头,如g_nMsg,g_bFlag宏和常量必须以大写加_的形式命名,如MAX_BLOCK_SIZE函数命名,自定义的函数一律采用匈牙利命名法,并且第一个字母要大写,比如BuildHouse()命名规范必须与所使用的系统风格保持一致,并在同一项目中统一,比如采用UNIX的全小写加下划线的风格或大小写混排的方式,不要使用大
19、小写与下划线混排的方式。,开始使用Visual C+,1、C语言功能 用于操作系统,内核,Office,杀毒软件其他语言基于某种平台。2、VC使用MFC(Windows编程)封装了Win32 效率高Win32(Windows编程)灵活(功能更多)Console(控制台)仿DOS开发3、VC界面a)菜单 ViewWorkSpace包含ClassView和FileViewClassView-Global找main函数FileView在大工程时使用,多个源文件Output Build 查看编译信息(0Errr 生成执行文件)Debug 查看运行中(调试)信息,使用Visual C+,b)菜单 Edi
20、tFind 在当前窗口查找(F3继续查找)Find In files 在工程目录下(F4看下一条)C)菜单 File 另存为 能够找到正在编辑的文件的位置。D)菜单 HelpIndex 打开MSDN(开发说明书)E)菜单 Build Build F7 生成执行文件Rebuild all 先清空再重新编译。Clear 清空编译目录下所有文件4、编写简单的打印程序(屏幕输出)使用printf函数 函数后面有()里面加入需要在屏幕上显示的文字内容,该文字必须用包含头文件 代表直接在VC系统查找头文件 代表在工程目录查,如果没有再到系统内找,软件调试,1、调试:代码运行过程的查看。查看执行步骤,每步骤
21、变量2、错误有2种编译错误:VC中显示的Error运行错误:编译结果运行时跟你目标不一致。3、调试方法:设置断点:(F9)以调试模式运行(F5)进入断行,单步执行(F10)4:缺省下,进入调试有2个窗口Watch Alt+3 可以编辑加入需要观察的变量,也可以拖进来Variables Alt+4 不可编辑,随着单步运行经过的行,含有变量自动显示。包含Call Stack下拉框,查看调用栈5、变量地址查看&符号加变量就可以查看变量的地址,每日作业,1、学习VC的使用包括界面编写简单的程序,显示自己的名字(通过A Simple App和A Hello App)2、练习使用MSDN查找printf和scanf的函数说明3、翻译VC菜单内的所有英文4、编写main添加一些变量,通过Watch和Variables窗口。察看变量数值变化过程和地址变化。5、用VC+向导分别创建Win32Console应用程序,Win32 Application应用程序、MFC 对话框程序,MFC单文档程序,MFC多文档程序,MFC Dll程序,学习其中的代码规范和命名规则,选择一个项目,练习各种快捷键的使用方法。,