C语言多功能模块设计.docx

上传人:b****5 文档编号:28498661 上传时间:2023-07-15 格式:DOCX 页数:13 大小:33.21KB
下载 相关 举报
C语言多功能模块设计.docx_第1页
第1页 / 共13页
C语言多功能模块设计.docx_第2页
第2页 / 共13页
C语言多功能模块设计.docx_第3页
第3页 / 共13页
C语言多功能模块设计.docx_第4页
第4页 / 共13页
C语言多功能模块设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言多功能模块设计.docx

《C语言多功能模块设计.docx》由会员分享,可在线阅读,更多相关《C语言多功能模块设计.docx(13页珍藏版)》请在冰豆网上搜索。

C语言多功能模块设计.docx

C语言多功能模块设计

 

1、

总模块设计

 

2、功能模块程序

总菜单:

#include<>

#include<>

externvoidmenu1();

externvoidmenu2();

externvoidmenu3();

voidmain()

{intchoice;

while

(1)

{

system("CLS");

printf("\n");printf("****************\n");

printf("菜单\n");

printf("--------------------\n");

printf("1.简单数据应用\n");

printf("2.递推应用\n");

printf("3.枚举应用\n");

printf("0.退出\n");

printf("****************\n");printf("请输入序号:

");

scanf("%d",&choice);

switch(choice)

{case1:

menu1();break;

case2:

menu2();break;

case3:

menu3();break;

case0:

return;

}}}

1.简单数据应用:

#include<>

#include<>

externvoidgcdn();

externvoidzhaoshu();

voidmenu1()

{

while

(1)

{

intchoice1;

system("CLS");

printf("\n");

printf("----------------------\n");

printf("简单数据应用\n");

printf("----------------------\n");

printf("1.最大公约数\n");

printf("2.排序找数\n");

printf("0.返回\n");

printf("----------------------\n");

printf("请输入序号:

");

scanf("%d",&choice1);

switch(choice1)

{case1:

gcdn();break;

case2:

zhaoshu();break;

case0:

return;}}}

2.递推应用:

#include<>

#include<>

externvoidgcdn();

externvoidzhaoshu();

voidmenu2()

{

intchoice2;

While

(1)

system("CLS");

printf("\n");

printf("----------------------\n");

printf("递推应用\n");

printf("----------------------\n");

printf("1.兔子繁殖\n");

printf("2.捕鱼问题\n");

printf("0.返回\n");

printf("----------------------\n");

printf("请输入序号:

");

scanf("%d",&choice1);

switch(choice1)

{case1:

tuzi();break;

case2:

buyu();break;

case0:

return;}}}

3.枚举应用:

#include<>

#include<>

externvoidgcdn();

externvoidzhaoshu();

voidmenu2()

{

intchoice3;

While

(1){

system("CLS");

printf("\n");

printf("----------------------\n");

printf("枚举应用\n");

printf("----------------------\n");

printf("1.兑币问题\n");

printf("2.八皇后问题\n");

printf("0.返回\n");

printf("----------------------\n");

printf("请输入序号:

");

scanf("%d",&choice1);

switch(choice1)

{case1:

duibi();break;

case2:

bahuanghon();break;

case0:

return;}}}

3、各子功能设计

a.最大公约数

#include<>

#include<>

intgcd(intn)

{inta,b,r,i;

printf("\nNumber1:

");

scanf("%d",&b);

for(i=1;i

{printf("Number%d:

",i+1);

scanf("%d",&a);

r=a%b;

while(r!

=0)

{a=b;

b=r;

r=a%b;

}

}

return(b);

}

voidgcdn()

{intx,n1;

system("CLS");

printf("请输入数的个数:

\n");

scanf("%d",&n1);

x=gcd(n1);

printf("最大公约数:

%d\n",x);

system("PAUSE");

system("CLS");

return;

}

b.排序找数

#include<>

#include<>

#include<>

#defineN30

voiddeldit(char*s)

{intk;

k=1;

while(s[k]!

='\0'){if(s[k-1]>s[k])

break;

k++;

}

if(s[k]=='\0')

{s[k-1]='\0';

return;

}

k--;

do

{s[k]=s[k+1];

k++;

}

while(s[k]!

='\0');

return;

}

 

voidsortpro(char*s)

{inti,j,k,len;

charstmp;

len=strlen(s);

for(i=0;i

{k=i;

for(j=i+1;j

if(s[k]>s[j])k=j;

if(k!

=i)

{stmp=s[k];

s[k]=s[i];

s[i]=stmp;

}

}

}

voidzhaoshu(void)

{intd,s,len,i,k,m;

charstr[N+1],stmp;

system("CLS");

scanf("%d",&d);

while(d-->0)

{scanf("%s%d",str,&s);

for(i=0;i

deldit(str);

len=strlen(str);

k=len-1;

while(k>0)

{if(str[k]>str[k-1])

break;

k--;

}

if(k==0)

{printf("0\n");

return;

}

for(m=k,i=k+1;istr[k-1]&&str[i]

m=i;

stmp=str[k-1];

str[k-1]=str[m];

str[m]=stmp;

sortpro(&str[k]);

printf("%s\n",str);

}

system("PAUSE");

}

c.兔子繁殖:

#include<>

intmain()

{inti,n,f[37];

scanf("%d",&n);

f[1]=1;

f[2]=2;

for(i=3;i<=n;i++)

f[i]=f[i-1]+f[i-2];

printf("第%d个月有%d对兔子\n",n,f[n]);

return0;}

d.捕鱼问题:

#include<>

intmain()

{inti,n,f[5],flag;

flag=1;

n=1;

while(flag!

=0)

{

f[0]=5*n+1;

flag=0;

for(i=1;i<5;i++)

{

if(f[i-1]%4!

=0)

{flag=1;break;}

f[i]=5*f[i-1]/4+1;

}

n++;

}

printf("5个人至少捕到%d条鱼\n",f[4]);

return0;

}

e.兑币问题:

整币兑换问题。

有1角、2角、5角、1元、5元共5种零币,现要将一张100元的整币换成零币,问共有多少种不同的兑换方案。

#include<>

voidmain()

{intp1,p2,p5,p10,p20,p50,n,m;

n=100;m=0;

for(p2=0;p2<=n/2;p2++)

for(p5=0;p5<=n/5;p5++)

for(p10=0;p10<=n/10;p10++)

for(p20=0;p20<=n/20;p20++)

for(p50=0;p50<=n/50;p50++)

{p1=n-(2*p2+5*p5+10*p10+20*p20+50*p50);

if(p1>=0)

m++;

}

printf("%d\n",m);

}

f.八皇后问题:

#include<>

#include<>

voidmain()

{intn=0;

longa;

for(a=;a<=;a++)

{if(chk18(a)==0)continue;

if(chkdia(a)==0)continue;

printf("%ld",a);

n++;

if(n%6==0)

printf("\n");}

printf("\n%d\n",n);}

intchk18(longm)

{intf[10],i,fg;

for(i=0;i<10;i++)

f[i]=0;

while(m!

=0)

{f[m%10]++;

m=m/10;}

for(fg=1,i=1;i<=8;i++)

if(f[i]!

=1)

{fg=0;break;}

return(fg);}

intchkdia(longm)

{intg[9],i,j,fg;

for(i=8;i>=1;i--)

{g[i]=m%10;

m=m/10;}

fg=1;

for(i=1;i<=7;i++)

for(j=i+1;j<=8;j++)

if(abs(g[j]-g[i])==j-i)

{fg=0;break;}

return(fg);}

心得体会:

这次的实验是以前曾经做过的,不过可能很久没有练习又忘记了,而且在以前的基础上增加了一些难度,经过同学的指导才把整个程序写出来,非常有成就感。

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

当前位置:首页 > 成人教育 > 成考

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

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