c程序的设计实验报告

上传人:pia****nwu 文档编号:166507263 上传时间:2022-11-01 格式:DOC 页数:26 大小:398KB
收藏 版权申诉 举报 下载
c程序的设计实验报告_第1页
第1页 / 共26页
c程序的设计实验报告_第2页
第2页 / 共26页
c程序的设计实验报告_第3页
第3页 / 共26页
资源描述:

《c程序的设计实验报告》由会员分享,可在线阅读,更多相关《c程序的设计实验报告(26页珍藏版)》请在装配图网上搜索。

1、C+程序设计实验报告姓名: 班级: 学号:指导教师: 实验一 VC6.0环境入门与简单程序设计一、实验目的:1、熟悉VC+6.0开了环境并编写简单的C+程序。3、使用C+语言编写简单的输入输出程序。4、使用VC+6.0的DEBUG调试功能:单步执行、设置断点、观察变量值。二、实验内容:1、使用VC+建立一个标准C+程序,编译、运行如下程序:#includeInt main()Cout”Hello World!n”;Cout”Welcome to C+!n”;2、编程计算图形的面积。程序可计算圆形、长方形、正方形等的面积,运行时首先提示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面

2、积,并将其显示出来。#includeusing namespace std;void circle_area();void rectangle_area();void square_area();int main()int i;while(1)couti;switch(i)case 1:circle_area();break;case 2:rectangle_area();break;case 3:square_area();break;case 4:return 0;default:cout输入错误!n;void circle_area()float r,s;coutr;s=3.14*r*r

3、;cout该圆的面积是:sendl;void rectangle_area()float a,b,s;coutab;s=a*b;cout该长方形的面积是:sendl;void square_area()float a,s;couta;s=a*a;cout该正方形的面积是:sendl;实验二 函数的应用一、实验目的:1、掌握函数的定义和调用方法。2、练习重载函数的使用。3、练习使用系统函数。4、学习使用VC+的DEBUG调试功能,使用STEP INTO追踪到函数的内部。二、实验内容:1、编写一个函数把华氏温度转换为摄氏温度,转换公式:C=(F-32)*5/9。#includeusing name

4、space std;void WenDu();int main()WenDu();return 0;void WenDu()double s;double f;coutf;s=(f-39)*5/9.0);cout摄氏温度为s度endl;2、编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。#includeusing namespace std;int Max1(int a,int b);int Max1(int a,int b,int c);double Max1(double a,double b);double Max1(double a,double

5、b,double c);int main()int a,b,c;double x,y,z;coutab;cout最大值是:Max1(a,b)endl;coutabc;cout最大值是:Max1(a,b,c)endl;coutxy;cout最大值是:Max1(x,y)endl;coutxyz;cout最大值是:Max1(x,y,z)b) t=a;else if(ba) t=b;return t;int Max1(int a,int b,int c)int t;if(ab&ac) t=a;else if(ba&bc) t=b;else if (ca&cb) t=c;return t;double

6、Max1(double a,double b)double t;if(ab) t=a;else if(ba) t=b;return t;double Max1(double a,double b,double c)double t;if(ab&ac) t=a;else if(ba&bc) t=b;else if (ca&cb) t=c;return t;3、使用系统函数pow(x,y)计算XY的值,注意包含头文件math.h。#include#includeusing namespace std;int main()int x,y;coutxy;coutxy=pow(x,y)endl;retu

7、rn 0;4、使用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。#includeusing namespace std;void Fibonacci();int main()Fibonacci();return 0;void Fibonacci()int a,b,n,i,t;coutab;coutn;coutab;for(i=2;in;i+)t=a+b;coutt;a=b;b=t;if(i+1)%5=0)coutendl;coutendl;实验三 类与对象一、实验目的:1、掌握类与对象的声明和使用。2、观察构造函数与析构函数的执行过程。3、掌握具有不同访问属性的成员的访问方式

8、。4、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。二、实验内容:1、声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,声明为enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7,frequency为单位是MHz的整型数,voltage为浮点型的电压值,观察构造函数和析构函数的调用顺序。2、声明一个简单的computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数ru

9、n、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。#includeusing namespace std;class CPUpublic: void run_cpu();void stop_cpu();CPU(int fre,double vol);CPU();CPU();CPU(CPU &p);private:int fre_cpu;double vol_cpu;class RAMpublic:void run_ram(); void stop_ram(); RAM(int fre,double vol); RAM()

10、; RAM(); RAM(RAM &p);private:int fre_ram;double vol_ram;class CUMPUTERfriend class CPU;friend class RAM;public:void run_cum(); void stop_cum(); CUMPUTER(); CUMPUTER(CPU c,RAM r); CUMPUTER(CUMPUTER &c); CUMPUTER(); private:CPU cpu;RAM ram;void CPU:run_cpu()coutCPU运行endl;coutfre_cpu,vol_cpuendl;void C

11、PU:stop_cpu()coutCPU停止endl;CPU:CPU()fre_cpu=0; vol_cpu=0;coutCPU缺省样式构造函数调用完成endl;CPU:CPU(int fre,double vol)fre_cpu=fre;vol_cpu=vol;coutCPU构造函数调用完成endl;CPU:CPU()coutCPU析构函数调用完成endl;CPU:CPU(CPU &p)fre_cpu=p.fre_cpu;vol_cpu=p.vol_cpu;coutCPU拷贝构造函数调用完成endl;void RAM:run_ram()coutRAM运行endl;coutfre_ram,vo

12、l_ramendl;void RAM:stop_ram()coutRAM停止endl;RAM:RAM()fre_ram=0;vol_ram=0;coutRAM缺省样式构造函数调用完成endl;RAM:RAM(int fre,double vol)fre_ram=fre;vol_ram=vol;coutRAM构造函数调用完成endl;RAM:RAM()coutRAM析构函数调用完成endl;RAM:RAM(RAM &p)fre_ram=p.fre_ram;vol_ram=p.vol_ram;coutRAM拷贝构造函数调用完成endl;void CUMPUTER:run_cum()coutcump

13、uter运行endl;cpu.run_cpu();ram.run_ram();void CUMPUTER:stop_cum()coutcumputer停止endl;cpu.stop_cpu();ram.stop_ram();CUMPUTER:CUMPUTER(CPU c,RAM r):cpu(c),ram(r)coutCUMPUTER构造函数调用完成endl;CUMPUTER:CUMPUTER(CUMPUTER &c)cpu=c.cpu;ram=c.ram;coutCUMPUTER拷贝构造函数调用完成endl;CUMPUTER:CUMPUTER()coutCUMPUTER析构函数调用完成end

14、l;int main()CPU c1(1,5.5);CPU c2=c1;RAM r1(3,8.8);RAM r2=r1;CUMPUTER cum1(c1,r1);CUMPUTER cum2=cum1;c2.run_cpu();r2.run_ram();cum1.run_cum();cum1.stop_cum();cum2.run_cum();cum2.stop_cum();system(pause);实验四 C+程序结构一、实验目的:1、观察程序运行时变量的作用域、生存期和可见性。2、掌握类的静态成员的使用。3、学习多文件结构在C+程序中的使用。二、实验内容:1、运行下面的程序,观察变量x、y

15、的值。#include using namespace std;void fn1(); int x = 1, y = 2; int main()cout Begin. endl; cout x = x endl; cout y = y endl;cout Evaluate x and y in main(). endl;int x = 10, y = 20; cout x = x endl; cout y = y endl;cout Step into fn1(). endl; fn1(); cout Back in main endl; cout x = x endl; cout y = y

16、 endl; return 0;void fn1() int y = 200; cout x = x endl; cout y = y endl;2、实现客户机(CLIENT)类。声明字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中声明类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。#include using namespace std;class Client private

17、: static char ServerName10; static int ClientNum; public: Client(); Client(); static void ChangeServerName(); void show(); ; int Client:ClientNum=0; char Client:ServerName10=abcd; void Client:show() cout服务器名称是:; coutServerNameendl; cout客户数量是:; coutClientNumendl; coutendl; void Client:ChangeServerNam

18、e() coutServerName; Client:Client() cout客户已记录endl; ClientNum+; Client:Client() coutendl; ClientNum-; int main() Client:ChangeServerName(); Client a; a.show(); Client:ChangeServerName(); Client b; b.show(); Client:ChangeServerName(); Client c; c.show(); system(pause); 实验五 数组、指针与字符串一、实验目的:1、学习使用数组数据对象

19、及字符串的组织与处理。2、学习使用标准C+库。3、掌握指针的使用方法,并通过DEBUG观察指针内容及其所指的对象的内容。4、练习通过动态内存分配实现动态数组,并体会指针在其中的作用。二、实验内容:1、编写并测试33矩阵转置函数,使用数组保存33矩阵。#includeusing namespace std;void main()int JuZheng33=11,44,98,36,45,82,48,91,64;int i,j;int New33;for(i=0;i3;i+)for(j=0;j3;j+)Newji=JuZhengij;cout原矩阵是:endl;for(i=0;i3;i+)for(j

20、=0;j3;j+)coutJuZhengij;coutendl;cout转置后矩阵是:endl;for(i=0;i3;i+)for(j=0;j3;j+)coutNewij;coutendl;2、使用动态内存分配生成动态数组来重新完成上题。#includeusing namespace std;int main()int temp;int *a;a=new int *3; cout输入数组元素:endl;for(int i=0;i3;i+)if(ai=new int 3)=NULL)exit(0);for(i=0;i3;i+)for(int j=0;jaij; /输出原数组cout原数组:end

21、l;for(i=0;i3;i+)for(int j=0;j3;j+)cout aij;coutendl;for(i=0;i3;i+)for(int j=i;j3;j+)temp=aji;aji=aij;aij=temp;cout转置后数组:endl;for(i=0;i3;i+)for(int j=0;j3;j+)cout aij;coutendl;3、编程实现两字符串的连接。要求使用字符数组保存字符串,不允许使用系统函数。#include using namespace std;int main() char str140; char str220; int i=0,j=0; coutstr1

22、; coutstr2; while(str1i!=0) i+; while(str2j!=0) str1i=str2j; i+; j+; str1i=0; cout连接后的字符串:str1endl;4、使用string类声明字符串对象,重新实现上一小题。#include#includeusing namespace std;int main()string s1;string s2;couts1;couts2;s1+=s2;cout连接后的字符串为:s1endl;return 0;实验六 继承与派生一、实验目的:1、学习声明和使用类的继承关系,声明派生类。2、熟悉不同继承方式下对基类成员的访问

23、控制。3、学习利用虚基类解决二义性问题。二、实验内容:1、定义一个基类Animal,有私有数据成员变量age,构造其派生类dog,在其成员函数setAge(int n)中直接给Age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程测试一下。#include using namespace std; class Animal public: int age; ; class Dog:public Animal public: SetAge(int n) age=n; cout年纪是:ageendl; ; void main() Dog dog; dog.SetAge(5);

24、2、定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数的析构函数的执行情况。#includeusing namespace std;class BassClassprivate: int Number;public: BassClass();BassClass(int num); BassClass();void GetNum()coutThe number is Numberendl;class DerivedClass:public BassClasspublic: DerivedClass():BassClass()cout缺省

25、样式构造函数调用完成endl;DerivedClass(int num):BassClass(num)cout带参数构造函数调用完成endl;DerivedClass()cout析构函数调用完成endl;void GetNumner() GetNum();BassClass:BassClass() Number=1;cout缺省样式构造函数调用完成endl;BassClass:BassClass(int num)Number=num;cout带参数构造函数调用完成endl;BassClass:BassClass()cout析构函数调用完成endl;void main()BassClass b1

26、;BassClass b2(3);DerivedClass d1;DerivedClass d2(2);b1.GetNum();b2.GetNum();d1.GetNumner();d2.GetNumner();3、定义一个车(Vehicle)基类,具有MaxSpeed,Weight等成员变量,Run,Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和moorcar派生出摩托车(motorcycle)类,在继承过程中注意把vehicle设置为虚基类。如果不设为虚基

27、类,会出现什么问题?编程测试一下。实验七 多态性一、实验目的:1、掌握运算符重载的方法。2、掌握使用虚函数实现动态多态性。二、实验内容:1、定义Point类,有坐标x,y两个成员变量;对Point类重载+、运算符,实现对坐标值的改变。#include using namespace std; class Point public: Point() Point(float a,float b) x=a; y=b; Point operator+() x+; y+; return Point(x,y); Point operator-() x-; y-; return Point(x,y); vo

28、id display() cout(x,y)endl; private: float x; float y; ; void main() Point p(6,9);cout原来点的坐标:;p.display(); p+;cout自加后点的坐标:;p.display(); p-;cout再自减后点的坐标:;p.display(); 2、定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车类(biclcle)、汽车类(motorcar),从bicycle和motorcar派生出摩托车类(motorcycle),它们都有Run、Stop等成员函数。观察虚函数的作用。#in

29、clude using namespace std; class Vehicle public: void Run() cout车启动了endl; void Stop() cout车停止了endl; ;class bicycle:public Vehicle public: void Run() cout自行车启动了endl; void Stop() cout自行车停止了endl; ;class motorcar:public Vehicle public: void Run() cout汽车启动了endl; void Stop() cout汽车停止了endl; ; class motorcy

30、cle:public bicycle,public motorcar public: void Run() cout摩托车启动了endl; void Stop() cout摩托车停止了endl; ; void main() Vehicle c; bicycle b; motorcar car; motorcycle m; c.Run(); c.Stop(); b.Run(); b.Stop(); car.Run(); car.Stop(); m.Run(); m.Stop(); 实验八 面向对象综合实验一、实验目的:1、综合运用面向对象编程思想。2、学习设计较复杂的类。二、实验内容:实现一个计

31、算器类,支持加、减、乘、除等基本运算。#include using namespace std; class Opera public: void get(); void jia() coutacb=a+bendl; void jian() coutacb=a-bendl; void cheng() coutacb=a*bendl; void chu() coutacb=a/bendl; char get_c() return c; private: float a; float b; char c; ; void Opera:get() coutacb; int main() while(1

32、) Opera o; o.get(); switch(o.get_c() case +:o.jia();break; case -:o.jian();break; case *:o.cheng();break; case /:o.chu();break; return 0; 宁可累死在路上,也不能闲死在家里!宁可去碰壁,也不能面壁。是狼就要练好牙,是羊就要练好腿。什么是奋斗?奋斗就是每天很难,可一年一年却越来越容易。不奋斗就是每天都很容易,可一年一年越来越难。能干的人,不在情绪上计较,只在做事上认真;无能的人!不在做事上认真,只在情绪上计较。拼一个春夏秋冬!赢一个无悔人生!早安!献给所有努力的人.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!