版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 . . 37/37理工大學(xué)城市學(xué)院面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)訓(xùn)報(bào)告?zhèn)}庫(kù)商品檢查登記管理系統(tǒng)專(zhuān)業(yè):班級(jí):學(xué)號(hào):指導(dǎo)老師:2012年1月6日目錄目錄1實(shí)訓(xùn)的目的和任務(wù)3實(shí)訓(xùn)容指導(dǎo)3倉(cāng)庫(kù)商品檢查登記管理系統(tǒng)類(lèi)設(shè)計(jì)流程圖源代碼程序運(yùn)行結(jié)果總結(jié)一、實(shí)訓(xùn)的目的和任務(wù)C+語(yǔ)言程序設(shè)計(jì)的實(shí)訓(xùn),是教學(xué)計(jì)劃中的一個(gè)有機(jī)組成部分,是培養(yǎng)學(xué)生綜合應(yīng)用所學(xué)的基礎(chǔ)的理論,基本知識(shí)和技能,分析解決實(shí)際問(wèn)題能力的重要一環(huán),與其它教學(xué)環(huán)節(jié)緊密配合,相輔相成,是前面教學(xué)環(huán)節(jié)的繼續(xù),深入和發(fā)展。通過(guò)實(shí)訓(xùn)過(guò)程可在不同程度上提高調(diào)查研究,查問(wèn)文獻(xiàn),實(shí)際應(yīng)用的能力。二、實(shí)訓(xùn)容指導(dǎo)(一)數(shù)據(jù)類(lèi)型和表達(dá)式基礎(chǔ)實(shí)訓(xùn)1、定義一個(gè)描述學(xué)生的結(jié)構(gòu)體類(lèi)型s
2、tudent,含有學(xué)號(hào)num、name、性別sex、成績(jī)score幾個(gè)分量,再定義屬于這個(gè)結(jié)構(gòu)體類(lèi)型的兩個(gè)變量stu1、stu2。struct studentintnum; /* 學(xué)號(hào) */char name20;/* */char sex; /* 性別 */floatscore; /* 成績(jī) */; struct student student1, student2;2、建立一個(gè)適于描述碗和勺子的結(jié)構(gòu)體,有關(guān)的信息是:兩者都有貨號(hào)、價(jià)格、顏色,不同的是碗的大小用口徑來(lái)表示,勺子的大小用枚舉類(lèi)型表示,分大、中、小三種。現(xiàn)有的勺子的大小是中,將其表示出來(lái)。#include using names
3、pace std;struct bowl int No; int price; char color; float size;struct spoon int No; int price; char color; struct enum small,medium,bigshaozi; a;b;void main() b.a.shaozi = b.a.medium; coutb.a.shaozi;3、編程實(shí)現(xiàn)兩個(gè)整數(shù)相加。#includeint main()int integer1,integer2,sum; coutinteger1; coutinteger2; sum=integer1+in
4、teger2; coutSum is sum endl; return; 4、編程實(shí)現(xiàn),輸入一個(gè)三位整數(shù),能夠?qū)⑺聪蜉敵觥?include #include using namespace std; void main() int num; coutnum; while(num) coutnum%10; num /=10; coutendl;5、讀程序?qū)懡Y(jié)果。綜合實(shí)訓(xùn)數(shù)字互換實(shí)訓(xùn)。輸入一個(gè)大于三位的整數(shù),編一個(gè)程序,將它的十位數(shù)和百位數(shù)互換位置。#includeusing namespace std;int main() int x; int a3; cinx; for(int i=0;i3
5、;i+) ai=x%10;x=x/10; x=x*1000+a0+a1*100+a2*10; coutxendl; return 1;(二)語(yǔ)句和函數(shù)基礎(chǔ)實(shí)訓(xùn)1、根據(jù)考試成績(jī)的等級(jí)A、B、C和D,輸出對(duì)應(yīng)的百分制分?jǐn)?shù)段,A對(duì)應(yīng)85100,B對(duì)應(yīng)7084,C對(duì)應(yīng)6069,D對(duì)應(yīng)060。#define num 100int a=new int num;for(int i=0;i=85)cout=70)cout=60)coutC;elsecoutD;2、用for語(yǔ)句編程求1100之和。#includevoid main()int sum(0);for(int i=1;i=100;i+)sum+=i;
6、coutsum=sumendl;3、用for語(yǔ)句、while語(yǔ)句和遞歸函數(shù)三種方法計(jì)算n!。#includemain()int n;int sum=1;cin0;) sum*=n-;while(n0) sum*=n-; int f(int x) if(x1) x*=f(x-1); return x; else return x; 4、用for循環(huán)編程打印圖形。#include using namespace std;int main() for(int i=1;i=5;i+) for(int j=1;j=i;j+) cout*; coutendl; cout*endl; cout*endl;5
7、、編寫(xiě)函數(shù),判斷一個(gè)數(shù)是否是質(zhì)數(shù)。# include# includeusing namespace std;int main()int i,j,k;cinj;k=sqrt(j);for(i=2;ik)cout1;else cout0;return 0;9、設(shè)計(jì)一個(gè)函數(shù),求三個(gè)數(shù)中的最大值。#includeint max(int,int,int);void main()coutmax(35,48,26)endl;int max(int a,int b,int c)int t=max(a,b);return max(t,c);10、編寫(xiě)程序,利用itoa函數(shù)實(shí)現(xiàn)整數(shù)到字符串的轉(zhuǎn)換。#includ
8、eintitoa(x)charc;c=x;printf(%c,c);getch();intmain(void)inta;printf(inputanumber:);scanf(%d,&a);itoa(a);11、編寫(xiě)程序,最多讀入10個(gè)數(shù),讀入0表示結(jié)束。將讀入的非零的數(shù)放在一個(gè)數(shù)組里,按從大到小的順序排序后輸出。#include #include#include#includeusing namespace std;int main()/主函數(shù) vector b; for(int i=0;ix; if( x ) b.push_back( x ); else break; sort( b.be
9、gin(),b.end() ); copy( b.begin(),b.end() , ostream_iterator(cout, ) ); return 0;12、將一個(gè)代表整型數(shù)的字符串轉(zhuǎn)換為一個(gè)整型的數(shù)字。#include #include #include using namespace std;int main(int argc, char* argv) stringstream a; string b; int i; cinb; a.str(b); ai; couti*2endl; return 0;綜合實(shí)訓(xùn)(職工信息處理函數(shù)實(shí)訓(xùn))職工的信息有、年齡、工齡、性別、婚姻狀況、級(jí)別、工
10、資、在職否?,F(xiàn)在要進(jìn)行工資的調(diào)整,規(guī)定凡是退休職工一律增加工資50元,在職15級(jí)職工的工資分別增加20、40、60、80、100元。編程實(shí)現(xiàn)上述工資調(diào)整。要求如下:(1)分析要存放的信息,設(shè)計(jì)合適的數(shù)據(jù)結(jié)構(gòu);(2)分析要對(duì)信息進(jìn)行的操作,進(jìn)行處理;(3)打印程序執(zhí)行前后的工資狀況和級(jí)別。(三)面向?qū)ο蠡靖拍钆c類(lèi)實(shí)訓(xùn)基礎(chǔ)實(shí)訓(xùn)1、讀程序?qū)懡Y(jié)果;2、設(shè)計(jì)一個(gè)表示貓的類(lèi),包括貓的顏色、體重、年齡等數(shù)據(jù),具有設(shè)置貓的顏色,修改和顯示貓的體重、年齡等操作。設(shè)貓類(lèi)的類(lèi)名為Cat,貓類(lèi)Cat有3個(gè)數(shù)據(jù)成員,顏色用字符串color7,可以存放3個(gè)漢字,體重用實(shí)型數(shù)weight表示,年齡用整型數(shù)age表示,為了
11、數(shù)據(jù)的安全性,Cat的3個(gè)數(shù)據(jù)成員全部為私有的。對(duì)貓的屬性數(shù)據(jù)的設(shè)置和修改,PutColor為設(shè)置和修改顏色,PutWeight為設(shè)置和修改體重,PutAge為設(shè)置和修改年齡,它們都設(shè)置為公有函數(shù),還要有一個(gè)1個(gè)3個(gè)參數(shù)的函數(shù) SetCat。設(shè)計(jì)Display函數(shù)輸出貓的信息。#include class Catprivate String colour;private int weight;private int age;.int getWeight() return weight;int getAge() return age;void setClolur(String xClolour)
12、 colour=xCloour;void setWeight(int xWeight) weight=xWeight;void setAge(int xAge) age=xAge;設(shè)計(jì)一個(gè)表示學(xué)習(xí)成績(jī)的類(lèi),至少包括三門(mén)課程的成績(jī),可以設(shè)置、顯示每門(mén)課程的成績(jī),可以計(jì)算、顯示平均成績(jī)。class Gradesprivate: int Math,English,Chinese;public: Grades() Math = English = Chinese = 0; Grades(int a,int b,int c) Math = a; English = b; Chinese = c; int
13、 getM() return Math; int getE() return English; int GetC() return Chinese; void Setvalue(int a,int b,int c) Math = a; English = b; Chinese = c; void Display(); float Average() return (Math+English+Chinese)/3.0; 4、設(shè)計(jì)成績(jī)類(lèi),成績(jī)類(lèi)的數(shù)據(jù)成員,應(yīng)該包括學(xué)生的學(xué)號(hào)Number10和Name9,假設(shè)有3門(mén)課,分別為C+程序設(shè)計(jì)語(yǔ)言,用整型變量Cpp表示;計(jì)算機(jī)原理,用整型變量Compute
14、r表示;數(shù)據(jù)庫(kù),用整型變量DataBase表示。平均成績(jī)用實(shí)型變量Average表示。為了Grade類(lèi)數(shù)據(jù)的安全性,數(shù)據(jù)成員全部為私有成員,對(duì)成績(jī)類(lèi)的屬性數(shù)據(jù)用一些函數(shù)進(jìn)行設(shè)置和修改,PutNo為設(shè)置和修改學(xué)號(hào),PutName為設(shè)置和修改,PutCpp為設(shè)置和修改C+程序設(shè)計(jì)語(yǔ)言的成績(jī),PutCom為設(shè)置和修改計(jì)算機(jī)原理的成績(jī),PutData為設(shè)置和修改數(shù)據(jù)庫(kù)的成績(jī),還有一個(gè)同時(shí)設(shè)置所有5個(gè)參數(shù)的函數(shù)SetGrade,它們都設(shè)置為公有函數(shù)。計(jì)算平均成績(jī)的函數(shù)為Calc,設(shè)計(jì)函數(shù)Display輸出成績(jī)。有時(shí)可能要查看某個(gè)學(xué)生的成績(jī),所以設(shè)計(jì)比較學(xué)號(hào)的函數(shù)為ComNo,設(shè)計(jì)比較的函數(shù)為ComNam
15、e,GetCpp為讀取C+程序設(shè)計(jì)語(yǔ)言的成績(jī),GetCom為讀取計(jì)算機(jī)原理的成績(jī),GetData為讀取數(shù)據(jù)庫(kù)的成績(jī),設(shè)計(jì)讀取平均成績(jī)的函數(shù)為GetAvg。計(jì)算平均成績(jī)只是在類(lèi)的部實(shí)現(xiàn),所以設(shè)計(jì)為私有函數(shù),其它都為公有函數(shù)。綜合實(shí)訓(xùn)設(shè)計(jì)一個(gè)表示整型數(shù)據(jù)的集合類(lèi),可以對(duì)集合中的數(shù)據(jù)進(jìn)行添加、刪除,可以判斷一個(gè)整數(shù)是否在這個(gè)集合里,可以求出集合數(shù)據(jù)的多少,可以判斷集合的空與滿,空集合就是沒(méi)有數(shù)據(jù)元素,滿集合就是數(shù)據(jù)元素已經(jīng)占滿給出的存儲(chǔ)單元。兩個(gè)集合可以做交運(yùn)算,就是將兩個(gè)集合的公共數(shù)據(jù)組成一個(gè)新的集合。兩個(gè)集合可以做并運(yùn)算,就是將兩個(gè)集合的所有數(shù)據(jù)組成一個(gè)新的集合。要求如下:(1)分析集合類(lèi)的數(shù)據(jù)
16、屬性要求;(2)分析集合類(lèi)的操作屬性要求;(3)編制集合類(lèi)的接口定義;(4)實(shí)現(xiàn)集合類(lèi)的屬性函數(shù)。#include/form the datastruct Data long num; Data *next;/the set classclass Gather public: Gather(int =5); /Gather(); void form(int); void del(); void setGather(); void print(); void add(int); Data *getptr()return ptr; Gather& operator=(Gather &); Gath
17、er& operator+(Gather &); Gather& operator*(Gather &); private: int LEN; Data *ptr;Gather inside;Gather:Gather(int a)form(a);void Gather:form(int a) LEN=a; Data *p; for (int i=0;inext=new Data; p=p-next; p-next=NULL;/Gather:Gather()del();void Gather:del() Data *p; Data *q; p=ptr; for(int i=0;inext; d
18、elete q; LEN=0;void Gather:setGather() Data *p; p=ptr; for (int i=0;iLEN;i+) coutEnter item i+1p-num; p=p-next; void Gather:print() if (LEN=0) coutIts an empty set!endl; Data *p; p=ptr; for(int i=0;iLEN;i+) coutnumnext; if (i!=0&i%10=0) coutendl; void Gather:add(int t) bool y=true; Data *p; p=ptr; f
19、or(int i=0;inum=t) y=false; break; if(i!=LEN-1)p=p-next; if(y) p-next=new Data; p=p-next; p-num=t; p-next=NULL; LEN+; Gather& Gather:operator =(Gather &x) if (ptr=x.ptr) return *this; else del(); form(x.LEN); Data *p,*q; p=ptr; q=x.ptr; for(int i=0;inum=q-num; p=p-next; q=q-next; return *this; Gathe
20、r& Gather:operator +(Gather &x) inside.del(); inside.form(LEN); Data *q; Data *p; q=ptr; p=inside.getptr(); for(int i=0;inum=q-num; p=p-next; q=q-next; q=x.ptr; for(i=0;inum); q=q-next; return inside;Gather& Gather:operator *(Gather &x) int z=0; long g100; bool y=true; Data *p; Data *q; p=ptr; q=x.p
21、tr; for(int i=0;iLEN;i+) q=x.ptr; for(int j=0;jnum=q-num) for(int t=0;tnum=gt) y=false; break; if(y) gz=p-num; z+; break; y=true; break; else q=q-next; p=p-next; inside.del(); inside.form(z); Data *pre; pre=inside.getptr(); for (i=0;inum=gi; pre=pre-next; return inside;/the mainint main() Gather x(6
22、); Gather y; Gather result; coutEnter the item of set x:endl; x.setGather(); coutThe items of x is:endl; x.print(); coutendl; coutEnter the item of set y:endl; y.setGather(); coutThe items of y is:endl; y.print(); coutendl; coutThe result of x+y is:endl; result=x+y; result.print(); coutendl; coutThe
23、 result of x*y is:endl; result=x*y; result.print(); coutendl; couta; x.add(a); coutNow x is : ;x.print(); coutendl; inside.del(); result.del(); x.del(); y.del(); return 0;(四)對(duì)象實(shí)訓(xùn)基礎(chǔ)實(shí)訓(xùn)1、讀程序?qū)懡Y(jié)果;2、設(shè)計(jì)計(jì)算圖形面積的程序,圖形有圓和長(zhǎng)方形,計(jì)算半徑為15、23、37的圓和長(zhǎng)寬分別為(32,56)、(21,45)的長(zhǎng)方形等五個(gè)圖形的面積。class rect private: float length; flo
24、at width; public: rect(float l,float w); void putwidth(float w); void putlength(float l); float getwidth()const; float getlength()const; float Area()const; float Total()const; ; rect:rect(float l=0 ,float w=0) length=l; width=w; void rect:putwidth(float w) width=w; void rect:putlength(float l) lengt
25、h=l; float rect:getlength()const return length; float rect:getwidth()const return width; float rect:Area ()const return length*width; float rect:Total ()const return 2*(length+width); /rect.cpp #include #include #include rect.h #include using namespace std; void main() cout 求長(zhǎng)方形的面積與周長(zhǎng) endl; int str=
26、0; float rw,rl; rect a(0,0); ttt: cout rl rw;/此處輸入字符時(shí)就會(huì)錯(cuò)誤 a.putlength (rl); a.putwidth (rw); do cout 輸入0為退出,輸入1求面積,輸入2求周長(zhǎng),3是輸入長(zhǎng)和寬 str; switch (str) case 1: cout 面積是: a.Area () endl; break; case 2: cout 周長(zhǎng)是: a.Total () endl; break; case 3: goto ttt; break; case 0: cout ByeBye! endl; break; default: c
27、out 錯(cuò)誤!輸入1求面積,輸入2求周長(zhǎng)! endl; break; while(str);/*/ getch(); 3、設(shè)計(jì)一個(gè)日期類(lèi)Date,可以求昨天的日期和明天的日期,輸出格式為:年/月/日,編寫(xiě)主程序設(shè)置當(dāng)前日期為2003年9月10日,顯示昨天的日期和明天的日期,將日期改為2004年5月4日,顯示修改后的日期。綜合實(shí)訓(xùn)設(shè)計(jì)一個(gè)最多可以存放100個(gè)整數(shù)的類(lèi),要求這些整數(shù)按從小到大的順序存放在類(lèi)中的數(shù)組里,可以刪除數(shù)組中的數(shù)據(jù),也可以向數(shù)組中插入數(shù)據(jù),但是要保持從小到大的順序,可以求出數(shù)據(jù)的多少,可以判斷數(shù)組的空和滿,可以顯示數(shù)組中的整數(shù)。當(dāng)然剛生成對(duì)象時(shí),對(duì)象中的數(shù)組沒(méi)有數(shù)據(jù),只有一個(gè)
28、一個(gè)地向?qū)ο笾胁迦霐?shù)據(jù)。要求如下:(1)分析數(shù)組類(lèi)的數(shù)據(jù)屬性要求;(2)分析數(shù)組類(lèi)的操作屬性要求;(3)編制數(shù)組類(lèi)的接口定義;(4)生成數(shù)組類(lèi)對(duì)象;(5)編制程序?qū)崿F(xiàn)數(shù)組對(duì)象的插入和刪除操作;#includeclass Dateprivate:int year,month,day;public:Date(int y=1900,int m=1,int d=1):year(y),month(m),day(d)/構(gòu)造函數(shù)void setDate(int y,int m,int d)/設(shè)置日期 year=y; month=m; day=d;void showDate()/輸出日期格式 coutyear
29、/month/dayendl;int leap()/判斷是否為潤(rùn)年 if(year%400=0|(year%100!=0&year%4=0) return 1; else return 0;int Days()/判斷當(dāng)月天數(shù) int d; switch(month) case 2:if(leap() d=29; else d=28; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12:d=31;break; case 4: case 6: case 9: case 11:d=30;break; return d;int
30、 isRight()/判斷日期數(shù)是否合理if(year0|month12|dayDays() coutthe date data is wrong!endl;return 0;else return 1;Date Yesterday()/求昨天Date dt(year,month,day);int y1=dt.year,m1=dt.month,d1=dt.day;switch(month) case 2: case 4: case 6: case 8: case 9: case 11: if(day=1)y1=year;m1=month-1;d1=31; else y1=year;m1=mon
31、th;d1=day-1; break; case 5: case 7: case 10: case 12: if(day=1)y1=year;m1=month-1;d1=30; else y1=year;m1=month;d1=day-1; break; case 3: if(day=1) y1=year;m1=month-1; if(leap() d1=29; else d1=28; else y1=year;m1=month;d1=day-1; break; case 1: if(day=1)y1=year-1;m1=12;d1=31; else y1=year;m1=month;d1=d
32、ay-1; break; dt.setDate(y1,m1,d1);return dt;Date Tomorrow()/求明天日期 Date dt(year,month,day);int y1=dt.year,m1=dt.month,d1=dt.day;switch(month) case 1: case 3: case 5: case 7: case 8: case 10: if(day=31)y1=year;m1=month+1;d1=1; else y1=year;m1=month;d1=day+1; break; case 4: case 6: case 9: case 11: if(
33、day=30)y1=year;m1=month+1;d1=1; else y1=year;m1=month;d1=day+1; break; case 2: if(leap()&day=29)|(!leap()&day=28) y1=year;m1=month+1;d1=1; else y1=year;m1=month;d1=day+1; break; case 12: if(day=31)y1=year+1;m1=1;d1=1; else y1=year;m1=month;d1=day+1; break; dt.setDate(y1,m1,d1);return dt; ;/data類(lèi)結(jié)束in
34、t main()Date date1;int y,m,d,tr=1;while(tr)coutt請(qǐng)輸入當(dāng)天日期endl;couty;coutm;coutd; date1.setDate(y,m,d);if(date1.isRight()cout當(dāng)日日期; date1.showDate(); cout明日日期; date1.Tomorrow().showDate(); cout昨日日期; date1.Yesterday().showDate(); cout繼續(xù)下一次測(cè)試(1)或者結(jié)束(2)tr; if(tr!=1) break;return 0;(五)指針與引用實(shí)訓(xùn)基礎(chǔ)實(shí)訓(xùn)1、讀程序?qū)懡Y(jié)果;2、
35、設(shè)有一個(gè)整型數(shù)組A,有10個(gè)元素,輸出各個(gè)元素,要求使用數(shù)組名和指針運(yùn)算來(lái)實(shí)現(xiàn)。3、設(shè)計(jì)一個(gè)函數(shù),以參數(shù)方式輸入一個(gè)字符串,返回該字符串的長(zhǎng)度。#includeint mystrlen(char *str)intt = 0;while(cnt+,*str+);returnt-1;int main()char str100;int length;cout輸入字符串:str;length = mystrlen(str);coutstr長(zhǎng)度為:lengthendl;return 0;4、設(shè)計(jì)一個(gè)函數(shù),比較兩個(gè)字符串是否一樣。#include #include void main()char str1
36、100,str2100;cout輸入兩個(gè)字符串(str1,str2):str1str2;int ret=strcmp(str1,str2);if(ret=0)cout一樣endl; else cout不同endl; 4、設(shè)計(jì)一個(gè)函數(shù),比較兩個(gè)字符串是否一樣。int myStrCmp(char *str1,char *str2) int sl1=0,sl2=0,i; while(str1sl1+); while(str2sl2+); if(sl1!=sl2) return 0; else for(i=0;isl1-1;i+) if(str1i!=str2i) return 0; return 1
37、;5、用指針和引用實(shí)現(xiàn)數(shù)的交換。#include #includevoid swap1(int &a, int &b) int c; c=a; a=b; b=c;void swap2(int *p1, int *p2)int p;p=*p1;*p1=*p2;*p2=p;int main(void)int num1, num2;cout(&num1,&num2):num1num2;cout(原始數(shù)據(jù):num1,num2):num1,num2endl;swap1(num1,num2);cout第一次交換:num1,num2endl;swap2(&num1,&num2);cout第二次交換:num1
38、,num2endl;return 0;6、對(duì)象指針遵循一般變量指針的規(guī)則。綜合實(shí)訓(xùn)冒泡排序是一個(gè)排序程序,它將無(wú)次序的數(shù)列排成從小到大的有序數(shù)列。要求如下:(1)建成一個(gè)數(shù)組類(lèi);(2)使用指針變量指向動(dòng)態(tài)數(shù)組;(3)編寫(xiě)成員函數(shù)完成排序;(4)編寫(xiě)主程序,驗(yàn)證結(jié)果。(六)繼承實(shí)訓(xùn)基礎(chǔ)實(shí)訓(xùn)1、讀程序,寫(xiě)結(jié)果;2、定義B0是虛基類(lèi),B1和B2都繼承B0,D1同時(shí)繼承B1和B2,它們都是公有派生,這些類(lèi)都是同名的公有數(shù)據(jù)成員和公有函數(shù),編制主程序,生成D1的對(duì)象,通過(guò)限定詞:分別訪問(wèn)D1、B0、B1、B2的公有成員。3、定義一個(gè)文件名類(lèi),包含文件名屬性。由文件名類(lèi)派生一個(gè)表示文件的類(lèi),增加文件的頁(yè)數(shù)
39、和文件的編號(hào)。4、設(shè)計(jì)一個(gè)樓房基類(lèi),包含變量層數(shù)、建筑面積、建筑名稱(chēng)。建立派生類(lèi)表示居住樓,增加變量單元數(shù)。再建立派生類(lèi)表示辦公樓,增加變量表示公司數(shù)# include # include using namespace std;class building/樓房基類(lèi)public: building(int floor,double area,string name)floors=floor;areas=area;names=name; virtual void Display()const/* do something like print*/private: int floors; dou
40、ble areas; string names;/建筑名稱(chēng);class house:public buildingpublic: house(int floor,double area,string name,int domitory):building(floor,area,name)ds=domitory; void Display()const/* do the thing you want to do*/private: int ds;class office:public building/不知道你是要從building 繼承 還是house 這從buiding 繼承public:
41、office(int floor,double area,string name,int CompanySize):building(floor,area,name)cs=CompanySize; void Display()const/*print or something*/private: int cs;void DoSmeThing(building *p) p-Display();void main() building Bd(5,60,paradise); house Hs(4,56.8,home,5); office Of(9,70.8,HDD,100); DoSmeThing(
42、&Bd); DoSmeThing(&Hs); DoSmeThing(&Of);定義描述坐標(biāo)位置的類(lèi),由它派生出具有顯示和移動(dòng)功能的點(diǎn)類(lèi),再?gòu)狞c(diǎn)類(lèi)派生出圓類(lèi),求出圓的周長(zhǎng)和面積。circle_header.h#ifndef CIRCLE_H#define CIRCLE_H#include #include using namespace std;#define PI 3.1416class Locationpublic:Location(float xx=0, float yy=0)X=xx; Y=yy; float GetX()return X; float GetY()return Y; v
43、oid SetX(float xx)X = xx; void SetY(float yy)Y = yy;private: float X; float Y;class Point:public Locationpublic: void Move(float xx, float yy) SetX(xx); SetY(yy); void Display() coutThe location is x= GetX() , y= GetY(); private: Location PointLocation;class Circle:public Pointpublic: Circle(Locatio
44、n ¢re, Point &circlePoint) CirclePoint = circlePoint; Centre = centre; float Girth() return 2*PI*Radius(); float Acreage() return PI*Radius()*Radius(); private: Location Centre; Point CirclePoint; float Radius() return sqrt( (CirclePoint.GetX()-Centre.GetX()*(CirclePoint.GetX()-Centre.GetX()+ (C
45、irclePoint.GetY()-Centre.GetY()*(CirclePoint.GetY()-Centre.GetY() ); ;#endiffile.cpp#include circle_header.hvoid main() Location centre(1, 2); Point point; point.Move(4, 5); Circle circle(centre, point); cout circle.Acreage() circle.Girth() endl;綜合實(shí)訓(xùn)人員類(lèi)的繼承實(shí)訓(xùn);(設(shè)計(jì)基類(lèi)人員類(lèi),數(shù)據(jù)成員為和身份號(hào),成員函數(shù)有輸入數(shù)據(jù)和顯示數(shù)據(jù);派生學(xué)生類(lèi),數(shù)
46、據(jù)成員包括和C+成績(jī),成員函數(shù)有輸入數(shù)據(jù)和顯示數(shù)據(jù);設(shè)計(jì)學(xué)生地址類(lèi),數(shù)據(jù)成員包括地址和年齡,成員函數(shù)輸入數(shù)據(jù)和顯示數(shù)據(jù);由學(xué)生類(lèi)和地址類(lèi)派生學(xué)生成績(jī)類(lèi),數(shù)據(jù)成員數(shù)學(xué)成績(jī)和英語(yǔ)成績(jī),成員函數(shù)輸入數(shù)據(jù)和顯示數(shù)據(jù);職員類(lèi)繼承人員類(lèi),沒(méi)有任何成員。)要求如下:(1)設(shè)計(jì)人員類(lèi);(2)設(shè)計(jì)地址類(lèi);(3)由人員類(lèi)派生學(xué)生類(lèi);(4)由人員類(lèi)派生職員類(lèi);(5)由學(xué)生類(lèi)和地址類(lèi)派生出學(xué)生成績(jī)類(lèi);(6)編制主程序,驗(yàn)證結(jié)果。(七)靜態(tài)成員和友元實(shí)訓(xùn)#include#includeusing namespace std;class Personprivate: string name; string id;publ
47、ic : void input(string name,string id) this-name=name; this-id=id; void print() cout:nameendl; cout號(hào):idadd=add; this-age=age; void print() cout住址:addendl; cout年齡:agephone_num=phone_num; this-grade_C=grade_C; void print() Person:print(); cout:phone_numendl; coutC+成績(jī):grade_Cgrade_Math=grade_Math; this
48、-grade_English=grade_English; void print() Student:print(); cout數(shù)學(xué)成績(jī):grade_Mathendl; cout英語(yǔ)成績(jī):grade_Englishendl; Address:print(); ;class Employee:public Person;int main() Score c; Employee e; c.input (,2002001, ,20,87935114,97,88,56); e.input(麻婷,123456); coutn學(xué)生信息n; c.print(); coutn職員信息n; e.print();
49、 return 0;基礎(chǔ)實(shí)訓(xùn)1、定義一個(gè)工資類(lèi),包含一個(gè)保護(hù)數(shù)據(jù)成員money 表示工資,一個(gè)靜態(tài)數(shù)據(jù)成員sds表示個(gè)人所得稅占工資的比例,一個(gè)靜態(tài)成員函數(shù)modSDS更改sds。#include#includeclass Payrollprivate: double money; double total;public: int time;/假設(shè)為整數(shù) int GetTime() do printf(input time:); scanf(%d,&time); while(time60 ); money = 100; return 0; int GetTotalMoney() return
50、(total =time * money); void Print() printf(total:%lfn,total); ;main() Payroll p10; p0.GetTime(); p0.GetTotalMoney(); p0.Print();贊同2、生成一個(gè)GZ類(lèi)表示工資,用靜態(tài)數(shù)據(jù)成員包含每個(gè)職工的sds(個(gè)人所得稅占工資的比例)。類(lèi)的每個(gè)成員包含一個(gè)私有數(shù)據(jù)成員money,表示當(dāng)月工資。提供一個(gè)calSDS成員函數(shù),計(jì)算個(gè)人應(yīng)交所得稅,并從money中扣除。提供一個(gè)static成員函數(shù)modSDS,將sds設(shè)置為新值。3、設(shè)計(jì)一個(gè)JX類(lèi)表示矩形,矩形的長(zhǎng)和寬作為其兩個(gè)數(shù)據(jù)成員。編寫(xiě)一個(gè)求矩形面積的函數(shù)area(),并將它聲明為JX的一個(gè)友元函數(shù)。利用area()
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高中教師工作總結(jié)經(jīng)典版(2篇)
- 2024年初三第一學(xué)期班主任工作計(jì)劃(4篇)
- 2021年10月廣西中共南寧市青秀區(qū)委員會(huì)組織部公開(kāi)招聘行政輔助人員工作人員簡(jiǎn)章沖刺卷(一)
- 2021年10月廣西南寧市江南區(qū)科學(xué)技術(shù)局公開(kāi)招聘強(qiáng)化練習(xí)題(一)
- 2021年10月廣西來(lái)賓市興賓區(qū)糖業(yè)發(fā)展局(“雙高”辦)公開(kāi)招聘編外人員強(qiáng)化練習(xí)題(一)
- 中學(xué)“美德進(jìn)課堂”活動(dòng)實(shí)施方案(2篇)
- 宣傳月活動(dòng)方案(6篇)
- 2024年物業(yè)客服年終工作總結(jié)參考樣本(5篇)
- 大學(xué)各班委職責(zé)范文(2篇)
- 2024年二年級(jí)小學(xué)生國(guó)旗下講話稿(6篇)
- IDP個(gè)人發(fā)展計(jì)劃表格
- 一年級(jí)豎式計(jì)算在□內(nèi)填上合適的數(shù)字
- 鵪鶉蛋脫殼機(jī)的設(shè)計(jì)
- 全工業(yè)園區(qū)發(fā)展情況、存在問(wèn)題及對(duì)策建議
- 《廣東省高速公路管理?xiàng)l例》(修正)
- 服裝成品質(zhì)量驗(yàn)收標(biāo)準(zhǔn)
- ISO9001-2015質(zhì)量管理體系培訓(xùn)
- 中國(guó)國(guó)電集團(tuán)公司設(shè)備檢修管理暫行辦法
- DCS系統(tǒng)結(jié)構(gòu)及各部分功能簡(jiǎn)介
- 豎井井架安裝安全技術(shù)措施
- 無(wú)線網(wǎng)題庫(kù)——天饋線
評(píng)論
0/150
提交評(píng)論