资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。.9面向对象程序设计(C++)》课程实验指导书安阳工学院计算机科学与信息工程学院软件工程教研室资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。编号:课程总学时:64实验学时:32课程总学分:3.5实验学分:先修课程:C语言程序设计适用专业:计算机科学与技术,网络工程,软件工程一、本课程实验的主要目的与任务《面向对象程序设计(C++)》是计算机专业学生的一门专业基础课。C++是一种高效而又实用的程序设计语言,它既能够进行过程化程序设计,也能够进行面向对象程序设计,因此成为了编程人员最广泛使用的工具。主要任务是介绍C++语言中的数据类型运算,语句结构及其程序设计的基本方法。使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C++语言学会解决一般应用问题,从而掌握面向对象程序设计的基本知识和基本技能。并为后续的专业课程奠定程序设计基础。实验1C++基础资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。一、实验目的1.加强学生掌握C++勺基本知识点;2.加强学生掌握I/O流;3加强学生进一步理解函数勺用法;4理解引用勺概念及应用。三、实验内容1.用函数返回值实现统计A类学生和B类学生个数,于80勺为A类,其余为B类。四.实验指导1.参考程序:#includeiostream.hintmain(){cout”MynameisJonen”;cout”theIDis”;cout2;coutendl;}2.参考程序:#includeiostream.h#includeiomanip.h//要用到格式控制符voidmain(){doubleamount=22.0/7;平均分大于等资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。coutamountendl;coutsetprecision(0)amountendlsetprecision(1)amountendlsetprecision(2)amountendlsetprecision(3)amountendlsetprecision(4)amountendl;coutsetiosflags(ios::fixed);coutsetprecision(8)amountendl;coutsetiosflags(ios::scientific)amountendl;coutsetprecision(6);//重新设置成原默认设置}3.参考程序:#includeiostream.h#includeiomanip.hintmain()intnumber=1001;coutDecimal:decnumberendlHexadecimal:hexnumberendlOctal:octnumberendl;return0;}4.参考程序:#includeiostream.h资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。#includeiomanip.hintmain(){coutsetfill('*')setw(2)21endlsetw(3)21endlsetw(4)21endl;coutsetfill('');//恢复默认设置return0;}5.参考程序:#includeiostream.h#includeiomanip.hvoidmain(){coutsetiosflags(ios::right)setw(5)1setw(5)2setw(5)3endl;coutsetiosflags(ios::left)setw(5)1setw(5)2资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。setw(5)3endl;}6.参考程序:#includeiostream.hvoidmain(){constfloatPI=3.1415926f;floatr;floatz,s;cout请输入圆的半径r=;cinr;z=2*PI*r;资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。s=PI*r*r;cout圆的周长为:zendl;cout圆的面积为:sendl;}7.参考程序:#includeiostreamusingnamespacestd;intarray[6][4]={{60,80,90,75},{75,85,65,77},{80,88,90,98},{89,100,78,81},{62,68,69,75},{85,85,77,91}};int&level(intgrade[],intsize,int&tA,int&tB);intmain(){inttypeA=0,typeB=0;intstudent=6;intgradesize=4;for(inti=0;istudent;i++)//处理所有的学生level(array[i],gradesize,typeA,typeB)++;//调用作为左值coutnumberoftypeAisvvtypeAendl;coutnumberoftypeBisvvtypeBendl;〃system(PAUSE);函数资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。return0;}int&level(intgrade[],intsize,int&tA,int&tB){intsum=0;for(inti=0;isize;i++)//成绩总分sum+=grade[i];sum/二size;//平均分if(sum=80)returntA;//typeAstudentelsereturntB;//typeBstudent}运行结果:实验2类和对象1、实验目的:掌握类的定义,根据具体需求设计类;深入理解C++中类的封装性;会根据类创立各种对象;掌握对象的各种成员的使用方法。资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。2、实验内容定义一个满足如下要求的Date类。(1)用下面的格式输出日期:日/月/年;(2)可运行在日前上加一天操作;(3)设置日期。参考代码:#includeiostream.hclassDate{public:voidDisplay();voidAddOneDay();voidSetDay(inty,intm,intd);protected:boolLegal(inty,intm,intd);boolIsLeapYear(inty);intyear;intmonth;intday;};voidDate::Display(){资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。coutday/month/yearendl;}voidDate::AddOneDay(){if(Legal(year,month,day+1))day++;elseif(Legal(year,month+1,1))month++,day=1;elseif(Legal(year+1,1,1))day=1,month=1,year++;资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。}}voidDate::SetDay(inty,intm,intd){if(Legal(y,m,d))day=d,month=m,year=y;}boolDate::Legal(inty,intm,intd){if(y9999||y1||d1||m1||m12)returnfalse;intdayLimit=31;switch(m)case4:case6:case9:case11:dayLimit--;if(m==2)dayLimit=IsLeapYear(y)?29:28;return(ddayLimit)?false:true;}boolDate::IsLeapYear(inty){return!(y%4)&&(y%100)||!(y%400);intmain(){Dated;资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。d.SetDay(,2,28);d.Display();d.AddOneDay();d.Display();system(PAUSE);}运行结果:实验3继承与派生1、实验目的:理解继承的概念,学习如何使用基类成员,了解基类成员在派生类中的访问控制;理解类的派生对代码复用的作用。2、实验内容:设计一个人员类person和一个日期类date,由人员类派生出学生类Student和教师类professor,学生类和教师类的数据成员birthday为日期类。参考代码:#includestring资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。#includeiostreamusingnamespacestd;classdate{public:date(){coutBirthday:;cinyearmonthday;}voiddisplay(){coutyear-month-day;}private:intyear;intmonth;intday;};classperson{protected:资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。char*name;public:person();};person::person(){charnamestr[50];coutName:;cinnamestr;name=newchar[strlen(namestr)+1];strcpy(name,namestr);}classstudent:publicperson{private:intID;intscore;datebirthday;public:student(){coutstudentID:;cinID;coutstudentscore:;cinscore;}资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。voiddisplay(){coutThebasicinformation:endl;coutID\tname\tscore\t;birthday.display();coutendl;}};classprofessor:publicpersonpublic:professor(){coutTeacherID:;cinNo;coutschoolteachingmajor:;cinmajor;}voiddisplay(){coutThebasicinformation:endl;cout\tNo\tname\tmajor\t;birthday.display();资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。coutendl;}private:intNo;charmajor[10];datebirthday;};intmain()资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。{studentstu;stu.display();professorprof;prof.display();system(PAUSE);return0;运行结果:Nkaime-m^angfmlngBirthdays19891221student11):200t09123HS4吕tudcntacor-es9*2Thehas1cInfDrmtIon=Li_K