总的来说,窗口和命令接口(包括工具条和菜单条)是构成面的最主要组成部分。通常有两种窗口:文档窗口和可附着(docking)窗口。文档窗口显示在文档窗口区,用于显示和编辑文档,其的大小和位置可以随其所处的DeveloperStudio窗口的改变而改变,可以最大化和最小化。可附着窗口可以附着于应用程序窗口的边界,也可以浮在屏幕上的任何位置。可附窗口有:工作区(workspace)窗口,输出(output)窗口,调试窗口(包括variable,watch,local等窗口)等。文档窗口的位置、大小及是否可见和它所在的项目有关,docking窗口的位置、大小及是否可见则与项目进行的状态以及各种编辑和调试的操作有关。各种窗口和各种工具条以及菜单构成了界面的布局。一旦用户决定了一种界面布局,系统就会为一直为用户保持这种布局,直到用户下一次改变该布局为止。获得帮助信息大多数时候,你可以通过按F1得到上下文帮助。如在编辑文件时按F1可以得到有关编辑的帮助,在编译连接错误信息上按F1可以得到关于该错误的帮助信息。如果想系统地获得帮助,VC6中,可以通过选择菜单Help|Contents来启动MSDN查阅器,MSDN查阅器是一个功能强大的程序,可以方便地浏览、查找信息,要想知道具体如何使用MSDN查阅器,可以在MSDN查阅器中选菜单Help下的命令。VisualC++的编辑器DeveloperStudio包含一个功能强大的编辑器,可以编辑将被编译成windows程序的VisualC++源文件。这个编辑器有点像字处理器,但是没有字处理器具备的复杂的排版、文本格式等功能,它注重的是如何帮助程序员快速高效地编制程序。它具有以下特点:自动语法。用高亮度和不同颜色的字来显示不同的语法成分,如注释、关键字和一般代码用不同的颜色显示自动缩进。帮助你排列源代码,使其可读性更强参数帮助。在编辑时用到预定义的windows函数时,可以自动为你显示函数参数集成的关键字帮助。能够使你快速得到任何关键字、MFC类或windows函数的帮助信息(按F1即可)拖放编辑。能够用鼠标选择文本并自由拖动到在意位置自动错误定位。能自动将光标移动到有编译错误的源代码处。当你打开一个源代码文件时,就可以利用编辑器对其进行编辑。源代码文件在文档显示区显示,每个文件有独立的显示窗口。如果你选择用其他编辑器编辑源文件,必须将它以纯文本的方式保存。VC的编译器不能处理其中有特别格式字符的文件。四、常用功能健及其意义为了便程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些带用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令来控制操作。下面是一些最常用的功能键,希望学员在实验中逐步掌握。操作类型功能键含义对应菜单文件操作Ctr1+NFile|New创建新的文件、项目等Ctr1+0Filelopen打开项目、文件等Ctr1+SFile|Save保存当前文件剪切Edit/Cut编辑操作Ctrl+X复制Ctr1+CEditCopy
5 总的来说,窗口和命令接口(包括工具条和菜单条)是构成界面的最主要组成部分。 通 常有两种窗口:文档窗口和可附着(docking)窗口。文档窗口显示在文档窗口区,用于 显 示和编辑文档,其的大小和位置可以随其所处的 Developer Studio 窗口的改变而改变, 可以最大化和最小化。可附着窗口可以附着于应用程序窗口的边界,也可以浮在屏幕上的 任 何位置。可附着窗口有:工作区(workspace)窗口,输出(output)窗口,调试窗口(包 括 variable, watch, local 等窗口)等。文档窗口的位置、大小及是否可见和它所在的项 目有关,docking 窗口的位置、大小及是否可见则与项目进行的状态以及各种编辑和调试的 操作有关。各种窗口和各种工具条以及菜单构成了界面的布局。一旦用户决定了一种界面 布 局,系统就会为一直为用户保持这种布局,直到用户下一次改变该布局为止。获得帮助 信息 大多数时候,你可以通过按 F1 得到上下文帮助。如在编辑文件时按 F1 可以得到有关 编 辑的帮助,在编译连接错误信息上按 F1 可以得到关于该错误的帮助信息。如果想系统地 获 得帮助,VC6 中,可以通过选择菜单 Help|Contents 来启动 MSDN 查阅器,MSDN 查阅器是 一个功能强大的程序,可以方便地浏览、查找信息,要想知道具体如何使用 MSDN 查阅器, 可以在 MSDN 查阅器中选菜单 Help 下的命令。Visual C++的编辑器 Developer Studio 包含 一个功能强大的编辑器,可以编辑将被编译成 Windows 程序的 Visual C++源文件。这个编 辑器有点像字处理器,但是没有字处理器具备的复杂的排版、文本格式等功能,它注重的 是 如何帮助程序员快速高效地编制程序。它具有以下特点:自动语法。用高亮度和不同颜 色的 字来显示不同的语法成分,如注释、关键字和一般代码用不同的颜色显示自动缩进。 帮助你 排列源代码,使其可读性更强参数帮助。在编辑时用到预定义的 windows 函数时, 可以 自动为你显示函数参数集成的关键字帮助。能够使你快速得到任何关键字、MFC 类或 Windows 函数的帮助信息(按 F1 即可)拖放编辑。能够用鼠标选择文本并自由拖动到任意 位置自动错误定位。能自动将光标移动到有编译错误的源代码处。当你打开一个源代码文 件 时,就可以利用编辑器对其进行编辑。源代码文件在文档显示区显示,每个文件有独立 的显 示窗口。如果你选择用其他编辑器编辑源文件,必须将它以纯文本的方式保存。VC 的 编译 器不能处理其中有特别格式字符的文件。 四、常用功能健及其意义 为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一 些常用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘 命令来控制操作。下面是一些最常用的功能键,希望学员在实验中逐步掌握。 操作类型 功能键 对应菜单 含义 文件操作 Ctrl+N File|New 创建新的文件、项目等 Ctrl+O File|Open 打开项目、文件等 Ctrl+S File|Save 保存当前文件 编辑操作 Ctrl+X Edit|Cut 剪切 Ctrl+C Edit|Copy 复制
粘贴Ctr1+VEdit/PasteCtr1+zEdit|Undo撒消上一个操作重复上一个操作Ctr1+YEdit/Redo全选Ctr1+AEdit|SelectAllDeleteEdit/Delete删除光标后面的一个字符建立程序操作Ctr1+F7编译当前源文件BuildCompilercurrentfileCtr1+F5Build|Runexe运行当前项目F7建立可执行程序Build|BuildexeF5Build|StartDebugging启动调试程序F5调试Debug|Go继续运行F11进入函数体内部Debug/StepintoShift+F11Debug/Stepout从函数体内部运行出来F10执行一行语句Debug|StepoverF9设置/清除断点Ctr1+F10Debug|Runtocursor运行到光标所在位置Shift+F9Debug|QuickWatch快速查看变量或表达式的值停止调试Shift+F5Debug|Stopdebugging第二部分上机实验内容实验一类和对象一、实验目的1)理解类和对象的概念,掌握声明类和定义对象的方法;2)掌握构造函数和析构函数的实现方法,3)初步掌握使用类和对象编制C++程序;4)掌握对象数组、对象指针和string类的使用方法;5)掌握使用对象、对象指针和对象引用作为函数参数的方法;6)掌握类对象作为成员的使用方法;7)掌握静态数据成员和静态成员函数的使用方法。6
6 Ctrl+V Edit|Paste 粘贴 Ctrl+Z Edit|Undo 撤消上一个操作 Ctrl+Y Edit|Redo 重复上一个操作 Ctrl+A Edit|SelectAll 全选 Delete Edit|Delete 删除光标后面的一个字符 建立程序操作 Ctrl+F7 Build|Compilercurrentfile 编译当前源文件 Ctrl+F5 Build|Runexe 运行当前项目 F7 Build|Buildexe 建立可执行程序 F5 Build|StartDebugging 启动调试程序 调试 F5 Debug|Go 继续运行 F11 Debug|Stepinto 进入函数体内部 Shift+F11 Debug|Stepout 从函数体内部运行出来 F10 Debug|Stepover 执行一行语句 F9 设置/清除断点 Ctrl+F10 Debug|Runtocursor 运行到光标所在位置 Shift+F9 Debug|QuickWatch 快速查看变量或表达式的值 Shift+F5 Debug|Stopdebugging 停止调试 第二部分 上机实验内容 实验一 类和对象 一、实验目的 1)理解类和对象的概念,掌握声明类和定义对象的方法; 2)掌握构造函数和析构函数的实现方法; 3)初步掌握使用类和对象编制 C++程序; 4)掌握对象数组、对象指针和 string 类的使用方法; 5)掌握使用对象、对象指针和对象引用作为函数参数的方法; 6)掌握类对象作为成员的使用方法; 7)掌握静态数据成员和静态成员函数的使用方法
二、实验内容和步骤1、输入下列程序题目1:#include<iostream>using namespace std;class Coordinate(public:Coordinate(int xl,int y1)x=x1;y=yl;Coordinate(Coordinate &p);~Coordinateo1cout<<"Destructoriscallededln";int getx() (return x,)int getyO) (return y,)private:int x,y,3:Coordinate:Coordinate(Coordinate &p)x=p.x,y=p-y,cout<<"copy-initializationConstructouis calledin"int main()Coordinate pl(3,4);Coordinate p2(p1);Coordinatep3=p2;cout<<"p3=("<<p3.getx0<<""<<p3.gety0<<")|n";return(0);1(1)写出程序的运行结果。(2)将Coordinate类中带有两个参数的构造函数进行修改,在函数体内增添下述语句:cout<<"Constructor is called.In";(3)按下列要求进行调试:在主函数体内,添加下列语句:Coordinate p4;Coordinata p5(2):调试程序时会出现什么错误?为什么?如何对已有的构造函数进行适当修改?7
7 二、实验内容和步骤 1、输入下列程序 题目 1: #include<iostream> using namespace std; class Coordinate { public: Coordinate(int x1,int y1) { x=x1; y=y1; } Coordinate(Coordinate &p); ~Coordinate() { cout<<”Destructor is calleded\n”; } int getx() {return x;} int gety() {return y;} private: int x,y; }; Coordinate::Coordinate(Coordinate &p) { x=p.x; y=p.y; cout<<”copy-initialization Constructou is called\n”; } int main() { Coordinate p1(3,4); Coordinate p2(p1); Coordinate p3=p2; cout<<”p3=(“<<p3.getx()<<”,”<<p3.gety()<<”)\n”; return(0); } (1)写出程序的运行结果。 (2)将 Coordinate 类中带有两个参数的构造函数进行修改,在函数体内增添下述语句: cout<<”Constructor is called.\n”; (3)按下列要求进行调试:在主函数体内,添加下列语句: Coordinate p4; Coordinata p5(2); 调试程序时会出现什么错误?为什么?如何对已有的构造函数进行适当修改?
(4)经过以上第(2)步和第(3)步的修改后,结合运行结果分析:创建不同的对象时会调用不同的构造函数。题目2:设计一个4×4魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线值的和。示例:31352592211991517 131123272917各行、各列以及对角线值的和都是64。[提示]求4X×4魔方的一般步骤如下:(1)设置初始魔方的起始值和相邻元素之间的差值。例如上述魔方的初始魔方的起始值(first)和相邻元素之间的差值(step)分别为:first=1,step=2。(2)设置初始魔方元素的值。例如上述魔方的初始魔方为:13579111331517 19 21123252729931(3)生成最终魔方。方法如下:①求最大元素值与最小元素值的和sum,该实例的sum是:1+31=32②用32减去初始魔方所有对角线上元素的值,然后将结果放在原来的位置,这样就可求得最终度方。本例最终魔方如下:313525921191517131123727291(4)本题的魔方类magic的参考框架如下:class magic1public;void getdataO;void setfirstmagicO);voidgeneratemagicO,void printmagicO);private:int m[4][4];00
8 (4)经过以上第(2)步和第(3)步的修改后,结合运行结果分析:创建不同的对象时会调用不同的构造函 数。 题目 2:设计一个 4×4 魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对 角线值的和。 示例: 31 3 5 25 9 21 19 15 17 13 11 23 7 27 29 1 各行、各列以及对角线值的和都是 64。 [提示] 求 4×4 魔方的一般步骤如下: (1)设置初始魔方的起始值和相邻元素之间的差值。例如上述魔方的初始魔方的起始值(first)和相邻元 素之间的差值(step)分别为:first = 1, step = 2 。 (2)设置初始魔方元素的值。例如上述魔方的初始魔方为: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 (3)生成最终魔方。方法如下: ①求最大元素值与最小元素值的和 sum,该实例的 sum 是: 1 + 31 = 32 ②用 32 减去初始魔方所有对角线上元素的值,然后将结果放在原来的位置,这样就可求得最终魔方。本 例最终魔方如下: 31 3 5 25 9 21 19 15 17 13 11 23 7 27 29 1 (4)本题的魔方类 magic 的参考框架如下: class magic { public: void getdata(); void setfirstmagic(); void generatemagic(); void printmagic(); private: int m[4][4];
int step,int first,int sum,3;题目3:设计一个用来表示直角坐标系的Location类,在主程序中创建类Location的两个对象A和B,要求A的坐标点在第3象限,B的坐标在第2象限,分别采用成员函数和友元函数计算给定两个坐标点之间的距离,要求按如下格式输出结果。A(x1,y1),B(x2,y2)Distancel-d1Distance1=d2其中:x1、x2、y1、y2为指定的坐标值,d1和d2为两个坐标点之间的距离。[提示]类Location的参考框架如下:class Location1public:Location(double,double);doubleGetx();doubleGety();doubledistance(Location &);friend double distance(Location &, Location &);private:double x,y;1;9
9 int step; int first; int sum; }; 题目 3:设计一个用来表示直角坐标系的 Location 类,在主程序中创建类 Location 的两个 对象 A 和 B,要求 A 的坐标点在第 3 象限,B 的坐标在第 2 象限,分别采用成员函数和友元函 数计算给定两个坐标点之间的距离,要求按如下格式输出结果。 A(x1,y1),B(x2,y2) Distance1=d1 Distance1=d2 其中:x1、x2、y1、y2 为指定的坐标值,d1 和 d2 为两个坐标点之间的距离。 [提示] 类 Location 的参考框架如下: