版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程實(shí)踐報(bào)告設(shè)計(jì)題目 : 程序設(shè)計(jì) (VC+) 實(shí)踐設(shè)計(jì)時(shí)間 2013-1- 至 2013-1-學(xué)院 (系): 計(jì)算機(jī)科學(xué)與工程學(xué)院2013年1月一 實(shí)踐任務(wù)選擇題目,創(chuàng)新性題目可只選擇 1 題,僅選提高題應(yīng)不少于 3 題,僅選基礎(chǔ)題應(yīng) 不少于 6 題,也可組合選題,還可自行選擇感興趣的題目(須經(jīng)指導(dǎo)老師審定) 。 對(duì)于提高題、創(chuàng)新題及游戲題可組成團(tuán)隊(duì)開(kāi)發(fā),但應(yīng)制定詳細(xì)的項(xiàng)目分工說(shuō)明。二實(shí)驗(yàn)步驟及記錄(題目,源程序代碼及運(yùn)行結(jié)果)1. 與學(xué)號(hào)對(duì)應(yīng)的題(必做題) :基礎(chǔ)題 12題目:建立一個(gè)STRING將一個(gè)字符串交叉插入到另一個(gè)字符串中(假定兩字符串不等長(zhǎng))。例如將字符串“ abcde” 交叉
2、插入字符串“ ABCDEF”G 的結(jié)果為“ aAbBcCdDeEFG或“ AaBbCcDdEeF”具體要求如下:1)私有數(shù)據(jù)成員char str160:存放被插入的字符串。char str240 :存放待插入的字符串。char str3100 :存放插入后的字符串。(2)公有成員函數(shù)STRING (char *s1, char *s2 ) :構(gòu)造函數(shù),用 s1 和 s2 初始化 str1 和 str2 。void process() :將 str2 中的字符串插入到 str1 中,存放到 str3 中。void print() :輸出插入后的字符串。(3)在主程序中定義 STRING類(lèi)的對(duì)象t
3、est對(duì)該類(lèi)進(jìn)行測(cè)試。源程序代碼:#include#includeclass STRINGchar str160;char str240;char str3100;public:STRING(char *s1,char *s2)strcpy(str1,s1);strcpy(str2,s2);void process()char *p1=str1,*p2=str2;for(int i=0;*p2;i=i+2)for(int k=strlen(str1);k=i;k-)str1k+1=str1k;*p1=*p2;p1=p1+2;p2+;void print()strcpy(str3,str1);c
4、outstr3endl;void main()char s160=ABCDEFG;char s240=abcde;cout 原字符串: s1 s2endl;cout 交叉插入后的字符串: ;STRING test(s1,s2);cess();test.print();運(yùn)行結(jié)果:2-6 為選做題,其中 2,3,4為基礎(chǔ)題; 5,6 為提高題。2. 基礎(chǔ)題 4題目: 建立一個(gè)類(lèi) MOV,E 將數(shù)組中最大元素的值與最小元素的值互換。 具體要求如下:( 1)私有數(shù)據(jù)成員int *array :一維整型數(shù)組。int n :數(shù)組中元素的個(gè)數(shù)。(2)公有成員函數(shù)MOVE(int b,int
5、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對(duì)該類(lèi)進(jìn)行測(cè)試源程序代碼:#includeclass MOVEint *array;int n;public:MOVE(int b,int m)n=m;array=new intm;for(int i=0;in;i+) arrayi=bi;void exchange()int b10;for(int k=0;kn;k+) bk=array
6、k;for(int i=0;in;i+)for(int j=i+1;j=bi)int temp=bi;bi=bj;bj=temp;int max=b0,min=bn-1;for(int p=0;pn;p+)if(arrayp=max)arrayp=min;else if(arrayp=min)arrayp=max;void print()for(int i=0;in;i+)coutarrayit;coutendl;MOVE()delete narray; ;void main()int a10=21,65,43,87,12,84,44,97,32,55;cout 原數(shù)組: endl;for(i
7、nt i=0;i10;i+)coutait;coutendl;cout 交換最大值和最小值后的數(shù)組: endl;MOVE a1(a,10);a1.exchange();a1.print();運(yùn)行結(jié)果:3. 基礎(chǔ)題 16題目:定義一個(gè)方陣類(lèi) CMatrix ,并根據(jù)給定算法實(shí)現(xiàn)方陣的線(xiàn)性變換。方陣的變換形式 為:F=W*fTf 為原始矩陣, fT 為原始矩陣的轉(zhuǎn)置,w 為變換矩陣,這里設(shè)定為1 0 0 10 1 1 00 1 1 01 0 0 1 具體要求如下:( 1)私有數(shù)據(jù)成員int (*a)4: a 指向方陣數(shù)組。int w44: w 為變換矩陣。int m : m 表示方陣的行和列數(shù)。(
8、2)公有成員函數(shù):用給定的參數(shù)a和m初始化數(shù)據(jù)成員a和mCMatrix (int a4,int m)對(duì)變換矩陣 w 進(jìn)行初始化,要求必須用循環(huán)實(shí)現(xiàn)。void Transform () :根據(jù)上述變換算法,求出變換后的數(shù)組形式,存放在原始數(shù)組內(nèi)。void show( ) :在屏幕上顯示數(shù)組元素。l CMatrix () :釋放動(dòng)態(tài)分配的空間。( 3)在主程序中定義數(shù)組 intarr4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 作為原始數(shù)組。定義一個(gè) CMatrix 類(lèi)對(duì)象 test ,用 arr 初始化 test ,完成對(duì)該類(lèi)的測(cè)試 源程序代碼:#includ
9、eclass CMatrixint (*a)4;int w44;int m;public:CMatrix(int a4,int m)this-m=m;this-a=new intthis-m4;for(int i=0;im;i+)for(int j=0;jm;j+)this-aij=aij;for(i=0;i4;i+)for( int j=0;j4;j+) if(i+j=3|i=j)wij=1; else wij=0;void Transform()int b44;for(int i=0;im;i+)for(int j=0;jm;j+) bij=aji;for(int p=0;p4;p+)fo
10、r(int q=0;q4;q+)apq=wp0*b0q+wp1*b1q+wp2*b2q+wp3*b3 q;void show()for(int i=0;i4;i+)for(int j=0;j4;j+)coutaijt;coutendl;CMatrix()delete ma;void main()int arr4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;cout 原始方陣: endl;for(int i=0;i4;i+)for(int j=0;j4;j+)coutarrijt;coutendl;cout 變換后的方陣: endl;CMatrix test(a
11、rr,4);test.Transform();test.show();運(yùn)行結(jié)果4. 基礎(chǔ)題 17題目:n+117.定義一個(gè)類(lèi) SIN,求 sin( x) = x /1- x3 / 3!+ x5 / 5!- x7 / 7!+.+ (-1)x(2 n-1) /(2 n -1)! 具 體要求如下:1)私有成員數(shù)據(jù)。int x:輸入公式中x 的值,求 sin(x) 。int n:輸入公式中n 的值。2)公有成員函數(shù)SIN(int x, int n ):構(gòu)造函數(shù),用于初始化 x勺值int power( int q)求 q! 的值。l int mi( int m,int n):求mn勺值。l int fu
12、n( ):用于求 SIN(X) 的值。l void show( ) :輸出求得的結(jié)果。3)在主程序中定義對(duì)象 test ,對(duì)該類(lèi)進(jìn)行測(cè)試 源程序代碼:#include class SIN private: int x; int n;public:SIN(int x, int n)this-x=x;this-n=n;int power(int q)int s=1;if(q1)s=s*q;q-;return s;int mi(int m, int n)int temp=1;for(int i=1;i=n;i+)temp*=m;return temp;int fun()int result=0;fo
13、r(int i=0;i=n;i+)result+=mi(-1,i)*mi(x,2*i+1)/power(2*i+1);return result;void show()coutsin(x) 的結(jié)果為 :fun()endl;void main()int x, n;cout 輸入一個(gè)整數(shù) xx;cout 輸入一個(gè)整數(shù) nn;SIN test(x,n);test.show();運(yùn)行結(jié)果:5提高題 9題目:設(shè)計(jì)一個(gè)程序通過(guò)虛函數(shù)求長(zhǎng)方形的面積和長(zhǎng)方體的表面積,具體要求如下:( 1)定義長(zhǎng)方形類(lèi) Rectangle保護(hù)的數(shù)據(jù)成員int l,w; / 表示長(zhǎng)方形的長(zhǎng)和寬int s; / 表示長(zhǎng)方形的面積公
14、有的構(gòu)造函數(shù)Rectangle(int x,int y): 初始化長(zhǎng)方形的長(zhǎng)和寬;公有的虛函數(shù)virtual void fun():求長(zhǎng)方形的面積;virtual void show():輸出長(zhǎng)方形的長(zhǎng)、寬和面積。( 2)定義長(zhǎng)方形類(lèi) A 的公有派生類(lèi) Cuboid ,表示長(zhǎng)方體類(lèi)私有的數(shù)據(jù)成員int h; / 表示長(zhǎng)方體的高公有的構(gòu)造函數(shù):Cuboid(int x,int y,int z): 初始化長(zhǎng)方體的長(zhǎng)、寬和高。公有函數(shù)void fun(): 求長(zhǎng)方體的表面積;void show(): 輸出長(zhǎng)方體的長(zhǎng)、寬、高和表面積。(3)在主函數(shù)中對(duì)定義的類(lèi)進(jìn)行測(cè)試,要求定義長(zhǎng)方形對(duì)象al (長(zhǎng)為2
15、,寬為3), 長(zhǎng)方體對(duì)象bl (長(zhǎng)、寬、咼分別為2, 3, 4),通過(guò)基類(lèi)的指針p分別求長(zhǎng)方形 的面積和長(zhǎng)方體的表面積,輸出數(shù)據(jù)成員,并體現(xiàn)運(yùn)行的多態(tài)性。源程序代碼:#include class Rectangle protected:int l,w;int s;public:Rectangle(int x,int y)l=x;w=y;virtual void fun() s=l*w;virtual void show()cout 長(zhǎng) 方形 的 長(zhǎng) 為 : lt寬 為 : wt 面 積 為 :sendl;class Cuboid:public Rectangleint h;public:Cub
16、oid(int x,int y,int z):Rectangle(x,y)h=z;void fun()s=2*(w*l+w*h+h*l);void show()cout 長(zhǎng) 方 體 的 長(zhǎng) 為 : lt 寬 為 : wt 高 為 :ht 表面積為: sfun(); p-show();Cuboid b1(2,3,4); p=&b1; p-fun(); p-show();運(yùn)行結(jié)果:6. 提高題 10題目:設(shè)計(jì)一個(gè)程序,查詢(xún) 2000 年1 月 1 日(星期六)后的某天是星期幾,具體要求如 下:( 1)定義函數(shù) int leap(int year) :判斷某年 year 是否為潤(rùn)年。能夠被 400
17、整除, 或者能夠被 4 整除但不能衩 100 整除的年份是潤(rùn)年。( 2)定義函數(shù) int f(int y,int m,int d,int *m1,int *m2) :判斷輸入的日期是否 合法,其中y、m d分別表示年、月、日,ml表示非潤(rùn)年每月的天數(shù),m2表示潤(rùn)年每月的天數(shù)。(3)定義類(lèi)date,表示日期私有數(shù)據(jù)成員int year,month,day; / 分別表示某年某月某日公有成員函數(shù):date(int y,int m,int d):構(gòu)造函數(shù),用形參分別初始化數(shù)據(jù)成員;int get_year() :訪(fǎng)問(wèn)私有成員 year ;int get_month() :訪(fǎng)問(wèn)私有成員 month;i
18、nt get_day() :訪(fǎng)問(wèn)私有成員 day ;void show() :以指定格式輸出數(shù)據(jù)成員。(4)定義類(lèi)week,判斷某天是星期幾私有數(shù)據(jù)成員date d1; / 日期類(lèi)的對(duì)象,表示某日int m112;/存儲(chǔ)非潤(rùn)年每月的天數(shù) 31,28,31,30,31,30,31,31,30,31,30,31int m212;/存儲(chǔ)潤(rùn)年每月的天數(shù) 31,29,31,30,31,30,31,31,30,31,30,31int w;/ 表示用 0 表示星期天, 1 表示星期一,以此類(lèi)推 6 表示星期六 公有成員函數(shù)week(int y,int m,int d,int *p1,int *p2):構(gòu)造函
19、數(shù),用 y,m,d 初始化日期,用p1,p2 分別初始化 m1, m2;int days() :計(jì)算 d1 距 2000 年1 月 1 日的時(shí)間間隔(天數(shù));void fun():根據(jù)days()的計(jì)算結(jié)果判斷di是星期幾(求以06表示w的值);void print() :輸出判斷結(jié)果。5)在主函數(shù)中對(duì)定義的類(lèi)進(jìn)行測(cè)試。從鍵盤(pán)輸入一個(gè)日期,并檢查輸入數(shù)據(jù)的調(diào)用相關(guān)成員函數(shù),輸出判斷結(jié)果。程序運(yùn)行結(jié)果如下:請(qǐng)輸入要查詢(xún)的日期(年月日): 2009 9 152009/9/15 ,是星期二。源程序代碼:#include int leap(int year)if(year%400=0 | year%1
20、00!=0 & year%4=0)return 1;else return 0;int f(int y,int m,int d,int *m1,int *m2)if(m=1|m=3|m=5|m=7|m=8|m=10|m=12)&d31)return 0; else if(m=4|m=6|m=9|m=11)&d30)return 0;else return 1;while(leap(y)if(m=2&(d=28|d=30)return 0;else return 1;while(!(leap(y)if(m=2&(d=29|d=30)return 0;else return 1;class dat
21、eint year,month,day;public:date(int y,int m,int d)year=y;month=m;day=d;int get_year()return year;int get_month()return month;int get_day()return day;void show()coutyear/month/day,;class weekdate d1;int m112;int m212;int w;public:week(int y,int m,int d,int *p1,int *p2):d1(y,m,d)for(int i=0;i12;i+)m1i
22、=p1i;for(int j=0;j12;j+)m2i=p2i;w=0;int days()int i,j, result = 0;for(j=2000;jd1.get_year();j+)result+=(leap(j)+365);for(i=1;id1.get_month();i+)if(i=1|i=3|i=5|i=7|i=8|i=10|i=12)result+=31;else if(i=4|i=6|i=9|i=11)result+=30;else if(i=2)result+=(28+leap(j);result=result+d1.get_day()-1;return result;void fun()switch(days()%7)case 0:w=6;break;case 1:w=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專(zhuān)業(yè)選擇講座模板
- 2025年度茶葉產(chǎn)品溯源體系建設(shè)合同范本4篇
- 2025年度場(chǎng)化項(xiàng)目服務(wù)類(lèi)采購(gòu)項(xiàng)目合同附件定制版4篇
- 2025年度電競(jìng)主題商鋪?zhàn)赓U合作協(xié)議4篇
- 2025年度生態(tài)環(huán)保園區(qū)場(chǎng)地委托出租與環(huán)保技術(shù)服務(wù)合同樣本4篇
- 專(zhuān)業(yè)技能提升課程2024培訓(xùn)協(xié)議
- 人教版九年級(jí)化學(xué)上冊(cè)第1章開(kāi)啟化學(xué)之門(mén)《第2節(jié) 化學(xué)研究什么》公開(kāi)示范課教學(xué)課件
- 二零二四事業(yè)單位聘用合同四種類(lèi)別適用范圍與條件3篇
- 2025年度文化演藝中心場(chǎng)地租用協(xié)議范本4篇
- 2025年度城市綜合體項(xiàng)目場(chǎng)地購(gòu)置合同示范文本4篇
- 瀝青路面施工安全培訓(xùn)
- 機(jī)電設(shè)備安裝施工及驗(yàn)收規(guī)范
- 倉(cāng)庫(kù)安全培訓(xùn)考試題及答案
- 中國(guó)大百科全書(shū)(第二版全32冊(cè))08
- 初中古詩(shī)文言文背誦內(nèi)容
- 天然氣分子篩脫水裝置吸附計(jì)算書(shū)
- 檔案管理項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 蘇教版六年級(jí)上冊(cè)100道口算題(全冊(cè)完整版)
- 2024年大學(xué)試題(宗教學(xué))-佛教文化筆試考試歷年典型考題及考點(diǎn)含含答案
- 計(jì)算機(jī)輔助設(shè)計(jì)智慧樹(shù)知到期末考試答案章節(jié)答案2024年青島城市學(xué)院
- 知識(shí)庫(kù)管理規(guī)范大全
評(píng)論
0/150
提交評(píng)論