您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C++程序设计实验报告
C++实验报告实验一1.实验要求(1)编写一个函数把华氏温度转换为摄氏温度,转换公式如下C=(F-32)*5/9(2)编写重载函数Max1可分别求两个整数,三个整数,两个双精度数,三个双精度数的最大值。(3)使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h。(4)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程2.实验内容及实验步骤(1)编写函数floatConvert(floatTempFer),参数和返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。程序名:lab3_1.cpp。(2)分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。程序名:lab3_2.cpp(3)在main()函数中提示输入两个整数x、y,使用cin语句得到x、y的值,调用pow(x,y)函数计算x的y次幂的结果,再显示出来。程序名:lab3_4.cpp(4)编写递归函数intfib(intn),在主程序中输入n的值,调用fib函数计算Fibonacci级数。公式为fib(n)=fib(n-1)+fib(n-2),n2;fib(1)=fib(2)=1。使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名:lab3_5.cpp(5)使用debug中的StepInto追踪到函数内部,观察函数的调用过程。3.源程序Lab3_1#includeiostreamusingnamespacestd;floatfun(floatx){floaty;y=(x-32)*5/9;returny;}voidmain(){floatf,c;cout请输入华氏温度:;cinf;c=fun(f);cout对应的摄氏温度为:cendl;}运行结果Lab3_2#includeiostreamusingnamespacestd;intMax1(intx,inty){return(xy?x:y);}intMax1(intx,inty,intz){inth,k;h=(xy?x:y);k=(hz?h:z);returnk;}doubleMax1(doublex,doubley){return(xy?x:y);}doubleMax1(doublex,doubley,doublez){doubleh,k;h=(xy?x:y);k=(hz?h:z);returnk;}voidmain(){inti,j,k;doublel,m,n;cout请输入两个整数:;cinij;cout最大数为:Max1(i,j)endl;cout请输入三个整数:;cinijk;cout最大数为:Max1(i,j,k)endl;cout请输入两个双精度数:;cinlm;cout最大数为:Max1(l,m)endl;cout请输入三个双精度数:;cinlmn;cout最大数为:Max1(l,m,n)endl;}运行结果Lab3_3#includeiostream#includecmathusingnamespacestd;voidmain(){doublep,x,y;cinxy;p=pow(x,y);coutpendl;}运行结果Lab3_4#includeiostream.hintfib(intn);intmain(){intn,answer;coutEnternumber:endl;cinn;cout\n\n;answer=fib(n);coutansweristhenthFibonaccinumber\nendl;return0;}intfib(intn){coutProcessingfib(n)…endl;if(n3){coutReutrn1!\n;return(1);}elsecoutCallfib(n-2)andfib(n-1).\nendl;return(fib(n-2)+fib(n-1));}运行结果4.实验体会其实这次实验涉及C++的内容并不多,主要练习的只是C++中的输入输出和重载函数的应用。通过这次实验,我更加深入的了解了C++的编程思想同时对程序单步执行、调试和跟进有了初步的认识,基本知道了一个程序在编译器中是怎样运行的,我认为这对我今后C++的学习将会更有帮助。实验二1.实验要求(1)定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。(2)定义一个简单的Computer类,有数据成员芯片(cpu)、(内存ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。2.实验内容及实验步骤(1)首先定义枚举类型CPU_Rank,例如enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},再定义CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。程序名:lab4_1.cpp。(2)使用debug调试功能观察程序lab4_1.cpp的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。3.源程序Lab4_1#includeiostream.henumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};classCPU{private:CPU_Rankrank;intfrequency;floatvoltage;public:CPU(CPU_Rankr,intf,floatv){rank=r;frequency=f;voltage=v;cout构造了一个CPU!endl;}~CPU(){cout析构了一个CPU!endl;}CPU_RankGetRank()const{returnrank;}intGetFrequency()const{returnfrequency;}floatGetVoltage()const{returnvoltage;}voidSetRank(CPU_Rankr){rank=r;}voidSetFrequency(intf){frequency=f;}voidSetvoltage(floatv){voltage=v;}voidRun(){coutCPU开始运行!endl;}voidStop(){coutCPU停止运行!endl;}};voidmain(){CPUa(P6,300,2.8);a.Run();a.Stop();}运行结果Lab4_2#includeiostreamusingnamespacestd;enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};classComputer{private:charcpu;intram;charcdrom;public:Computer(chara,intb,charc){cpu=a;ram=b;cdrom=c;cout构造了一个Computer!endl;}~Computer(){cout析构了一个Computer!endl;}voidrun(){coutComputer开始运行!endl;}voidstop(){coutComputer停止运行!endl;}};classCPU{private:CPU_Rankrank;intfrequency;floatvoltage;public:CPU(CPU_Rankr,intf,floatv){rank=r;frequency=f;voltage=v;cout构造了一个CPU!endl;}~CPU(){cout析构了一个CPU!endl;}CPU_RankGetRank()const{returnrank;}intGetFrequency()const{returnrank;}floatGetVoltage()const{returnvoltage;}voidSetRank(CPU_Rankr){rank=r;}voidSetFrequency(intf){frequency=f;}voidSetvoltage(floatv){voltage=v;}voidRun(){coutCPU开始运行!endl;}voidStop(){coutCPU停止运行!endl;}};classRAM{private:intm;};classCDROM{private:charn;};voidmain(){chari,j;CPUa(P6,300,2.8);a.Run();a.Stop();Computerb(i,1,j);b.run();b.stop();}运行结果实验三1.实验要求(1)编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。(2)使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。(3)编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。(4)使用string类定义字符串对象,重新实现上一小题。(5)定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。(6)定义包含5个元素的对象数组,每个元素都是Employee类型的对象。2.实验内容及实验步骤(1)编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。(2)改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。(3)编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串见的字符拷贝。(4)使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。(5)在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,都可以用字符型数组来表示,在成员函数中,构造函数用来初始化所有成员数组,对字符数组的赋值可以使用字符串拷贝函数strcpy(char*,char*name);display()中使用cout显示姓名、街道地址、城市和邮编等属性,change_name()改变类中表示姓名属性的字符数组类型的数据成员。在主程序中定义这个类的对象并对起进行操作。程序名:lab6_5.cpp。(6)使
本文标题:C++程序设计实验报告
链接地址:https://www.777doc.com/doc-2901727 .html