一些经典CC++程序源码_第1页
一些经典CC++程序源码_第2页
一些经典CC++程序源码_第3页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一些经典C/C++程序源码转自:编程之道论坛1、运动会分数统计**任务:参加运动会有n1……。比赛分成m个男子项目,和w1……m,女子m+1……m+w分别为:212前五名或前三名由学生自己设定。功能要求:1).可以输入各个项目的前三名或前五名的成绩;能统计各学校总分,可以按学校编号、学校总分、男女团体总分排序输出;查询取得前三或前五名的学校。以内的整数(以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。(关内容在c请在最后的上交资料中指明你用到的存储结构;1、局部请在上交的资料中写明;2、订票系统任务:通过此系统可以实现如下功能:录入:(具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;3、拓扑排序任务:编写函数实现图的拓扑排序。4、迷宫求解一条走出迷宫的路径,并将路径输出;要求:在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;5、文章编辑**静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。4行输出"""、"、""(3)出删除某一字符串后的文章;6joseph环任务:编号是n每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针1输出各个人的编号。测试数据:m20,n=7,73,1,7,2,4,7,4,首先m=6,则正确的输出是什么?要求:输入数据:建立输入处理输入数据,输入m的初值,n人的密码,建立单循环链表。输出形式:建立一个输出函数,将正确的输出序列7、猴子选大王**1,2,3...m这群猴子(m个)1-m1开始数,每数到第N个,该则该猴子为大王。要求:输入数据:输入m,nm,n为整数,n<m输出形式:中文提示按照m个猴子,数n个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能8、建立二叉树,层序、先序遍历(用递归或非递归的方法都可以)**任务:9、赫夫曼树的建立任务:建立建立最优二叉树函数要求:可以建立函数输入二叉树,并输出其赫夫曼树(可以使用程序流程图)输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;10、纸牌游戏**1-5222为基2333…从第444再552输出:这时正面向上的牌有哪些?11、图的建立及输出任务:建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。要求:头文件一#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<<"***************本程序实现二叉树遍历的操作***************"<<endl;cout<<endl;cout<<"按先序遍历来构造二叉树:"<<endl;printf("例:a/b/c/d//(回车)\n");CreateBitree(T); //初始化队列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<<"程序运行结束,按任意键退出!"<<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("请问您,这个猴子群有多少只:scanf("%d",&n);

");printf("\n猴子们随机抽取的数为:");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;};//创建一页文章。voidCString(Row&R,intlength){R.rbase=(char*)malloc(length*sizeof(char));R.length=length;cout<<"请输入字符串:";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;//进行测试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='';//这个地方还不行if(note=='#')for(j++;j<n;j++)ye.pbase[j].rbase='';}cout<<"huale."<<endl;//测试for(intp=0;p<ye.n;p++){cout<<"row"<<(p+1)<<"";for(intq=0;q<ye.pbase->length;q++)//为什么有的出现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++)//为什么有的出现,有的不出现。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++)//为什么有的出现,有的不出现。{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<<"空格数 为:"<<kg<<endl<<"总字数 为"<<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<<"所给串在文章中出现的次数为:"<<m<<endl;}voidDelString(Page&p,intm,Rows){if(s.length<1||s.length>p.pbase->length||m<1||m>p.n)cout<<"你的输入有误,请仔细看提示."<<endl;//你的输入有误,请仔细看提示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<<"确实存在此字符串."<<endl;temp=j+1-k;break;//inttemp=j-k;break;同样错误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的长度,同样错误1k=0;cout<<"I'mhere;"<<endl;for(inti=m-1;i<p.n;i++)//从删除位置开始赋值到数组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);//可以调用函数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<<"创建文本:"<<endl;CPage(Ye,h,n);break;}case2:{cout<<"统计字符:"<<endl;Stastics(Ye);break;}case3:{cout<<":"<<endl;intl;Rows;cout<<"请输入字符串长度:";cin>>l;CString(s,l);StasString(Ye,s);break;}case4:{cout<<"删除字符串:"<<endl;inthang;intl1;Row输入所删除的字符串所在:";cin>>hang;cout<<endl;cout<<"请输入字符串长度:";cin>>l1;cout<<endl;CString(s1,l1);cout<<"对的。"<<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等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论