面向对象程序设计实验指导书_第1页
面向对象程序设计实验指导书_第2页
面向对象程序设计实验指导书_第3页
免费预览已结束,剩余48页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计实验指导书汤亚玲,胡增涛,邰伟朋编写专业 网络工程 班级 网111 学号_119074292 某某 黄飞 某某工业大学计算机学院二008年3月目录《面向对象编程技术》实验指导书说明 ...实验一、C++开发环境应用入门〔2学时〕(选做)实验二、简单程序设计〔2~4学时〕...实验三、函数的应用〔2学时〕(选做)实验四、类与对象(2学时)实验五C++程序的结构〔:2学时实验八数组、E指针与字符串弓〔2学时〕实验七、继承与派牛(一、二)4学时...实验八、多态性2学时...附录1试验报告参考格式...《面向对象编程技术》实验指导书说明一、 实验目的:C++是当今最流行的高级程序设计语言之一, 应用十分广泛。它也是一门复杂的语言,与C语言兼容,既支持结构化的程序设计方法,也支持面向对象的程序设计方法。本课程的目的在于通过试验,让学生掌握用VisualC++6集成开发环境编写和调试程序。掌握 C++语言的概念、语法规如此和编程方法,理解结构化的程序设计和面向对象程序设计的根本思想,会用结构化的程序设计和面向对象的程序设计方法,培养开发具有一定难度程序的编程能力。二、 适应专业:计算机科学与技术与其它相关专业三、 实验学时数:20学时四、实验内容与学时安排:实验一:C++开发环境应用入门学时数:2学时实验内容:VisualC+啲开发环境,学会编写简单C++程序并且编译、调试、运行1、 实验目的了解C++开发工具的特点熟悉C++开发环境学习用C++编写标准的C++程序2、 实验任务使用C++来建立一个非图形化的标准C++S序,编译、运行下例程序:#include<iostream.h>voidmain(void){cout«〃Hello!\n〃;cout«〃WeletoC++!\n〃;}3、 实验步骤启动VisualC++或C++Builder开发环境创建一个项目单击File菜单中的New选项,显示示新建对话框选择ConsoleWizard(C++Builder)或Win32ConsoleApplication(VC++)。选择项目所在路径与输入项目的名称依次按‘下一步’直至完成为止。至此,C++Builder已经建立好工程相关的文件〔请不要随意更改其自动生成的文件〕 ,在生成的main函数中写入必要的内容即可。4、实验心得Rc++6.0是一个简单,易操作并且功能强大的软件,非常适合初学者使用,通过简单的程序很容易掌握软件的使用,在编程之初,标准很重要,要注意编程风格。实验二、简单程序设计学时数:2学时试验内容:学会编写简单的C++程序。练习使用简单的输入输出。实验任务(1)输入并运行教材《C++语言程序设计》中的例题2-7,即:用do-while语句编程,求自然数1~10之和。

(2)程序正确运行之后,去掉源程序中的#inelude语句,重新编译,观察会有什么问题。do-while语句用for语句代替,完成一样的功能。■rrorC2871:*ctd':do^snotexi^tDrisnotaerrorC2Q6&:1tout1: id&ritiFiererrorG?297;'«';illegal,rightoperandhastype'char[5]'errorCZB65:'^ndl':und^clar^tlidentifier(3)程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积后将其显示出来。#include<iostream.h> voidmain()floatPl=3.1416; {intiType;floatradius,a,b,area;coutvv"图形的类型?〔1为圆形,2为长方形,3为正方形〕:";cin>>iType;switch(iType){case1:cout<<"圆的半径为:";cin>>radius;area=PI*radius*radius;coutvv"面积为"vvareavvendl;break;case2:cout<<"矩形的长为:";cin>>a;coutvv"矩形的宽为:";cin>>b;area=a*b;coutvv"面积为:"vvareavvendl;break;case3:coutvv"正方形的边长为:";cin>>a;area=a*a;coutvv"面积为:"vvareavvendl;break;default:coutvv"不是合法的输入值!"vvendl;使用debug调试功能观察程序运行中变量值的变化情况。试验三:函数的应用(选做)学时数:2学时实验内容:掌握函数的定义和调用方法练习重载函数使用。练习函数模板的使用练习使用系统函数。实验四:实验四、类与对象学时数:2学时一、实验内容:掌握类的定义和使用掌握类的定义和对象的声明复习具有不同访问属性的成员的访问方式。察构造函数和析构函数的执行过程。学习类的聚集使用方法。使用DEBUG来调试程序,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。1、实验任务1〕定义一个CPU类,包含等级〔rank〕、频率〔frequency〕、电压(voltage)等属性,有两个公有成员函数run、stop。其中rank为枚举类型CPU_Rank定义为enumCPU_Rank二{P仁1,P2,P3,P4,P5,P6,P7},frequency为单位为MHZ的整型数,voltage为浮点型白的电压值。观察构造函数和析构函数的调用顺序。2〕定义一个简单的puter类,有数据成员芯片(cpu)、内存(ram)、光驱〔cdrom〕等等,cpu为CPU类的一个对

象,ram为RAM类的一个对象,cdrom为CDRO类的一个对象,定义并实现这个类#include<iostream>#include<string>#include<iostream>#include<string>usingnamespacestd;classputer{private:stringcpu;intram;intcdrom;public:puter(stringCPU,intRam,intCdrom){cpu二CPU;ram二Ram;cdrom二Cdrom;}stringGetcpu(){returncpu;}intGetram(){}intGetcdrom(){returncdrom;}};intmain(){stringa;intb;intc;cout<<"CPU:";cin>>a;cout<<"Ram:";cin>>b;cout<<"CDrom";cin>>c;putermypc(a,b,c);coutvv"CPU:"v<mypc.Getcpu()vv"\n"vv"Ram:"vvmypc.Getram()vv"\n"<<"CDrom"<<mypc.Getcdrom()<<endl;}3〕〔选做〕设计一个用于人事管理的People〔人员〕类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(某某号)等等。其中“出生日期〃定义为一个“日期'类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数。#include<iostream>#inelude<string>usingnamespacestd;classDate//日期类{private:intyear;intmonth;intday;public:Date(){}//默认构造Date(inty,intm,intd)// 带参构造{year二y;month=m;day二d;}voidset()// 设置数据函数{cin>>year>>month>>day;}voiddisplay()//显示函数{coutvvyearvv"年"<<month<<"月"<<day<<"日";}};classPerson/ 人员类{private:intnum;charsex;Datebirthday;charID[18];public:Person(){}//默认构造Person(intn,inty,intm,intd,charid[18],chars='m'):birthday(y,m,d)

num二n;sex二s;strcpy(ID,id);}//有默认值的带参构造Person(Person&p)//拷贝构造{num二p.num;sex=p.sex;birthday二p.birthday;strcpy(ID,p.ID);}cin>>num;coutvv"性别(m/f)cin>>num;coutvv"性别(m/f):"cin>>sex;coutvv"生日:{cout«"录入数据:"<<endl;coutvv"编号:";

birthday.set();coutvv"某某号:";cin>>ID;ID[18]='\0:cout«endl;}voidoutput()// 输出函数{~Person()//析构函数{coutvv""<<num<<"号人员已经录入"<<endl;}coutvv"编号:coutvv"编号:"vvnum<<endl;coutvv"性别:"vvsexvvendl;coutvv"生日:";birthday.display();coutvvendl;coutvv"某某号:"vvlDvvendl;}};Personp1;pl.input();p1.output();return0;}3、实验步骤首先定义枚举类型CPU_Ran,例如enumCPU_Rankp仁1,P2,P3,P4,P5,P6,P7},再定义CPL类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,定义成员函数 run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。在主程序中定义一个 CPU类的对象,调用其成员函数,观察类对象的构造与析构顺序,以与成员函数的调用。程序名:Iab4_1.cpp。使用debug调试功能观察lab4_1.cpp的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。参考程序如下:#include<iostream.h>enumCPU_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(){cout<<〃CPU开始运行!〃<<endl;}VoidStop(){cout<<CPU停止运行!〃 <<endl;}};voidmain(){CPUa(P6,300,2.8);Run();Stop();}(3)调试操作步骤如下:Build|StartDebug|StepInto 命令,系统进展单步执行状态,程序开始运行,一个 DOS窗口出现,此时光标停在main()函数的入口处;从Debug菜单栏中单击StepOver,此时,光标下移,程序准备执行 CPU对象的初始化;单击StepInto,程序准备执行CPL类的构造函数;连续单击StepOver,观察构造函数的执行情况,直到执行完构造函数,程序回到主函数;此时程序准备执行CPU对象的run()函数,单击StepInto,程序进入run()成员函数,连续单击StepOver,直到回到main()函数;继续执行程序,参照上述的方法,观察程序的执行顺序,加深对类的构造函数、析构函数、成员函数的执行顺序的认识;F) 再试Debug菜单栏中的别的菜单项,熟悉Debug的各种方法。G) 选定义CPU类、RAM类、CDRO类。再定义puter类:定义私有数据成员cpu、ramcdrom,定义公有成员函数run、stop,可在其中输出提标信息居主程序中定义一个 puter的对象,调用其成员函数,观察类对象与其成员变量的构造与析构顺序,以与成员函数的调用。程序名: Iab4_2.cpp。〔5〕使用debug调试功能观察lab4_2.cpp程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序,特别注意观察成员变量的构造与析构顺序。实验五:C++程序的结构学时数:2学时实验内容:观察程序运行中变量的作用域、生存期和可见性。学习类的静态成员的使用。学习多文件结构在C++®序中的使用。二、实验任务运行下面的程序,观察变量x、y的值。#include<iostream.h>voidfnl();intx=1,y=2;intmain(){cout«"Begin…"<<endl;cout<<"x="<<x<<endl;cout<v"y="vvyv<endl;cout<<"Evaluatexandyinmain()..."<<endl;intx=10,y=20;cout<<"x="<<x<<endl;cout<v"y="vvyv<endl;cout«"Stepintofnl()…"<<endl;fnl();cout«"Backinmain"«endl;coutvv"x="v<xvvendl;cout<v"y="vvyv<endl;return0;}voidfnl(){inty=20;cout<<"x="<<x<<endl;cout<v"y="vvyv<endl;}现客户机〔CLIENT)类。定义字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeSeverName()改变服务器名称。在头文件client.h中定义类,在文件client.cpp中实现,在test.cpp中测试这个类,观察相应的成员变量取值的变化情况。三、实验步骤运行程序Iab5_1,观察程序输出。全局变量的作用域为文件作用域,在整个程序运行期间有效,但如果在局部模块中定义了同名的变量,如此在局部模块中,可见的是局部变量,此时,全局变量不可见;而局部变量的生存期只限于相应的程序模块中,离开相应的程序模块,局部变量x、y就不再存在,此时同名的全局变量重新可见。新建一个空的项目Iab5_2,添加头文件client.h,在其中定义类CLIENT,注意使用编译预处理命令;再添加原程序文件client.cpp,在其中实现CLIENT类,注意静态成员变量的使用方法,再添加文件Iab5_2.cpp,在其中定义main〔〕函数,测试CLIENT类,观察相应的成员变量取值的变化情况。实验六:数组、指针与字符串学时数:2学时实验内容:学习使用数组。学习字符串数据的组织和处理。学习标准C++库的使用。掌握指针的使用方法。练习通过debug观察指针的内容与其所指的对象的内容。练习通过动态内存分配实现动态数组,并体会指针在其中的作用分别使用字符数组和标准C++库练习处理字符串的方法。、实验内容〔1〕编写并测试3*3矩阵转置函数,使用数组保存 3*3矩阵#include<iostream.h>voidmain(){inta[3][3],i,j,b[3][3];coutvv"请依次输入距阵中的元素:"<<endl;for(i=0;i<3;i++){for(j=0;j<3;j++){cin>>a[i][j];}}coutvv"此矩阵中的元素为:"<<endl;for(i=0;i<3;i++){for(j=0;j<3;j++){cout<<a[i][j];cout«"";}cout«endl;}cout«"经过转置后矩阵为:"<<endl;for(i=0;i<3;i++){for(j=0;j<3;j++){b[i][j]=a[j][i];cout<<b[i][j];coutvv"”;}cout«endl;}}使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能#include<iostream.h>#include<stdlib.h>voidprint(int*a){for(inti=0;i<9;i++){cout<v*a;coutvv"”;a++;if((i+1)%3==0)cout<<endl;}}voidmain(){inti,j;int*a,*b;a=(int*)newvoidreserve©nt*&a){intb[3][3],i,j;int*c;c=a;for(i=0;i<3;i++){for(j=0;j<3;j++){b[i][j]=*a;a++;}}a=c;for(i=0;i<3;i++){for(j=0;j<3;j++){*a=b[j][i];a++;}}a=c;}素voidreserve©nt*&a){intb[3][3],i,j;int*c;c=a;for(i=0;i<3;i++){for(j=0;j<3;j++){b[i][j]=*a;a++;}}a=c;for(i=0;i<3;i++){for(j=0;j<3;j++){*a=b[j][i];a++;}}a=c;}素:"<<endl;for(i=0;i<9;i++){cin>>*a;a++;}a二b;cout<<"此距阵中的元素为:"<<endl;print(a);reserve(a);cout<<" 经过转置后此距阵为:"<<endl;print(a);}int[3][3];b=a;cout<<" 请依次输入距阵中的元〔2〕编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。

使用sting类定义字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。#include<iostream>usingnamespacestd;intmain(){charstra[100],strb[100],str[200];inti,j;coutvv"请输入少于100的字符串:"<<endl;cout<<"stra=";cin>>stra;coutvv"请输入少于100的字符串:"<<endl;cout<<"strb=";str[i]=stra[i];for(j=0;strb[j]!='\0';j++,i++)str[i]=strb[j];str[i]=stra[i];for(j=0;strb[j]!='\0';j++,i++)str[i]=strb[j];str[i]='\O:cout<v"str=stra+strb="v<strvvendl;return0;}for(i=0;stra[i]!='\0';i++)

〔3〕定义一个Employee类,其中包括某某、街道地址、城市和邮遍等属性。以与change_name()和display。等函数。display()显示某某、街道地址、城市和邮遍等属性, change_name()改变对象的某某。实现并测试这个类.#inelude<iostream>usingnamespacestd;classEmployee{private: char*name,*address,*city,*postCode;public: Employee(char*_name,char*_address,char*_city,char*_postCode){ name =_name; address =_address; city=_city; postCode=_postCode;} voidchange_name(char*_name){ name=_name; }voiddisplay(){ cout<<"name:"<<name<<endl; cout<<"address:"<<address<<endl;cout<<"city:"<<city<<endl; cout<<"postcode:"<<postCode<<endl;}};intmain(intargc,char*argv[]){ Employee*e=newEmployee("xiaoming","changdd","anhui","2330000");e->display(); e->change_name("lisi"); e->display();deletee;}(4)定义包含(4)定义包含5个元素的对象数组,每个元素都是Employee类型的对象誓言七:继承与派生(一、二)学时数:4学时誓言七:继承与派生(一、二)学时数:4学时实验内容:学习定义和使用类的继承关系,定义派生类。熟悉不同继承方式下对基类成员的访问控制。学习利用虚基类解决二义性问题二、实验内容定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?#include<iostream>usingnamespacestd;classAnimal{public:Animal(){}~Animal(){}private:intage;};classDog:publicAnimal{public:Dog(){}~Dog(){}voidSetAge(){cout<<"Thedog'sagen)中直接给ageis:";cin>>age;}voidShowAge(){cout«"The dog'sageis:"<<age<<endl;}};intmain(){Dogdog;dog.SetAge();dog.ShowAge();return0;}定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。#include<iostream>usingnamespacestd;classbaseclass{public:intnumber;baseclass(){}baseclass(int);};classderivedclass:publicbaseclass{public:intnumber_derived;derivedclass(){}derivedclass(int);};baseclass::baseclass(intnum){number=num;cout<<number«endl;cout<<"callbaseclass"<<endl;}derivedclass::derivedclass(intnum){number_derived=num;coutv<number_derived«endl;cout<<"callderivedclass"<<endl;}intmain(){baseclassBase(18);derivedclassDBase(20);return1;}定义一个车(vehicle)基类,具有MaxSpeedWeight等成员变量,RunStop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。#include<iostream.h>classvehicle{private:intmaxspeed;intweight;public:voidrun(){cout<v"maxspeed"v<endl;}voidstop(){cout<v"weight"v<endl;}};classbicycle:virtualpublicvehicle{private:intheight;public:voidfun(){cout<<"height"<<endl;run();stop();}};classmotorcar:virtualpublicvehicle{private:intseatsum;public:voidfun1(){cout<v"seatsum"v<endl;run();stop();}};classmotorcycle:publicbicycle,publicmotorcar{public:voidfun2();};voidmotorcycle::fun2(){fun();fun1();}intmain(){motorcyclec;c.fun2();return0;}如果不把vehicle设为虚基类,会出现二义性问题。3、实验步骤编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge(intn)中直接对age赋值时,会出现类似以下的错误提示:errorC2248:'age':cannotaccessprivatememberdeclaredinclass ‘Animal'errorC2248:'age':cannotaccessprivatememberdeclaredinclass ‘Animal'(2〕编写程序定义一个基类BassClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名为: lab7_2.cpp。(3〕用debug功能跟踪程序Iab7_2的执行过程,观察基类和派生类的构造函数和析构函数的执行情况。写程序定义一个车(vehicle)基类,由此派生出自行车〔bicycle丨类、汽车类(motorcar)类,注意把vehicle派生为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名为:lab7_3.cpp。编译成功后,把vehicle设置为非虚基类,再编译一次,此时系统报错,无法编译成功。这是因为假如不把vehicle设置为虚基类,会出现二义性错误,程序不能成功编译。实验八:多态性2学时学时数:2学时实验内容:掌握运算符重载的方法学习使用虚函数实现动态多态性学习利用虚基类解决二义性问题二、实验内容a)定义Point类,有坐标x,成y两个员变量;对Point类重载“++〃、“--〃运算符,实现对坐标值的改变#inelude<iostream.h>classPoint{private:intx;inty;public:Point(inta,intb){x二a;y=b;}Point&operator++(int);Point&operator--(int);Point &operator++();Point &operator--();voidprint();};Point &Point::operato叶+(int) {return Point(x++,y++);}Point &Point::operator--(int){return Point(x--,y--);}Point &Point::operator++() {return Point(++x,++y);}Point &Point::operator--(){returnPoint(--x,--y);}voidPoint::print(){cout<<"x="<<x<<"\ty="<<y<<endl;}main(){Pointa1(1,2);a1++;a1.print();}定义一个车(vehicle)基类,有RunStop等成员函数,由此派生出自行车〔bicycle〕类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有RunStop等成员函数。观察虚函的作用。#include<iostream>usingnamespacestd;classVehicle{public:virtualvoidRun(){cout<v"Vehicle::Runcalled\n";}virtual voidStop(){cout<v"Vehicle::Stop called\n";}};class motorcar:publicVehicle{public: voidRun(){cout<<"motorcar::Run called\n";}virtual voidStop(){cout<<"motorcar::Stopcalled\n";}};classbicycle:publicVehicle{public:virtualvoidRun(){cout<<"bicycle::Run called\n";}voidStop(){cout<<"bicycle::Stop called\n";}};class motorcycle:publicbicycle,publicmotorcar{public:voidRun(){cout«"motorcycle::Run called\n";} voidStop(){cout<<"mototrcycle::Stop called\n";}};voidmain(){Vehicle ve;bicycle bi;motorcar mo;motorcycle mocy;Vehicle*pclass二&ve;pclass->Run();pclass->Stop();pclass二&bi;pclass->Run();pclass->Stop();pclass二&mo;pclass->Run();pclass->Stop();}〔选做〕前面实验中的People类重载“二二〃运算符和“二〃运算符,“二二〃运算符判断两个People类对象的id属性是否相等;“二〃运算符实现People类对象的赋值操作。3、实验步骤编写程序定义Point类,在类中定义整型的私有成员变量 x,y,定义成员函数Point&operator++();Pointoperato叶+(int);以实现对Point类重载“++〃运算符,定义成函数Point&operator-();Pointoperator--(int);以实现对Point类重载“--〃运算符,实现对坐标值的改变。程序名:lab8_1.cpp。编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车类〔motorcar〕,从bicycle类和motorcar类派生出摩托车类〔motorcycle〕,它们都有RunStop等成员函数。在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的指针来调用几个对象的成员函数,看看能否成功;把RunStop定义为虚函数,再试看。程序名:Iab8_2.cpp。五、教材与参考文献六、实验环境实验要求如下环境七、成绩考核上机实验考核采取实验报告和上机抽查检验相结合的方式。每次实验完毕后都写出实验报告。实验报告实验一、C++开发环境应用入门〔2学时〕(选做)1、 实验目的了解C++开发工具的特点熟悉C++开发环境学习用C++编写标准的C++程序2、 实验任务使用C++来建立一个非图形化的标准 C++®序,编译、运行下例程序:#ineludeviostream・h>voidmain(void){coutvv“Hello!\n“;coutvv“WeletoC++!\n “;}3、实验步骤启动VisualC++或C++Builder开发环境创建一个项目单击File菜单中的New选项,显示示新建对话框选择 Console Wizard(C++Builder)或Win32ConsoleApplication(VC++)。选择项目所在路径与输入项目的名称依次按’下一步'直至完成为止。至此,C++Builder已经建立好工程相关的文件〔请不要随意更改其自动生成的文件〕,在生成的main函数中写入必要的内容即可。对于VC,请继续下面的步骤:建立C++源程序文件选选菜单命令Project|AddtoProject|New,弹出New对话框在New对话框的Files选项卡中选择C++SourceFile, 并填入文件名称,单击0K按钮,完成新建C++源程序文件编辑C++源程序文件在文件编辑窗口中输入代码完成后,选择菜单File|Save保存这个文件建立并运行可执行程序选择菜单命令Build,建立可执行程序如果你正确输入了源程序,此时便成功地生成了可执行程序。如果程序有语法错误,如此屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进展修改后,重新选择菜单命令 Build建立可执行程序。选择菜单命令Run,运行程序,观察屏幕显示内容。关闭工作空间选择菜单命令File|ColseWorkspace关闭工作空间。实验二、简单程序设计〔2~4学时〕1、实验目的:学会编写简单的C++程序练习使用简单的输入输出。观察关文件的作用。学会使用DEBUG调试程序。2、 实验任务:〔1〕输入并运行教材《C++语言程序设计》中的例题2-7,即:用do-while语句编程,求自然数1~10之和。程序正确运行之后,去掉源程序中的#inelude语句,重新编译,观察会有什么问题。do-while语句用for语句代替,完成一样的功能。程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积后将其显示出来。使用debug调试功能观察程序运行中变量值的变化情况。定义一个表示时间的结构体,可以准确表示年、月、日小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。3、 实验步骤建立一个控制台应用程序项目 Iab2_1,向其中添加一个 C++源文件Iab2_1.cpp,输入教材《C++语言程序设计》中例2-7的代码,检查一下确认没有输入错误,选择菜单命令编译源程序,再选择 Execute运行程序,观察输出是否与教材中的答案一致。程序正确运行之后,在源程序第一行" #inelude<iostream.h>"前面加注释标记"//"使之成为注释行,重新编译,观察编译的结果。另建立一个项目Iab2_2,包含一个C++源程序Iab2_2.cpp,将do-while语句用for语句代替,完成与实验任务1一样的功能。建立项目Iab2_3,计算图形面积。圆形的面积计算公式为 S=PI*r*r,长方形的面积计算公式为 S=a*b,正方形的面积市场计算公式为 S=a*a。程序中定义一个整型变量iType表示图形的类型,用eout语句输出提示信息让用户选择图形的型,用 ein读入iType的值,然后,使用switch语句判断图形的类型,分别提示用户输入需要的参数值,计算出面积的值后用cout语句显示出来。最后编译运行程序。学习简单的debug调试功能,参考程序如下:#ineludeviostream・h>constfloatPl=3.1416;voidmain(){intiType;floatradius,a,b,area;coutvv〃图形的类型?〔1为圆形,2为长方形,3为正方形〕:";cin>>iType;switch(iType){case1:coutvv “圆的半径为:";cin>>radius;area=PI*radius*radius;coutvv〃面积为〃vvareavvendl;break;case2:cout«"矩形的长为:";cin>>a;cout«"矩形的宽为:";cin>>b;area=a*b;cout<<〃面积为:〃vvareavvendl;break;case3:cout<<"正方形的边长为:";cin>>a;area=a*a;cout<<〃面积为:〃vvareavvendl;break;default:cout<<〃不是合法的输入值!〃 <<endl;选在第10行处设置调试断点。用鼠标左键单击源程序第 10行左边的空白处,出现一个菜单。择Insert|RemoveBreakpoint选项,可看到左边的边框上出现一个褐色的圆点,这代表已经在这里设置了一个断点。后选择菜单命令Build|StartDebug|Go ,系统统进入Debug状态,程序开发运行,并停在断点处。D〕单步执行,并观察程序中相应变量的变化情况。实验三、函数的应用〔2学时〕(选做)1、实验目的:掌握函数的定义和调用方法练习重载函数使用。练习函数模板的使用练习使用系统函数。2、 实验任务:编写一个函数把华氏温度转换为摄氏温度, 转换公式为:C=(F-32)*5/

温馨提示

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

最新文档

评论

0/150

提交评论