一些经典CC++程序源码Word文件下载.docx

上传人:b****5 文档编号:19811270 上传时间:2023-01-10 格式:DOCX 页数:11 大小:21.51KB
下载 相关 举报
一些经典CC++程序源码Word文件下载.docx_第1页
第1页 / 共11页
一些经典CC++程序源码Word文件下载.docx_第2页
第2页 / 共11页
一些经典CC++程序源码Word文件下载.docx_第3页
第3页 / 共11页
一些经典CC++程序源码Word文件下载.docx_第4页
第4页 / 共11页
一些经典CC++程序源码Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

一些经典CC++程序源码Word文件下载.docx

《一些经典CC++程序源码Word文件下载.docx》由会员分享,可在线阅读,更多相关《一些经典CC++程序源码Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

一些经典CC++程序源码Word文件下载.docx

  退票:

可退票,退票后修改相关数据文件;

  客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

  修改航班信息:

  当航班信息改变可以修改航班数据文件

  要求:

  根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;

3、拓扑排序

编写函数实现图的拓扑排序。

  4、迷宫求解

可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;

  在上交资料中请写明:

存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

  5、文章编辑**

  功能:

输入一页文字,程序可以统计出文字、数字、空格的个数。

  静态存储一页文章,每行最多不超过80个字符,共N行;

要求

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

(2)统计某一字符串在文章中出现的次数,并输出该次数;

(3)删除某一子串,并将后面的字符前移。

  存储结构使用线性表,分别用几个子函数实现相应的功能;

  输入数据的形式和范围:

可以输入大写、小写的英文字母、任何数字及标点符号。

(1)分行输出用户输入的各行字符;

(2)分4行输出"

全部字母数"

、"

数字个数"

空格个数"

文章总字数"

(3)输出删除某一字符串后的文章;

  6、joseph环

编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。

一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。

报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。

设计一个程序来求出出列顺序。

利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。

  m的初值为20,n=7,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?

输入数据:

建立输入处理输入数据,输入m的初值,n,输入每个人的密码,建立单循环链表。

建立一个输出函数,将正确的输出序列

  7、猴子选大王**

一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。

  输入数据:

输入m,nm,n为整数,n<

m

中文提示按照m个猴子,数n个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能

  8、建立二叉树,层序、先序遍历(用递归或非递归的方法都可以)**

  要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;

分别建立建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数;

  9、赫夫曼树的建立

  任务:

建立建立最优二叉树函数

可以建立函数输入二叉树,并输出其赫夫曼树

在上交资料中请写明:

存储结构、基本算法(可以使用程序流程图)、输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

  10、纸牌游戏**

编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;

然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;

然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;

...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:

这时正面向上的牌有哪些?

  11、图的建立及输出

建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。

头文件一

#include<

iostream.h>

stdio.h>

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;

front=0;

rear=0;

size=0;

voidFreeQueue(Queue*Q)

{free(Q->

data0);

voidQInsert(Queue*Q,BiTnode*item)

{if(Q->

size==Q->

max){cout<

Queueisfull."

endl;

data0[Q->

rear]=item;

rear=(Q->

rear+1)%Q->

max;

size++;

BiTnode*QDelete(Queue*Q)

{BiTnode*item;

size==0)

Deletingfromanemptyqueue!

item=Q->

data0[Q->

front];

front=(Q->

front+1)%Q->

size--;

returnitem;

intQEmpty(Queue*Q)

size==0)return

(1);

return(0);

voidCreateBitree(BiTnode*&

T)

{charch;

cin>

>

ch;

if(ch=='

/'

)T=NULL;

else

{

if(!

(T=(BiTnode*)malloc(sizeof(BiTnode))))

Allocationfailed."

 

 

T->

data=ch;

CreateBitree(T->

lchild);

rchild);

voidPreOrder(BiTnode*T)

if(T!

=NULL)

T->

data<

->

PreOrder(T->

voidInOrder(BiTnode*T)

InOrder(T->

cout<

voidPostOrder(BiTnode*T)

PostOrder(T->

voidLevelOrder(BiTnode*T)

{BiTnode*ptr;

QueueQ;

if(T==NULL)return;

SetQueue(&

Q,50);

QInsert(&

Q,T);

while(!

QEmpty(&

Q))

{ptr=QDelete(&

Q);

ptr->

if(ptr->

lchild!

QInsert(&

Q,ptr->

rchild!

rchild);

FreeQueue(&

voidBiTreeTraverse()

BiTnode*T;

charj;

intflag=1;

cout<

***************本程序实现二叉树遍历的操作***************"

按先序遍历来构造二叉树:

printf("

例如:

a/b/c/d//(回车)\n"

);

CreateBitree(T);

//初始化队列

while(flag)

{

cout<

请选择:

"

endl

<

┌──────────┐"

│ 

1.递归先序遍历 

│"

2.递归中序遍历 

3.递归后序遍历 

4.非递归层序遍历│"

0.退出程序 

└──────────┘"

cin>

j;

switch(j)

case'

1'

:

if(T)

递归先序遍历二叉树:

PreOrder(T);

}

elsecout<

二叉树为空!

break;

2'

递归中序遍历二叉树:

InOrder(T);

3'

递归后序遍历二叉树:

PostOrder(T);

4'

非递归层序遍历二叉树:

LevelOrder(T);

default:

flag=0;

程序运行结束,按任意键退出!

头文件二

//猴子选大王

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<

j++)

p[j-1]=p[j];

n--;

if(i==n)i=0;

}

King!

%d\n"

p[0]);

voidMonkeyking()

{intn,count;

请问您,这个猴子群有多少只:

scanf("

%d"

&

n);

\n猴子们随机抽取的数为:

count);

\n猴子选大王开始了:

\n"

Josephus(n,count);

头文件三

//文章编辑****

fstream.h>

structRow

{char*rbase;

intlength;

structPage

{Row*pbase;

intn;

//创建一页文章。

voidCString(Row&

R,intlength)

{R.rbase=(char*)malloc(length*sizeof(char));

R.length=length;

请输入字符串:

for(inti=0;

length;

{charc;

c;

R.rbase=c;

voidCPage(Page&

ye,intlength,intn)

{ye.pbase=(Row*)malloc(n*sizeof(Row));

ye.n=n;

//还需附加分配不成功等条件

for(intj=0;

{ye.pbase[j].rbase=(char*)malloc(length*sizeof(char));

if(!

ye.pbase[j].rbase)cout<

ye.pbase[j].length=length;

huale."

//进行测试

for(j=0;

{charnote;

note;

ye.pbase[j].rbase=note;

if(note=='

$'

)for(;

i++)ye.pbase[j].rbase='

'

//这个地方还不行

#'

)for(j++;

j++)ye.pbase[j].rbase='

}cout<

//测试

for(intp=0;

p<

ye.n;

p++)

row"

(p+1)<

for(intq=0;

q<

ye.pbase->

q++)//为什么有的出现,有的不出现。

ye.pbase[p].rbase[q];

voidOPage(Pageye)

row:

(j+1)<

i++)//为什么有的出现,有的不出现。

ye.pbase[j].rbase;

voidStastics(Pageye)

intzm=0,sz=0,kg=0,az=0,i=0;

charc;

{for(i=0;

{c=ye.pbase[j].rbase;

if(c=='

)kg++;

elseif((int)c>

64&

&

(int)c<

91||((int)c>

96&

123))zm++;

47&

58)sz++;

az=i*j-kg;

//为什么i是未定义的,而j不是

全部字母个数为:

zm<

全部数字个数为:

sz<

空格数 

为:

kg<

endl 

总字数 

为 

az<

voidStasString(Pagep,Rows)

intm=0;

intk=0;

charc;

p.n;

p.pbase->

{c=p.pbase[j].rbase;

if(c!

=s.rbase[k])k=0;

elsek++;

if(k==s.length){m++;

}//考虑重叠情况for(k--;

k!

=0;

k--,j--);

所给串在文章中出现的次数为:

m<

voidDelString(Page&

p,intm,Rows)

{if(s.length<

1||s.length>

length||m<

1||m>

p.n)cout<

你的输入有误,请仔细看提示."

//你的输入有误,请仔细看提示

intk=0,temp;

jinxingceshi."

p.pbase[0].length;

j++)//for(intj=0;

c=p.pbase[m-1].rbase[j];

//m-1才是正确的行

if(c!

elsek++;

k值:

s.rbase[k-1]<

if(k==s.length)

{cout<

确实存在此字符串."

temp=j+1-k;

break;

//inttemp=j-k;

同样错误1

I'

mhere;

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的长度,同样错误1

k=0;

for(inti=m-1;

i++)//从删除位置开始赋值到数组a

for(j=temp;

j++,k++)

a.rbase[k]=p.pbase.rbase[j];

j=0;

for(k=0;

k<

a.length-s.length;

k++)a.rbase[k]=a.rbase[k+s.length];

//

for(;

a.length;

k++)a.rbase[k]='

for(i=m-1,k=0;

{for(j=temp;

p.pbase.rbase[j]=a.rbase[k];

j=0;

OPage(p);

//可以调用函数0page(p);

voidSave(PageP)//new

{fstreamoutfile;

outfile.open("

information.dat"

ios:

out|ios:

binary);

outfile)

information.datcan'

topen.\n"

abort();

P.n;

outfile.write(P.pbase.rbase,sizeof(P.pbase.rbase));

outfile.close();

voidRead(Page&

P)

{fstreaminfile,outfile;

infile.open("

in|ios:

infile)

abort(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1