一些經(jīng)典CC++程序源碼_第1頁
一些經(jīng)典CC++程序源碼_第2頁
一些經(jīng)典CC++程序源碼_第3頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一些經(jīng)典C/C++程序源碼轉(zhuǎn)自:編程之道論壇1、運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)**任務(wù):參加運(yùn)動(dòng)會(huì)有n1……。比賽分成m個(gè)男子項(xiàng)目,和w1……m,女子m+1……m+w分別為:212前五名或前三名由學(xué)生自己設(shè)定。功能要求:1).可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績(jī);能統(tǒng)計(jì)各學(xué)??偡郑梢园磳W(xué)校編號(hào)、學(xué)校總分、男女團(tuán)體總分排序輸出;查詢?nèi)〉们叭蚯拔迕膶W(xué)校。以內(nèi)的整數(shù)(以輸入學(xué)校的名稱,運(yùn)動(dòng)項(xiàng)目的名稱)輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整形界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。(關(guān)內(nèi)容在c請(qǐng)?jiān)谧詈蟮纳辖毁Y料中指明你用到的存儲(chǔ)結(jié)構(gòu);1、局部請(qǐng)?jiān)谏辖坏馁Y料中寫明;2、訂票系統(tǒng)任務(wù):通過此系統(tǒng)可以實(shí)現(xiàn)如下功能:錄入:(具體數(shù)據(jù)自定)查詢:可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉);可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;退票:可退票,退票后修改相關(guān)數(shù)據(jù)文件;修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件要求:根據(jù)以上功能說明,設(shè)計(jì)航班信息,訂票信息的存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)程序完成功能;3、拓?fù)渑判蛉蝿?wù):編寫函數(shù)實(shí)現(xiàn)圖的拓?fù)渑判颉?、迷宮求解一條走出迷宮的路徑,并將路徑輸出;要求:在上交資料中請(qǐng)寫明:存儲(chǔ)結(jié)構(gòu)、基本算法(可以使用程序流程圖)、源程序、測(cè)試數(shù)據(jù)和結(jié)果、算法的時(shí)間復(fù)雜度、另外可以提出算法的改進(jìn)方法;5、文章編輯**靜態(tài)存儲(chǔ)一頁文章,每行最多不超過80個(gè)字符,共N行;要求(1)分別統(tǒng)計(jì)出其中英文字母數(shù)和空格數(shù)及整篇文章總字?jǐn)?shù);(2)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);(3)刪除某一子串,并將后面的字符前移。存儲(chǔ)結(jié)構(gòu)使用線性表,分別用幾個(gè)子函數(shù)實(shí)現(xiàn)相應(yīng)的功能;輸入數(shù)據(jù)的形式和范圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號(hào)。4行輸出"""、"、""(3)出刪除某一字符串后的文章;6joseph環(huán)任務(wù):編號(hào)是n每個(gè)人只有一個(gè)密碼(正整數(shù))。一開始任選一個(gè)正整數(shù)作為報(bào)數(shù)上限值m,1開始順序報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)。報(bào)m的人出列,將他的密碼作為新的m值,從他在順時(shí)針1輸出各個(gè)人的編號(hào)。測(cè)試數(shù)據(jù):m20,n=7,73,1,7,2,4,7,4,首先m=6,則正確的輸出是什么?要求:輸入數(shù)據(jù):建立輸入處理輸入數(shù)據(jù),輸入m的初值,n人的密碼,建立單循環(huán)鏈表。輸出形式:建立一個(gè)輸出函數(shù),將正確的輸出序列7、猴子選大王**1,2,3...m這群猴子(m個(gè))1-m1開始數(shù),每數(shù)到第N個(gè),該則該猴子為大王。要求:輸入數(shù)據(jù):輸入m,nm,n為整數(shù),n<m輸出形式:中文提示按照m個(gè)猴子,數(shù)n個(gè)數(shù)的方法,輸出為大王的猴子是幾號(hào),建立一個(gè)函數(shù)來實(shí)現(xiàn)此功能8、建立二叉樹,層序、先序遍歷(用遞歸或非遞歸的方法都可以)**任務(wù):9、赫夫曼樹的建立任務(wù):建立建立最優(yōu)二叉樹函數(shù)要求:可以建立函數(shù)輸入二叉樹,并輸出其赫夫曼樹(可以使用程序流程圖)輸入輸出、源程序、測(cè)試數(shù)據(jù)和結(jié)果、算法的時(shí)間復(fù)雜度、另外可以提出算法的改進(jìn)方法;10、紙牌游戲**1-5222為基2333…從第444再552輸出:這時(shí)正面向上的牌有哪些?11、圖的建立及輸出任務(wù):建立圖的存儲(chǔ)結(jié)構(gòu)(圖的類型可以是有向圖、無向圖、有向網(wǎng)、無向網(wǎng),學(xué)生可以任選兩種類型),能夠輸入圖的頂點(diǎn)和邊的信息,并存儲(chǔ)到相應(yīng)存儲(chǔ)結(jié)構(gòu)中,而后輸出圖的鄰接矩陣。要求:頭文件一#include<iostream.h>#include<stdio.h>#include<stdlib.h>structBiTnode{chardata;BiTnode*lchild,*rchild;};structQueue{BiTnode**data0;intmax;intfront,rear,size;};voidSetQueue(Queue*Q,intn){Q->data0=(BiTnode**)malloc(n*sizeof(BiTnode*));if(Q->data0==NULL){cout<<"overfilow.";exit(1);}Q->max=n;Q->front=0;Q->rear=0;Q->size=0;}voidFreeQueue(Queue*Q){free(Q->data0);}voidQInsert(Queue*Q,BiTnode*item){if(Q->size==Q->max){cout<<"Queueisfull."<<endl;exit(1);}Q->data0[Q->rear]=item;Q->rear=(Q->rear+1)%Q->max;Q->size++;}BiTnode*QDelete(Queue*Q){BiTnode*item;if(Q->size==0){cout<<"Deletingfromanemptyqueue!"<<endl;exit(1);}item=Q->data0[Q->front];Q->front=(Q->front+1)%Q->max;Q->size--;returnitem;}intQEmpty(Queue*Q){if(Q->size==0)return(1);return(0);}voidCreateBitree(BiTnode*&T){charch;cin>>ch;if(ch=='/')T=NULL;else{if(!(T=(BiTnode*)malloc(sizeof(BiTnode)))){cout<<"Allocationfailed."<<endl;exit(1);}T->data=ch;CreateBitree(T->lchild);CreateBitree(T->rchild);}}voidPreOrder(BiTnode*T){if(T!=NULL){cout<<T->data<<"->";PreOrder(T->lchild);PreOrder(T->rchild);}}voidInOrder(BiTnode*T){if(T!=NULL){InOrder(T->lchild);cout<<T->data<<"->";InOrder(T->rchild);}}voidPostOrder(BiTnode*T){if(T!=NULL){PostOrder(T->lchild);PostOrder(T->rchild);cout<<T->data<<"->";}}voidLevelOrder(BiTnode*T){BiTnode*ptr;QueueQ;if(T==NULL)return;SetQueue(&Q,50);QInsert(&Q,T);while(!QEmpty(&Q)){ptr=QDelete(&Q);cout<<ptr->data<<"->";if(ptr->lchild!=NULL)QInsert(&Q,ptr->lchild);if(ptr->rchild!=NULL)QInsert(&Q,ptr->rchild);}FreeQueue(&Q);}voidBiTreeTraverse(){BiTnode*T;charj;intflag=1;cout<<"***************本程序?qū)崿F(xiàn)二叉樹遍歷的操作***************"<<endl;cout<<endl;cout<<"按先序遍歷來構(gòu)造二叉樹:"<<endl;printf("例:a/b/c/d//(回車)\n");CreateBitree(T); //初始化隊(duì)列while(flag){cout<<endl;cout<<" :"<<endl<<" ┌──────────┐"<<endl<<"│1.遞歸先序遍歷 │"<<endl<<"│2.遞歸中序遍歷 │"<<endl<<"│3.遞歸后序遍歷 │"<<endl<<"│4.非遞歸層序遍歷│"<<endl<<"│0.退出程序 │"<<endl<<" └──────────┘"<<endl;cin>>j;switch(j){case'1':if(T){cout<<"遞歸先序遍歷二叉樹:"<<endl;PreOrder(T);cout<<endl;}elsecout<<"二叉樹為空!"<<endl;break;case'2':if(T){cout<<"遞歸中序遍歷二叉樹:"<<endl;InOrder(T);cout<<endl;}elsecout<<"二叉樹為空!"<<endl;break;case'3':if(T){cout<<"遞歸后序遍歷二叉樹:"<<endl;PostOrder(T);cout<<endl;}elsecout<<"二叉樹為空!"<<endl;break;case'4':if(T){cout<<"非遞歸層序遍歷二叉樹:"<<endl;LevelOrder(T);cout<<endl;}elsecout<<"二叉樹為空!"<<endl;break;default:flag=0;cout<<"程序運(yùn)行結(jié)束,按任意鍵退出!"<<endl;}}}頭文件二//猴子選大王#include<stdio.h>#include<stdlib.h>voidJosephus(intn,intm){inti,j,*p;p=(int*)malloc(n*sizeof(int));for(i=0;i<n;i++)p=i+1;i=0;while(n>1){i=(i+m-1)%n;printf("del%d\n",p);for(j=i+1;j<n;j++)p[j-1]=p[j];n--;if(i==n)i=0;}printf("King!%d\n",p[0]);}voidMonkeyking(){intn,count;printf("請(qǐng)問您,這個(gè)猴子群有多少只:scanf("%d",&n);

");printf("\n猴子們隨機(jī)抽取的數(shù)為:");scanf("%d",&count);printf("\n\n");Josephus(n,count);}頭文件三//****#include<iostream.h>#include<stdlib.h>#include<fstream.h>structRow{char*rbase;intlength;};structPage{Row*pbase;intn;};//創(chuàng)建一頁文章。voidCString(Row&R,intlength){R.rbase=(char*)malloc(length*sizeof(char));R.length=length;cout<<"請(qǐng)輸入字符串:";for(inti=0;i<length;i++){charc;cin>>c;R.rbase=c;}}voidCPage(Page&ye,intlength,intn){ye.pbase=(Row*)malloc(n*sizeof(Row));ye.n=n;//還需附加分配不成功等條件for(intj=0;j<n;j++){ye.pbase[j].rbase=(char*)malloc(length*sizeof(char));//分配不成功等條件if(!ye.pbase[j].rbase)cout<<"Allocationfailed."<<endl;ye.pbase[j].length=length;}cout<<"huale."<<endl;//進(jìn)行測(cè)試for(j=0;j<n;j++)for(inti=0;i<length;i++){charnote;cin>>note;ye.pbase[j].rbase=note;if(note=='$')for(;i<length;i++)ye.pbase[j].rbase='';//這個(gè)地方還不行if(note=='#')for(j++;j<n;j++)ye.pbase[j].rbase='';}cout<<"huale."<<endl;//測(cè)試for(intp=0;p<ye.n;p++){cout<<"row"<<(p+1)<<"";for(intq=0;q<ye.pbase->length;q++)//為什么有的出現(xiàn)cout<<ye.pbase[p].rbase[q];cout<<endl;}}voidOPage(Pageye){for(intj=0;j<ye.n;j++){cout<<"row:"<<(j+1)<<"";for(inti=0;i<ye.pbase->length;i++)//為什么有的出現(xiàn),有的不出現(xiàn)。cout<<ye.pbase[j].rbase;cout<<endl;}}voidStastics(Pageye){ intzm=0,sz=0,kg=0,az=0,i=0;charfor(intj=0;j<ye.n;j++){for(i=0;i<ye.pbase->length;i++)//為什么有的出現(xiàn),有的不出現(xiàn)。{c=ye.pbase[j].rbase;if(c=='')kg++;elseif((int)c>64&&(int)c<91||((int)c>96&&(int)c<123))zm++;elseif((int)c>47&&(int)c<58)sz++;}}az=i*j-kg;//為什么i,j不是"<<zm<<endl<<"空格數(shù) 為:"<<kg<<endl<<"總字?jǐn)?shù) 為"<<az<<endl;}voidStasString(Pagep,Rows){ intm=0;intk=0;charfor(intj=0;j<p.n;j++)for(inti=0;i<p.pbase->length;i++){c=p.pbase[j].rbase;if(c!=s.rbase[k])k=0;elsek++;if(k==s.length){m++;}//考慮重疊情況for(k--;k!=0;k--,j--);}cout<<"所給串在文章中出現(xiàn)的次數(shù)為:"<<m<<endl;}voidDelString(Page&p,intm,Rows){if(s.length<1||s.length>p.pbase->length||m<1||m>p.n)cout<<"你的輸入有誤,請(qǐng)仔細(xì)看提示."<<endl;//你的輸入有誤,請(qǐng)仔細(xì)看提示else{ intk=0,temp;charc;cout<<"jinxingceshi."<<endl;for(intj=0;j<p.pbase[0].length;j++)//for(intj=0;j<p.pbase->length;j++){ c=p.pbase[m-1].rbase[j];//m-1if(c!=s.rbase[k])k=0;elsek++;cout<<"k值:"<<s.rbase[k-1]<<endl;if(k==s.length){cout<<"確實(shí)存在此字符串."<<endl;temp=j+1-k;break;//inttemp=j-k;break;同樣錯(cuò)誤1}}cout<<"I'mhere;"<<endl;Rowa;a.rbase=(char*)malloc((p.n-m+1)*(p.pbase->length-temp)*sizeof(char));a.length=(p.n-m+1)*(p.pbase->length-temp);//weizhi是a的長(zhǎng)度,同樣錯(cuò)誤1k=0;cout<<"I'mhere;"<<endl;for(inti=m-1;i<p.n;i++)//從刪除位置開始賦值到數(shù)組a{for(j=temp;j<p.pbase->length;j++,k++)a.rbase[k]=p.pbase.rbase[j];j=0;}cout<<"I'mhere;"<<endl;for(k=0;k<a.length-s.length;k++)a.rbase[k]=a.rbase[k+s.length];//for(;k<a.length;k++)a.rbase[k]='';for(i=m-1,k=0;i<p.n;i++){for(j=temp;j<p.pbase->length;j++,k++)p.pbase.rbase[j]=a.rbase[k];j=0;}cout<<"I'mhere;"<<endl;OPage(p);//可以調(diào)用函數(shù)0page(p);}}voidSave(PageP)//new{fstreamoutfile;outfile.open("information.dat",ios::out|ios::binary);if(!outfile){cout<<"information.datcan'topen.\n";abort();}for(inti=0;i<P.n;i++)outfile.write(P.pbase.rbase,sizeof(P.pbase.rbase));outfile.close();}voidRead(Page&P){fstreaminfile,outfile;infile.open("information.dat",ios::in|ios::binary);if(!infile){cout<<"information.datcan'topen.\n";abort();}for(inti=0;i<P.n;i++)infile.read(P.pbase.rbase,sizeof(P.pbase.rbase));infile.close();OPage(P);}voidChoose(Page&Ye,inth,intn)intc;cout<<"";cin>>c;cout<<endl;switch(c){case1:{cout<<"創(chuàng)建文本:"<<endl;CPage(Ye,h,n);break;}case2:{cout<<"統(tǒng)計(jì)字符:"<<endl;Stastics(Ye);break;}case3:{cout<<":"<<endl;intl;Rows;cout<<"請(qǐng)輸入字符串長(zhǎng)度:";cin>>l;CString(s,l);StasString(Ye,s);break;}case4:{cout<<"刪除字符串:"<<endl;inthang;intl1;Row輸入所刪除的字符串所在:";cin>>hang;cout<<endl;cout<<"請(qǐng)輸入字符串長(zhǎng)度:";cin>>l1;cout<<endl;CString(s1,l1);cout<<"對(duì)的。"<<endl;DelString(Ye,hang,s1);break;}case5:{cout<<""<<endl;OPage(Ye);break;}case6:{cout<<真的要退出嗎?Y/):"<<endl;charx;cin>>x;if(x=='Y')exit(1);break;}case7:{cout<<":"<<endl;Save(Ye);break;}//newcase8:{cout<<":"<<endl;Read(Ye);break;}}Choose(Ye,h,n);}voidwenzb

溫馨提示

  • 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)論