




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
江蘇科技大學(xué)課程實(shí)踐報(bào)告設(shè)計(jì)題目: 計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐(VC+)設(shè)計(jì)時間: 2011年3月學(xué) 院: 數(shù)理學(xué)院專業(yè)班級: 08405022學(xué)生姓名: 楊太君 學(xué)號:0840502222指導(dǎo)老師: 於躍成 2011年3月實(shí)踐一基礎(chǔ)題 第1題:一、實(shí)踐任務(wù)試建立一個類PP,求出下列多項(xiàng)式的前n項(xiàng)的值。具體要求: (1)私有數(shù)據(jù)成員 int n:前若干項(xiàng)的項(xiàng)數(shù)。 double x:存放x的值。 double *p:根據(jù)n的大小動態(tài)申請存放前n項(xiàng)的數(shù)組空間。(2)公有成員函數(shù) PP(int num,double x):構(gòu)造函數(shù),初始化數(shù)據(jù)成員n和x,使p指向動態(tài)申請的數(shù)組空間。 PP():析構(gòu)函數(shù),釋放p指向的動態(tài)內(nèi)存空間。 double fun(int n1,double x):遞歸函數(shù),用于求多項(xiàng)式的第n1項(xiàng)。注意:將遞歸公式中的n用作函數(shù)參數(shù)。本函數(shù)供process函數(shù)調(diào)用。 void process():完成求前n項(xiàng)的工作,并將它們存放到p指向的動態(tài)數(shù)組中。 void show():輸出n和x,并將前n項(xiàng)以每行4個數(shù)的形式輸出到屏幕上。(3)在主函數(shù)中完成對該類的測試。先輸入num和x1,并定義一個PP類的對象items,用num和x1初始化items的成員n和x,調(diào)用items的成員函數(shù),求出并輸出多項(xiàng)式前num項(xiàng)的值。二,程序設(shè)計(jì) (1)程序功能分析 本程序主要使用遞歸法實(shí)現(xiàn)多項(xiàng)式的求解。(2)類的定義和描述。(3)編寫源程序如下:#include #include class PPint n;double x;double *p;public:PP(int num,double x1)n=num;x=x1;p=new doublen;PP()if(p)delete p;double fun(int n1,double x)double p;if(n1=0) return 1;if(n1=1) return x;if(n11) p=(2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x)/n1; return p;void process()for(int i=0;in;i+)pi=fun(i,x);void show()coutntxendl;for(int i=0;in;i+)coutpit;if(i+1)%4=0) coutnumx1;coutendl;PP items(num,x1);cess();items.show();三,程序測試對類進(jìn)行測試,測試數(shù)據(jù)為:8,3。輸出結(jié)果:四,實(shí)驗(yàn)小結(jié) 此題的關(guān)鍵是用遞歸的方法的遞歸形式,通過此次實(shí)踐,熟悉了類的基本構(gòu)造,學(xué)會了用類來求解函數(shù)。五,參考文獻(xiàn): 1 張?jiān)佬?Visual c+程序設(shè)計(jì) 蘇州大學(xué)出版社 2 祁云嵩,劉永良,華偉Visual c+程序設(shè)計(jì)解析與訓(xùn)練 華東理工大學(xué)出版社 3 張曉如,王芳 Visual C+程序設(shè)計(jì)解析與實(shí)訓(xùn)中國鐵道出版社 實(shí)踐二基礎(chǔ)題 第2題:一、實(shí)踐任務(wù)試建立一個類SP,求,另有輔助函數(shù)power(m,n)用于求 具體要求如下: (1)私有數(shù)據(jù)成員 int n,k:存放公式n和k的值。(2)公有成員函數(shù) SP(int n1,int k1):構(gòu)造函數(shù),初始化數(shù)據(jù)成員n和k. int power(int m,int n)求 int fun():求公式的累加和。 void show():輸出求得的結(jié)果。(3)在主函數(shù)中定義對象s,對該類進(jìn)行測試。二,程序設(shè)計(jì) (1)程序功能分析 本程序主要使用遞歸法實(shí)現(xiàn)多項(xiàng)式的求和問題。(2)類的定義和描述。(3)編寫源程序如下:#include class SP private:int n;int k;public:sp(int n1,int k1)n=n1;k=k1;int power(int m,int n)int a=1;for(int i=0;in;i+)a=a*m;return a;int fun()int y=0;for(int i=1;i=n;i+)y+=power(i,k);return y;void show()coutfun()nk;s.sp(n,k);s.fun();s.show();三,程序測試對類進(jìn)行測試,測試數(shù)據(jù)為:3,5。輸出結(jié)果:四,實(shí)驗(yàn)小結(jié) 此題的關(guān)鍵是用遞歸的方法的遞歸形式,通過此次實(shí)踐,熟悉了類的基本構(gòu)造,學(xué)會了用類來求解函數(shù)。五,參考文獻(xiàn): 1 張?jiān)佬?Visual c+程序設(shè)計(jì) 蘇州大學(xué)出版社2 祁云嵩、劉永良,華偉Visual c+程序設(shè)計(jì)解析訓(xùn)練 華東理工大學(xué)出版社3 張曉如,王芳 Visual C+程序設(shè)計(jì)解析與實(shí)訓(xùn)中國鐵道出版社實(shí)踐三基礎(chǔ)題 第3題:一、實(shí)踐任務(wù)建立一個類MOVE,不進(jìn)行排序,將數(shù)組中小于平均值的元素放到數(shù)組的左邊,大于平均值的元素放到數(shù)組的右邊。具體要求如下:(1)私有數(shù)據(jù)成員float array20:一維整型數(shù)組。 int n:數(shù)組中元素的個數(shù)。 (2)公有成員函數(shù) MOVE(float b,int m):構(gòu)造函數(shù),初始化數(shù)據(jù)成員. void average():輸出平均值,并將數(shù)組中的元素按要求重新放置。 void print():輸出一維數(shù)組。(3)在主程序中用數(shù)據(jù)1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3對該類進(jìn)行測試。二,程序設(shè)計(jì) (1)程序功能分析 本程序主要掌握數(shù)組的平均值的求法,并熟悉將數(shù)組排序。 (2)類的定義和描述。 (3)編寫源程序如下:#include class MOVE float array20;int n;public:MOVE(float b,int m)n=m;for(int i=0;in;i+)arrayi=bi;void average()float a=0;for(int i=0;in;i+)a+=arrayi;a/=n;coutaendl;for(int x=0,y=n;xa)arrayy+=arrayx;arrayx=0;for(int k=0,z=0;ky;k+)if(arrayk!=0)arrayz+=arrayk;coutendl;void print()for(int i=0;in;i+)coutarrayit;coutendl;void main()float b=1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3;MOVE arest(b,9);arest.average();arest.print();三,程序測試輸出結(jié)果:四,實(shí)驗(yàn)小結(jié) 此題的關(guān)鍵是掌握數(shù)組的平均值的求法,并掌握數(shù)組排序的具體方法。五,參考文獻(xiàn): 1 張?jiān)佬?Visual c+程序設(shè)計(jì) 蘇州大學(xué)出版社 2 祁云嵩,劉永良,華偉Visual c+程序設(shè)計(jì)解析與訓(xùn)練 華東理工大學(xué)出版社 3 張曉如,王芳 Visual C+程序設(shè)計(jì)解析與實(shí)訓(xùn)中國鐵道出版社實(shí)踐四基礎(chǔ)題 第4題:一、實(shí)踐任務(wù)建立一個類MOVE,將數(shù)組中最大元素的值與最小元素的值互換。具體要求如下:(1)私有數(shù)據(jù)成員int *array:一維整型數(shù)組。 int n:數(shù)組中元素的個數(shù)。 (2)公有成員函數(shù) MOVE(float b,int m):構(gòu)造函數(shù),初始化數(shù)據(jù)成員. void exchange():輸出平均值,并將數(shù)組中的元素按要求重新放置。 void print():輸出一維數(shù)組。 MOVE():析構(gòu)函數(shù)。 (3)在主程序中用數(shù)據(jù)21,65,43,87,12,84,44,97,32,55對該類進(jìn)行測試。二,程序設(shè)計(jì)(1)程序功能分析 本程序主要掌握如何對數(shù)組的元素進(jìn)行比較,如何找到最大值和最小值以及對數(shù)組元素的交換。(2)類的定義和描述。(3)編寫源程序如下:#include # include class MOVE int *array;int n;public:MOVE(int b,int m)n=m;array=new int n;for(int i=0;in;i+)arrayi=bi;void exchange()int c=0;for(int i=0;in;i+)c+=arrayi;c/=n;cout平均值是cendl;for(int max=0,min=0,j=0;jn;j+)if(arraymaxarrayj)min=j;c=arraymax;arraymax=arraymin;arraymin=c;void print()for(int i=0;in;i+)coutarrayit;MOVE()delete array;void main()int b=21,65,43,87,12,84,44,97,32,55;MOVE a(b,10);a.exchange();a.print();三,程序測試輸出結(jié)果:四,實(shí)驗(yàn)小結(jié) 此題的關(guān)鍵是掌握對數(shù)組的元素進(jìn)行比較,找到最大值和最小值以及對數(shù)組元素的交換。五,參考文獻(xiàn): 1 張?jiān)佬?Visual c+程序設(shè)計(jì) 蘇州大學(xué)出版社 2 祁云嵩,劉永良,華偉Visual c+程序設(shè)計(jì)解析與訓(xùn)練 華東理工大學(xué)出版社 3 張曉如,王芳 Visual C+程序設(shè)計(jì)解析與實(shí)訓(xùn)中國鐵道出版社實(shí)踐五基礎(chǔ)題 第5題:一、實(shí)踐任務(wù)定義一個類Palindrome,實(shí)現(xiàn)絕對回文數(shù),設(shè)計(jì)一個算法實(shí)現(xiàn)對任意整型數(shù)字判斷是否為回文數(shù)。所謂絕對回文數(shù),是指十進(jìn)制和二進(jìn)制數(shù)均對稱的數(shù)。具體要求如下: (1)私有數(shù)據(jù)成員 int n:整型數(shù)字。 int y:標(biāo)記是否為回文數(shù)。 (2)公有成員函數(shù) Palindrome(int x):構(gòu)造函數(shù),根據(jù)x參數(shù)初始化數(shù)據(jù)成員n,y初始化為0。 void huiwen():判斷n是否為絕對回文數(shù)。 void show():若該數(shù)是回文數(shù),則在屏幕上顯示。(3)在主函程序中定義int a,由鍵盤輸入數(shù)字。定義一個Palindrome類對象P,用a初始化p,完成對該類的測試。二,程序設(shè)計(jì) (1)程序功能分析 本程序主要掌握如何對數(shù)組進(jìn)行數(shù)值比較,如何判斷一個數(shù)是十進(jìn)制回文數(shù)以及二進(jìn)制回文數(shù)。(2)類的定義和描述。(3)編寫源程序如下:#include class Palindrome private:int n;int y;char *p;public:Palindrome(int x)n=x;y=0;p=new char20;void huiwen()int b,c,d=0;c=n;if(n0);if(d=n)int e;e=n;for(int i=0;e0;i+)pi=e%2;e/=2;i-;for(int j=0;ji)y=1;void show()if(y=0)coutn不是絕對回文數(shù)endl;else coutn是絕對回文數(shù)a;Palindrome p(a);p.huiwen();p.show();三,程序測試對類進(jìn)行測試,測試數(shù)據(jù)為:121,313。輸出結(jié)果:四,實(shí)驗(yàn)小結(jié) 此題的關(guān)鍵是掌握對數(shù)組進(jìn)行數(shù)值比較,判斷一個數(shù)是十進(jìn)制回文數(shù)以及二進(jìn)制回文數(shù)。五,參考文獻(xiàn): 1 張?jiān)佬?Visual c+程序設(shè)計(jì) 蘇州大學(xué)出版社 2 祁云嵩,劉永良,華偉Visual c+程序設(shè)計(jì)解析與訓(xùn)練 華東理工大學(xué)出版社 3 張曉如,王芳 Visual C+程序設(shè)計(jì)解析與實(shí)訓(xùn)中國鐵道出版社 實(shí)踐六基礎(chǔ)題 第6題:一、實(shí)踐任務(wù)定義一個字符串類String,實(shí)現(xiàn)判斷該字符串是否為回文字符串。所謂回文字符串,是指該字符串左右對稱。例如字符串“123321”是回文字符串。具體要求如下:(1)私有數(shù)據(jù)成員 int *str。 int y:標(biāo)記是否為回文字符串。(2)公有成員函數(shù) String(char *s):構(gòu)造函數(shù),用給定的參數(shù)s初始化數(shù)據(jù)成員str,y初始化為0。 void huiwen():判斷str所指向的字符串是否為回文字符串。 void show():在屏幕上顯示字符串。(3)在主程序中定義字符串char s=”ababcedbaba”作為原始字符串。定義一個Sring類對象test,用s初始化test,完成對該類的測試。二,程序設(shè)計(jì) (1)程序功能分析 本程序主要掌握如何對字符數(shù)組進(jìn)行字符比較,如何判斷一個字符串是否是回文字符串。(2)類的定義和描述。(3)編寫源程序如下:# includeclass Stringprivate:char *str;int y;public:String(char *s)str=s;y=0;void huiwen()int i=0,j=0;while(stri+);i-;i-;for(j;ji)y=1;void show()if(y=0)coutstr不是回文字符串endl;if(y)coutstr是回文字符串endl;void main()char s=ababcedbaba;char m=abcdedcba; /驗(yàn)證程序的正確性String test(s);test.huiwen();test.show();三,程序測試對類進(jìn)行測試, 輸出結(jié)果:四,實(shí)驗(yàn)小結(jié) 此題的關(guān)鍵是掌握對字符數(shù)組進(jìn)行字符比較,判斷一個字符串是否是回文字符串。五,參考文獻(xiàn): 1 張?jiān)佬?Visual c+程序設(shè)計(jì) 蘇州大學(xué)出版社 2 祁云嵩,劉永良,華偉Visual c+程序設(shè)計(jì)解析與訓(xùn)練 華東理工大學(xué)出版社 3 張曉如,王芳 Visual C+程序設(shè)計(jì)解析與實(shí)訓(xùn)中國鐵道出版社實(shí)踐七基礎(chǔ)題 第7題:一、實(shí)踐任務(wù)建立一個類PHALANX,生成并顯示一個折疊方陣,折疊方陣如圖所示。折疊方陣的生成過程為:起始數(shù)置于方陣的左上角,然后從起始數(shù)開始遞增,依次折疊構(gòu)成方陣。 具體要求: (1)私有數(shù)據(jù)成員 int (*p)20:指向按照折疊規(guī)律存放的二維整型數(shù)組。 int startnum:折疊方陣的起始數(shù)。 int n:存放方陣的層數(shù)。(2)公有成員函數(shù) PHALANX(int s,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。 void process():生成起始數(shù)為startnum的n行方陣。 void print():輸出折疊方陣。 PHALANX():析構(gòu)函數(shù)。 (3)在主程序中對該類進(jìn)行測試。二,程序設(shè)計(jì) (1)程序功能分析 本程序主要使用循環(huán)方法實(shí)現(xiàn)方陣的遞增,主要注意循環(huán)條件的限制。(2)類的定義和描述。(3)編寫源程序如下:#include class PHALANXprivate:int (*p)20;int startnum;int n;public:PHALANX(int s,int m)startnum=s;n=m;p=new intn20;void process()int i=0,j=0,k;k=startnum;k=k-1;pij=k+;for( j;jn;j+)for( i=0;i=0;j-)pij=k+;j=i;if(j=i)break;void print()for(int i=0;in;i+)for(int j=0;jn;j+)coutpijt;coutendl;PHALANX()delete p;void main()int b,c;coutb;coutc;PHALANX a(b,c);cess();a.print();三,程序測試對類進(jìn)行測試,測試數(shù)據(jù)為:1,5。輸出結(jié)果:四,實(shí)驗(yàn)小結(jié) 此題的關(guān)鍵是注意循環(huán)條件的限制。五,參考文獻(xiàn): 1 張?jiān)佬?Visual c+程序設(shè)計(jì) 蘇州大學(xué)出版社 2 祁云嵩,劉永良,華偉Visual c+程序設(shè)計(jì)解析與訓(xùn)練 華東理工大學(xué)出版社 3 張曉如,王芳 Visual C+程序設(shè)計(jì)解析與實(shí)訓(xùn)中國鐵道出版社 實(shí)踐八基礎(chǔ)題 第8題:一、實(shí)踐任務(wù)建立一個類MATRIX,生成并顯示一個螺旋方陣,螺旋方陣如圖所示,起始數(shù)置于方陣的左上角,然后從起始數(shù)開始依次遞增,按順時針方向從外向里旋轉(zhuǎn)填數(shù)而成。 具體要求: (1)私有數(shù)據(jù)成員 int a2020:二維整型數(shù)組存放螺旋方陣。 int startnum:螺旋方陣的起始數(shù)。 int n:存放方陣的層數(shù)。(2)公有成員函數(shù) MATRIX(int s,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)startnum和n。 void process():生成起始數(shù)為startnum的n行螺旋方陣。 void print():輸出螺旋方陣。(3)在主程序中定義MATRIX類的對象t對該類進(jìn)行測試。二,程序設(shè)計(jì) (1)程序功能分析 本程序主要使用循環(huán)方法實(shí)現(xiàn)方陣的遞增,主要注意循環(huán)條件的限制,弄清楚具體的循環(huán)過程。(2)類的定義和描述。(3)編寫源程序如下:#includeclass MATRIXint a2020;int startnum;int n;public:MATRIX(int s,int m)startnum=s;n=m;void process()int m=n;for(int i=0;im;m-,i+)for(int j=i;jm;j+)aij=startnum+;j-;for(int k=i+1;k=i;j-)akj=startnum+;for(k-,j+;ki;k-)akj=startnum+;void print()for(int i=0;in;i+)for(int j=0;jn;j+)coutaijt;coutendl;void main()int s,m;couts;coutm;MATRIX t(s,m);cess();t.print();三,程序測試對類進(jìn)行測試,測試數(shù)據(jù)為:2,5。輸出結(jié)果:四,實(shí)驗(yàn)小結(jié) 此題的關(guān)鍵是注意循環(huán)條件的限制,注意條件的判斷以及語句的先后順序。五,參考文獻(xiàn): 1 張?jiān)佬?Visual c+程序設(shè)計(jì) 蘇州大學(xué)出版社 2 祁云嵩,劉永良,華偉Visual c+程序設(shè)計(jì)解析與訓(xùn)練 華東理工大學(xué)出版社 3 張曉如,王芳 Visual C+程序設(shè)計(jì)解析與實(shí)訓(xùn)中國鐵道出版社 提高部分實(shí)踐九提高題 第2題:一、實(shí)踐任務(wù)設(shè)計(jì)一個電子通訊錄。其中包括如下類:(1) 通信地址addr。包含公有數(shù)據(jù):成員char post10: /郵編成員char ad40; /家庭地址構(gòu)造函數(shù)addr(char p10=”,char a40=”);成員函數(shù)void setadd(addr a); /用a為當(dāng)前對象賦值(2) 出生年月類birth.包含公有數(shù)據(jù):成員int year; /年份成員int month; /月份成員int day; /日期構(gòu)造函數(shù)birth(int y=0,int m=0,int d=0);成員函數(shù)void setbir(birth b); /用b為當(dāng)前對象賦值(3)類friends.包含數(shù)據(jù): 私有成員int number; /序號 私有成員char name20; /姓名 私有成員char sex; /性別 私有成員char telephone13; /聯(lián)系電話公有成員birth bir; /出生年月 公有成員addr add; /通信地址 公有構(gòu)造函數(shù)friends(int nu=0,char n20=” “,char s= ,int y=0,int m=0,int d=0,char p10=” “,char a40=” “,char t13=” “); 公有成員函數(shù)void setfri(int nu,char n20,char s,birth b,addr a,char t13); /為當(dāng)前對象賦值公有成員函數(shù)friends input(friends &bb); /為對象bb輸出數(shù)據(jù)公有成員函數(shù)int search(friends aa100,char n20); /在aa中查找姓名為n的對象;公有成員函數(shù)void show(friends aa); /輸出對象aa公有成員函數(shù)void delet(friends aa100,int k); /在aa中刪除下標(biāo)為k的元素 (4)在主函數(shù)中完成主菜單的設(shè)計(jì),并根據(jù)輸入值完成所需操作。二,程序設(shè)計(jì) (1)程序功能分析 本程序主要掌握如何使用類與不同類之間的函數(shù)調(diào)用問題。(2)類的定義和描述。(3)編寫源程序如下:#include#includeclass addrpublic:char post10;char ad40;addr(char p10=,char a40=)strcpy(post,p); strcpy(ad,a);void setadd(addr a)strcpy(post,a.post); strcpy(ad,a.ad);class birthpublic:int year;int month;int day;birth(int y=0,int m=0,int d=0)year=y;month=m;day=d;s,birth b,addr a,char t13) number=nu;strcpy(name,n); sex=s;strcpy(telephone,t);bir.year=b.year;bir.month=b.month;bir.day=b.day;strcpy(add.post,a.post); strcpy(add.ad,a.ad);friends input(friends &bb) cout輸入numberbb.number;cout輸入;cout輸入sexbb.sex;cout輸入telephonebb.telephone; cout輸入yearbb.bir.year;cout輸入monthbb.bir.month; cout輸入daybb.bir.day;cout輸入postbb.add.post; cout輸入adbb.add.ad;return bb;int search(friends aa100,char n20)for(int i=0;i100;i+)if (strcmp(,n)=0) return i;return 0;void show(friends aa) coutaa.numberendl;endl; dd.delet(cc,m);break;case 5: break;void setbir(birth b)year=b.year;month=b.day;day=b.day;class friendsint number;char name20;char sex;char telephone13;public:birth bir;addr add;friends(int nu=0,char n20= ,char s= ,int y=0,int m=0,int d=0,char p10= ,char a40= ,char t13= ):bir(y,m,d),add(p,a)number=nu;strcpy(name,n);sex=s;strcpy(telephone,t);void setfri(int nu,char n20,char coutaa.sexendl;coutaa.telephoneendl;coutaa.bir.year; coutaa.bir.month; coutaa.bir.day;coutaa.add.post;coutaa.add.ad;void delet(friends aa100,int k)for(int i=k;i=100;i+)aai=aai+1; void main() int n,m;char s20=cwj;friends dd,cc100;cout1.輸入數(shù)據(jù)endl;cout2.輸出數(shù)據(jù)endl;cout3.查找數(shù)據(jù)endl;cout4.刪除數(shù)據(jù)endl;cout5.退出endl;cout請選擇(15)n;for(;n!=5;)cout請選擇(15)n;switch(n)case 1:for(int i=0;i100;i+) dd.input(cci); break;case 2: dd.show(dd);break;case 3: if(dd.search(cc,s) cout姓名為s的對象下標(biāo)為dd.search(cc,s);elsecout找不到姓名為s的對象endl;break;case 4: cout輸入刪除下標(biāo)m;三,程序測試對類進(jìn)行測試,輸出結(jié)果:四,實(shí)驗(yàn)小結(jié) 此題的關(guān)鍵是掌握如何使用類與不同類之間的函數(shù)調(diào)用問題。五,參考文獻(xiàn): 1 張?jiān)佬?Visual c+程序設(shè)計(jì) 蘇州大學(xué)出版社 2 祁云嵩,劉永良,華偉Visual c+程序設(shè)計(jì)解析與訓(xùn)練 華東理工大學(xué)出版社 3 張曉如,王芳 Visual C+程序設(shè)計(jì)解析與實(shí)訓(xùn)中國鐵道出版社 實(shí)踐十提高題第6題:一實(shí)踐任務(wù)6 設(shè)計(jì)一個大學(xué)師生類,包括學(xué)生類(Student),教師類(Professor),職員類(Staff),教師類是職員類的派生類。另有一類既作為學(xué)生又兼做助教的,可作為學(xué)生類和職員類的派生類(StudentStaff)。另外定義一個所有類的父類(DataRec)。具體要求如下:(1) DataRec類中數(shù)據(jù)成員又姓名,家庭住址,定義為指針變量。成員函數(shù)有構(gòu)造函數(shù),析構(gòu)函數(shù),輸出函數(shù),strsave函數(shù)。輸出函數(shù)定義為虛函數(shù)。Strsave函數(shù)用來動態(tài)申請內(nèi)存空間,拷貝參數(shù)中的字符串,返回內(nèi)存空間的首地址。因?yàn)樗械呐缮惗家玫?,設(shè)置為保護(hù)權(quán)限(2) Student類數(shù)據(jù)成員有專業(yè)、學(xué)號,專業(yè)定義為指針變量。Staff類數(shù)據(jù)成員有部門、計(jì)時薪酬,部門定義為指針變量。Professor類數(shù)據(jù)成員有工資,這三個類都有輸出函數(shù),用來輸出自己的數(shù)據(jù)成員(3) StudentStaff類多重繼承學(xué)生類和職員類。成員函數(shù)有輸出函數(shù)(4) DataRec類可以定義為虛基類(5) 每個類中數(shù)據(jù)成員定義為私有的(6) 編寫main函數(shù),測試上述所要求的各種功能。二系統(tǒng)設(shè)計(jì)1概要設(shè)計(jì)(1)系統(tǒng)功能分析本系統(tǒng)的功能是存儲大學(xué)師生的基本信息,如:姓名,家庭住址,專業(yè),部門等。(2)類的層次圖: Student Staff Professor StudentStaff DataRec2詳細(xì)設(shè)計(jì)(1)類的描述與定義l 基類DataRec有2個保護(hù)成員,定義如下:class DataRec /基類protected: char *name;/姓名char *address;/地址l 學(xué)生類有2個私有成員,定義如下:class Student:DataRec/學(xué)生類private:char* major; /專業(yè)int number; /學(xué)號l 員工類有2個保護(hù)成員,定義如下:class Staff:DataRec /員工類protected:char* department; /.部門double t_salary; /計(jì)時工資l Professor類有一個私有成員,定義如下:class Professor:Staff /professor 類private:double salary; /工資(1) 主要成員函數(shù)設(shè)計(jì)l 基類的構(gòu)造函數(shù)定義如下:DataRec(char *nam,char *addr)name=strsave(nam);address=strsave(addr);l 基類的析構(gòu)函數(shù)定義如下:DataRec()delete name;delete address;l 基類中strsave函數(shù)定義如下:char* strsave(char *s)char* r=new charstrlen(s)+1;strcpy(r,s);return r;l 基類中輸出函數(shù)的功能沒有必要先定義,將其說明為純虛函數(shù),其具體實(shí)現(xiàn)在派生類中定義:virtual void Output()=0;l Student類的構(gòu)造函數(shù)定義如下:Student(char *nam,char *addr,char* majo,int num):DataRec(nam,addr)major=strsave(majo);number=num;l Student類的析構(gòu)函數(shù)定義如下:Student()delete major;l Student 類的輸出函數(shù)定義如下:void Output()coutnameendl;coutaddressendl;coutMajor:majorendl;coutIdnumber:numberendl;l Staff類的構(gòu)造函數(shù)定義如下:Staff(char *nam,char *addr,char* depar,double t_sala):DataRec(nam,addr) department=strsave(depar);t_salary=t_sala;l Staff類的析構(gòu)函數(shù)定義如下:Staff()delete department;l Staff類的輸出函數(shù)定義如下:void Output()coutnameendl;coutaddressendl;coutDepartment:departmentendl;couthourly wage:t_salaryendl;l Professor 類的構(gòu)造函數(shù)定義如下:Professor(char *name, char *addr, char* depar, int t_sala, double salar):Staff (nam,addr,depar,t_sala)salary=salar;l Professor類的輸出函數(shù)定義如下:void Output()Staff:Output();coutSalary:salaryendl;l StudentStaff類構(gòu)造函數(shù)定義如下:StudentStaff(char *nam,char *addr,char* majo,int num,int salar,char* depar,double t_sala):Student(nam,addr, majo, num),Staff(nam,addr, depar, t_sala);l StudentStaff 類的輸出函數(shù)定義如下:void Output()Student:Output();coutDepartment:departmentendl;couthourly wage:t_salaryendl;三、源程序如下:#include#includeclass DataRecprotected:char *name;char *address;char* strsave(char *s)char* r=new charstrlen(s)+1;strcpy(r,s);return r;public: DataRec(char *nam,char *addr)name=strsave(nam);address=strsave(addr);DataRec()delete name;delete address;virtual void Output()=0;class Student:DataRecprivate:ch
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美術(shù)技能保護(hù)古建筑課件
- 營養(yǎng)膳食知識培訓(xùn)課件
- 企業(yè)取得安全生產(chǎn)許可證的條件是
- 生產(chǎn)安全事故綜合應(yīng)急預(yù)案演練方案安全生產(chǎn)
- 重大安全事故的定義
- 2025年銅礦項(xiàng)目規(guī)劃申請報(bào)告
- 羊奶課件中醫(yī)
- 地理科學(xué)類專業(yè)本科教學(xué)質(zhì)量國家標(biāo)準(zhǔn)(要點(diǎn))課件
- 2025至2030機(jī)械零部件行業(yè)市場深度調(diào)研及供需格局及有效策略與實(shí)施路徑評估報(bào)告
- 新材料賦能體育產(chǎn)業(yè)發(fā)展的策略及實(shí)施路徑
- 浙江2025年6月高一學(xué)考模擬歷史試題及答案
- 參觀芷江受降館活動方案
- 2025年計(jì)算機(jī)程序設(shè)計(jì)考試試卷及答案
- 中國老年醫(yī)療照護(hù)課件
- 監(jiān)控錄像查詢管理制度
- 星級酒店會議管理制度
- 抗精神病藥氯丙嗪講課件
- 產(chǎn)科質(zhì)量控制體系專題匯報(bào)
- 燃?xì)馊霊艋卦L管理制度
- 燃?xì)夤居?jì)量管理制度
- 磨削考試題及答案
評論
0/150
提交評論