版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗一類和對象一、 實驗目的:掌握類的設計和對象的創(chuàng)建及相關知識點如對象數組、類聚合、友元函數、靜態(tài)成員。二、 實驗內容:1、 設計圓類,求兩個圓的位置關系;2、 設計圓類和直線類,求直線與圓的位置關系;3、 設計學生類,求某班學生成績的最高分、最低分及平均分;4、 設計部門類和教師類,其中部門類成員為教師類的子對象;5、 設計家庭銀行賬戶類,其中賬戶資金為靜態(tài)數據成員,為家庭成員共享;6、 設計復數類,友元函數實現(xiàn)復數的加減。三、 實驗過程:1、 根據實驗題目確定需要設計哪些類、各類中包含哪些數據成員和函數成員,設計各成員的訪問權限,設計數據成員的數據類型,設計函數成員的函數原型;2、 給出類設計的程序實現(xiàn),特別要注意重載構造函數的實現(xiàn);3、 在主函數中完成題目中的邏輯,一般情況下需要創(chuàng)建相關類的對象,通過對象對成員函數的調用或者通過對象指針對成員函數的調用完成相應的功能。四、 參考程序代碼:1、設計圓類,求兩個圓的位置關系#include<iostream>#include<math.h>usingnamespacestd;classCircle{private:floata,b,r;public:Circle(floatc,floatd,floate){a=c;b=d;r=e;}friendvoidposition(Circle&,Circle&);};voidposition(Circle&c1,Circle&c2){floatn,m,p;p二sqrt((c1.a-c2.a)*(c1.a-c2.a)+(c1.b-c2.b)*(c1.b-c2.b));n二fabs(c1.r-c2.r);m=c1.r+c2.r;if(p>m)cout<<"相離";if(p==m)cout<<"相切";if(p<m)cout<<"相交";}intmain(){floata,b,c,d,e,f;cin>>a>>b>>c>>d>>e>>f;
Circlec1(a,b,c),c2(d,e,f);position(c1,c2);return0;}運行結果:eso交ocespnrreso交ocespnrrI利pp21.988ssreIurned0(0x0)execlitioijtimeanvkevtoconiinue.2、設計圓類和直線類,求直線與圓的位置關系#include<iostream>#include<math.h>usingnamespacestd;classCircle//圓類{private:floatx,y,r;public:Circle(floata,floatb,floatc){x=a;y二b;r=c;}floatgetx(){returnx;}floatgety(){returny;}floatgetr(){returnr;}};classLine//直線類{private:floata,b,c;public:Line(floatx,floaty,floatz){a=x;b二y;c=z;}voidposition(Circlec1){floatd二fabs(a*c1.getx()+b*c1.gety()+c)/sqrt(a*a+b*b);//圓心到直線的距離if(d<c1.getr())cout<<"相交";if((d-c1.getr())<0.000001)cout<<"相切";cout<<"相離";}};intmain(){Linel1(3,3,4);//創(chuàng)建直線對象Circlec1(-23,3,7);//創(chuàng)建圓對象l1.position(c1);return0;}運彳丁結果:相離Processreturned0(0x0)executiontime:0.092sPressanykeytocontinue.3、設計學生類,求某班學生成績的最高分、最低分及平均分#include<iostream>#include<string.h>usingnamespacestd;classStudent{private:charname[20],xuehao[20];floatmath;public:Student(){}Student(char*na,char*xu,floatma):math(ma){strcpy(name,na);strcpy(xuehao,xu);}voidset(char*na,char*xu,floatma){math=ma;strcpy(name,na);strcpy(xuehao,xu);}char*get_name(){returnname;}char*get_xuehao(){returnxuehao;}floatget_math(){returnmath;}};voidmax_min(Studentstu[],intn){Studentmax,min;max二min=stu[0];for(inti;i<n;i++){if(stu[i].get_math()>max.get_math())max=stu[i];if(stu[i].get_math()<min.get_math())min=stu[i];}cout<<"學生成績最高:"<<max.get_name()<<","<<max.get_xuehao()<<","<<max.get_math()<<endl;cout<<"學生成績最低:"<<min.get_name()<<","<<min.get_xuehao()<<","<<min.get_math()<<endl;}voidave(Studentstu[],intn){floatsum=0;for(inti=0;i<n;i++){sum=sum+stu[i].get_math();}cout<<"ave="<<sum/n;}intmain(){charna[20],xu[20];floatma;Studentstu[20];intn;cout<<"請輸入學生總人數";cin>>n;for(inti=0;i<n;i++){cin>>na>>xu>>ma;stu[i].set(na,xu,ma);}max_min(stu,n);ave(stu,n);return0;}運彳丁結果:請輸入學生總人數3小1145小2276小4498學生成績最高:小4,4,98學生成績最低:小1,1,45avc-=73ProcessreT::rned0(.0x0)executiontime:47.674sPressanykeyTacontinue.4、設計部門類和教師類,其中部門類成員為教師類的子對象#include<iostream>#include<string.h>usingnamespacestd;classDepartment{private:intdep_num;chardep_master[20];chardep_name[20];public:Department(){}Department(intnum,char*ma,char*na){dep_num=num;strcpy(dep_master,ma);strcpy(dep_name,na);}voidshow(){cout<<dep_num<<","<<dep_master<<","<<dep_name}};classTeacher{private:charname[20];charhaoma[20];Departmentdep;public:Teacher(char*n,char*nu,intnum,char*ma,char*na):dep(num,ma,na){strcpy(name,n);strcpy(haoma,nu);}voidshow(){dep.show();cout<<","<<name<<","<<haoma<<endl;}};intmain(){Teacherhp("wanghai","12345",6,"kiki","computer");hp.show();return0;}運彳丁結果:u:\gnj\Doug\gnj.exe6,kiki,computer,wanghaL123451Processreturned0(0x0)executiontime:0.216sPressanykeytocontinue.5、設計家庭銀行賬戶類,其中賬戶為靜態(tài)數據成員,為家庭成員共享#include<iostream>#include<string.h>usingnamespacestd;classFamilymember//家庭成員類{private:char membername[10];//成員名public:staticfloataccount;//共享賬戶資金Familymember(char*name);staticvoidsave(floatmoney);//存錢staticvoidpay(floatmoney);//支出staticvoidshow();//顯示賬戶余額};floatFamilymember::account=0;Familymember::Familymember(char*name){strcpy(membername,name);}voidFamilymember::save(floatmoney){account=account+money;}voidFamilymember::pay(floatmoney){account=account-money;}voidFamilymember::show()cout<<account<<endl;}intmain()//主函數{Familymemberhusband("wang"),wife("Li");husband.save(10000);wife.pay(3000);wife.save(5000);wife.show();husband.show();}運行結果:1200012000Processreturned0(0x0)executionrime:0.131sPressanykeytocontinue,6、設計復數類,友元函數實現(xiàn)復數的加減#include<iostream>usingnamespacestd;classFushu{private:floatss,xs;public:Fushu(){}Fushu(floata,floatb){ss=a;xs=b;}friendFushujiafa(Fushu&f1,Fushu&f2){returnFushu((f1.ss+f2.ss),(f1.xs+f2.xs));}friendFushujian(Fushu&f1,Fushu&f2){returnFushu((f1.ss-f2.ss),(f1.xs-f2.xs));}voidshow(){cout<<ss<<"+"<<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一崗雙責談心談話制度
- 2026天津職業(yè)技術師范大學第二批招聘方案(博士或高級專業(yè)技術職務崗位)36人備考題庫附答案詳解
- 裝配式建筑項目施工管理方案
- 銀行貸款審批流程及風險控制方案
- 基層工會活動執(zhí)行方案范例
- 員工手冊編制指南企業(yè)文化與規(guī)章制度覆蓋版
- 小學德育活動方案及實施要點
- 產品設計規(guī)范化工具與方案展示平臺
- 基于PLC智能倉儲系統(tǒng)設計方案
- 幼兒園家長滿意度調查數據報告
- 洗浴員工協(xié)議書
- 園區(qū)托管運營協(xié)議書
- 清欠歷史舊賬協(xié)議書
- 臨床創(chuàng)新驅動下高效型護理查房模式-Rounds護士查房模式及總結展望
- 乙肝疫苗接種培訓
- GB/T 45133-2025氣體分析混合氣體組成的測定基于單點和兩點校準的比較法
- 食品代加工業(yè)務合同樣本(版)
- 北京市行業(yè)用水定額匯編(2024年版)
- 安全生產應急平臺體系及專業(yè)應急救援隊伍建設項目可行性研究報告
- 中國傳統(tǒng)美食餃子歷史起源民俗象征意義介紹課件
- 醫(yī)療器械樣品檢驗管理制度
評論
0/150
提交評論