版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)》指導(dǎo)書(2周)合用專業(yè):蘇州理工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè) 江蘇科技大學(xué)蘇州理工學(xué)院2023年8月?課程設(shè)計(jì)目的《面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)》的目的是通過綜合性程序設(shè)計(jì)訓(xùn)練,使學(xué)生進(jìn)一步鞏固對(duì)計(jì)算機(jī)程序設(shè)計(jì)語言(C++)基本語法、基本算法的理解,加深對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)的理解,并將課本上的理論知識(shí)的實(shí)際應(yīng)用有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析問題、解決問題的能力,為學(xué)習(xí)后續(xù)課程和實(shí)際編程打下良好的基礎(chǔ)。課程設(shè)計(jì)規(guī)定運(yùn)用所學(xué)的面向?qū)ο蟪绦蛟O(shè)計(jì)的編程知識(shí)和技巧,獨(dú)立完畢具有一定難度的程序設(shè)計(jì)題,養(yǎng)成良好的編程習(xí)慣,掌握基本程序設(shè)計(jì)的理念、方法,純熟運(yùn)用程序調(diào)試的技巧,提高基本的程序開發(fā)能力。學(xué)生必須獨(dú)立完畢本指導(dǎo)書中附錄一中的所有編程題。遵守機(jī)房管理制度和實(shí)驗(yàn)操作規(guī)則上機(jī)者在上機(jī)規(guī)定的時(shí)間內(nèi),不得從事與本課程設(shè)計(jì)無關(guān)的內(nèi)容獨(dú)立完畢課題,嚴(yán)禁抄襲別人成果準(zhǔn)時(shí)提交報(bào)告時(shí)間安排2023年9月2日~2023年9月13日。實(shí)驗(yàn)設(shè)備和開發(fā)工具計(jì)算機(jī)計(jì)算機(jī)應(yīng)具有較好的性能和穩(wěn)定性。操作系統(tǒng)操作系統(tǒng)采用Windows2023、WindowsXP、Windows2023server等。開發(fā)工具VC考核規(guī)定上機(jī)考核:在規(guī)定的時(shí)間內(nèi)完畢1~2題進(jìn)行編程,占總成績(jī)的60%。課程設(shè)計(jì)報(bào)告:選附錄中的一半題寫成報(bào)告,格式規(guī)定見附錄二,占總成績(jī)的20%。平時(shí)表現(xiàn):占總成績(jī)的20。附錄一:課程設(shè)計(jì)內(nèi)容【排序、數(shù)組操作】[題目]對(duì)一個(gè)5位數(shù)的任意整數(shù),求出其降序數(shù)。例如:整數(shù)是82319,則其降序數(shù)是98321。算法提醒:將整數(shù)的各位數(shù)分解到一維整型數(shù)組a中,再將a數(shù)組中的元素按降序排序,最后輸出a數(shù)組元素值。試建立一個(gè)類NUM,用于完畢該功能。具體規(guī)定如下:(1)私有數(shù)據(jù)成員intn;存放5位數(shù)的整數(shù)。inta[5];存放其元素的降序排列值。(2)公有成員函數(shù)NUM(intx=0):構(gòu)造函數(shù),用參數(shù)x初始化數(shù)據(jù)成員n。voiddecrease():將n的各位數(shù)值分解到a數(shù)組中,并將a數(shù)組排成降序。voidshow():屏幕顯示原數(shù)及其降序數(shù)。(3)在主程序中輸入一個(gè)5位數(shù)的任意整數(shù),然后定義一個(gè)NUM類對(duì)象num,用上述輸入的數(shù)初始化num,然后完畢對(duì)該類的測(cè)試。運(yùn)營(yíng)結(jié)果:輸入一個(gè)五位的正整數(shù):82319n=8231998321[題目]設(shè)有一個(gè)包含size個(gè)數(shù)的數(shù)列,規(guī)定可以把從指定位置m開始的n個(gè)數(shù)排成降序,并輸出新的完整的數(shù)列??蓪?shù)列存放在一維數(shù)組中。例如,原數(shù)列有10個(gè)數(shù),值為{1,8,3,0,5,9,7,6,9,8},若規(guī)定把從第4個(gè)數(shù)開始的5個(gè)數(shù)排成降序,則得到的新數(shù)列為{1,8,3,9,7,6,5,0,9,8}。試建立一個(gè)類LIST,完畢上述功能。具體規(guī)定如下:(1)私有數(shù)據(jù)成員intsize;數(shù)列元素個(gè)數(shù)。int*arr;數(shù)列數(shù)組的起始指針。(2)公有成員函數(shù)LIST(inta[],intlen):構(gòu)造函數(shù),用len初始化size,根據(jù)size動(dòng)態(tài)分派數(shù)組存儲(chǔ)空間,arr指向該存儲(chǔ)空間。voidsortpart(intm,intn):將數(shù)列從第m個(gè)元素開始的n個(gè)數(shù)排成降序。注意:數(shù)列中數(shù)的序號(hào)與其元素的下標(biāo)不一致。voidoutput():輸出新的完整的數(shù)列。~LIST():析構(gòu)函數(shù),釋放arr指向的存儲(chǔ)空間。(3)在主程序中定義數(shù)組inta[10]用于存放原始數(shù)列,其值為{1,8,3,0,5,9,7,6,9,8}。定義一個(gè)LIST類對(duì)象tt,用a數(shù)組及數(shù)組實(shí)際元素的個(gè)數(shù)初始化該對(duì)象,然后把從第4個(gè)數(shù)開始的5個(gè)數(shù)按逆序排列,完畢該類的測(cè)試。【題目】求整數(shù)x,使y=x2的各位數(shù)字為嚴(yán)格遞增序列。如:372=1369中,1、3、6、9是嚴(yán)格遞增序列;又如,1、3、6、6、9就不是一個(gè)嚴(yán)格遞增序列。試建立一個(gè)類RISE,完畢求出某范圍內(nèi),滿足條件的所有x及其平方數(shù)和x的個(gè)數(shù)。具體規(guī)定如下:(1)私有數(shù)據(jù)成員intlow,high:x的取值范圍的下限和上限。inta[100][2]:每行存放滿足條件的x及其平方數(shù)。intcount:滿足條件的x的個(gè)數(shù)。(2)公有成員函數(shù)RISE(intlw,inthi):構(gòu)造函數(shù),用參數(shù)lw和hi分別初始化low和high。缺省的取值范圍為[10,1000]。將count初始化為0。intisrise(inty):判斷y的各位數(shù)字是否嚴(yán)格遞增,若是則返回1,否則返回0。voidprocess():求出滿足條件的所有x及其平方,并將結(jié)果存入數(shù)組a,同時(shí)記錄滿足條件的x的個(gè)數(shù)。voidshow():輸出數(shù)組a及count。(3)在主函數(shù)中完畢對(duì)該類的測(cè)試。定義一個(gè)RISE類的對(duì)象v,使用缺省方式初始化該對(duì)象,按上述規(guī)定解決并輸出結(jié)果。程序運(yùn)營(yíng)結(jié)果應(yīng)為:1316916256172893713691161345611713689367134689count=7【題目】若數(shù)組a中的n個(gè)元素已按升序排列,現(xiàn)將一個(gè)新數(shù)x插入到數(shù)組a中,插入后數(shù)組a的元素仍然保持升序。使用的插入排序算法是:從數(shù)組a的最后一個(gè)元素開始,依次向前掃描數(shù)組元素,若a[i]大于x,則將a[i]放入a[i+1](后移一個(gè)位置),并繼續(xù)向前掃描,直到找到某個(gè)a[i]小于或等于x,將x賦值到a[i+1]元素中,此時(shí)完畢插入排序工作。編寫程序時(shí)要考慮初始時(shí),數(shù)組是空數(shù)組(即數(shù)組中沒有元素),插入第一個(gè)元素時(shí),要做特殊解決。試建立一個(gè)類InsSort,完畢插入排序工作。具體規(guī)定如下:(1)私有數(shù)據(jù)成員inta[100]:存放排好序的整數(shù)序列。intn:數(shù)組實(shí)際元素個(gè)數(shù)。(2)公有成員函數(shù)InsSort(intb[],intsize):構(gòu)造函數(shù),用參數(shù)b初始化a數(shù)組,用參數(shù)size初始化n,size的缺省值是0。voidinsert(intx):將x插入到數(shù)組a中。voidshow():輸出數(shù)組元素個(gè)數(shù)及數(shù)組各元素值。(3)在主函數(shù)中完畢對(duì)該類的測(cè)試。定義數(shù)組intb[100],其初值是:{1,3,5}。定義一個(gè)InsSort類的對(duì)象arr,用數(shù)組b及其元素的個(gè)數(shù)初始化該對(duì)象。定義數(shù)組intc[100],其初值是:{0,1,2,3,5,8,10}。然后循環(huán)將數(shù)組c中的所有元素依次插入到對(duì)象arr的成員數(shù)組a中。最后輸出對(duì)象arr中的全體數(shù)據(jù)成員。程序?qū)Φ倪\(yùn)營(yíng)后,應(yīng)輸出:number=100,1,1,2,3,3,5,5,8,10【題目】將兩個(gè)分別從小到大排列的有序數(shù)組a和b復(fù)制合并到第3個(gè)有序數(shù)組c中。m和n分別是數(shù)組a和b的元素個(gè)數(shù),結(jié)果c的元素個(gè)數(shù)為k。例如a和b數(shù)組元素分別為{1,2,2,3,8}和{3,4,7,8},則結(jié)果數(shù)組c的值是:{1,2,2,3,3,4,7,8,8}。算法是:將a、b兩個(gè)數(shù)組當(dāng)作兩個(gè)隊(duì)列,比較隊(duì)首的兩個(gè)元素,將較小者放入c隊(duì)列尾部,假如隊(duì)首的兩個(gè)元素相等,則先選擇a隊(duì)列首部元素加入c隊(duì)列尾部。循環(huán)執(zhí)行以上過程,直到a或b隊(duì)列之一為空,然后將另一個(gè)非空隊(duì)列拷貝到c隊(duì)列尾部。注意:不允許使用其它算法(如排序算法)。試建立一個(gè)類Com,完畢合并工作。具體規(guī)定如下:(1)私有數(shù)據(jù)成員intm,n,k:分別是a,b,c三個(gè)數(shù)組的元素個(gè)數(shù)。inta[100],b[100],c[100]:存放a,b,c三個(gè)數(shù)組的值。(2)公有成員函數(shù)Com(intaa[],intm1,intbb[],intn1):構(gòu)造函數(shù),用參數(shù)初始化a,b數(shù)組及其元素個(gè)數(shù)。將k初始化為0。voidcombine():完畢合并工作。voidshow():將a,b,c三個(gè)數(shù)組輸出,每行輸出一個(gè)數(shù)組。(3)在主函數(shù)中完畢對(duì)該類的測(cè)試。定義兩個(gè)數(shù)組intx[100],y[100],其初值如上。定義一個(gè)Com類的對(duì)象c,用x、y數(shù)組及其元素的個(gè)數(shù)初始化該對(duì)象,然后調(diào)用成員函數(shù)進(jìn)行合并及輸出工作。程序?qū)Φ牡倪\(yùn)營(yíng)結(jié)果如下:a:1,2,2,3,8b:3,4,7,8c:1,2,2,3,3,4,7,8,8[題目]建立一個(gè)array類。規(guī)定如下:?(1)私有數(shù)據(jù)成員·intn:存儲(chǔ)數(shù)組元素個(gè)數(shù)?!ぃ閚ta[100]:存放數(shù)組元素。(2)公有成員函數(shù)·構(gòu)造函數(shù)array(intm,intb[]):初始化數(shù)據(jù)成員n,a?!oiddelsame():完畢將數(shù)組a中相同元素刪除工作?!oidprint():將數(shù)組以每行5個(gè)元素的形式輸出到屏幕。?(3)編寫一個(gè)程序測(cè)試該類。在主函數(shù)中定義一個(gè)數(shù)組intb[16],其初值是{1,2,1,5,3,4,6,3,4,2,7,6,9,8,6,10}。定義一個(gè)array類的對(duì)象,用b及數(shù)組元素個(gè)數(shù)初始化該對(duì)象,則經(jīng)刪除后a數(shù)組的內(nèi)容為{1,2,5,3,4,6,7,9,8,10}。【題目】設(shè)Δ是集合A上的二元運(yùn)算,假如對(duì)于集合A中的任意元素a和b,都有aΔb=c,且c∈A,則稱二元運(yùn)算Δ對(duì)于集合A是封閉的?,F(xiàn)有一數(shù)組a,假定其數(shù)組元素構(gòu)成集合A。試建立一個(gè)類DATA,判斷求余運(yùn)算“%”對(duì)集合A是否封閉。即判斷數(shù)組中的任意兩個(gè)元素a[i]和a[j],當(dāng)a[j]不等于0時(shí),a[i]除以a[j]所得余數(shù)仍然屬于集合A。具體規(guī)定如下:(1)私有數(shù)據(jù)成員int*a;整數(shù)指針,指向動(dòng)態(tài)分派的數(shù)組空間intn;數(shù)組中元素個(gè)數(shù)(2)公有成員函數(shù)DATA(intt[],intn1);構(gòu)造函數(shù),用n1初始化n,并根據(jù)n動(dòng)態(tài)生成數(shù)組a,用t數(shù)組對(duì)a數(shù)組初始化。intbelong(inta[],intn,intx);判斷x的值是否在數(shù)組a中,假如在返回1,否則返回0。voidfun();判斷求余運(yùn)算%對(duì)本對(duì)象是否封閉,假如封閉,輸出“封閉”。假如不封閉,則輸出“不封閉”,同時(shí)輸出第一個(gè)不滿足條件的a[i]和a[j]。voidprint();輸出成員數(shù)據(jù)的值。~DATA();析構(gòu)函數(shù),完畢必要的功能。(3)在主函數(shù)中對(duì)該類進(jìn)行測(cè)試。先定義兩個(gè)整型數(shù)組d1和d2,分別具有9個(gè)元素和8個(gè)元素,兩個(gè)數(shù)組的值分別是{1,3,22,4,15,2,7,5,0}和{1,3,8,4,6,7,5,0}。然后用這兩個(gè)數(shù)組初始化兩個(gè)DATA類的對(duì)象test1和test2,測(cè)試并輸出結(jié)果。對(duì)的的運(yùn)營(yíng)結(jié)果如下:集合:13224152750封閉集合:13846750不封閉:83【題目】編寫程序?qū)τ脩魯?shù)據(jù)進(jìn)行簡(jiǎn)樸的管理,規(guī)定按姓名的字典順序?qū)τ脩粜畔⑦M(jìn)行排序。試定義表達(dá)用戶信息的類person和用戶信息解決的類compute實(shí)現(xiàn)上述功能。具體規(guī)定如下:定義類person,其成員如下:(1)私有成員charname[10],num[10]:分別表達(dá)用戶的姓名和電話號(hào)碼。定義類compute,將類compute聲明為類person的友元類,其成員如下:(1)私有成員personpn[3]:表達(dá)3個(gè)用戶。(2)公有成員函數(shù)voidsetdata():通過鍵盤輸入3個(gè)用戶的數(shù)據(jù)。voidsort():將數(shù)組pn表達(dá)的用戶信息按姓名的字典順序進(jìn)行排序。voidprint():按照指定格式輸出用戶信息。在主函數(shù)中定義一個(gè)compute對(duì)象,再通過鍵盤輸入每個(gè)用戶的基本信息,調(diào)用相關(guān)成員函數(shù)完畢對(duì)類compute和person的測(cè)試。輸入/輸出示例(下劃線部分為鍵盤輸入):輸入姓名和電話號(hào)碼:Jeorge?2121212Mike 34545454Adam?34676767排序后用戶信息為:姓名電話號(hào)碼Adam 34676767Jeorge 32121212Mike34545454【題目】編程將一個(gè)二維數(shù)組元素變換為逆向存放。即按元素在內(nèi)存中的物理排列位置,最前面的元素變成最后面的元素,前面第二個(gè)元素變成最后倒數(shù)第二個(gè)元素,依此類推。如:原始二維數(shù)組為:,逆向存放后變?yōu)?。算法提醒:對(duì)二維數(shù)組進(jìn)行變換解決時(shí),可以將二維數(shù)組當(dāng)作一維數(shù)組來解決。試建立一個(gè)類REVARR,完畢上述工作。具體規(guī)定如下:(1)私有數(shù)據(jù)成員inta[M][N]:初始化時(shí),存放原始二維數(shù)組。最終,存放逆向存放后的二維數(shù)組。(2)公有成員函數(shù)REVARR(intx[M][N]):構(gòu)造函數(shù),用形參x初始化數(shù)據(jù)成員a。voidreverse():按題目規(guī)定解決二維數(shù)組。voidshow():按二維方式輸出a數(shù)組值。(3)在主函數(shù)中完畢對(duì)該類的測(cè)試。在程序的開頭,定義符號(hào)常數(shù)M和N的值分別為3和4,表達(dá)數(shù)組的行數(shù)和列數(shù)。在主函數(shù)中定義數(shù)組intdata[M][N],其初值如上。定義一個(gè)REVARR類的對(duì)象arr,并用數(shù)組dat(yī)a初始化該對(duì)象的成員a,輸出原數(shù)組值;然后調(diào)用成員函數(shù)逆序存放二維數(shù)組,最后輸出逆序后的二維數(shù)組?!绢}目】試定義一個(gè)類Array,實(shí)現(xiàn)由一個(gè)二維數(shù)組派生出另一個(gè)新二維數(shù)組的操作。新數(shù)組的行數(shù)和列數(shù)分別為原數(shù)組的列數(shù)和行數(shù),且其元素值為原數(shù)組中與該元素同序的元素所在行和列的所有元素的平均值。所謂同序元素,是指兩個(gè)數(shù)組中存儲(chǔ)順序相同的兩個(gè)元素。例如,假設(shè)定義兩個(gè)數(shù)組a[4][5],b[5][4];數(shù)組元素b[1][2]為數(shù)組b的第6個(gè)元素,則b[1][2]在數(shù)組a中的同序元素為a的第6個(gè)元素,即a[1][0]。因此,b[1][2]的值為a的第一行第0列所有元素的平均值,即(a[0][0]+a[1][0]+a[2][0]+a[3][0]+a[1][1]+a[1][2]+a[1][3]+a[1][4])/8(其中a[1][0]不反復(fù)使用,見輸入/輸出示例)。具體規(guī)定如下:(1)私有成員floata[4][5],b[5][4];原數(shù)組a和派生數(shù)組b。(2)公有成員Array(intt[4][5]):構(gòu)造函數(shù),用數(shù)組t初始化數(shù)組a,并將數(shù)組b的各元素值置為0。voidfun():按題目中的規(guī)定計(jì)算數(shù)組b的各個(gè)元素值。voidprint():按矩陣形式輸出數(shù)組a和數(shù)組b。(3)在主函數(shù)中定義一個(gè)4行5列的二維數(shù)組,再運(yùn)用它初始化一個(gè)Array對(duì)象,調(diào)用相關(guān)成員函數(shù)完畢對(duì)類Array的測(cè)試。輸入/輸出示例(不涉及橢圓部分):數(shù)組a:1234567891011121314151617181920數(shù)組b:66.3756.757.1257.58.58.8759.259.625101111.37511.7512.12512.513.513.87514.2514.62515【題目】試定義一個(gè)學(xué)生成績(jī)類Score,實(shí)現(xiàn)對(duì)學(xué)生成績(jī)操作。具體規(guī)定如下:(1)私有成員No、Name、Math、Phi、Data、ave;分別表達(dá)學(xué)號(hào)、姓名、數(shù)學(xué)、物理、數(shù)據(jù)結(jié)構(gòu)、平均分,數(shù)據(jù)類型根據(jù)數(shù)據(jù)的性質(zhì)自定。(2)公有成員Average():計(jì)算學(xué)生平均分。Write():輸入學(xué)生信息。Display():顯示學(xué)生信息。(3)在主函數(shù)中用Score類定義學(xué)生成績(jī)對(duì)象數(shù)組s[3]。用Write()輸入學(xué)生成績(jī),用Average()計(jì)算每個(gè)學(xué)生的平均分,最后用Display()顯示每個(gè)學(xué)生的成績(jī)。實(shí)驗(yàn)數(shù)據(jù):NoNameMathPhiDataAve1001??Zhou80 ?70601002 Chen 90?80851003??Wang?707589【字符串操作】[題目]定義字符串(string)類,完畢對(duì)字符串的操作。具體規(guī)定如下:(1)私有數(shù)據(jù)成員charstr[80];存放字符串intc;字符串中字符的個(gè)數(shù)。(2)公有成員函數(shù)構(gòu)造函數(shù)WORD(char*s):初始化成員字符串?dāng)?shù)據(jù)str。voidcatstr(stringst):實(shí)現(xiàn)將str與st的str內(nèi)容連接。voidcpystr(stringst):實(shí)現(xiàn)將st的str內(nèi)容復(fù)制到str中。voidchgstr(stringst):實(shí)現(xiàn)將str的內(nèi)容與st的str內(nèi)容互換。voidprint():屏幕輸出字符串。(3)在主程序中實(shí)現(xiàn)以下功能:1、設(shè)計(jì)菜單實(shí)現(xiàn)功能選擇;2、字符串的輸入與賦值;3、字符串的運(yùn)算,涉及:1)連接2)復(fù)制3)互換4、字符串的輸出[題目]建立一個(gè)類WORD,記錄一個(gè)英文字符串中的英文單詞個(gè)數(shù)。字符串中的各英文單詞以一個(gè)空格符分隔。如字符串“Iamastudent"中的英文單詞個(gè)數(shù)為4。具體規(guī)定如下:(1)私有數(shù)據(jù)成員charstr[80]intc;存放字符串str中的英文單詞的個(gè)數(shù)。(2)公有成員函數(shù)構(gòu)造函數(shù)WORD(char*s):初始化成員字符串?dāng)?shù)據(jù)str。voidprocess():記錄字符串中的英文單詞的個(gè)數(shù)。voidprint():屏幕輸出字符串及其英文單詞數(shù)。(3)在主程序中對(duì)該類進(jìn)行測(cè)試。使用測(cè)試字符串"Ithinkitisgoingtobeanicedaytomorrow"運(yùn)營(yíng)結(jié)果:IthinkitisgoingtobeanicedaytomorrowNumber:11【題目】將字符串中指定的英語單詞(字母子串)進(jìn)行單數(shù)變復(fù)數(shù)的解決,單詞之間用非字母分隔。為了簡(jiǎn)化編程,將單詞的單數(shù)變復(fù)數(shù)的規(guī)則是:直接在單詞后加s。例如單詞student的復(fù)數(shù)為students。例如,有下列字符串:Wearestudent,youarestudent,too.指定單詞student,將字符串中所有的student修改為students。解決后的字符串為:Wearestudents,youarestudents,too.試建立一個(gè)類Modistr,完畢以上工作。具體規(guī)定如下:(1)私有數(shù)據(jù)成員char*str;存放指定的字符串;(2)公有成員函數(shù)Modistr(char*s);構(gòu)造函數(shù),動(dòng)態(tài)申請(qǐng)字符串空間,用s所指向的串初始化str;voidprint();輸出字符串str;voidmodify(char*wordp);將wordp所指向的單詞轉(zhuǎn)換為復(fù)數(shù)。~Modistr();析構(gòu)函數(shù)(3)在主函數(shù)中完畢對(duì)該類的測(cè)試。定義類Modistr的對(duì)象mys,用字符串“Wearestudent,youarestudent,too.”初始化mys,調(diào)用函數(shù)modify(char*)完畢將單詞"student"單數(shù)變復(fù)數(shù)的解決。輸出變換前和變換后的字符串。[題目]建立一個(gè)類STRING,將一個(gè)字符串交叉插入到另一字符串中(假定兩字符串等長(zhǎng))。如將字符串“abcde”交叉插入字符串“ABCDE”的結(jié)果為“aAbBcCdDeE”或“AaBbCcDdEe”具體規(guī)定如下:(1)私有數(shù)據(jù)成員charstr1[80];被插入的字符串。charstr2[40];字符串str2將被插入到字符串str1中。(2)公有成員函數(shù)構(gòu)造函數(shù)STRING(char*s1,char*s2):初始化成員數(shù)據(jù)。voidprocess():將字符串str2插入到字符串str1中。voidprint():屏幕輸出被插入后的字符串str1。(3)在主程序中對(duì)該類進(jìn)行測(cè)試。使用測(cè)試字符串“”和“abcdefghij”。運(yùn)營(yíng)結(jié)果:str1=a0b1c2d3e4f5g6h7i8j9str2=abcdefghij【題目】任意輸入一個(gè)字符串,串中連續(xù)出現(xiàn)的相同元素構(gòu)成的子序列稱為平臺(tái),試建立一個(gè)類Str,完畢求出串中最長(zhǎng)平臺(tái)的長(zhǎng)度。例如:若字符串為"jkkkaabbbbaaa",則最長(zhǎng)平臺(tái)為"bbbb",其長(zhǎng)度為4。具體規(guī)定如下:(1)私有數(shù)據(jù)成員char*str:指向動(dòng)態(tài)申請(qǐng)的字符串空間。intmaxlen:str所指向的字符串中最長(zhǎng)平臺(tái)的長(zhǎng)度。(2)公有成員函數(shù)Str(char*p):構(gòu)造函數(shù),動(dòng)態(tài)申請(qǐng)成員str指向的內(nèi)存空間,用p指向的字符串初始化成員str指向的字符串;置maxlen初始值為0。p缺省為空指針(缺省值為0)。~Str():釋放str所指向的動(dòng)態(tài)內(nèi)存空間。voidprocess():求str所指向的字符串中最長(zhǎng)平臺(tái)的長(zhǎng)度。voidshow():輸出字符串及最長(zhǎng)平臺(tái)的長(zhǎng)度。(3)在主函數(shù)中完畢對(duì)該類的測(cè)試。輸入一個(gè)字符串到字符數(shù)組text中,定義一個(gè)Str類的對(duì)象s,用text初始化對(duì)象s,調(diào)用成員函數(shù)求str所指向字符串中最長(zhǎng)平臺(tái)的長(zhǎng)度,輸出字符串及其最長(zhǎng)平臺(tái)的長(zhǎng)度??捎妙}例數(shù)據(jù)作為測(cè)試數(shù)據(jù)。[題目]將一個(gè)字符串中的所有與指定字符串相同的子串用另一個(gè)字符串替換(查找與替換)。規(guī)定:(1)函數(shù)intfind(char*s1,char*s2)的功能是判斷字符串s1(子串)是否在字符串s2(主串)中出現(xiàn),若出現(xiàn),返回出現(xiàn)的起始位置,若未出現(xiàn),則返回-1。(2)函數(shù)voidreplace(char*s1,char*s2,intn1,intn2)的功能是將字符串s1中第n1個(gè)字符起的n2個(gè)字符用字符串s2替換。(3)在主函數(shù)中實(shí)現(xiàn)查找與替換工作,并給出替換的次數(shù)。例如:主串為“Thisbookisaverygoodbook.”,假如待替換的子串為“book”且要替換成“cat”時(shí),替換后的字符串為“Thiscat(yī)isaverygoodcat.”,替換次數(shù)為2;假如待替換的子串為“bok”時(shí),因“bok”未在主串中出現(xiàn),所以,主串不變,替換次數(shù)為0。【題目】試定義一個(gè)類Parity,實(shí)現(xiàn)字符串的奇偶校驗(yàn)。假設(shè)a是由'0'和'1'組成的字符串,為了檢測(cè)傳輸過程中也許出現(xiàn)的錯(cuò)誤,可以在a中加入奇偶校驗(yàn)碼,其方法是把字符串a(chǎn)從左到右按每7個(gè)字符一組提成若干組。例如,假設(shè)a是由18個(gè)字符組成的字符串:010100通過度組之后,將a提成以下3(18/7+1)組:?001100100010010100在每一組字符的后面加入一個(gè)奇偶校驗(yàn)碼,即假如某一組中字符'1'的個(gè)數(shù)為奇數(shù),則加入'1',反之則加入'0',上述字符串a(chǎn)加入奇偶校驗(yàn)碼后變?yōu)椋?001100110001001001001其中下劃線部分為新加入的奇偶校驗(yàn)碼。具體規(guī)定如下:(1)私有成員char*a,*b:分別存儲(chǔ)原始的字符串以及增長(zhǎng)校驗(yàn)碼后的字符串。intn:存儲(chǔ)原始字符串的長(zhǎng)度。(2)公有成員Parity(char*aa,intnn):構(gòu)造函數(shù),用aa和nn分別初始化數(shù)據(jù)成員a和n,并為指針b動(dòng)態(tài)分派n+n/7+2個(gè)字節(jié)數(shù)的內(nèi)存空間。voidfun():為字符串a(chǎn)增長(zhǎng)校驗(yàn)碼,并將結(jié)果存入字符串b中。voidprint():輸出字符串a(chǎn)和b。~Parity():釋放動(dòng)態(tài)分派的內(nèi)存空間。(3)在主函數(shù)中定義一個(gè)由'0'和'1'組成的字符串,并用其初始化Parity對(duì)象,調(diào)用相關(guān)成員函數(shù)完畢對(duì)類Parity的測(cè)試。輸入/輸出示例(輸出不含下劃線): 原字符串為:010100加入校驗(yàn)碼后的字符串為:[題目]建立一個(gè)類STR,連接兩個(gè)字符串后,將結(jié)果字符串中的字符排成升序。例如,字符串s1的值為“pear”,字符串s2的值為“apple”,將s1與s2連接后得到字符串“pearapple”,存入字符數(shù)組s3,排序后得“aaee(cuò)lpppr”。具體規(guī)定如下:(1)私有數(shù)據(jù)成員chars1[40],s2[40];存放兩個(gè)原始字符串。chars3[80];存放結(jié)果字符串。(2)公有成員函數(shù)STR(chara[],charb[]):構(gòu)造函數(shù),用字符串參數(shù)a和b初始化數(shù)據(jù)成員字符串s1和s2。voidconsort():合并字符串后,再對(duì)其中的字符排序。voidshow():輸出兩個(gè)原始字符串和結(jié)果字符串。(3)在主程序中定義兩個(gè)字符數(shù)組chara[80],b[80],任意輸入兩個(gè)字符串,再定義一個(gè)STR類對(duì)象str,用字符串a(chǎn)和b初始化該對(duì)象,然后按上述規(guī)定測(cè)試該類。可自行輸入任意兩個(gè)字符串做測(cè)試數(shù)據(jù)?!菊麛?shù)與字符串互相轉(zhuǎn)換】[題目]定義一個(gè)字符串類STR,實(shí)現(xiàn)依次提取指定字符串中所有連續(xù)數(shù)字組成的數(shù)值。具體規(guī)定如下:(1)私有數(shù)據(jù)成員·char*st;采用動(dòng)態(tài)存儲(chǔ)方式存放字符串?!ぃ閚ta[20],n;a的元素是st中相鄰數(shù)字組成的數(shù)值,n為a數(shù)組的元素個(gè)數(shù)。(2)公有成員函數(shù)·STR(char*s):構(gòu)造函數(shù),初始化私有數(shù)據(jù)成員。·voidfun():功能函數(shù),完畢數(shù)值提取工作?!oidprint():功能函數(shù),輸出字符串st及提取出的數(shù)據(jù)?!STR();析構(gòu)函數(shù),釋放動(dòng)態(tài)內(nèi)存。(3)編寫一個(gè)程序測(cè)試該類。測(cè)試字符串為”103anbb18cfg7d3456hiy78j”。運(yùn)營(yíng)結(jié)果:str=103anbb18cfg7d3456hiy78ja[5]={103,18,7,3456,78}【進(jìn)制轉(zhuǎn)換】[題目]建立一個(gè)類Pl(wèi)us,實(shí)現(xiàn)兩個(gè)不同進(jìn)制的正整數(shù)相加,參與計(jì)算的兩個(gè)正整數(shù)均用字符串表達(dá),若字符串第一個(gè)字符為“0”,但第二個(gè)字符不為“x”或“X”,則表達(dá)八進(jìn)制數(shù);若前兩個(gè)字符為“0x”或“0X”,則表達(dá)十六進(jìn)制數(shù),其他情況為十進(jìn)制數(shù)。計(jì)算結(jié)果用十進(jìn)制整數(shù)表達(dá)。具體規(guī)定如下:(1)私有數(shù)據(jù)成員·char*p1,*p2;p1,p2指向以字符串形式表達(dá)的參與加法運(yùn)算的兩個(gè)正整數(shù)。·ints;存儲(chǔ)兩個(gè)正整數(shù)相加的結(jié)果。(2)公有成員函數(shù)·Pl(wèi)us(char*st1,char*st2):構(gòu)造函數(shù),初始化數(shù)據(jù)成員p1和p2。·intdec(char*t,intn):將字符串t表達(dá)的n進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制整數(shù),并將結(jié)果返回。·intnum(char*t):擬定字符串t表達(dá)的進(jìn)制后,調(diào)用函數(shù)dec()將該字符串轉(zhuǎn)換為十進(jìn)制整數(shù),并將結(jié)果返回。·voidpocess():運(yùn)用函數(shù)num()實(shí)現(xiàn)數(shù)據(jù)成員指向的兩個(gè)整數(shù)的加法運(yùn)算,結(jié)果存入數(shù)據(jù)成員s中?!oidprint():按一定格式輸出計(jì)算結(jié)果?!Plus():析構(gòu)函數(shù),釋放動(dòng)態(tài)分派的存儲(chǔ)空間。(3)在主程序中輸入兩個(gè)字符串(八進(jìn)制、十進(jìn)制或十六進(jìn)制形式),運(yùn)用其初始化一個(gè)Plus對(duì)象。調(diào)用相關(guān)成員函數(shù)完畢對(duì)類Plus的測(cè)試。輸入/輸出示例(下劃線部分為鍵盤輸入):輸入兩個(gè)整數(shù):0340xA3c計(jì)算結(jié)果為:034+0xA3c=28+2620=2648【運(yùn)算符重載】[題目]建一個(gè)類Set,重載運(yùn)算符*,實(shí)現(xiàn)集合(用數(shù)組表達(dá))的交(∩)運(yùn)算。集合中的元素不能相同。兩個(gè)集合的交僅包含兩個(gè)集合中共同存在的。如:集合 s1={1,2,3,4,5,6),s2={3,5,7,9,11),則:s1∩s2={3,5}。具體規(guī)定如下:(1)私有數(shù)據(jù)成員·doubleelems[20];存放集合中的元素?!ntlens;集合中的元素個(gè)數(shù),且lens<=20;空集時(shí)值為0。(2)公有成員函數(shù)·Set(doublea[],intn);定義構(gòu)造函數(shù),給私有數(shù)據(jù)成員初始化。·intInset(doublee);判斷e是否在集合elems中,若在,返回1;否則返回0。·Setoperat(yī)or*(Set);重載運(yùn)算符*·Setoperator=(Set&);重載運(yùn)算符=·voidprint();//輸出向量的各元素值(3)在主程序中定義一個(gè)類Set的對(duì)象a,b,c。調(diào)用相應(yīng)函數(shù)進(jìn)行測(cè)試。[題目]定義一個(gè)描述矩陣的類Array,重載“+”運(yùn)算符完畢二個(gè)矩陣的加法。具體規(guī)定如下:(1)私有數(shù)據(jù)成員·doubleelems[3][3];存放3×3實(shí)數(shù)矩陣。(2)公有成員函數(shù)·Array(doublea[3][3]);定義構(gòu)造函數(shù),給私有數(shù)據(jù)成員初始化?!ぃ羠rayoperat(yī)or+(Array);重載運(yùn)算符+,實(shí)現(xiàn)矩陣的加法運(yùn)算。·Arrayoperat(yī)or=(Array&);重載運(yùn)算符=,實(shí)現(xiàn)矩陣的賦值。·voidprint();輸出3×3實(shí)數(shù)矩陣。(3)在主函數(shù)中定義矩陣對(duì)象a1、a2、a3(測(cè)試數(shù)據(jù)自定),進(jìn)行矩陣加法a3=a1+a2運(yùn)算,并輸出矩陣a1、a2、a3的所有元素值。[題目]設(shè)計(jì)一個(gè)日期型數(shù)據(jù)類型Date,實(shí)現(xiàn)日期的相關(guān)運(yùn)算。具體規(guī)定如下:(1)私有數(shù)據(jù)成員·charday[11];存放日期,格式為:yyyy-mm-dd。(2)公有成員函數(shù)·Date(char*);定義構(gòu)造函數(shù),給私有數(shù)據(jù)成員初始化。·intweek();計(jì)算出該日是星期幾?!ateoperator+(int);重載運(yùn)算符+,實(shí)現(xiàn)一個(gè)日期與天數(shù)相加?!ntoperator-(Date);重載運(yùn)算符-,兩個(gè)日期對(duì)象相減,返回相隔的天數(shù)。·Dateoperator=(Date&);重載運(yùn)算符=,實(shí)現(xiàn)日期賦值?!ntoperator==(Date);重載運(yùn)算符==,判斷兩日期對(duì)象是否相等,相等返回1,否則返回0?!oidprint();輸出日期。(3)在主函數(shù)中定義日期對(duì)象d1、d2、d3,完畢對(duì)Date類的測(cè)試。提醒:星期的計(jì)算公式為W=(((C/4)-2*C+y+(y/4)+(13*(month+1)/5)+day-1)+700)%7,其中:C為年份的前兩位數(shù);y即為年份的后兩位數(shù);month為輸入日期的月份,day為輸入日期的天數(shù)。W為0時(shí),是星期天,為1時(shí)是星期一......為6是則為星期六。[題目]設(shè)計(jì)多項(xiàng)式類Polynomial,實(shí)現(xiàn)兩多項(xiàng)式相加。具體規(guī)定如下:(1)私有數(shù)據(jù)成員·doublea[10][2];存放多項(xiàng)式,包含一個(gè)系數(shù)和一個(gè)指數(shù)。例如:2X4的系數(shù)為2,指數(shù)為4?!ntn;存放多項(xiàng)式的項(xiàng)數(shù)(2)公有成員函數(shù)·Polynomial(doubleb[][2],intx);定義構(gòu)造函數(shù),給私有數(shù)據(jù)成員初始化?!olynomialoperat(yī)or+(Polynomial);重載運(yùn)算符+,實(shí)現(xiàn)兩個(gè)多項(xiàng)式相加。·Polynomialoperator+=(Polynomial&);重載運(yùn)算符+=,實(shí)現(xiàn)兩個(gè)多項(xiàng)式相加賦值?!olynomialoperator=(Polynomial&);重載運(yùn)算符=,實(shí)現(xiàn)多項(xiàng)式賦值。·voidprint();輸出多項(xiàng)式。(3)在主函數(shù)中完畢對(duì)Polynomial類的測(cè)試。【數(shù)的因子計(jì)算】【題目】試定義一個(gè)類Test,對(duì)給定的正整數(shù)n,找出所有分母為n,且大小介于1/4和1/3之間的最簡(jiǎn)分?jǐn)?shù)(即分子和分母除1外無公因子)。具體規(guī)定如下:(1)私有成員intn:存放指定滿足條件的最簡(jiǎn)分?jǐn)?shù)的分母。intdata[20]:存放所有滿足條件的分子。intnum:存放滿足條件的最簡(jiǎn)分?jǐn)?shù)的個(gè)數(shù)。(2)公有成員Test(intx):構(gòu)造函數(shù),運(yùn)用x初始化n,將num置為0。intjudge(intk):判斷分子k與分母n能否構(gòu)成最簡(jiǎn)分?jǐn)?shù),若是最簡(jiǎn)分?jǐn)?shù)返回1,否則返回0。voidprocess():求滿足條件的分子,并依次存入數(shù)組dat(yī)a。將分?jǐn)?shù)個(gè)數(shù)存入num。voidprint():輸出滿足條件的分?jǐn)?shù)。(3)在主函數(shù)中定義Test類的對(duì)象t,調(diào)用相關(guān)成員函數(shù)完畢對(duì)類Test的測(cè)試。輸入/輸出示例(假設(shè)n的值為100):分母為100,且介于1/4和1/3之間的最簡(jiǎn)分?jǐn)?shù)為:27/100 29/100 31/100?33/100[題目]分?jǐn)?shù)相加,兩個(gè)分?jǐn)?shù)分別是1/5和7/20,它們相加后得11/20。方法是先求出兩個(gè)分?jǐn)?shù)分母的最小公倍數(shù),通分后,再求兩個(gè)分子的和,最后約簡(jiǎn)結(jié)果分?jǐn)?shù)的分子和分母(假如兩個(gè)分?jǐn)?shù)相加的結(jié)果是4/8,則必須將其約簡(jiǎn)成最簡(jiǎn)分?jǐn)?shù)的形式1/2),即用分子分母的最大公約數(shù)分別除分子和分母。求m、n最大公約數(shù)的一種方法為:將m、n較小的一個(gè)數(shù)賦給變量k,然后分別用{k,k-1,k-2,…,1}中的數(shù)(遞減)去除m和n,第一個(gè)能把m和n同時(shí)除盡的數(shù)就是m和n的最大公約數(shù)。假定m、n的最大公約數(shù)是v,則它們的最小公倍數(shù)是m*n/v。試建立一個(gè)分?jǐn)?shù)類Fract,完畢兩個(gè)分?jǐn)?shù)相加的功能。具體規(guī)定如下:(1)私有數(shù)據(jù)成員intnum,den;num為分子,den為分母。(2)公有成員函數(shù)Fract(inta=0,intb=1):構(gòu)造函數(shù),用a和b初始化分子num、分母den。intgcd(intm,intn):求m、n的最大公約數(shù)。此函數(shù)供add()成員函數(shù)調(diào)用。Fractadd(Fractf):將參數(shù)分?jǐn)?shù)f與對(duì)象自身相加,返回約簡(jiǎn)后的分?jǐn)?shù)對(duì)象。voidshow():按照num/den的形式在屏幕上顯示分?jǐn)?shù)。(3)在主程序中定義兩個(gè)分?jǐn)?shù)對(duì)象f1和f2,其初值分別是1/5和7/20,通過f1調(diào)用成員函數(shù)add完畢f1和f2的相加,將得到的分?jǐn)?shù)賦給分?jǐn)?shù)對(duì)象f3,顯示分?jǐn)?shù)對(duì)象f3。建立一個(gè)類NUM,求指定范圍內(nèi)的所有素?cái)?shù)(質(zhì)數(shù))。具體規(guī)定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中科院2025版聘用合同崗位職責(zé)詳細(xì)說明書4篇
- 2025年度建筑室內(nèi)空氣凈化與裝修合同2篇
- 智能灌溉技術(shù)的未來應(yīng)用前景
- 2025版旅游行業(yè)采購合同簽訂與旅游服務(wù)保障協(xié)議3篇
- 課題申報(bào)參考:農(nóng)村父母教養(yǎng)效能感與幼兒家庭生活質(zhì)量的關(guān)系及干預(yù)研究
- 二零二五版棉紗出口退稅及政策支持合同3篇
- 2025年度個(gè)人財(cái)產(chǎn)抵押反擔(dān)保合同模板創(chuàng)新版4篇
- 2025版木門安裝與維修服務(wù)合同4篇
- 二零二五版民法典離婚協(xié)議書樣本與專業(yè)律師服務(wù)協(xié)議4篇
- 二零二五年度智能農(nóng)機(jī)租賃服務(wù)合同模板4篇
- 焊接機(jī)器人在汽車制造中應(yīng)用案例分析報(bào)告
- 合成生物學(xué)在生物技術(shù)中的應(yīng)用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財(cái)務(wù)分析報(bào)告
- 無違法犯罪記錄證明申請(qǐng)表(個(gè)人)
- 電捕焦油器火災(zāi)爆炸事故分析
- 大學(xué)生勞動(dòng)教育PPT完整全套教學(xué)課件
- 繼電保護(hù)原理應(yīng)用及配置課件
- 《殺死一只知更鳥》讀書分享PPT
- 蓋洛普Q12解讀和實(shí)施完整版
- 2023年Web前端技術(shù)試題
評(píng)論
0/150
提交評(píng)論