c程序的设计实验报告.docx

上传人:李司机 文档编号:1149556 上传时间:2022-07-05 格式:DOCX 页数:25 大小:356.59KB
返回 下载 相关 举报
c程序的设计实验报告.docx_第1页
第1页 / 共25页
c程序的设计实验报告.docx_第2页
第2页 / 共25页
c程序的设计实验报告.docx_第3页
第3页 / 共25页
c程序的设计实验报告.docx_第4页
第4页 / 共25页
c程序的设计实验报告.docx_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《c程序的设计实验报告.docx》由会员分享,可在线阅读,更多相关《c程序的设计实验报告.docx(25页珍藏版)》请在三一办公上搜索。

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

2、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;cout该圆的面积是:sendl;void rectangle_a

3、rea()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 namespace std;void WenDu();int main()We

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

5、ble *,y,z;coutab;cout最大值是:Ma*1(a,b)endl;coutabc;cout最大值是:Ma*1(a,b,c)endl;cout*y;cout最大值是:Ma*1(*,y)endl;cout*yz;cout最大值是:Ma*1(*,y,z)b) t=a;else if(ba) t=b;return t;int Ma*1(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 Ma*1(double a,double b)double t;if(

6、ab) t=a;else if(ba) t=b;return t;double Ma*1(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(*,y)计算*Y的值,注意包含头文件math.h。#include#includeusing namespace std;int main()int *,y;cout*y;cout*y=pow(*,y)endl;return 0;4、使用递归的方法编写函数求Fibonacci级数,观察递归

7、调用的过程。#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、掌握具有不同访问属性的成员的访问方式。4、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数

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

9、m为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(); RAM(); RAM(RAM &p);private:int fre_ra

10、m;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 CPU:stop_cpu()coutCPU停顿endl;CPU:CPU()fre_

11、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,vol_ramendl;void RAM:stop_ram()coutRAM停顿en

12、dl;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()coutcumputer运行endl;cpu.run_cpu();ram.run_ram();v

13、oid 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析构函数调用完成endl;int main()CPU c1(1,5.5);CPU c2=c1;RAM

14、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、运行下面的程序,观察变量*、y的值。#include using namespace std;void fn1(

15、); int * = 1, y = 2; int main()cout Begin. endl; cout * = * endl; cout y = y endl;cout Evaluate * and y in main(). endl;int * = 10, y = 20; cout * = * endl; cout y = y endl;cout Step into fn1(). endl; fn1(); cout Back in main endl; cout * = * endl; cout y = y endl; return 0;void fn1() int y = 200; c

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

17、ientNum; 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:ChangeServerName() coutServerName; Client:Client() cout客

18、户已记录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、学习使用数组数据对象及字符串的组织与处理。2、学习使用标准C+库。3、掌握指针的使用方法,并通过DEBU

19、G观察指针内容及其所指的对象的内容。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=0;j3;j+)coutJuZhengij;coutendl;cout转置后矩阵是

20、: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)e*it(0);for(i=0;i3;i+)for(int j=0;jaij; /输出原数组cout原数组:endl;for(i=0;i3;i+)for(int j=0;j3;j+)cout aij

21、;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; coutstr2; while(str1i!=0) i+; while(str2

22、j!=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、熟悉不同继承方式下对基类成员的访问控制。3、学习利用虚基类解决二义性问题。二、实验内容:1、定义一个基类Animal,有

23、私有数据成员变量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); 2、定义一个基类BaseClass,有整型成员变量Number,构造其派生类Deriv

24、edClass,观察构造函数的析构函数的执行情况。#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缺省样式构造函数调用完成endl;DerivedClass(int num):BassCl

25、ass(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;BassClass b2(3);DerivedClass d1;DerivedCla

26、ss d2(2);b1.GetNum();b2.GetNum();d1.GetNumner();d2.GetNumner();3、定义一个车(Vehicle)基类,具有Ma*Speed,Weight等成员变量,Run,Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和moorcar派生出摩托车(motorcycle)类,在继承过程中注意把vehicle设置为虚基类。如果不设为虚基类,会出现什么问题?编程测试一下。实验七多态性一、实验目的:1、掌握运算符重载的方法。

27、2、掌握使用虚函数实现动态多态性。二、实验内容:1、定义Point类,有坐标*,y两个成员变量;对Point类重载+、运算符,实现对坐标值的改变。#include using namespace std; class Point public: Point() Point(float a,float b) *=a; y=b; Point operator+() *+; y+; return Point(*,y); Point operator-() *-; y-; return Point(*,y); void display() cout(*,y)endl; private: float *

28、; 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等成员函数。观察虚函数的作用。#include using namespace std; class Vehicle pub

29、lic: 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 motorcycle:public bicycle,public motorcar public: v

30、oid 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、学习设计较复杂的类。二、实验内容:实现一个计算器类,支持加、减、乘、除等根本运算。#include using namespace s

31、td; 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) 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;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号