版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一熟悉VC+IDE开发环境一、实验目的1、熟悉vC+6.0集成开发环境,熟练掌握VC-6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。2、掌握如何编辑、编译、连接和运行一个C+程序。3、通过运行简单的C+程序,初步了解C+源程序的结构和特点。二、实验要求1 分析下列程序运行的结果。程序一:# includeintadd(intxrinty二8);voidmain()intx=4;couKadd(x),;coutCadd(x,add(add(x,add(x)endI;)intadd(y)returnx+y;/12.28程序二# includevoidmain()int*p
2、,i;P二&i;i=*p+10;couti=iendI;)/i=15程序三:# includevoidmain(void)inti=10;int&r=i;cout-i二ir/rn;i=88;cout-i二,,ir=”rn,;i=88,r=88程序四:#includeintf(inti)staticintk二1;for(;i0;i-)k+=i;returnk;)voidmain()inti;for(i二0;iC5;i+)couUf(i)/1251121程序五:#includevoidfunc0;intn=1;voidmain()staticinta;intb=-9;coutab:bb十二4;fu
3、nc();couta:ab:bn+=10;func0;n.)nendI;voidfunc0staticinta二2;intb二5;a+=2;n+=12;b十二5;coutabfb)/a:0b:-9n:1a:4b:10n:13a:0b:-5n:13a:6b:10n:35实验二实验目的C+对c的扩充1、了解在面向对象程序设计过程中C+对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。2、进一步熟悉编辑、编译、连接和运行C+程序的方法。3、进一步熟悉C+程序的结构和编程方法。二、实验要求1分析下列程序运行的结果。ncludeintamount=123;voidmain()intamoun
4、t二456;cou::amount*fcou(amoun;/123,456t789,4562、编写一个程序,用来求2个或3个正整数中的最大数。酥策磁畚数的函数实现。usingnamespacestd;intmax(b,intc)if(ba)a=i|f;(ca)a二c;returna;int max (int a, int b) if (ab)r觎磬urnlb;int main()i nt a 二 7, b 二-4, c 二 9;coumax (a, b, c)end I ;cout ( max (a, b)end I ; return 0;Q耳绅幅者,中大#include 里u
5、sing namespace std; 讥八I nt ma i n 0b max(int a, int b, int甘R i nt a, b, c;i nabc;娄coutmax (a, b, c)=max (a, b, c)end IcoutCmax (a, b)=max (a, b)end I ;”中的最大者return 0;占中者他瞬出两个整数中的最大者/intmax(intarintb,intc)if(ba)a=b;if(ca)a二c;returna;)3有5个字符串,要求对它们按由小到大顺序排歹U用string方法。# include# include(stringusingname
6、spacestd;intmain()inti;stringstr5二BASIC,5“FORTRAN,C+”,PASCAL”;voidsort(string口);sort(str);couKz,thesortedstrings:“endI;for(i=0;i5;i+)couKstricoutendI;return0;)voidsort(strings口)inti,j;stringt;for(j二0;jsi+U)(t=si;si=si+1;si+1=t;4、定义一个求两个数中较小值的函数模板min(),要求在main()函数中进行调用求两个浮点型数据和两个整型数据中较小的数。# includeHi
7、ostream”# includestring”usingnamespacestd;tempiate(typenameTTmindafTb)returnab?a:b;intmain()inta=1,b=9;floatc=1.23471,d=32.431564;couK,zTheminofaand”bismin(a,b)endlTheminof”canddismin(c,d)endl;return0;)实验三类和对象(一)一、实验目的1、掌握声明类的方法,类和类的成员的概念以及定义对象的方法。2、掌握类的构造函数与析构函数的概念和使用方法。3、初步掌握用类和对象编制基于对象的程序。二、实验要求1
8、 分析下面的程序,写出其运行时的输出结果。#includeusingnamespacestd;cIassDatepublie:Date(int,int,int);Date(int,int);Date(int);DateO;voiddisplay();private:intmonth;intday;intyear;);Date:Date(intm,intd,inty):month(m),day(d),year(y)Date:Date(intm,intd):month(m),day(d)year=2005;)Date:Date(intm):month(m)day=1;year=2005;)Date
9、:Date()month=1;day=1;year=2005;)voidDate:display0coutmonth,r/day/yearendI;intmain()Dated1(10,13,2005);Dated2(12,30);Dated3(10);Dated4;d1.display();d2.dispIay0;d3.dispIay0;d4.dispIay0;return0;)/10/13/200512/30/200510/1/20051/1/20052、建立一个名为Student的类,该类有以下几个私有成员变量:学生、学号、性别、年龄。还有以下两个成员变量:一个用于初始化学生、学号、性别
10、和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。#incIudeHiostream,1#includestring”usingnamespacestd;classstudent(publie:student();voiddisplay();private:stringsName,sNum;charchSex;intiAge;);student:student(stringna,stringnumtchars,inta):sName(na)fsNum(num),chSex(s)fiAge(a)0voidstudent:dispI
11、ay()cout11THE INFORMATI ON OF STUDENTn;cout name:hsName end I Unumber”sNumend Ii Age end I“sex:chSexendIage:intmain()students(HWangFang,zfz,081104526311,w1,20);s.display();return0;3、类Person的定义如下,请实现该类,并在主函数中创建对象。bj,然后使用构造函数为M赋予初始值(容自定)。cIassPersonprivate:charname10;intage;intsalary;chartel8;publie:P
12、erson(char*xname,intxage,intxsalary,char*xtel);voiddispO;);解:# include# includePerson:person(char*XnameFintXage,intXsalary,char*XteI)strepy(nameFxname);age二xage;salary二xsalary;strepy(terxtel);)voidPerson:disp()couUucou:nameendI;cou年齿令:ageendI;cou工资”:saIaryendI:teIendI;)voidmain0Personobj(n25,850,“45
13、678912);obj.disp()实验四类和对象(二)、实验目的1、进一步加深对类和对象的理解。2、掌握对类的对象数组、对象的指针及其使用方法。3、掌握友元的概念和使用。4、了解类模板的使用方法。二、实验要求1、分析并比较下列程序运行的结果。程序一:# include# includeclasssmallone(publie:smalIone(intsma)couKsmconstr:sma”rT;;voidfn(intn)smalIonesm(n);cout(ninfunctionfnwithn=MnendI;)intmain()fn(10);fn(20);return0;)/smconst
14、r:10infunctionfnwithn=10smconstr:20infunctionfnwithn=20程序二:# include# incudeclasssmalIonepublie:smalIone(intsma)couz,smconstr:;);voidfn(intn)staticsmalIonesm(n);cout(ninfunctionfnwithn二”nendl;1intmain()fn(10);fn(20);return0;/smconstr:10infunctionfnwithn二10infunctionfnwithn二202、建立一个对象数组,放5个学生的数据(学号、成
15、绩),设立一个函数max,max函数用指向对象中找出5个学生中成绩最高者,并输出其学号。#includeusingnamespacestd;classStudent(publie:Student(intn.floats):num(n),scoreintnum;floatscore;);voidmain()Studentstud5=Student(101,78.5),Student(102,85.5),Student(103,98.5),Student(104,100.0),Student(105,95.5);voidmax(Student*);Student*p=&stud0;max(p);r
16、eyurn0;)voidmax(Student*arr)(fIoatmax_scorez:arr0score;intk=0;for(inti=1;imax_score)(max_scorezarriscore;k=i;cou(arrknumn/max_scoreendI;)3、声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。#includeusingnamespacestd;tempiatecIassCompare(publie:Compare(numtypea,numtypeb)x=a;y=b;numtypemax()return(xy)?x:y;)numtype
17、min()return(xcmp1(3,7);couKcmp!.max0istheMaximumoftwointedernumbers“(endI;coucmp1minOVVistheMinimumoftwointedernumbers”(end|(endComparecmp2(45.78,93.6);coutXcmp2. max ()“ i s the Max imum coucmp2 .min() i s the Mini mum Compare cmp3 (* a r 1 A*); coucmp3. max 0 i s the Max imum cou tXcmp3 .m in()i s
18、 the Mini mumof two f I oat numbers ”end I ;of two float numbers. end KXendl ;of two characters. n ( end I;of two characters n ( end I ; return 0;实验五运算符重载一、实验目的1、进一步了解运算符重载的概念和使用方法。2、掌握几种常用的运算符重载的方法。二、实验要求1、定义一个复数类CompIex,重载运算法“+”,使之能用于复数的加法运算。将运算符重载为普通函数(非成员、非友元)、成员函数、友元函数。根据要求修改通过函数来实现复数相加的示例,分别编写
19、程序,求两个复数之和。/ / 定义 Comp I ex 类构造函数/实部/虚部#includeusingnamespacestd;classCompIexpublie:CompIex(floatx=0,floaty二0)real二x;imag二y;CompIexcompIex_add(CompIex&c2);voiddispIay()coutreaI+imagiendI;);private:fIoatreaI;floatimag;);CompIexCompIex:compIex_add(CompIex&c2)CompIexc;c.real二real+c2.real;c.imag二imag+c2
20、-imag;returnc;)intmain()/定义3个复数对CompIexcompIex1(3.34f,4.8f),compIex2(12.8f,5.2f);CompIexcompIex;/进彳丁两个复数的加运算compIex二compIpIex_add(compIex2)compIex.display0;return0;/16.14+10i/普通函数(非成员、非友元)#includeusingnamespacestd;cIassCompIexpublie:CompIex0(real=0;imag=0;CompIex(doubler,doublei)real=r;imag=i;doubIe
21、get_reaI();doubleget_imagO;voiddispIay();private:doublereal;doubleimag;);doubleComplex:get_real()(returnreal;doubIeComplex::get_imag()(returnimag;voidCompIex:display()cout(reaI,i)”endI;CompIexoperator+(CompIex&,z.Complex&c2)(returnCompIex(d-get_real()+c2.get_real0tc1-get_imagO+c2.get_imag();)intmain
22、()(CompIexd(3,4),c2(5,-10),c3;c3=d+c2;coutc3二;c3.dispIay0;return0;/运算符重载为成员函数#includeusingnamespacestd;classCompIexpubIic:CompIex0real=0;imag=0;CompIex(doubler,doublei)real二r;imag二i;)CompIexoperator+(CompIex&c2);voiddispIay();private:doublereal;doubleimag;);CompIexCompIex:operator+(CompIex&c2)(CompI
23、exc;c.rea-eal+c2.real;c.imag二imag+c2.imag;returnc;)voidCompIex:dispIay()coutereaI,fHimagri)”endI;)intmain()CompIexd(3,4),c2(5,TO),c3;c3=c1+c2;couKc1=,z;d.dispIay();coutc2=;c2.dispIay();coutc1+c2=;c3.display();return0;/将运算符重载为友元函数#includeusingnamespacestd;cIassCompIex(publie:CompIex()rea1=0;imag-0;)C
24、ompIex(doubler)(real=r;imag_.0;CompIex(doubler,doublei)rea=r:imag=i;friendCompIexoperator+(CompIex&d,CompIex&c2);voiddispIay();private:doublereal;doubleimag;):CompIexoperator+(CompIex&d,Complex&c2)(returnCompIex(d-real+c2-real,dimag+c2.imag);voidComplex:display()cout(reaI,i)endI;intmain0CompIexd(3,4
25、),c2(5,TO),c3;c3=d+c2;coutc1二”;c1.dispIay();coutc2=:c2.dispIay();cout,d+c2=1;c3.dispIay();return0;实验六继承和派生一、实验目的1、了解继承在面向对象程序设计中的重要作用。2、进一步理解继承与派生的概念。3、掌握通过继承派生出一个新的类的方法。4了解虚基类的作用和用法。二、实验要求1、运行程序,分析构造函数与析构函数的调用顺序。程序一:#inoudecIassApubIic:A()coutA:Constructor”endI;AOcouKA:DestructorendI;cIassB:pubIicA
26、pubIic:B()couK,BConstructor,/endI;)()coutB:Destructor”endI;);voidmain()Bb;)/A:ConstruetorB:ConstructorB:DestruetorA:Destructor程序二:#includecIassA(inta;publie:aend IA(intaa二0)a=aa:A()coutCnDestructorA!cIassB:pubIicAintb; b 二 bb; pubIic:B(intaa=O,intbb=O):A(aa)B() coutDestructorB!voidmain()Bx(5),y(6,7)
27、;/DestructorB!7DestructorA!6DestructorBIODestructorA!5调用顺序:构造x. A a二5构造x. B构造y. A 不匹配,不调用A ()构造 y. B a=6b=7 析构 y. B B!7析构y. A A!62、分别声明Teacher(教师)类和Cadre (干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cader类要求:小天由人甘来工公、/卜注口H、-Wr+rL、在Teacher类中还包含数据成员title (职称)等数据成员。,在Cader类中还包含数据成员post (职务)。在Teacher_Cader类中还包含数据成员w
28、ages(工资)。年龄、性别、职称、地址、cou t在对两个基类中的、年龄、性别、地址、等数据成员用相同的名字,在引用这些数据成员时,指定作用域。在类体中声明成员函数,在类外定义数据成r=j贝中调用Teacher类中的display函数,输出、语句输出职务和工资。在派生类TeachejCader的成员函数showTeacher#include#includeusingnamespacestd;classpublie:Teacher(stringnamfinta,chars,stringtit,stringad,stringt);voiddispIay();protected:stringnam
29、e;intage;charsex;stringtitle;stringaddr;stringTeacher:Teacher(stringnam,inta,chars,stringtit,stringad,stringt):name(nam),age(a),sex(s),ti11e(tit),addr(ad),teI(t)voidTeacher:dispIay()coutname:nameendI;cou,age,XageendI;cout“sex:”sexendI;coutCtitie:zXti11eendI;couaddress:addrendI;coutteI:teIendI;)cIass
30、Cadrepublie:Cadre(stringnam,intafcharSfstringp,stringad,stringt);voiddispIay0;protected:stringname;intage;charsex;stringpost;stringaddr;stringtel;);Cadre:Cadre(stringnam,inta,chars,stringp.stringadFstringt):name(nam),age(a),sex(s)Fpost(p),addr(ad),teI(t)voidCadre:display()couKHname:”nameendI;coutXag
31、e:ageendI;coutsex:sexendI;coutpost:posendI;coutaddress:addrendI;coutteI:teIendI;)classTeacher_Cadre:pubIicTeacher,pubIicCadrepublic:Teacher_Cadre(stringnam,inta,chars,stringtit,stringptstringad,stringt,floatw);voidshow();private:floatwage;);Teacher_Cadre:Teacher_Cadre(stringnam,inta,charsfstringt.st
32、ringptstringad,stringtelffloatw):Teacher(nam,a,Sft,ad,tel),Cadre(nam,ats,p,adrteI),wage(w)voidTeacher_Cadre::show()(Teacher:display();cout“post:”Cadre::pos(endI;coutnwages:”wageendl;)intmain0Teacher_Cadrete_ca(,zWang-Ii,z,50,f,prof.,president”,z135BeijingRoad,Shanghai7;H(021)61234567)1534.5);te_cash
33、ow();return0;)实验七多态性和虚函数一、实验目的1、了解多态性的概念。2、了解虚函数的作用及其使用方法。3、了解静态关联和动态关联的概念和用法。4了解纯虚函数和抽象类的概念和用法。二、实验要求1 分析程序运行结果,掌握虚函数的使用。程序一:#includecIassONEpublie:virtuaIvoidf()coutI”endI;);classTWO:publicONEpublie:TWOOcouUn2zXendl;;classTHREE:pubIicTWOpublie:virtualvoidf()TWO:f();couKn3H;);voidmain()ONEaa,*p;TWO
34、bb;THREEcc;p=&cc;p-f0;)/2程序二:#includeclassBasepubIic:virtualvoidfn()coutInBaseClassd;);cIassSubCiass:pubIicBasepublie:virtualvoidfn()coutinSubClassn;);voidmainOBasebe.*p;SubClasssc;p二&bc;p-fn();p二≻p-fn();1/InBaseClassInSubClass2、实现一个类A,在A中有两个私有的整型变量a和b,定义构造函数对a和b进行初始化,并实现成员函数geta()取得a的值和getb()取b的
35、值。实现类B从A继承,覆盖geta0使其返回a的2倍。主函数中声明类B对象,调用类B中的geta()并将结果输出。#incIudeHiostream!1usingnamespacestd;classAprivate:inta;intb;publie:A(intm,intn)a二m;b二n;intgeta()returna;)intgetb()returnb;)I;cIassB:pubIicA(publie:B(int口intn):A(mrn)intgeta()returnA:geta0*2;);voidmain()Bb(2,2);coutb.geta0endI;return0;Shape,由它
36、派生出3个派生类:Cirle(圆形)、)3、声明抽象基类RectangIe(矩形)、TriangleintArea分别输出以上三者/定义虚函数/结/结/宽与图/ /输出S的面积int main()建立Circle类又寸象circle/输出circle的面积/ /建立Rectangle类对象(三角形),用一个函数的面积,3个图形的数据在定义对象是给定。#includeusingnamespacestd;/定义抽象基类ShapecIassShapepublie:virtuaIdoublearea()const=0;/纯虚函数);/定义Circle类cIassCircle:publicShapepublie:Circle(doubler):radius(r)/结构函数virtuaIdoublearea()const(return3.14159*r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学课外语文活动的组织与评估体系
- 技术革新下的寄生技术发展趋势分析
- 教育心理学在家教中的应用及效果研究
- 2025年度跨境电商现金借款合同范本模板3篇
- 2025年投资伙伴:共享成功协议3篇
- 打造安全教育宣传片的创意路线图
- 教育政策与小学美术教育的发展方向探讨
- 家暴受害者的心理疏导与社会支持体系构建
- 客户导向的个性化销售方法探讨
- 2025年度电子商务平台模板合作合同3篇
- 浙江宁波鄞州区市级名校2025届中考生物全真模拟试卷含解析
- 电子招投标平台搭建与运维服务合同
- IATF16949基础知识培训教材
- 食品研发调研报告范文
- 2024-2030年国家甲级资质:中国干热岩型地热资源融资商业计划书
- 2024-2030年中国MVR蒸汽机械行业竞争格局及投资发展前景分析报告
- 食材配送服务方案投标文件(技术方案)
- 中国慢性阻塞性肺疾病基层诊疗指南(2024年)解读
- 二零二四年度赠与合同:关于艺术品捐赠的赠与合同
- 2023年高考真题-化学(福建卷) 含解析
- 缠绕膜项目实施方案
评论
0/150
提交评论