2023年面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)R實驗指導(dǎo)和實驗報告_第1頁
2023年面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)R實驗指導(dǎo)和實驗報告_第2頁
2023年面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)R實驗指導(dǎo)和實驗報告_第3頁
2023年面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)R實驗指導(dǎo)和實驗報告_第4頁
2023年面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)R實驗指導(dǎo)和實驗報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

實驗報告因?qū)嵺`報告口課程名稱:面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)R實驗、實踐名稱:面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)R實驗、實踐地點:逸夫樓201專業(yè)班級:軟件1601學(xué)號:2023005學(xué)生姓名:指導(dǎo)教師:宋春花2023年4月17碰到的問題和解決方法心得體會實驗名稱實驗二類與對象的特性實驗?zāi)康暮鸵?guī)定(1)掌握類的定義和對象的定義和使用;(2)掌握靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的定義和使用方法;(3)理解類的作用域、對象的作用域及生存周期;(4)掌握函數(shù)調(diào)用中參數(shù)的傳遞;(5)掌握常量類型;(6)掌握友元函數(shù)和友元類的定義及使用。實驗內(nèi)容~編寫一個學(xué)生類。(1)輸出每個學(xué)生的姓名、學(xué)號、成績;(2)記錄并輸出學(xué)生的總?cè)藬?shù)、總成績、平均成績、最高成績、最低成績。重要儀器設(shè)備臺式或筆記本電腦:1臺/人實驗記錄(寫出實驗內(nèi)容中程序代碼和運營結(jié)果)(可分欄或加頁)#includcstdafx.h*#include<iostream>usingnamespacestd;//定義學(xué)生類c1assStudent{。intno:〃學(xué)號?charname[10];//姓名。doublescore;〃成績staticinttotaINumber;〃學(xué)生人數(shù)staticdoub1etotalScore;〃總成績<>staticdoub1e1owestScore;//最低成績staticdoublehighestScore;〃最高成績public:oStudent(intno_,char*name_,doublescore);〃構(gòu)造函數(shù)staticvoidOutpu10;//輸出相關(guān)信息voidStudentinformationO;〃輸出學(xué)生基本信息):intStudent::tota1Number=0;//靜態(tài)數(shù)據(jù)初始化doub1eStudent::highestScore=0.;doubleStudent::lowcstScorc=100.;intmain(){Studentstu1(1001,"張小三"y",97.5);stul.StudentInformation();。Studentstu2(1625,"李老四”,83.);stu2.StudentInformation();。Studentstu3(1628,“王老五”,93.);。stu3,StudenlInformalion();

Studentstu4(1352,“郭小六,62.5):stu4.Studentinformation();Studentstu5(1999,"王小明”,77.);。stu5,Studentlnformation();。Student::Output();。。systcm(°pause");return0;)Student::Student(intno,char*namedoub1escoreno=no_;strepy(name,name_);。score=score_;tola1Number++:。tota1Score+=score;。if(score>highestScore)?highestScore=score;if(score<lowestScore)。。lowestScore=score;voidStudent::StudcntInformation()“<<"“<<"姓名"V〈nameV<”“<<"姓名"V〈nameV<”"成績:"<VscoreV<endl;{coutV<"學(xué)號"<<“<<"姓名"V〈nameV<”"成績:"<VscoreV<endl;{cout<<“學(xué)*?end1;cout?*'平tScore?"總數(shù)z,<<totalNumber<<*"<<"總成均成績“。tota1Score/totalNumber<<M最低成績"<<loweslScorcV<”績"?totalScore?*“<<"最高成績"Ghighes"?end1:■1D:\c++面向供驗2-1\Debug\實驗2-1.exe縝績績績績

成成成成成526績成低最5397三四五六明41唬小老老小?。骸粡埨钔豕蹩兏叱勺?58202250663IX1AIX1A6-2?8??綠19數(shù)績繼

一盤X

錮總成意號號號號號生均如學(xué)學(xué)學(xué)平請碰到的問題和解決方法心得體會實驗名稱實驗三繼承與派生實驗?zāi)康暮鸵?guī)定(1)掌握類的繼承和派生概念;(2)掌握派生類的定義與使用;(3)掌握派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)的應(yīng)用及調(diào)用順序;(4)理解賦值兼容原則的應(yīng)用。實驗內(nèi)容考察一個點、圓、圓柱體的層次結(jié)構(gòu),計算圓和圓柱體的面積,閱讀程序并運營。建立3個類,分別為點類、圓類、圓柱類,點類派生得到圓類,圓類派生得到圓柱類。重要儀器設(shè)備臺式或筆記本電腦:1臺/人實驗記錄(寫出實臉內(nèi)容中的程序代碼和運營結(jié)果)(可分欄或加頁)^include*stdafx.h*#include<iostream>#include<iomanip>usingnamespacestd;classPoint{friendostrcam&operator<<(ostream&,constPoint&);public:。Point(int=0,int=0)”//帶默認(rèn)參數(shù)的構(gòu)造函數(shù)。voidsetPoint(int,int);//對點坐標(biāo)數(shù)據(jù)賦值intgetX()const{returnx;}intgetY()const{returny;}protected:?intx?y;。//Point類的數(shù)據(jù)成員);classCircle:publicPoint{friendostrearn&operator?(ostream&,constCircle&);//友元函數(shù)public:Circle(doubler=0.0,intx=0,inty=0):<>//構(gòu)造函數(shù)voidsetRadius(doub1e);//置半徑。doubIegetRadius()const;〃返回半徑doublearea()const;。//返回面積protected:doubleradius;。//數(shù)據(jù)成員,半徑);classCy1indcr:publicCircle{friendostream&operator<<(ostream&,constCylinder&);//友元函數(shù)publie:Cy1indcr(doub1ch=0.0,doub1cr=0.0,intx=0,inty=0);

//構(gòu)造函數(shù)。voidsetIIeight(doubIe);//置高度值doublegetHeight()const;〃返I可高度值doubleareaOconst;?〃返回面枳?doublevo1ume()const;〃返回體積protectcd:8doubleheight://數(shù)據(jù)成員,高度};Point::Point(inta(intb)//構(gòu)造函數(shù),調(diào)用成員函數(shù)對x,y作初始化(。setPoint(a,b);)voidPoint::setPoint(inta,intb){x=a;y=b:}//對數(shù)據(jù)成員置值ostream&operator?(ostream&output,constPoint&p)//重我插入運算符,輸出對象數(shù)據(jù){output?'['?p.x<<"?p.y<<"]";returnoutput;//帶初始化式構(gòu)造函數(shù),一方面調(diào)用基類構(gòu)造函數(shù)Circle::Circle(doub1er,inta,intb):Point(a,b){setRadius(r):}voidCircle::setRadius(doubler){radius=(r>=0?r:0);}//對半徑置值doub1eCirc1e::getRadius()const{returnradius;}//返回半徑值doub1eCircle::area()const{return3.14159*radius*radius;}//計算并返回面枳值constCircle&c)//輸出圓心坐標(biāo)和半徑.X<<?c.y?<<Radiusostrearn&constCircle&c)//輸出圓心坐標(biāo)和半徑.X<<?c.y?<<Radiusoutput?”Center=*<<*['?(。,<<setiosf1ags(ios::fixed|ios::showpoint)<<setprecision(2)?c.radius;returnoutput;)//帶初始化式構(gòu)造函數(shù),一方面調(diào)用基類構(gòu)造函數(shù)Cy1inder::Cy1inder(doubleh,doubler,intx,inty):Circ1e(r,x,y){setHeight(h);}voidCy1inder::setHeight(doub1eh){height=(h>=0?h:0);}//對高度置值doubleCy1inder::getHeight()const{returnheight;}//返回高度值doub1cCy1indor::area0const{return2*Circle::arca()+2*3.14159*radius*height;}//計算并返,1圓柱體的表面積doubleCy1inder::volumc0const{returnCirc1e::area()*height;}//計算并返回圓柱體的體積。。。//輸出數(shù)據(jù)成員圓心坐標(biāo)、半徑和高度值ostream&operator<<(ostream&output,constCy1inder&cy)output?”Center="<<<<cy.x<<?cy.y<<*]"<<*;Radius="setiosflags(ios::fixed|ios::showpoint)?setprecision(2)?cy.radiusHeight="?cy.hcight?cndl;*returnoutput;}itinclude<iostream>#include<iomanip>usingnamespacestd;intmain()(Pointp(72,115);?!ǘx點對象并初始化。cout?”Theinitial1ocationofpis*<<p?endl;op.setPoint(10,10);〃置點的新數(shù)據(jù)值?cout<<"\nThenew1ocationofpis?p<<end1;〃輸出數(shù)據(jù)Circlec(2.5,37,43)〃定義圓對象并初始化ocout?"\nTheinitial1ocationandradiusofcare\n"V<c?"\nArea="<<c.arca()<<"\n*:c.setRadius(4.25);c.setPoint(2,2);//置圓的新數(shù)據(jù)值。。3。。。//輸出圓心坐標(biāo)和圓面積。cout?*\nThenew1ocationandradiusofcare\n"<<c<<"\nArea=c.area()?"\n”;oCyIindercyl(5.7,2.5,12,23);〃定義圓柱體對象并初始化6°80//輸出圓柱體各數(shù)據(jù)和表面積,體積cout<<"\nTheinitial1ocation,radiusandheightofcylare\n"<<cyl。。<<"Area="?cyl.area()?*\nVolume=*?cyl.volume()?'\n';。//置圓柱體的新數(shù)據(jù)值cy1.setHeight(10);cyi.setRadius(4.25);cy1.setPoint(2,2);cout<<"\nThencw1ocation,radiusandheightofcylare\n*?cy1?*Area="<<cy1.area()<<"\nVolume="<<cyl.vo1ume()<<"\n";system("pause*)?E3D:\c++面向出削供驗3-1\Debug供驗3-1.exe.Theinitiallocationofpis[72,115JThenewlocationofpis[10,10]TheinitiallocationandradiusofcareCenter=[37,43];Radius=2.50Area=19.63ThenewlocationandradiusofcareCenter=[2,2];Radius=4.25Area=56.74Theinitiallocation,radiusandheightofcylareCenter=[12,23];Radius=2.50;Height=5.70Area=128.81Volume=111.92Thenewlocation,radiusandheightofcylareCenter=[2,2];Radius=4.25;Height=10.00Area=380.53Volume=567.45請按任意鍵繼續(xù)...碰到的問題和解決方法心得體會實驗名稱實驗四多態(tài)性實驗?zāi)康暮鸵?guī)定(1)掌握C++中運算符重載的機制和運算符重載的方式;(2)理解類型轉(zhuǎn)換的必要性,掌握類型轉(zhuǎn)換的使用方法;(3)理解多態(tài)性,掌握虛函數(shù)的設(shè)計方法;(4)掌握純虛函數(shù)和抽象類的使用方法。實驗內(nèi)容某小型公司,重要有三類人員:管理人員、計時人員和計件人員?,F(xiàn)在,需要存儲這些人的姓名、編號、時薪、工時、每件工件薪金、工件數(shù),計算月薪并顯示所有信息。設(shè)計4個類,分別為雇員類(為抽象類)、管理人員類、計時人員類和計件人員類,其中管理人員類、計時人員類和計件人員類由雇員類派生得到。重要儀器設(shè)備臺式或筆記本計算機:1臺/人實驗記錄(寫出實驗內(nèi)容中的程序代碼和運營結(jié)果)(可分欄或加頁)#include"stdafx.h"#include"iostream”Uinclude"iomanip”tfinclude"siring,h”usingnamespacestd;//Emp1oyee.hclassEmployee{//雇員類--抽象類public:?Emp1oyee(int,constchar*name);virtua1?Employee。;,。//虛析構(gòu)函數(shù)ostringgetName();onggetNumber();virtualdoubleearnings(double)://純虛函數(shù),計算月薪virtualvoidprint();〃虛函數(shù),輸出編號、姓名protected:longnumber;。//編號stringname;*。//姓名)://Manager.hclassManager:pub1icEmp1oyee{〃管理人員類public:?constManager(int,constchar*name,double);。'Manager。{}。voidselMonthlySalary(doub1e);//置月薪

virtua1doubleearnings()://計算管理人員月薪////輸出管理人員信息//輸出管理人員信息?virtualvoidprint();priv//輸出管理人員信息。doub1emonthlySalary;O〃私有數(shù)據(jù),月薪)://IIour1yWorker.h〃計時人員類〃計時人員類〃計時人員類classHour1yWorker:pub1icEmployee{p〃計時人員類public:HouriyWorker(int,const*"HourlyWorker(){}。voidselWage(double);?。voidsetHours(int);&。virtua1doubleearnings()virtualvoidprint();。privatc:doublewage://時薪doublehours;〃工時};//PieceWorker.hclassPieceWorker:publicpublicpublic:HouriyWorker(int,const*"HourlyWorker(){}。voidselWage(double);?。voidsetHours(int);&。virtua1doubleearnings()virtualvoidprint();。privatc:doublewage://時薪doublehours;〃工時};//PieceWorker.hclassPieceWorker:publicchar*name,doubie,int);//置時薪//置工時//計算計時工月薪//輸出計時工月薪Employee{〃計件人員類public:。PieceWorker(int,constchar*name.,double,int);?^PieceWorker(){}voidsetWage(double)。了置每件工件薪金。voidsctQuantity(int);//置工件數(shù)。virtua1doub1eearnings();//計算計件薪金。virtualvoidPrint()://輸出計件薪金private:cloublewagePerPiece;//年件工件薪金。intquantity?!üぜ?shù));intmainO(cout?setiosflags(ios::fixed|ios::showpoint)?setprecision(2);?Managerml(10135,“ChengShaoHua”,1200):HouriyWorkcrhw1(30712,"ZhaoXiaoMing*,5,8*20);Pieceworkerpwl(20382,"XiuLiWci”,0.5,2850);//使用抽象類指針,調(diào)用派生類版本的函數(shù)。Emp1oyee*basePtr;basePtrbasePtrbasePtrbasePtr->print();basePtrbasePtr=&hw1;basePtr->printO;?basePtr=&pw1;basePtr->print();。systcm("pause");)Employce::Employce(intnu_,constchar*namc_){*number=nu:namc=namc_;)Employee::"Employee0()stringEmployee::getName()(returnname;)longEmployee::getNumbcr()(。returnnumber;}doubleI-mploycc::carnings(doublepay){returnpay;)voidEmp1oyee::print(){}Manager::Manager(intnu,constchar*name_,doublepay):Employee(nu,name),monthIySa1ary(pay)()voidManager::setMonth1ySa1ary(doublepay){monthlySalary=pay:)doublcManager::earnings(){returnmonthlySalary:)voidManager::print(){cout<<"管理者編號:"<<number<<"\n管理者月薪“?month1ySa1ary<<"\n)HourlyWorker::HouriyWorker(intnu_,constchar*name,doub1epay,inthour):Employce(nu.,name_),wage(pay),hours(hour)

voidHour1yWorker::setWage(doublepay){wage=pay;)voidHour1yWorker::setHours(inthour){hours=hour:)doubleHour1yWorkcr::earnings(){returnwage*hours;)voidHourlyWorker::print()(。cout<<“計時員編號:"<<number<<"計時員月薪”?wage*hours<<endl;)PieceWorker::PieceWorker(intnu.,constchar*name,,doub1epay,intpicce):Employee(nu,name),wagePerPiece(pay),quantity(piece)(}voidPieceWorker::setWage(doublepay){wagePerPiece=pay;)voidPieceWorker::setQuantity(intpiece){quantity=piece;)doub1ePieceWorker::earnings(){returnwagoPerPiccc*quantity;)voidPieceWorker::print(){cout<<”計件員編號"<<number<<”計件員計件薪”<<wagePerPiece*quantity<<endl;}■1D:\c++面向供驗4-1\Debug供驗4-1.exe號薪號號像編月編編螂者者員員意d:J;L理理由?安:101351200.00:307121-20382it件員月薪800.00計件薪1425.00碰到的問題和解決方法心得體會實驗名稱實驗一熟悉VisualStudio開發(fā)環(huán)境實驗名稱實驗?zāi)康暮鸵?guī)定(1)熟悉基本的輸入輸出方法;(2)掌握函數(shù)的定義,調(diào)用和聲明方法,函數(shù)的參數(shù)傳遞機制,函數(shù)嵌套調(diào)用和遞歸調(diào)用,內(nèi)聯(lián)函數(shù),帶默認(rèn)形參的函數(shù),重載函數(shù);(3)理解命名空間的概念,掌握命名空間的使用:(4)熟悉const關(guān)鍵字的使用;(5)掌握內(nèi)存的動態(tài)分派的概念和使用;(5)掌握類的定義和對象的定義和使用;實驗內(nèi)容.編寫重載函數(shù)area。和perimeter(),分別計算圓、長方形、正方形的面枳和周長,并在主函數(shù)中測試之。.完善程序,并上機運營:(此程序見原模板).定義一個復(fù)數(shù)類Comp1ex,復(fù)數(shù)的實部Rea1與虛部Image定義為私有數(shù)據(jù)成員。用復(fù)數(shù)類定義復(fù)數(shù)對象c1、c2、c3,用默認(rèn)構(gòu)造函數(shù)將c1初始化為cl=20+40i,將c2初始化為c2=0+0i,用拷貝構(gòu)造函數(shù)將c3初始化為c3=20+40i。用公有成員函數(shù)Display()顯示復(fù)數(shù)cl、c2與c3的內(nèi)容。.定義一個矩形類Rectangle,矩形的左上角(Left,Top)與右下角坐標(biāo)(Right,Bottom)定義為保護(hù)數(shù)據(jù)成員。用公有成員函數(shù)Diagona1()計算出矩形對角線的長度,公有成員函數(shù)Show。品示矩形左上角與右下角坐標(biāo)及對角線長度。在主函數(shù)中用new運算符動態(tài)建立矩形對象rl,初值為(10,10,20,20)。然后調(diào)用Show()顯示矩形左上角與右下角坐標(biāo)及對角線長度。最后用de1ete運算符回收為矩形動態(tài)分派的存儲空間。重要儀器設(shè)備臺式或筆記本電腦:1臺/人實驗記錄(寫出實驗內(nèi)容中1、2、3、4的程序代碼和運營結(jié)果)(可分欄或加頁)1.#include"stdafx.h"#incIude"iostream"usingnamespacestd;constdoubIepi=3.141592;doublearea(doubIer);doublearea(doubIea,doubIeb);doubIeperimer(doubIer);doubleperimer(doublea,doubleb);doublearea(doubIer)(doubIes;§s=pi*r*r;returns;)doubIearea(doublea,doubleb)(doubles;s=a*b;returns;)doubIeperimer(doubIer)(adoubIep;dp=2*pi*r;?returnp;}doubIeperimer(doublea,doubIeb)(ddoubIep;ap=2*(a=b);,returnp;)int_tmain(intargc,_TCHAR*argv[])(doubler;doubIem;?doubIen;cout<<”請輸入圓的半徑:"v<endI;?cin?r;cout<<”圓的面積為:"v<area(r)?n"<<"圓的周長為:"?perimer(r)?endI;,cout<<”請輸入長方形的長和寬:"?endl;cin>>m?n;,cout<<"長方形面積為:"<<area(叫n)<<""<<"長方形的周長為:n?perimer(m,n)?endI;,811七〈<"請輸入正方形的邊長:”<《m1;cin?m;,cout<<”正方形的面積為:"<<area(m,m)<<"”<<“正方形的周長為:"V<perimer(m,m)?endI;getchar0;getchar();areturn0;)■1D:\c++?[pJ^JriSvf\1-1供驗1-1\Debug供驗1-1.exe請輸入圓的半徑:Q國的面積為:28.2743網(wǎng)的周長為:18.8496I請輸入長方形的長和寬:O長方形面積為:10長方形的周長為:10I請輸入正方形的邊長:正方形的面積為:16正方形的周長為:8//實驗l-2.cpp:定義控制臺應(yīng)用程序的入口點。//#include*stdafx.hM#include"iostream”usingnamespacestd;constdoublepi=3.14;classCircle{public:。doublearea(){returnx*x*pi;}Circ1e(doub1ea):x(a){}private:doub1ex;);classRectangle{public:Rectangle(doublex,doubley):1en(x),wid(y){)〃寫出矩形類的構(gòu)造函數(shù)doublearea(){returnlen*wid;}//寫出計算矩形面積函數(shù)private:adoub1e1en,wid;);c1assSquare{public:aSquare(doublex):len(x){"/寫出正方形類的構(gòu)造函數(shù)adoub1earea(){return1en*1en;}//寫出計算正方形面積函數(shù)private:double1en;);intmain()(cout<<"Inputshape"?endl;pout?*ifcire1e,inputc,ifrectangleinputr;ifsquareinputs"?endl;pharshape;cin>>shape;?switch(shape)(?case'c':{doubler;cout?"inputradius"<<endl;acin>>r;?Circler1(r);ocout?circlearea=M?rl.area()?end1;8system("pausereak;0acase'r':{doub1elen,wid;<cout<<"input1engthandwidth"?endl;cin?len>>wid;ectanglejx(len,wid);//構(gòu)造矩形對象,寬為wid,高為lenocout<<"rectanglearea=*<<jx.area()?end1;〃輸出矩形面積彩ystem("pause");reak;)?case's':{doublelen;?cout<<"input1ength'*?endl;?cin?len;?Squarefx(len);//構(gòu)造正方形對象,邊長為1enacout<<*squarearea=*?fx.area()?endl;〃輸出正方形面積?system("pause*);break;qdefault:cout?*inputerror!"?endl;?break;0return0;)BD:\c++面向程序設(shè)計'實驗1-2\Debug供驗1-2.exeInputshapeifcircle,inputc,ifrectangleinputr;ifsquareinputsinputlengthandwidthQjrectanglearea=72IBlD:\c++面向■供驗1-2\Debug

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論