c++西安交大類二_第1頁
c++西安交大類二_第2頁
c++西安交大類二_第3頁
c++西安交大類二_第4頁
c++西安交大類二_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

西安交通大學(xué)實(shí)驗(yàn)報告課程C++1序設(shè)計實(shí)驗(yàn)名稱類和對象(二)第頁共頁系別實(shí)驗(yàn)日期2013年11月28日專業(yè)班級組別實(shí)驗(yàn)報告日期2013年11月28日姓名_學(xué)號_報告退發(fā)(訂正、重做)同組人教師審批簽字對比分析:一.實(shí)驗(yàn)?zāi)康?復(fù)習(xí)類的定義和使用。2,學(xué)習(xí)定義和使用構(gòu)造函數(shù),并能使用不同形參的構(gòu)造函數(shù)的重載。3,學(xué)習(xí)定義和使用構(gòu)析函數(shù)。4.掌握指向?qū)ο蟮闹羔樀氖褂?。?實(shí)驗(yàn)內(nèi)容(-)實(shí)驗(yàn)題目一:第7章第5題.程序源代碼#include<iostream>#include<cmath>usingnamespacestd;classPoint_3D(private:double*point;public:Point_3D(inti=1,intj=1,intk=1)(point=newdouble[3];point[0]=i;point[1]=j;point[2]=k;};Point_3D(Point_3D&m)(point=newdouble[3];point[0]=m.point[0];point[1]=m.point[1];point[2]=m.point[2];};voidSet(inti,intj,intk);doubleDistance(Point_3D&y);voidShow();~Point_3D()(cout<<"Thisisthedestructorfunction\n";cout<<"Point";Show();delete[]point;};};voidPoint_3D::Set(inti,intj,intk)(point=newdouble[3];point[0]=i;point[1]=j;point[2]=k;)voidPoint_3D::Show()(cout<<"("<<point[0]<<","<<point[1]<<","<<point[2]<<")"<<endl;)doublePoint_3D::Distance(Point_3D&y)(returnsqrt((point[0]-y.point[0])*(point[0]-y.point[0])+(point[1]-y.point[1])*(point[1]-y.point[1])+(point[2]-y.point[2])*(point[2]-y.point[2]));)voidmain()(Point_3Dp1(1,2,3);Point_3Dp2;p2.Set(2,2,2);cout<<"Point1";p1.Show();cout<<"Point2";p2.Show();Point_3Dp3(p2);cout<<"Point3";p3.Show();cout<<"Distancebetweenpoint1andpoint2is"<<p1.Distance(p2)<<endl;

).實(shí)驗(yàn)結(jié)果rE—C:\WindoW5\system32\cmd.exePointl(1,2,3)Point2(2,2,2)Point3(2,2,2)Distancebetweenpointlandpoint2is1,41421ThisisthedestructorPoint⑵2,2)ThisisthedestructorPoint⑵2,2)ThisisthedestructorPoint(2,2,2)ThisisthedestructorPoint(1,2,3)請按任意鍵繼續(xù)....*I2itffunctionfunctionfunction(二)實(shí)驗(yàn)題目二:第7章第6題.程序源代碼#include<iostream>#include<ctime>#include<Windows.h>usingnamespacestd;classE_Clock{private:intHour,Minute,Second;public:E_Clock(){Hour=0;Minute=0;Second=0;};E_Clock(inth,intm,ints){Hour=h;Minute=m;Second=s;};voidSet(inth,intm,ints){Hour=h;Minute=m;Second=s;};voidShowTime(){cout<<Hour<<":"<<Minute<<":"<<Second<<"";};voidRun30s();voidCount_up(int);voidCount_down(int););voidE_Clock::Run30s()(for(inti=0;i<30;i++)(Second++;if(Second==60)(Second=0;Minute++;if(Minute==60)(Minute=0;Hour++;if(Hour==24)Hour=0;))cout<<"\r";Sleep(1000);ShowTime();))voidE_Clock::Count_up(intk)(Set(0,0,0);ShowTime();for(inti=0;i<k;i++)Second++;if(Second==60)(Second=0;Minute++;if(Minute==60)(Minute=0;Hour++;if(Hour==24)Hour=0;))cout<<"\r";Sleep(1000);ShowTime();));voidE_Clock::Count_down(intk)(Set(k/3600,(k%3600)/60,k%60);ShowTime();for(inti=0;i<k;i++)(Second--;if(Second<0)(Second+=60;Minute--;if(Minute<0)(Minute+=60;Hour--;))cout<<"\r";Sleep(1000);ShowTime();if(Hour==0&&Minute==0&&Second==0)break;))voidmain()(E_Clockc1;c1.ShowTime();cout<<endl;time_tt;time(&t);inth=(t/3600+8)%24;intm=(t%3600)/60;ints=t%60;E_Clockc2(h,m,s);cout<<"Nowthecurrenttimeis";c2.ShowTime();cout<<endl;c1.Set(9,2,23);c1.ShowTime();cout<<endl;cout<<"Nexttheclockwillrunfor30s\n";c1.Run30s();cout<<endl;cout<<"Nexttheclockwillcountupfor23s\n";c1.Count_up(23);cout<<endl;cout<<"Nexttheclockwillcountdownfor30s\n";c1.Count_down(30);cout<<endl;}.實(shí)驗(yàn)結(jié)果(三)實(shí)驗(yàn)題目三:第7章第7題.程序源代碼#include<iostream>#include<cmath>usingnamespacestd;classRational{private:intnu,de;public:

Rational(intn=1,intd=1){if(d!=0)Rational(intn=1,intd=1){if(d!=0){nu=n;de=d;if(de<0){de=-de;nu=-nu;}}elsecout<<"Thedenominatorcan'tbezero!!";};voidSet(intn,intd){if(d!=0){nu=n;de=d;if(de<0){de=-de;nu=-nu;}}elsecout<<"Thedenominatorcan'tbezero!!";};voidAdd(Rational&k);voidSub(Rational&k);voidMul(Rational&k);voidDiv(Rational&k);voidPrint(){cout<<nu<<"/"<<de;};doubleGcd();voidFsd();};doubleRational::Gcd(){intk=1;for(inti=2;i<=abs(nu)||i<=abs(de);i++){if(nu%i==0&&de%i==0)k=i;}returnk;}voidRational::Fsd(){de/=Gcd();nu/=Gcd();}voidRational::Add(Rational&k){nu=nu*k.de+k.nu*de;de=de*k.de;Fsd();)voidRational::Sub(Rational&k)(nu=nu*k.de-k.nu*de;de=de*k.de;Fsd();)voidRational::Div(Rational&k)(if(k.nu==0)cout<<"Thedenominatorcan'tbezero!!";else(nu=nu*k.de;de=de*k.nu;Fsd();if(de<0)(de=-de;nu=-nu;)))voidRational::Mul(Rational&k)(nu=nu*k.nu;de=de*k.de;Fsd();)voidmain()(Rationalr1(6,8);r1.Print();cout<<endl;cout<<"Thegreatestcommondivisoris"<<r1.Gcd()<<endl;r1.Fsd();r1.Print();cout<<endl;Rationalr2;r2.Set(5,7);cout<<"(5/7)/(3/4)=";r2.Div(r1);r2.Print();cout<<endl;Rationalr3(5,7);r3.Add(r1);cout<<"5/7+3/4=”;r3.Print();cout<<endl;Rationalr4(5,7);r4.Sub(r1);cout<<"5/7-3/4=”;r4.Print();cout<<endl;Rationalr5(5,7);r5.Mul(r1);

cout<<"(5/7)*(3/4)=";r5.Print();cout<<endl;|aII.實(shí)驗(yàn)結(jié)果|aIIGBCr\Windo^vs\sy5.tem32\cmdl.exe6/8Thegreatestcommondivisoris23/4(5/7)/(3/4)=20/215/7+3/4^41/285/7-3/4=-l/28(5/7)*(3/4)=15/28請按任意鍵逑續(xù)....(四)實(shí)驗(yàn)題目四:第7章第8題.程序源代碼#include<iostream>#include<cstring>usingnamespacestd;classCitizenprivate:charid[19],name[9],gender,*bp,*fa;intage;public:Citizen(){strcpy(name,“xxxxxxxx");age=0;gender='x';strcpy(id,"xxxxxxxxxxxxxxxxxx");bp=NULL;fa=NULL;)Citizen(char*n,chars,inta,char*ID,char*BP,char*FA)(strcpy(name,n);age=a;gender=s;strcpy(id,ID);intL=strlen(BP);bp=newchar[L+1];strcpy(bp,BP);L=strlen(FA);fa=newchar[L+1];strcpy(fa,FA);)~Citizen(){cout<<"NowdestroyingCitizen"<<name<<endl;delete[]bp;delete[]fa;)voidInput(char*n,chars,inta,char*ID,char*BP,char*FA);voidOutput(););voidCitizen::Input(char*n,chars,inta,char*ID,char*BP,char*FA){strcpy(name,n);age=a;gender=s;strcpy(id,ID);

if(bp!=NULL)delete[]bp;intL=strlen(BP);bp=newchar[L+1];strcpy(bp,BP);if(fa!=NULL)delete[]fa;L=strlen(FA);fa=newchar[L+1];strcpy(fa,FA);}voidCitizen::Output(){cout<<"姓名:"<<name<<endl;cout<<"性另U:"<<gender<<endl;cout<<"年齡:"<<age<<endl;cout<<"身份證號:"<<id<<endl;if(bp!=NULL)cout<<"籍貫:"<<bp<<endl;if(fa!=NULL)cout<<"家庭住址:"<<fa<<endl;}voidmain(){Citizenperson1,person2;cout<<"person1:\n";person1.Output();中國上海市華山西安市咸寧西路person2.Input("張三",'m',19,;中國上海市華山西安市咸寧西路北路35號”,”西安市咸寧西路24號)cout<<"person2:\n";person2.Output();Citizenperson3("李四”開,29,,24號","中國上海市華山北路35號)

cout<<"person3:\n";person3.Output();).實(shí)驗(yàn)結(jié)果r函C:\Windows\sy^tem32\cmdnexepersonl:姓名:xxxxxxxx性別:x年齡:0身份證號:xxxxxxxxxxxxxxxxxxperson2:姓名:張三性別:m年齡:19身份證號貫:中國上海市華山北路35號家庭住址:西安市咸寧西路24號person3:李f29號西址李f29號西址證:住告別心分要庭姓性年身籍家中國上海市華山北路35號NowdestroyingCitizenNowdestroyingCitizenNowdestroyingCitizen請按任意鍵繼續(xù)一..NowdestroyingCitizenNowdestroyingCitizenNowdestroyingCitizen請按任意鍵繼續(xù)一..(五)實(shí)驗(yàn)題目五:設(shè)計定義圓管類,成員函數(shù)至少應(yīng)有構(gòu)造函數(shù)、計算容積函數(shù)、計算總體積函數(shù)、計算重量函數(shù)、計算表面積函數(shù)、輸出函數(shù)和析構(gòu)函數(shù),并編寫主函數(shù)加以測試。1.程序源代碼李四張三xxxxxxxx#include<iostream>usingnamespacestd;classCirculartubeprivate:doubled1,d2,h,p;public:Circular_tube(doubleD1=2,doubleD2=1,doubleH=1,doubleP=1)(d1=D1;d2=D2;h=H;P=P;}~Circular_tube(){cout<<"NowdestroyingthisCircular_tube"<<endl;}voidInput(doubleD1,doubleD2,doubleH,doubleP);doubleV();doubleC();doubleS();doubleW();voidPrint(););voidCircular_tube::Input(doubleD1,doubleD2,doubleH,doubleP)(d1=D1;d2=D2;h=H;p=P;)doubleCircular_tube::C()(return3.14159*d2*d2*h/4;)doubleCircular_tube::V()(return3.14159*h*(d1*d1-d2*d2)/4;)doubleCircular_tube::S()return3.14159*d1*h+3.14159*d2*h+2*3.14159*(d1*d1-d2*d2)/4;doubleCircular_tube::W()(returnV()*p;)voidCircular_tube::Print()(cout<<"圓管外徑D="<<d1<<endl;cout<<"圓管內(nèi)徑d="<<d2<<endl;cout<<"圓管長度l="<<h<<endl;cout<<"圓管密度p="<<p<<endl;)voidmain()(Circular_tubec1;cout<<"Circular_tube1\n";c1.Print();Circular_tubec2(3,1.5,2,3);cout<<"Circular_tube2\n";c2.Print();Circular_tube;Circular_tubec3;c3.lnput(3,1.5,2,3);cout?"Circular_tube3\n";c3.Print();cout?"具體積為"?c3.V()?endl;cout?"其容積為"?c3.C()?endl;cout?"其表面積為"?c3.S()?endl;cout?"其重量為"?c3.W()?endl;)2.實(shí)驗(yàn)結(jié)果

(六)實(shí)驗(yàn)題目六:在上周實(shí)驗(yàn)定義二元一次方程組類中,增加構(gòu)造函數(shù)、相加函數(shù)、相減函數(shù),仍然保持原來求根函數(shù)、輸出該二元一次方程組函數(shù),并編寫主函數(shù)測試各成員函數(shù)。提示:兩個二元一次方程組對應(yīng)相加和對應(yīng)相減仍然是一個二元一次方程組,相加函數(shù)原型如下:funadd(funF1)fun是你定義的二元一次方程組類,F(xiàn)1是方程組類的對象,函數(shù)體中將本類中的6個系數(shù)與F1中6個系數(shù)相加,再賦值給本類中6個系數(shù),形成新的二元一次方程組。.程序源代碼#include<iostream>usingnamespacestd;classfunprivate:doublea,b,c,d,e,f;public:fun(intA=1,intB=1,intC=1,intD=1,intE=1,intF=1)(a=A;b=B;c=C;d=D;e=E;f=F;}voidAdd(fun&F1);voidSub(fun&F1);voidRegister(double,double,double,double,double,double);voidSolve();voidPrint();};voidfun::Register(doubleA,doubleB,doubleC,doubleD,doubleE,doubleF)(a=A,b=B,c=C,d=D,e=E,f=F;voidfun::Solve()(a*e-b*d!=0?cout<<"X="<<(c*e-b*f)/(a*e-b*d)<<","<<"Y="<<(a*f-c*d)/(a*e-b*d)<<endl:(a*f-c*d==0?cout<<"X,Y有無數(shù)解"<<endl:cout<<"X,Y無解"<<endl);}voidfun::Add(fun&F1)(a+=F1.a;b+=F1.b;c+=F1.c;d+=F1.d;e+=F1.e;f+=F1.f;}voidfun::Sub(fun&F1)(a-=F1.a;b-=F1.b;c-=F1.c;d-=F1.d;e-=F1.e;f-=F1.f;}voidfun::Print()(a==0?cout<<"":(a==1||a==-1)?cout<<a<<"\bX+":cout<<a<<"X+";b==0?cout<<"\b":(b<0?(b==-1?cout<<"\b-Y":cout<<"\b"<<b<<"Y"):(b==1?cout<<"Y":cout<<b<<"Y"));cout<<"="<<c<<endl;d==0?cout?"":(d==1||d==-1)?cout?d?"\bX+":cout?d?"X+";e==0?cout?"\b":(e<0?(e==-1?cout?"\b-Y":cout?"\b"?e?"Y"):(e==1?cout?"Y":cout?e<<"Y"));cout?"="?f?endl;)voidmain()(funf1;cout?"f1\n";f1.Print();f1.Solve();funf2(1,2,2,1,2,3);cout?"f2\n";f2.Print();f2.Solve();funf3;f3.Register(-1,1,2,2,3,4);cout?"f3\n";f3.Print();f3.Solve();f1.Add(f2);cout<<"f1+f2\n";f1.Print();f1.Solve();f2.Sub(f3);cout<<"f2-f3\n";f2.Print();f2.Solve();}.實(shí)驗(yàn)結(jié)果SBC:\Windows\system32\cmdrexeflX+Y=lX+Y=lX,f有無數(shù)解f2X+2丫二?i.Ilk■—X+2Y=3X,Y無解f3-X+Y=22X+3Y=4X=-0.4,Y=L6fl-f22X-3Y=32X-3YE£丫無解f2-f32X+Y=0-X-Y=-lXfY=2請按任意鍵繼續(xù)..rir(七)實(shí)驗(yàn)題目七:設(shè)計定義100位的十進(jìn)制正整數(shù)類,成員函數(shù)至少應(yīng)有構(gòu)造函數(shù)、加法函數(shù)、輸出函數(shù)和析構(gòu)函數(shù),并編寫主函數(shù)加以測試。提示:(1)在類中定義數(shù)據(jù)成員intnum[100];(2)在構(gòu)造函數(shù)中,先將整個數(shù)組中100個元素賦00然后通過大正整數(shù)的字符串給數(shù)組num[100]中每個數(shù)組元素賦值,即要轉(zhuǎn)換賦值。例如大正整數(shù)字符串為"45588877111222398765",num[99]='5'-'0'+0,num[98]='6'-'0'+0,…….。.程序源代碼#include<iostream>usingnamespacestd;classBig_int{private:intnum[100];public:Big_int(){for(inti=0;i<100;i++)num[i]=0;}Big_int(char*Num){for(inti=0;i<100;i++)num[i]=0;inti=0;while(*(Num+i)!=0)i++;for(intj=i-1;j>=0;j--)num[i-1-j]=Num[j]-'0';}~Big_int(){}voidset(char*);voidplus(Big_int);voidprint();};voidBig_int::set(char*Num){inti=0;while(*(Num+i)!=0)i++;for(intj=i-1;j>=0;j--)num[i-1-

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。