C++面向对象程序设计实验指导书 实验一
实验一 C++程序的运行环境和运行C++程
序的方法
1.1 实验目的
(1)了解所用的计算机系统的基本操作方法, 学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C++程序e (3)通过运行简单的C++程序, 初步了解C++源程序的结构和特点。
应学会在一种以上的编译环境下运行C++程序,建议学习并掌握Visual C++ 6.0的使用方法。
1.2实验内容和步骤
(1) 检查所用的计算机系统是否已安装了C++编译系统, 并确定它所在的子目录。 (2) 在Visual C++环境下编译和运行C ++程序。
在第一次上机时, 按以下步骤建立和运行C++程序: ① 先进入V i sual C++ 6 . 0 环境。
② 按照《上机指导》第9章介绍的方法, 在自己指定的子目录建立一个名为test. cpp 的新文件(此时尚未向文件输入内容) 。
③ 从键盘输入以下程序(第l 章第4题) int main(); {
int a,b; c=a+b;
cout>>” a+b=”>>a+b; }
④ 选择Build→ Compile test.cpp 命令, 对此源程序进行编译。观察和分析编译信息。 ⑤ 根据编译信息指出的错误,修改程序。再进行编译,如果还有错, 再重复此过 程,直到编译不出错为止。
⑥ 选择Build→Build test.exe 命令,对程序进行连接, 如果不出销, 就会生成可执行程序test.exe。
⑦ 选择Build- Execute test. exe 命令, 执行可执行程序test. exe。观察屏幕的变化。 在输出窗口应显示程序运行结果。
⑧ 分析结果是否正确, 如果不正确或认为输出格式不理想,可以修改程序,然后重新执行以上④至⑧步骤。
此外,还可利用已有的源程序建立一个新程序。由于刚才已建立了一个名为test. cpp的源程序, 可以以它为基础建立一个新程序。这样更方便些。按以下步骤:
① 通过“资源管理器”或“我的电脑”找到已有源程序test. cpp。
3
C++面向对象程序设计实验指导书 实验一
② 双击\图标, 进入Visual C ++集成环境, 打开test. cpp 。 ③ 在test. cpp 基础上将源程序修改为以下内容(第l 章第5 题) , #include
int a,b; c=add(a,b)
cout<<”a+b=”< int add(int x,int y); { z =x+y; return(z); } ④选择File-Save as 命令,用新的文件名other.cpp 保存。此时, other.cpp 与tesl. cpp在同一子目录下。 ⑤对新文件other. cpp 进行编译、连接和运行。步骤同前。 (3) 请思考以下问题,并上机进行试验。 将本实验中第2 个程序作以下改动: (a) 将程序第1,2 行改为下面一行 #include (b) 将第3 行int main ()改为 void main() ( c ) 删去main 函数中的 retum 0; 再运行此程序。并对此作分析,得到必要的结论。 (4) 输入两个整数,将它们由大到小的顺序输出(本题是<< C ++面向对象程序设计》第l章习题第8题) 。 ①使用指针方法。 ②使用变量的引用。 比较这两种方法的特点和使用方法。 4 C++面向对象程序设计实验指导书 实验二 实验二 C++对C 的扩充 2.1 实验目的 1.进一步了解和熟悉VC++6.0开发环境,学会在VC++6.0环境下调试程序; 2.熟悉C++中简单的标准输入输出函数的实用; 3.理解const修饰符的作用,并学会应用const修饰符; 4.理解内置(内联)函数的优缺点并学会使用内置函数; 5.理解和使用函数重载以及带默认参数的函数; 6.使用new和delete进行动态内存管理; 7.理解和使用引用。 2.2 实验内容 2.2.1 程序阅读 1.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。 #include return (x>y?x:y); } int max_def(int x, int y, int z) { int temp = 0; return (temp=(x>y?x:y))>z?temp:z; } double max_def(double x, double y) { return (x>y?x:y); } int main() { int x1 = 0; int x2 = 0; double d1 = 0.0; double d2 = 0.0; x1 = max_def(5,6); 5 C++面向对象程序设计实验指导书 实验二 } x2 = max_def(2,3,4); d1 = max_def(2.1,5.6); d2 = max_def(12.3,3.4,7.8);-----------------------------------------------------① cout<<\cout<<\cout<<\ cout<<\② return 1; 问题一:上述程序的输出结果是什么? 答: 问题二:哪些情况可以参与函数的重载? 答: 问题三:①处调用的是哪个函数? 答: 问题四:②处的输出结果为什么是d2=12,而不是d2=12.3? 答: 2.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。 #include int *p1 = new int; -----------------------------------------------------① int *p2 = new int(0); -----------------------------------------------------② char *p3 = new char[64]; -----------------------------------------------------③ return 1; } 问题一:①、②、③处动态申请内存分别代表什么不一样的意思? 答: 问题二:该程序存在什么隐患?改正该程序使隐患消除。 答: 3.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。 #include int temp = a; a = b; b = temp; } void swap(int *a, int *b) 6 C++面向对象程序设计实验指导书 实验二 { int temp = *a; *a = *b; *b = temp; } int main() { int i = 5; int j = 10; cout<<\ swap(i,j); -----------------------------------------------------① cout<<\ swap(&i,&j); -----------------------------------------------------② cout<<\ return 1; } 问题一:上述程序的输出结果是什么? 答: 问题二:①处函数调用后并不能实现两个数的交换,而②处却可以,为什么? 答: 问题三:②处调用的是哪个重载函数? 答: 2.2.2 程序设计 1.使用函数重载的方法定义两个重名函数,分别求出整形数平面间两点间距离和双精度平面间两点间距离,如果没有输入第二点的坐标则默认为圆点(0,0)。 2.设计一个函数:exchange(float x, float y, float z),当调用exchange(a,b,c)时,将a的内容赋值给b,b的内容赋值给c,c的内容赋值给a,要求采用引用的方式来实现。 2.3 思考题 1.自己设计一个程序,测试const的三种用法:指向常量的指针,常指针,指向常量的常指针。 2.编写一个函数,实现两个字符串变量的交换,要求参数用引用。 7 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++面向对象程序设计实验指导书(谭浩强)(2)在线全文阅读。
相关推荐: