C、C編程題目和代碼_第1頁
C、C編程題目和代碼_第2頁
C、C編程題目和代碼_第3頁
C、C編程題目和代碼_第4頁
C、C編程題目和代碼_第5頁
已閱讀5頁,還剩79頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、-. z.目 錄TOC o 1-3 h u HYPERLINK l _Toc1920 1.矩陣左轉(zhuǎn) PAGEREF _Toc1920 2 HYPERLINK l _Toc22094 2.函數(shù)指針函數(shù)調(diào)用 PAGEREF _Toc22094 4 HYPERLINK l _Toc1410 3.數(shù)字判斷指針為函數(shù)參數(shù) PAGEREF _Toc1410 7 HYPERLINK l _Toc4092 4.字符串比擬字符指針 PAGEREF _Toc4092 8 HYPERLINK l _Toc10108 5.秘鑰加密法指針應(yīng)用 PAGEREF _Toc10108 10 HYPERLINK l _Toc3

2、2417 6.誰是老二構(gòu)造體 PAGEREF _Toc32417 12 HYPERLINK l _Toc6383 7.抄襲查找構(gòu)造體+指針+函數(shù) PAGEREF _Toc6383 15 HYPERLINK l _Toc16575 8.構(gòu)造和鏈表初步指針+構(gòu)造(冒泡排序) PAGEREF _Toc16575 18 HYPERLINK l _Toc9042 9.堆棧練習(xí)類和對(duì)象實(shí)驗(yàn)一 PAGEREF _Toc9042 20 HYPERLINK l _Toc29442 10.隨機(jī)數(shù)練習(xí)類和對(duì)象實(shí)驗(yàn)一 PAGEREF _Toc29442 22 HYPERLINK l _Toc19816 11.買彩游戲

3、類和對(duì)象實(shí)驗(yàn)一 PAGEREF _Toc19816 25 HYPERLINK l _Toc4801 12.堆棧練習(xí)擴(kuò)展類和對(duì)象實(shí)驗(yàn)一 PAGEREF _Toc4801 28 HYPERLINK l _Toc29258 13.堆棧排序練習(xí)類和對(duì)象實(shí)驗(yàn)一 PAGEREF _Toc29258 30 HYPERLINK l _Toc32100 14.Date(類與對(duì)象) PAGEREF _Toc32100 32 HYPERLINK l _Toc30116 15.點(diǎn)和圓(類與對(duì)象) PAGEREF _Toc30116 36 HYPERLINK l _Toc15402 16.分?jǐn)?shù)類 PAGEREF _To

4、c15402 39 HYPERLINK l _Toc9975 17.軟件備份(拷貝構(gòu)造函數(shù)) PAGEREF _Toc9975 44 HYPERLINK l _Toc1761 18.升位(拷貝構(gòu)造函數(shù)) PAGEREF _Toc1761 47 HYPERLINK l _Toc13284 19.Equation(類與對(duì)象) PAGEREF _Toc13284 49 HYPERLINK l _Toc32135 20.ple*(類與對(duì)象) PAGEREF _Toc32135 50 HYPERLINK l _Toc18887 設(shè)定復(fù)合類 PAGEREF _Toc18887 51 HYPERLINK l

5、 _Toc22526 Point_Array(類與對(duì)象) PAGEREF _Toc22526 55 HYPERLINK l _Toc18729 Array(類與對(duì)象) PAGEREF _Toc18729 59 HYPERLINK l _Toc1064 軟件備份(拷貝構(gòu)造函數(shù)) PAGEREF _Toc1064 63 HYPERLINK l _Toc16856 分?jǐn)?shù)類 PAGEREF _Toc16856 66=1.矩陣左轉(zhuǎn)輸入一個(gè)2*3的矩陣,將這個(gè)矩陣向左旋轉(zhuǎn)90度后輸出比方現(xiàn)在有2*3矩陣:1 2 34 5 6向左旋轉(zhuǎn)90度后的矩陣變?yōu)椋? 62 51 4要求:除了矩陣創(chuàng)立和數(shù)據(jù)輸入可以使用

6、數(shù)組和數(shù)組下標(biāo)的方法,其他過程對(duì)矩陣的任何訪問都必須使用指針提示:m行n列的二維矩陣,第i行第j列的元素與首元素的距離為i*n+j,序號(hào)從0開場(chǎng)計(jì)算輸入第一行輸入t表示有t個(gè)測(cè)試實(shí)例連續(xù)兩行輸入一個(gè)2*3的矩陣的數(shù)據(jù)依次輸入t個(gè)實(shí)例輸出依次輸出左轉(zhuǎn)后的矩陣結(jié)果在輸出的每行中,每個(gè)數(shù)據(jù)之間都用空格隔開,最后一個(gè)數(shù)據(jù)后面也帶有空格樣例輸入21 2 34 5 64 5 67 8 9樣例輸出3 6 2 5 1 4 6 9 5 8 4 7 #includeusing namespace std;void change(int *p,int *q);int main()int a23,b32;int i,

7、j,t;cint;while(t-)for(i=0;i2;i+)for(j=0;jaij;change(a0,b0);void change(int *p,int *q)int i,j;for(i=0;i2;i+)for(j=0;j3;j+)*(q+4-2*j+i)=*(p+3*i+j);/b2-ji=aij;for(i=0;i3;i+)for(j=0;j2;j+)cout*(q+2*i+j) ;coutendl;=2.函數(shù)指針函數(shù)調(diào)用定義并實(shí)現(xiàn)三個(gè)函數(shù):第一個(gè)函數(shù)是整數(shù)函數(shù),返回類型為整數(shù),參數(shù)是一個(gè)整數(shù)變量,操作是求該變量的平方值第二個(gè)函數(shù)是浮點(diǎn)數(shù)函數(shù),返回類型為浮點(diǎn)數(shù),參數(shù)是一個(gè)浮點(diǎn)數(shù)變

8、量,操作是求該變量的平方根值。求平方根可以使用函數(shù)sqrt浮點(diǎn)參數(shù),將返回該參數(shù)的平方根,在VC中需要頭文件cmath。第三個(gè)函數(shù)是字符串函數(shù),無返回值,參數(shù)是一個(gè)字符串指針,操作是把這個(gè)字符串所有小寫字母變成大寫。要求:定義三個(gè)函數(shù)指針分別指向這三個(gè)函數(shù),然后根據(jù)調(diào)用類型使用函數(shù)指針來調(diào)用這三個(gè)函數(shù)。不能直接調(diào)用這三個(gè)函數(shù)。如果類型為I,則通過指針調(diào)用整數(shù)函數(shù);如果類型為F,則通過指針調(diào)用浮點(diǎn)數(shù)函數(shù);如果類型為S,則通過指針調(diào)用字符串函數(shù)輸入第一行輸入一個(gè)t表示有t個(gè)測(cè)試實(shí)例每行先輸入一個(gè)大寫字母,表示調(diào)用類型,然后再輸入相應(yīng)的參數(shù)依次輸入t行輸出每行輸出調(diào)用函數(shù)后的結(jié)果樣例輸入5S she

9、nzhenI 25F 6.25I 31S China樣例輸出SHENZHEN6252.5961CHINA#include#include#includeusing namespace std;int fuck1(int a);float fuck2(float a);void fuck3(char *a);int main() int (*INT)(int); float (*FLOAT)(float); void (*CHAR)(char *a); char ch,b30; int a,t; float c; cint; while(t-) cinch; if(ch=I) INT=fuck1

10、; cina; coutINT(a)c; coutFLOAT(c)b; CHAR(b); coutbendl; int fuck1(int a) return a*a;float fuck2(float a) return sqrt(a);void fuck3(char *a) int i,l=strlen(a); for(i=0;i=a & *(a+i)=z) *(a+i)=*(a+i)-32;=3.數(shù)字判斷指針為函數(shù)參數(shù)輸入一個(gè)字符串,判斷這個(gè)字符串是否一個(gè)完全整數(shù)值的字符串,例如輸入1234,則表示整數(shù)1234,輸入12a3就表示只是一個(gè)字符串,不是一個(gè)整數(shù)要求編寫函數(shù)isNumber,

11、參數(shù)是一個(gè)字符指針,返回值是整數(shù)類型如果字符串表示一個(gè)整數(shù),則計(jì)算出這個(gè)整數(shù)并且返回如果字符串不是表示一個(gè)整數(shù),則返回-1主函數(shù)必須調(diào)用isNumber來判斷字符串,不能使用任何C+自帶或第三方的類似函數(shù)輸入輸入t表示有t個(gè)測(cè)試實(shí)例每行輸入一個(gè)字符串依次輸入t行輸出每行輸出判斷結(jié)果樣例輸入31234567a0890樣例輸出1234-1890#include#includeusingnamespacestd;intisnumber(char*a);intmain()intl,k=0,t;chara20;char*p;p=a;cint;while(t-)cina;coutisnumber(p)en

12、dl;intisnumber(char*a)inti,j,l,m=0;l=strlen(a);for(i=0;il;i+)if(isdigit(ai)m=m*10+ai-0;elsereturn-1;returnm;=4.字符串比擬字符指針編寫一個(gè)函數(shù)比擬兩個(gè)字符串,參數(shù)是兩個(gè)字符指針要求顯式定義,例如char *S, char *T),比擬字符串S和T的大小。如果S大于T,則返回1,如果S小于T則返回-1,如果S與T相等則返回0。比擬規(guī)則:1.把兩個(gè)字符串的一樣位置上的字符進(jìn)展比擬,字符的大小比擬以ASCII值為準(zhǔn)2.在比擬中,如果字符串S的字符大于字符串T的字符的數(shù)量超過小于的數(shù)量,則認(rèn)為

13、S大于T,如果等于則S等于T,如果小于則S小于T例如S為aaccdd,T為eebbbb,每個(gè)位置比擬得到S前兩個(gè)字母都小于T,但后4個(gè)字母都大于T,最終認(rèn)為S大于T3.如果兩個(gè)字符串長(zhǎng)度不同,則更長(zhǎng)的字符串為大在主函數(shù)中輸入兩個(gè)字符串,并調(diào)用該函數(shù)進(jìn)展判斷,在判斷函數(shù)中必須使用函數(shù)參數(shù)的指針進(jìn)展字符比擬輸入輸入t表示有t個(gè)測(cè)試實(shí)例接著每?jī)尚休斎雰蓚€(gè)字符串依次輸入t個(gè)實(shí)例輸出每行輸出一個(gè)實(shí)例的比擬結(jié)果樣例輸入3aaccddeebbbbAAbb+aaEE*-zznnkkaaaaaaa樣例輸出10-1#include#includeusingnamespacestd;intbijiao(char*a

14、,char*b);intmain()chara30,b30;intt;cint;while(t-)cinab;coutbijiao(a,b)n) return1;elseif(m*(b+i)*+;elsey+;if(*y)return1;elseif(*=y)return0;elsereturn-1;=5.秘鑰加密法指針應(yīng)用有一種方式是使用密鑰進(jìn)展加密的方法,就是對(duì)明文的每個(gè)字符使用密鑰上對(duì)應(yīng)的密碼進(jìn)展加密,最終得到密文例如明文是abcde,密鑰是234,則加密方法就是a對(duì)應(yīng)密鑰的2,也就是a偏移2位轉(zhuǎn)化為c;明文b對(duì)應(yīng)密鑰的3,就是b偏移3位轉(zhuǎn)化為e,同理c偏移4位轉(zhuǎn)化為g。這時(shí)候密鑰已經(jīng)使

15、用完,則又重頭開場(chǎng)使用。因此明文的d對(duì)應(yīng)密鑰的2,轉(zhuǎn)化為f,明文的e對(duì)應(yīng)密鑰的3轉(zhuǎn)化為h。所以明文abcde,密鑰234,經(jīng)過加密后得到密文是cegfh。如果字母偏移的位數(shù)超過26個(gè)字母圍,則循環(huán)偏移,例如字母z偏移2位,就是轉(zhuǎn)化為b,同理字母*偏移5位就是轉(zhuǎn)化為c要求:使用三個(gè)指針p、q、s分別指向明文、密鑰和密文,然后使用指針p和q來訪問每個(gè)位置的字符,進(jìn)展加密得到密文存儲(chǔ)在指針s指向的位置。除了變量定義和輸入數(shù)據(jù),其他過程都不能使用數(shù)組下標(biāo)法,必須使用三個(gè)指針來訪問明文、密鑰和密文。提示:當(dāng)指針q已經(jīng)移動(dòng)到密鑰的末尾,但明文仍然沒有完畢,則q就跳回密鑰頭輸入第一行輸入t表示有t個(gè)測(cè)試實(shí)例

16、第二行輸入一個(gè)字符串,表示第一個(gè)實(shí)例的明文第三行輸入一個(gè)數(shù)字串,表示第一個(gè)實(shí)例的密鑰依次輸入t個(gè)實(shí)例輸出每行輸出加密后的密文樣例輸入2abcde234*enOS56樣例輸出cegfhCksU*#include#includeusingnamespacestd;voidchange1(char*d,int*b);voidchange2(char*a,int*b,char*c,intl);intmain()chara30,d30,c30,*p,*s;inti,l,b30,*q,t;cint;while(t-)cinad;change1(d,b);l=strlen(d);change2(a,b,c,

17、l);for(i=0;*(c+i)!=0;i+)coutci;coutendl;voidchange1(char*d,int*b)inti,l=strlen(d);for(i=0;i=a& *(a+i)=z)*(c+i)=(*(a+i)+*(b+i%l)-97)%26+97);else*(c+i)=(*(a+i)+*(b+i%l)-65)%26+65);*(c+i)=0;=6.誰是老二構(gòu)造體題目描述定義一個(gè)構(gòu)造體,包含年月日,表示一個(gè)學(xué)生的出生日期。然后在一群學(xué)生的出生日期中找出誰的出生日期排行第二要求:出生日期的存儲(chǔ)必須使用構(gòu)造體,不能使用其他類型的數(shù)據(jù)構(gòu)造。要求程序全過程對(duì)出生日期的輸入、

18、訪問、輸出都必須使用構(gòu)造。輸入第一行輸入t表示有t個(gè)出生日期每行輸入三個(gè)整數(shù),分別表示年、月、日依次輸入t個(gè)實(shí)例輸出輸出排行第二老的出生日期,按照年-月-日的格式輸出樣例輸入61980 5 61981 8 31980 3 191980 5 31983 9 121981 11 23樣例輸出1980-5-3#includeusingnamespacestd;intsheng(inty,intm,intd);structstudentintyear;intmonth;intday;intsheng;intmain()student a10;student b;intn,i,j;cinn;for(i=

19、0;iai.year;cinai.month;cinai.day;for(i=0;in-1;i+)for(j=0;jaj+1.year)b=aj,aj=aj+1,aj+1=b;for(i=0;i3;i+)ai.sheng=sheng(ai.year,ai.month,ai.day);for(i=0;i2;i+)for(j=0;jaj+1.sheng)b=aj,aj=aj+1,aj+1=b;couta1.year-;couta1.month-;couta1.dayendl;intsheng(inty,intm,intd)intdis=0;switch(m)case1:dis+=31;case2:

20、if(y%400=0 | y%4=0 & y%100!=0)dis+=29;elsedis+=28;case3:dis+=31;case4:dis+=30;case5:dis+=31;case6:dis+=30;case7:dis+=31;case8:dis+=31;case9:dis+=30;case10:dis+=31;case11:dis+=30;case12:dis+=31;returndis-d;=7.抄襲查找構(gòu)造體+指針+函數(shù)題目描述一群學(xué)生的考試試卷,要求對(duì)試卷容進(jìn)展比照,查找是否有抄襲。每試卷包含:*整數(shù)類型、題目1答案字符串類型、題目2答案字符串類型、題目3答案字符串類型要求

21、:使用構(gòu)造體來存儲(chǔ)試卷的信息。定義一個(gè)函數(shù),返回值為一個(gè)整數(shù),參數(shù)是兩個(gè)構(gòu)造體指針,函數(shù)操作是比擬兩試卷的每道題目的答案,如果一樣題號(hào)的答案相似度超過90%,則就認(rèn)為有抄襲,函數(shù)返回抄襲題號(hào),否則返回0。相似度是指在同一題目中,兩個(gè)答案的逐個(gè)位置上的字符兩兩比擬,一樣的數(shù)量大于等于任一個(gè)答案的長(zhǎng)度的90%,就認(rèn)為抄襲。輸入第一行輸入t表示有t試卷第二行輸入第1試卷的學(xué)生*第三行輸入第1試卷的題目1答案第四行輸入第1試卷的題目2答案第五行輸入第1試卷的題目3答案每試卷對(duì)應(yīng)4行輸入依次輸入t試卷的數(shù)據(jù)輸出在一行中,把發(fā)現(xiàn)抄襲的兩個(gè)*和題目號(hào),數(shù)據(jù)之間用單個(gè)空格隔開如果發(fā)現(xiàn)是題目1抄襲,題目號(hào)為1,

22、以此類推輸出順序按照輸入的*順序進(jìn)展輸出樣例輸入52088150555aabcdef11ZZ887766ddcc33447799ZZ2088150333abcdef00AABBCCDDEEZZ668899cc2088150111AABBCCDDEEZZ668899ccabcdef002088150222AABBCFDDeEZZ889966ddabcdef0002088150444aabcdef00AABBCDDDEEcc668899ZZ樣例輸出2088150333 2088150444 22088150111 2088150222 3#include#includeusingnamespace

23、std;int*iao(inta,intb);structpaperintno;chara100;charb100;charc100;intpare(paper *p,paper *q);intmain()paper *a;intn,i,j,k;/ freopen(c:123.t*t,r,stdin);cinn;a=newpapern;for(i=0;iai.no ;cinai.a ;cinai.b ;cinai.c ;for(i=0;in-1;i+)for(j=i+1;jn;j+)k=pare(&ai,&aj);if(k!=0)coutai.no aj.no ka);m=strlen(q-a

24、);l=*iao(l,m);for(i=0;iai=q-ai)*+;if(*=l*9/10)return1;*=0;l=strlen(p-b);m=strlen(q-b);l=*iao(l,m);for(i=0;ibi=q-bi)*+;if(*=l*9/10)return2;*=0;l=strlen(p-c);m=strlen(q-c);l=*iao(l,m);for(i=0;ici=q-ci)*+;if(*=l*9/10)return3;return0;int*iao(inta,intb)if(ab)returna;elsereturnb;=8.構(gòu)造和鏈表初步指針+構(gòu)造(冒泡排序)#incl

25、udeusing namespace std;struct studentint a;student *ne*t;student* create();void fuck(student *head);int main()fuck(create();student* create()student *head,*ps,*pend;head=NULL;ps=new student;cinps-a;pend=ps;while(ps-a)if(head=NULL)head=ps;elsepend-ne*t=ps;pend=ps;ps=new student;cinps-a;pend-ne*t=NULL

26、;delete ps;return(head);void fuck(student *head) student *endpt; /控制循環(huán)比擬 student *p; /臨時(shí)指針變量 student *p1,*p2; p1 = new student; p1-ne*t = head; /注意理解:我們?cè)黾右粋€(gè)節(jié)點(diǎn),放在第一個(gè)節(jié)點(diǎn)的前面,主要是為了便于比擬。因?yàn)榈谝粋€(gè)節(jié)點(diǎn)沒有前驅(qū),我們不能交換地址 head = p1; /讓head指向p1節(jié)點(diǎn),排序完成后,我們?cè)侔裵1節(jié)點(diǎn)釋放掉 for (endpt = NULL; endpt != head; endpt = p) /結(jié)合第6點(diǎn)理解 for

27、 (p = p1 = head; p1-ne*t-ne*t != endpt; p1 = p1-ne*t) if (p1-ne*t-a p1-ne*t-ne*t-a) /如果前面的節(jié)點(diǎn)鍵值比后面節(jié)點(diǎn)的鍵值大,則交換 p2 = p1-ne*t-ne*t; /結(jié)合第1點(diǎn)理解 p1-ne*t-ne*t = p2-ne*t; /結(jié)合第2點(diǎn)理解 p2-ne*t = p1-ne*t; /結(jié)合第3點(diǎn)理解 p1-ne*t = p2; /結(jié)合第4點(diǎn)理解 p = p1-ne*t-ne*t; /結(jié)合第6點(diǎn)理解 p1 = head; /把p1的信息去掉 head = head-ne*t; /讓head指向排序后的第一

28、個(gè)節(jié)點(diǎn) delete p1; /釋放p1 p1 = NULL; /p1置為NULL,保證不產(chǎn)生野指針,即地址不確定的指針變量 while(head-ne*t) coutane*t; coutaendl;=9.堆棧練習(xí)類和對(duì)象實(shí)驗(yàn)一題目描述堆棧是程序設(shè)計(jì)里面一個(gè)很重要的數(shù)據(jù)構(gòu)造,也是指針應(yīng)用的一個(gè)重點(diǎn),請(qǐng)同學(xué)們?cè)O(shè)計(jì)一個(gè)可以放N個(gè)學(xué)生的堆棧,如果滿棧則提示不能再放,如果出棧時(shí)為空,則提示沒有信息可取,用C語言實(shí)現(xiàn)該要求。輸入第一行輸入堆棧的大小;第二行輸入元素?cái)?shù)目;第三行起依次輸入堆棧各元素的值,如果棧滿,則提示:滿棧!。輸出按出棧順序每行輸出各元素的值,如果棧空則提示:???!樣例輸入34TomT

29、imJohnMarry樣例輸出滿棧!JohnTimTom#includeusing namespace std;class fuckprivate:int m,n,i,k;char *a;public:void set(int mu,int nu,char *b)k=0;int i;m=mu;n=nu;a=new char*m;for(i=0;im;i+)ai=new char;for(i=0;i=m-1)cout滿棧!endl;break;if(k=0)cout??眨?0;i-)coutaimn;a=new char*n;for(i=0;in;i+)ai = new char;for(i=0

30、;iai;sb.set(m,n,a);=10.隨機(jī)數(shù)練習(xí)類和對(duì)象實(shí)驗(yàn)一題目描述我們知道福利彩票銷售中也有通過機(jī)選隨機(jī)生成你需要的,現(xiàn)假設(shè)福利彩票共有七個(gè),每個(gè)的區(qū)間為0-30,現(xiàn)在請(qǐng)你利用C語言設(shè)計(jì)一個(gè)生成七個(gè)福利彩票的隨機(jī)數(shù)模擬器,當(dāng)用戶確定下注后,輸出七個(gè)不同的。需要利用隨機(jī)函數(shù)rand()、srand(),具體用法參見參考書。輸入第一行輸入要生成福利彩票的組數(shù);第二行輸入買入彩票的客戶名稱;輸出第一行輸出客戶名稱;第二行為第一組彩票,第三行為第二組彩票,以此類推。樣例輸入2Tom樣例輸出提示#include#include#includeusingnamespacestd;classca

31、ipiaoprivate:intzu;charname20;int*haoma;public:voidset(inta,charn20)zu=a;inti=0;while(ni!=0)namei=ni;i+;namei=0;haoma=newint*zu;for(i=0;izu;i+)haomai=newint7;voidfuzhi()inti,j;srand(unsigned(time(NULL);for(i=0;izu;i+)for(j=0;j7;j+)haomaij=rand()%31;voidprintf()inti=0,j;while(namei!=0)coutnamei;i+;co

32、utendl;for(i=0;izu;i+)for(j=0;j6;j+)couthaomaij ;couthaomaijn;cinname;a.set(n,name);a.fuzhi();a.printf();=11.買彩游戲類和對(duì)象實(shí)驗(yàn)一題目描述參見隨機(jī)數(shù)練習(xí)要求:我們知道福利彩票銷售中也有通過機(jī)選隨機(jī)生成你需要的,現(xiàn)假設(shè)福利彩票共有七個(gè),每個(gè)的區(qū)間為0-30,現(xiàn)在請(qǐng)你利用C語言設(shè)計(jì)一個(gè)生成七個(gè)福利彩票的隨機(jī)機(jī)器,當(dāng)用戶確定下注后,輸出七個(gè)不同的。需要利用隨機(jī)函數(shù)rand()、srand(),具體用法參見參考書。 在此根底上,你已有了一個(gè)n組的福利彩票無需隨機(jī)生成,現(xiàn)假定給出搖獎(jiǎng)后的一組為:

33、6,13,1,24,28,8,10,把你所買的每組依次匹配,當(dāng)從左至右各位置上的一一一樣,則表示你中了一等獎(jiǎng),如果有5、6個(gè)一樣則為二等獎(jiǎng),余下大于兩個(gè)以上一樣的均為三等獎(jiǎng),編程實(shí)現(xiàn)該游戲規(guī)則!輸入第一行輸入所買彩票的組數(shù);第二行輸入買入彩票的客戶名稱;第三行開場(chǎng)每行輸入每組福利彩票的;最后行輸入搖獎(jiǎng)中獎(jiǎng)。輸出第一行輸出客戶名稱;第二行根據(jù)搖獎(jiǎng)輸出客戶所中的獎(jiǎng)金等級(jí),比方:恭喜你 中了多少注N等獎(jiǎng)!或者:加油!繼續(xù)!樣例輸入2Tom2,5,3,24,10,8,920,23,30,1,5,9,26,13,1,24,28,8,10樣例輸出恭喜Tom中了1注三等獎(jiǎng)!提示#include#includ

34、eusingnamespacestd;classcaipiaoprivate:intzu;charname20;int*haoma;public:voidset(intp,charn20,int*a)inti,j;zu=p;haoma=newint*zu;for(i=0;izu+1;i+)haomai=newint7;for(i=0;izu+1;i+)for(j=0;j7;j+)haomaij=aij;i=0;while(ni!=0)namei=ni;i+;namei=0;voidpare()inti,yi=0,er=0,san=0;for(i=0;i=2 & tong(haomai)=5)s

35、an+;if(yi)cout恭喜name中了yi注一等獎(jiǎng)!endl;if(er)cout恭喜name中了er注二等獎(jiǎng)!endl;if(san)cout恭喜name中了san注三等獎(jiǎng)!endl;if(yi&er&san)cout加油!繼續(xù)!endl;inttong(intb7)inti,k=0;for(i=0;inname;cao=newint*n+1;for(i=0;in+1;i+)caoi=newint7;for(i=0;in+1;i+)for(j=0;jcaoijfuck;cincaoi6;a.set(n,name,cao);a.pare();deletecao;=12.堆棧練習(xí)擴(kuò)展類和對(duì)

36、象實(shí)驗(yàn)一題目描述 參見堆棧練習(xí)要求:堆棧是程序設(shè)計(jì)里面一個(gè)很重要的數(shù)據(jù)構(gòu)造,也是指針應(yīng)用的一個(gè)重點(diǎn),請(qǐng)同學(xué)們?cè)O(shè)計(jì)一個(gè)可以放N個(gè)學(xué)生的堆棧,如果滿棧則提示不能再放,如果出棧時(shí)為空,則提示沒有信息可取,用C語言實(shí)現(xiàn)該要求。 現(xiàn)假設(shè)你已創(chuàng)立了一個(gè)包含N各元素的堆棧,此時(shí)輸入一個(gè)學(xué)生的,查詢是否在堆棧中?如果堆棧包含給學(xué)生,則輸出該學(xué)生并提示查詢成功,反之則提示該學(xué)生不在堆棧!輸入第一行輸入堆棧的大?。坏诙衅鹨来屋斎攵褩8髟氐闹?;最后一行輸入需要查詢的學(xué)生。輸出如果匹配則輸出:查詢*成功!如果匹配失敗則輸出:*不在堆棧!樣例輸入2TomMarryTom樣例輸出查詢Tom成功!提示#include#

37、includeusingnamespacestd;classfuckprivate:intm,i,k;char*a;public:voidset(intmu,char*b)k=0;inti;m=mu;a=newchar*m;for(i=0;im+1;i+)ai=newchar;for(i=0;im+1;i+)ai=bi;voidfind()inti;for(i=0;im;i+)if(strcmp(ai,am)=0)cout查詢am成功!endl;k=1;if(k=0)coutam不在堆棧!m;a=newchar*m+1;for(i=0;im+1;i+)ai = newchar;for(i=0;

38、iai;sb.set(m,a);sb.find();=13.堆棧排序練習(xí)類和對(duì)象實(shí)驗(yàn)一題目描述 參見堆棧練習(xí)要求:堆棧是程序設(shè)計(jì)里面一個(gè)很重要的數(shù)據(jù)構(gòu)造,也是指針應(yīng)用的一個(gè)重點(diǎn),請(qǐng)同學(xué)們?cè)O(shè)計(jì)一個(gè)可以放N個(gè)學(xué)生的堆棧,如果滿棧則提示不能再放,如果出棧時(shí)為空,則提示沒有信息可取,用C語言實(shí)現(xiàn)該要求。我們?cè)黾右粋€(gè)數(shù)組,先把輸入的依次入棧,再依次一個(gè)個(gè)取出來放入該數(shù)組,當(dāng)堆棧為空,則對(duì)數(shù)組里面的數(shù)據(jù)進(jìn)展從小到大排序,最后輸出經(jīng)過排序后各字符串。輸入第一行輸入堆棧的大?。坏诙衅鹨来屋斎攵褩8髟氐闹?!輸出每行依次輸出排好序后堆棧各元素的值!樣例輸入2TomMarry樣例輸出MarryTom提示#inc

39、lude#includeusingnamespacestd;classfuckprivate:intm,i,k;chara2020,b2020;public:voidset(intmu,char*cao)inti;k=0;m=mu;for(i=0;im;i+)strcpy(ai,caoi);voidinsert()inti,j;for(i=0;im-1;i+)for(j=0;j0)strcpy(bi,aj);strcpy(aj,aj+1);strcpy(aj+1,bi);voidprintf()inti;for(i=0;im;i+)coutaim;a=newchar*m;for(i=0;im;

40、i+)ai = newchar;for(i=0;iai;sb.set(m,a);sb.insert();sb.printf(); =14.Date(類與對(duì)象)題目描述下面是一個(gè)日期類的定義,請(qǐng)?jiān)陬愅鈱?shí)現(xiàn)其所有的方法,并在主函數(shù)中生成對(duì)象測(cè)試之。輸入測(cè)試數(shù)據(jù)的組數(shù)t第一組測(cè)試數(shù)據(jù)的年 月 日輸出輸出今天的日期輸出明天的日期樣例輸入42012 1 32012 2 282012 3 312012 4 30樣例輸出Today is 2012/01/03Tomorrow is 2012/01/04Today is 2012/02/28Tomorrow is 2012/02/29Today is 2012

41、/03/31Tomorrow is 2012/04/01Today is 2012/04/30Tomorrow is 2012/05/01#include#includeusingnamespacestd;classDateprivate:intyear,month,day;public:Date();Date(inty,intm,intd);intgetYear();intgetMonth();intgetDay();voidsetDate(inty,intm,intd);voidprint();voidaddOneDay();Date:Date()year=1900;month=1;day

42、=1;Date:Date(inty,intm,intd):year(y),month(m),day(d)intDate:getYear()returnyear;intDate:getMonth()returnmonth;intDate:getDay()returnday;voidDate:setDate(inty,intm,intd)voidDate:print()coutToday is year/setfill(0)setw(2)month/setfill(0)setw(2)dayendl;voidDate:addOneDay()if(month=2)if(year%400=0 | yea

43、r%100!=0 & year%4=0)if(day=29)month=3,day=1;elseday+=1;elseif(day=28)month=3,day=1;elseday+=1;elseif(month=1|month=3|month=5|month=7|month=8|month=10)if(day=31)month+=1,day=1;elseday+=1;elseif(month=4|month=6|month=9|month=11)if(day=30)month+=1,day=1;elseday+=1;elseif(month=12)if(day=31)year+=1,mont

44、h=1,day=1;elseday+=1;coutTomorrow is year/setfill(0)setw(2)month/setfill(0)setw(2)dayt;while(t-)cinyearmonthday;Date sb(year,month,day);sb.print();sb.addOneDay();=15.點(diǎn)和圓(類與對(duì)象)題目描述設(shè)計(jì)一個(gè)點(diǎn)類Point,包含屬性:*坐標(biāo)和y坐標(biāo),方法:設(shè)定坐標(biāo)SetPoint,獲取*坐標(biāo)Get*,獲取y坐標(biāo)GetY設(shè)計(jì)一個(gè)圓類Circle,包含屬性:圓心坐標(biāo)*和y、半徑r;方法包括:1. 設(shè)定圓心SetCenter,設(shè)置圓心*坐標(biāo)和y

45、坐標(biāo)2. 設(shè)定半徑SetRadius,設(shè)置半徑長(zhǎng)度3. 計(jì)算面積getArea,計(jì)算公式:面積=3.14*r*r4. 計(jì)算周長(zhǎng)getLength,計(jì)算公式:周長(zhǎng)=2*3.14*r5. 包含Contain,判斷一個(gè)圓是否包含一個(gè)點(diǎn),計(jì)算圓心到這個(gè)點(diǎn)的距離,然后和半徑做比擬,大于則不包含,小于等于則包含注意:提交代碼時(shí)必須用注釋劃分出三個(gè)區(qū)域:類定義、類實(shí)現(xiàn)、主函數(shù),如下/類定義class * / 寫類定義代碼;/類實(shí)現(xiàn)void Process:*() / 寫類定義代碼;/主函數(shù)int main() /自定義一些變量 /創(chuàng)立一個(gè)圓對(duì)象和一個(gè)點(diǎn)對(duì)象/輸入圓對(duì)象和點(diǎn)對(duì)象的屬性數(shù)值,并做初始化/輸出圓的

46、面積和圓的周長(zhǎng)/輸出圓是否包含點(diǎn),包含則輸出yes,否則輸出no return 0;輸入第一行輸入圓的三個(gè)參數(shù):圓心的*和y坐標(biāo),半徑第二行輸入點(diǎn)的兩個(gè)參數(shù):*和y坐標(biāo)輸出第一行輸出圓的面積和周長(zhǎng),結(jié)果之間用空格隔開第二行輸出圓是否包含點(diǎn),包含則輸出yes,否則輸出no樣例輸入1 1 12 2樣例輸出3.14 6.28no提示求兩點(diǎn)距離的公式 dis =sqrt(*1-*2)2 + (y1-y2)2 , 2表示平方,sqrt表示開平方根,本公式只是表示含義,不是真實(shí)代碼在C+使用sqrt函數(shù)可以求平方根,頭文件包含cmath#include#includeusingnamespacestd;/

47、類定義classPointprivate:int*,y;public:Point(int*,inty);intget*();intgety();classCircleprivate:int*,y,r;public:Circle(int*,inty,intr);floatgetarea();floatgetlenth();intiscontain(int,int);/類實(shí)現(xiàn)Point:Point(int*1,inty1):*(*1),y(y1)intPoint:get*()return*;intPoint:gety()returny;Circle:Circle(int*,intyy,intrr)

48、:*(*),y(yy),r(rr)floatCircle:getarea()return3.14*r*r;floatCircle:getlenth()return2*3.14*r;intCircle:iscontain(int*3,inty3)floatdis,n;n=(*3-*)*(*3-*)+(y3-y)*(y3-y);dis=sqrt(n);if(disr)return1;elsereturn0;/主函數(shù)intmain()int*1,y1,*2,y2,r2;cin*2y2r2*1y1;Point sb1(*1,y1);Circle sb2(*2,y2,r2);coutsb2.getare

49、a() sb2.getlenth()endl;if(sb2.iscontain(*1,y1)=1)coutnoendl;elsecoutyes b;2. 用a除b得到余數(shù)r,假設(shè)r=0,則b為最大公約數(shù),退出.3. 假設(shè)r不為0,則用b代替a, r代替b,此時(shí)a,b都比上一次的小,問題規(guī)??s小了;4. 繼續(xù)第2步。輸入測(cè)試數(shù)據(jù)的組數(shù) t第一組第一個(gè)分?jǐn)?shù)第一組第二個(gè)分?jǐn)?shù)第二組第一個(gè)分?jǐn)?shù)第二組第二個(gè)分?jǐn)?shù)輸出第一組兩個(gè)分?jǐn)?shù)的和第一組兩個(gè)分?jǐn)?shù)的差第一組兩個(gè)分?jǐn)?shù)的積第一組兩個(gè)分?jǐn)?shù)的商第二組兩個(gè)分?jǐn)?shù)的和第二組兩個(gè)分?jǐn)?shù)的差第二組兩個(gè)分?jǐn)?shù)的積第二組兩個(gè)分?jǐn)?shù)的商樣例輸入31/22/33/45/821/238/1

50、3樣例輸出7/6-1/61/33/411/81/815/326/5457/29989/299168/299273/184提示#include#includeusingnamespacestd;classCFractionprivate:intfz,fm;public:voidset(intfz_val, intfm_val) ;intget_fz();intget_fm();CFraction add(CFraction &r);CFraction sub(CFraction &r);CFraction mul(CFraction &r);CFraction div(CFraction &r)

51、;intyue(int,int);intgetGCD(); voidprint();voidCFraction:set(intfz_val, intfm_val)fz=fz_val;fm=fm_val;intCFraction:get_fz()returnfz;intCFraction:get_fm()returnfm;CFraction CFraction:add(CFraction &r)CFraction fuck;int*,y,a,b;a=r.get_fz(); b=r.get_fm();*=b*fz+a*fm;y=b*fm;fuck.set(*,y);returnfuck;CFrac

52、tion CFraction:sub(CFraction &r)CFraction fuck;int*,y,a,b;a=r.get_fz(); b=r.get_fm();*=b*fz-a*fm;y=b*fm;fuck.set(*,y);returnfuck;CFraction CFraction:mul(CFraction &r)CFraction fuck;int*,y,a,b;a=r.get_fz(); b=r.get_fm();*=b*fz;y=a*fm;fuck.set(*,y);returnfuck; CFraction CFraction:div(CFraction &r)CFra

53、ction fuck;int*,y,a,b;a=r.get_fz(); b=r.get_fm();*=a*fz;y=b*fm;fuck.set(*,y);returnfuck;intCFraction:yue(inta,intb)intr;dor=a%b;a=b;b=r;while(b);returna;voidCFraction:print()intk=yue(fabs(fz),fabs(fm);coutfz/k/fm/kt;while(t-)cina1ch1a2;cina3ch2a4;ad1.set(a1,a2);ad2.set(a3,a4);ad3=ad1.add(ad2);sub1.s

54、et(a1,a2);sub2.set(a3,a4);sub3=sub1.sub(sub2);mul1.set(a1,a2);mul2.set(a3,a4);mul3=mul1.mul(mul2);div1.set(a1,a2);div2.set(a3,a4);div3=div1.div(div2);ad3.print();sub3.print();div3.print();mul3.print();coutendl;=17.軟件備份(拷貝構(gòu)造函數(shù))題目描述軟件作為一種對(duì)象也可以用類來描述,軟件的屬性包括軟件名稱、類型(分別用O、T和B表示原版、試用版還是備份)、有效截至日期(用CDate類子對(duì)

55、象表示)和存儲(chǔ)介質(zhì)(分別用D、H和U表示光盤、磁盤和U盤)等。軟件拷貝可通過拷貝構(gòu)造函數(shù)來實(shí)現(xiàn),此時(shí)在拷貝構(gòu)造函數(shù)中軟件類型改成B, 存儲(chǔ)介質(zhì)改為H,其它不變。試完成該類的拷貝構(gòu)造、構(gòu)造和打印(包括從2015年4月7日算起有效期還有多少天,是否過期)成員函數(shù)的實(shí)現(xiàn)。當(dāng)輸入軟件有效截止日期是0年0月0日,表示無日期限制,為unlimited;當(dāng)輸入日期在2015年4月7日之前,則是過期,表示為e*pired;如果輸入日期在2015年4月7日之后,則顯示之后的剩余天數(shù)。具體輸出信息看輸出例。附CDate類的實(shí)現(xiàn):class CDateprivate: int year, month, day;pu

56、blic: CDate(int y, int m, int d) year = y; month = m; day = d; bool isLeapYear() return (year%4 = 0 & year%100 != 0) | year%400 = 0; int getYear() return year; int getMonth() return month; int getDay() return day; int getDayofYear() /計(jì)算日期從當(dāng)年1月1日算起的天數(shù) int i, sum=day; int a13=0,31,28,31,30,31,30,31,31

57、,30,31,30,31; int b13=0,31,29,31,30,31,30,31,31,30,31,30,31; if (isLeapYear() for(i=0;imonth;i+) sum +=bi; else for(i=0;imonth;i+) sum +=ai; return sum; ;輸入測(cè)試數(shù)據(jù)的組數(shù) t第一個(gè)軟件名稱第一個(gè)軟件類型 第一個(gè)軟件介質(zhì)類型 第一個(gè)軟件有效期年 月 日第二個(gè)軟件名稱第二個(gè)軟件類型 第二個(gè)軟件介質(zhì)類型 第二個(gè)軟件有效期年 月 日輸出name: 第一個(gè)軟件名稱type: 第一個(gè)軟件類型media:第一個(gè)軟件介質(zhì)類型第一個(gè)軟件2015-4-7后的有

58、效天數(shù)name: 第一個(gè)軟件名稱type: backupmedia: hard disk第一個(gè)軟件2015-4-7后的有效天數(shù)樣例輸入3Photoshop_CS5O D 0 0 0Audition_3.0B U 2015 2 3Visual_Studio_2010T H 2015 5 5樣例輸出name:Photoshop_CS5type:originalmedia:optical diskthis software has unlimited usename:Photoshop_CS5type:backupmedia:hard diskthis software has unlimited

59、usename:Audition_3.0type:backupmedia:USB diskthis software has e*piredname:Audition_3.0type:backupmedia:hard diskthis software has e*piredname:Visual_Studio_2010type:trialmedia:hard diskthis software is going to be e*pired in 28 daysname:Visual_Studio_2010type:backupmedia:hard diskthis software is g

60、oing to be e*pired in 28 days=18.升位(拷貝構(gòu)造函數(shù))題目描述定義一個(gè)類CTelNumber,包含1個(gè)字符指針數(shù)據(jù)成員,以及構(gòu)造、析構(gòu)、打印及拷貝構(gòu)造函數(shù)。字符指針是用于動(dòng)態(tài)創(chuàng)立一個(gè)字符數(shù)組,然后保存外來輸入的構(gòu)造函數(shù)的功能是為對(duì)象設(shè)置鍵盤輸入的7位,拷貝構(gòu)造函數(shù)的功能是用原來7位的對(duì)象升位為8位對(duì)象,也就是說拷貝構(gòu)造的對(duì)象是源對(duì)象的升級(jí).升位的規(guī)則是原2、3、4開頭的前面加8,原5、6、7、8開頭的前面加2。注意:只能全部是數(shù)字字符,且與上述情況不符的輸入均為非法)輸入測(cè)試數(shù)據(jù)的組數(shù) t第一個(gè)7位第二個(gè)7位輸出第一個(gè)升位后的第二個(gè)升位后的如果升級(jí)不成功,則輸出

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論