《面向对象程序设计》C++实验报告_(33页).doc
《《面向对象程序设计》C++实验报告_(33页).doc》由会员分享,可在线阅读,更多相关《《面向对象程序设计》C++实验报告_(33页).doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-面向对象程序设计C+实验报告_-第 33 页面向对象程序设计实验报告学 院: 专 业: 班级学号: 姓 名: 学 期: 教 师: 实验一 C+基础练习院(系): 课程名称:面向对象程序设计教师签名:班级 学号 实验室姓名 实验成绩所用软件Word文档、VC+软件实验目的和要求1.掌握C+程序的基本格式与规范,学会编写简单的C+程序。2.理解C+程序结构的特点。3.熟悉C+程序基本的输入和输出操作。4.掌握C+数据类型常量和变量以及修饰符的使用方法。5.掌握函数定义、函数调用和函数说明的方法。6.熟悉作用域运算符的功能和基本使用方法。7.掌握C+内存的动态分配与释放方法。8.理解引用的概念,掌
2、握引用的使用方法。实验内容和步骤1. 调试如下的代码并回答问题。#include void main()/First c+ programchar name10;coutname;coutwelcome nameendl; (1)C+的注释和C有何不同? 答:C语言的注释有一种,用/*.*/作为注释分界符号 C+除保留了这种注释方式之外,还提供了一种更有效的注释方式,该注释以“/”开始,到行尾结束。(2)C+的输入和输出所使用的函数及其相应头文件与C有何不同?答:在C中进行输入输出操作时,常使用函数scanf和printf。C+除了可以照常使用这两个函数进行输入输出外,还增加了标准输入流对象c
3、in和标准输出流对象cout来进行输入和输出。Iostream是C+系统定义的一个头文件,在这个文件中声明了程序所需要的输入和输出操作的有关信息。在C语言中头文件中用“.h”作为后缀,如stdio.h、math.h等。2. 单步调试如下的代码并回答问题。#include inline int f(int x) return 2*x*x+4*x+5; inline double f(double x) return 2*x*x+4*x+5; void main() int x=5; double y=5.2; coutf(x)endl; coutf(y)endl;(1)inline的含义和作用是
4、什么?答:含义:在函数说明前冠以关键字“inline”,该函数就被声明为内联函数,每当程序中出现对该函数的调用时C+编译器使用函数体中的代码插入到调用该函数的语句处,同时用实参取代形参。作用:主要是为了消除函数调用时的系统开销,以提高运行速度。(2)C允许两个函数同名(函数重载)么,函数重载的作用是什么?答:不允许,作用:方便使用函数,只要函数参数的类型不同,或者参数的个数不同,或者二者兼而有之,两个或者两个以上的函数可以使用相同的函数名。实现函数编译的多态性。(3)单步调试(F10、F11),记录f(x)和f(y)会分别调用哪段代码,为什么?答:f(x)会调用int f(int 5) f(y
5、)会调用double f(double 5.2)因为虽然两个函数名是一样的,形参类型和返回值类型不同,根据所给的实参类型如int型就调用int f(int 5)。3. 单步调试如下程序并回答问题。#include int a=1,2,3,4,5,6,7,8,9,10;int sum;void main() int i; int sum=0;for(i=0;i10;i+) if(ai%2!=0) sum=sum+ai; :sum=:sum+ai; cout sum of all is : :sum; cout sum of odd is: sum;(1)什么是局部变量和全局变量,其作用域如何界定
6、?答:全局变量:在函数外定义的变量,可以为本源文件的其他函数所公用,有效范围为从定义变量的位置开始到本源文件结束。局部变量:在一个函数内部定义的变量是内部变量,它只在本函数范围内有效。(2)在局部变量和全局变量作用域重叠区域,默认哪个变量起作用;如果一定要访问全局变量,怎么实现。答:默认局部变量起作用。如果一定要访问全局变量,可以用:对所屏蔽的同名全局变量进行访问。(3)单步调试,查看并记录程序中循环体的两条语句的sum的变化情况,并说明它们是局部变量和全局变量。答:第一个sum为全局变量,第二个:sum为局部变量。4.调试如下程序并回答问题。#include void main() doub
7、le *r; r = new double; cin*r; coutArea is:3.14*(*r)*(*r); delete r;(1)C语言的内存申请和释放使用哪个函数答:内存申请:malloc释放:free(2)C+的内存申请和释放使用哪个函数?简单比较。答:内存申请:new 释放:delete 使用malloc函数时必须使用sizeof函数来计算所需要的字节数,而new可以根据数据类型自动计算所要分配内存的大小,这就减小了发生错误的可能性。new能够自动返回正确的指针类型,而不必像malloc函数那样,必须在程序中进行强制类型转换,才能使其返回正确的指针类型。实验二 C+简单程序设计
8、练习院(系): 课程名称:面向对象程序设计教师签名:班级 学号 实验室姓名 实验成绩所用软件Word文档、VC+软件实验目的和要求1.掌握if语句的用法。2.掌握switch语句的用法。3.掌握循环和多重循环的用法。4.掌握函数的定义和调用。5.掌握数组的定义和基本操作。实验内容和步骤1. 根据输入的百分制按五分制的成绩输出,记录和分析实验结果(后续每个实验都有此要求,不再一一注明)。百分制与五分制之间的关系见下表。分别使用if分支结构和switch结构编写程序。百分制五分制9010058089470793606920591#include int main () int a;cout从键盘输
9、入百分制:a;if(a0&a60) cout五分制为:1endl; /如果0a60,输出是五分制为:1elseif(a70) cout五分制为:2endl; /同上以此类推2elseif(a80) cout五分制为:3endl; /3elseif(a90) cout五分制为:4endl; /4elseif(a=100) cout五分制为:5endl; /5使用if嵌套语句实现某一范围内的输出具体看注释#include void main() int a,b;cout从键盘输入百分制:a;b=a/10; /对a求商并赋值给bswitch(b) /确定b的值为什么值 case 10 : case
10、9: cout五分制为:5endl;break; /为10或9执行此语句输出是五分制为:5 case 8: cout五分制为:4endl;break; /同上 case 7: cout五分制为:3endl;break; case 6: cout五分制为:2endl;break; default : cout五分制为:1endl;break; /不为以上的值就执行此语句用switch语句实现分析如上的注释2. 编程求3100之间的所有素数,要求编写一个素数判断的函数,然后在主程序中调用。#include#includeint main() int i; /定义变量i int fun(int);
11、/函数的声明 for(i=3;i=100;i+) if(fun(i) coutiendl; /根据fun(i)的真值,为1时表示为素数则输出int fun(int n) /函数的定义int i,t; /定义两个整型变量t=sqrt(n);for(i=2;i=t;i+) /当有能被整除的数则返回0,后则返回1if(n%i=0)return 0; return 1;3. 编写程序列出斐波那契(Fibonacci)数列的前20项。(Fibonacci数列是指前两项为1,后面的每一项都为前两项之和。要求用数组存储数列)。#include void main()int a20=1,1; /初始化数组a,
12、a0=a1=1int i; for(i=2;i20;i+) ai=ai-1+ai-2; /后面每一项都为前两项之和 for(i=0;i20;i+) /输出前20个斐波那契数列 coutaiendl;4. 编程实现输入10个整数,从小到大排列输出。#include int main()int a10; /定义一个整型数组int i,j,t; /定义三个整型变量i,j,tcout从键盘输入十个整数:endl; /提示性语句从键盘输入十个整数for(i=0;iai; /输入数据 for(i=0;i10;i+) /采用冒泡排序法 外部循环 for(j=0;jaj+1) /如果不是从小到大排列则交换位置
13、关系 t=aj; aj=aj+1; aj+1=t; for(i=0;i10;i+) /输出整理好后的数组 coutaiendl; 实验三 类与对象(一)院(系): 课程名称:面向对象程序设计教师签名:班级 学号 实验室姓名 实验成绩所用软件Word文档、VC+软件实验目的和要求1.掌握类、类的数据成员、类的成员函数的定义方式。2.理解类成员的访问控制方式。3.掌握对象的定义和操作对象的方法。4.理解构造函数和析构函数的定义与执行过程。5.掌握重载构造函数的方式。6.了解拷贝构造函数的方法。实验内容1.声明一个时间类,时间类中有3个私有数据成员(Hour,Minute,Second)和两个公有成
14、员函数(SetTime和PrintTime)。SetTime根据传递的3个参数为对象设置时间;PrintTime负责将对象表示的时间显示输出。在主函数中,建立一个时间类的对象,设置时间为9点20分30秒并显示时间。#include class time /声明的一个时间类timepublic: /公共函数成员void SetTime(int i,int j,int k)Hour=i;Minute=j;Second=k;void PrintTime()coutHour点;coutMinute分;coutSecond秒endl;private: /三个私有成员int Hour;int Minute
15、;int Second;int main()time s; /定义一个对象ss.SetTime(9,20,30); /调用对象s的成员函数SetTime,给s的数据成员赋值s.PrintTime(); /输出显示出来2.使用构造函数代替上面的SetTime成员函数,并在主函数中使用构造函数设置时间为10点40分50秒,并显示该时间。说明构造函数和SetTime成员函数在使用时的区别。#include class timepublic:time(int i,int j,int k) /定义构造函数,其名与类名相同Hour=i; /在构造函数中,对私有数据赋值Minute=j;Second=k;v
16、oid PrintTime()coutHour点;coutMinute分;coutSecond秒endl;private:int Hour;int Minute;int Second;int main()time s(10,40,50); /定义类的对象时调用构造函数time /分别给数据成员Hour、Minute和Second赋初值10、40和50s.PrintTime();说明:构造函数的作用主要是用来对对象进行初始化,定义对象时被系统自动调用。而SetTime成员函数赋初值既不方便也容易忘记,甚至可能出错。3.重载时间类的构造函数(不带参数)使小时、分、秒均为0。#include cla
17、ss timepublic:time();void PrintTime();private:int Hour;int Minute;int Second;time:time()Hour=0;Minute=0;Second=0;inline void time:PrintTime()coutHour点;coutMinute分;coutSecond秒endl;int main()time s1;couts1 output:endl;s1.PrintTime();4.在时间类的析构函数中输出“Good bye!”。说明析构函数的特点和调用时机。#include class timepublic:ti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 面向 对象 程序设计 C+ 实验 报告 33
限制150内