完整版c语言课程设计设计报告.docx

上传人:b****2 文档编号:2253581 上传时间:2022-10-28 格式:DOCX 页数:23 大小:21.24KB
下载 相关 举报
完整版c语言课程设计设计报告.docx_第1页
第1页 / 共23页
完整版c语言课程设计设计报告.docx_第2页
第2页 / 共23页
完整版c语言课程设计设计报告.docx_第3页
第3页 / 共23页
完整版c语言课程设计设计报告.docx_第4页
第4页 / 共23页
完整版c语言课程设计设计报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

完整版c语言课程设计设计报告.docx

《完整版c语言课程设计设计报告.docx》由会员分享,可在线阅读,更多相关《完整版c语言课程设计设计报告.docx(23页珍藏版)》请在冰豆网上搜索。

完整版c语言课程设计设计报告.docx

完整版c语言课程设计设计报告

 

C语言课程设计报告

 

姓名:

学号:

年月

 

目录:

●程序功能简介

●题目分析

●函数的调用关系图及主要算法

●源程序及注释

●测试流程

●心得感想

程序一:

简单数学问题

一、程序功能简介:

实现多个简单数学问题的求解。

二、题目分析

完成与菜单项对应的功能设计

1、voidFindNum();/*用穷举法找到被咬掉的数字*/

2、voidFindRoot();/*求解方程ax2+bx+c=0的根*/

3、voidDetective();/*根据线索用穷举法找出牌照号码*/

4、voidMonkey();/*根据天数循环求出第一天所摘桃子数*/

5、voidDiamond();/*调用函数Print_Diamond()输出line行的钻石图案*/

6、voidCalculator();/*实现两个整数简单的加减乘除四则运算*/

三、函数的调用关系图:

四、源程序及注释:

#include

#include

#include

#include

intmenu_select();

voidmain()/*主函数*/

{

for(;;)

{

switch(menu_select())

{case1:

FindNum();

system("pause");

break;

case2:

FindRoot();

system("pause");

break;

case3:

Detective();

system("pause");

break;

case4:

Monkey();

system("pause");

break;

case5:

Diamond();

system("pause");

break;

case6:

Calculator();

system("pause");

break;

case0:

printf("Goodbye!

\n");

system("pause");

exit(0);

}

}

}

intmenu_select()/*主函数菜单*/

{

charc;

do{

system("cls");

printf("1.FindNum\n");

printf("2.FindRoot\n");

printf("3.Detective\n");

printf("4.Monkey\n");

printf("5.Diamond\n");

printf("6.Calculator\n");

printf("0.Goodbye!

\n");

c=getchar();

}while(c<'0'||c>'6');

return(c-'0');

}

FindNum()/*找数字*/

{

inti;

for(i=1;i<=9;i++)/*穷举*/

if((30+i)*6237==(10*i+3)*3564)

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

}

FindRoot()/*找方程的根*/

{

floata[10],b[10],c[10],disc,x1,x2,real,image;/*定义abc三个数组存放方程的系数*/

inti,k,j;

for(i=0;i<10;i++)/*循环输入方程的三个系数*/

{

printf("pleaseinputthreerealnumbers:

\n");

scanf("%f%f%f",&a[i],&b[i],&c[i]);

printf("press'1'tocontinue\npress'2'tocalculate\n");

scanf("%d",&k);

if(k==2)break;/*判断是否继续输入*/

}

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

{

printf("Theequation%d",j+1);

if(fabs(a[j])<=1e-7)/*a=0的情况*/

printf("isnotquadratic,solutionis%.2f\n",-c[j]/b[j]);

else

{

disc=b[j]*b[j]-4*a[j]*c[j];

if(fabs(disc)<=1e-7)/*有两个相等的实根的情况*/

printf("isnotquadratic,solutionis:

%.2f\n",-b[j]/(2*a[j]));

elseif(disc>1e-7)/*有两个不等实根的情况*/

{

x1=(-b[j]+sqrt(disc))/(2*a[j]);

x2=(-b[j]-sqrt(disc))/(2*a[j]);

printf("hasdistinctrealroots:

%.2fand%.2f\n",x1,x2);

}

else/*有两个虚根的情况*/

{

real=-b[j]/(2*a[j]);

image=sqrt(-disc)/(2*a[j]);

printf("hascomplexroots:

\n");

printf("%.2f+%.2fi\n",real,image);

printf("%.2f-%.2fi\n",real,image);

}

}

}

}

Detective()/*找牌照*/

{

inti,a,b,c,d;longm;

for(i=32;i<=99;i++)/*穷举找出后四位号码*/

{

m=i*i;

a=m%10;

b=m/10%10;

c=m/100%10;

d=m/1000;

if(a==b&&c==d)

break;

}

printf("%ld\n",m+310000);

}

Monkey()/*猴子吃桃问题*/

{

intn,i;

longx;

scanf("%d",&n);

x=1;

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

x=(x+1)*2;

printf("%ld\n",x);

}

voidprint_diamond(intline)

{

inti,j,k,m,n,p,q,a,b;

for(i=1;i<=(49-line)/2;i++)/*输出(49-line)/2行的空格*/

printf("\n");

for(j=1;j<=(line+1)/2;j++)

{for(m=1;m<=(80-line)/2;m++)/*先输出(80-line)/2个空格*/

printf("");

for(a=1;a<=(line-(2*j-1))/2;a++)/*行数j从1到中间一行输出(line-(2*j-1))/2个空格*/

printf("");

for(n=1;n<=2*j-1;n++)/*中间行及上面每行输出2*j-1个"*"*/

printf("*");

printf("\n");

}

for(k=1;k<=(line-1)/2;k++)/*同理输出中间行下面的钻石图案*/

{for(p=1;p<=(80-line)/2;p++)

printf("");

for(b=1;b<=k;b++)

printf("");

for(q=1;q<=line-2*k;q++)

printf("*");

printf("\n");

}

}

Diamond()/*钻石*/

{

intline;

scanf("%d",&line);

print_diamond(line);/*调用print_diamond输出钻石图案*/

}

Calculator()/*简单计算器*/

{

inta[4],b[4],c[4],i,j,k;/*定义ab两个数组存放数*/

charch[4];/*定义c存放运算符*/

FILE*fp1,*fp2;

fp1=fopen("expres.txt","r");/*打开expres文件*/

if(fp1==NULL)/*判断打开成功*/

{

printf("Cannotopenfileexpres\n");

exit

(1);

}

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

fscanf(fp1,"%d%c%d",&a[i],&ch[i],&b[i]);/*循环读入四道题*/

for(j=0;j<=3;j++)

{

switch(ch[j])/*判断运算符*/

{case'+':

c[j]=a[j]+b[j];break;

case'-':

c[j]=a[j]-b[j];break;

case'*':

c[j]=a[j]*b[j];break;

case'/':

c[j]=a[j]/b[j];break;

}

}

fp2=fopen("result.txt","w");/*打开文件result*/

if(fp2==NULL)/*判断打开文件是否成功*/

{

printf("Cannotopenfileexpres\n");

exit

(2);

}

for(k=0;k<=3;k++)/*循环向文件中输入结果*/

fprintf(fp2,"%d%c%d=%d\n",a[k],ch[k],b[k],c[k]);

printf("succeed!

\n");

}

五、测试流程:

运行程序

屏幕显示:

1.FindNum

2.FindRoot

3.Detective

4.Monkey

5.Dismond

6.Calculator

0.Goodbye!

输入:

1回车

显示:

9

Pressanykeytocontinue…

按任意键返回菜单

输入:

2回车

显示:

pleaseinputthreerealnumber:

输入:

0回车1回车2回车

显示:

press‘1’tocontinue

press’2’tocalculate

输入:

1回车

显示:

pleaseinputthreerealnumber:

(按照以上方法再输入三组数据:

1,2,1;1,3,2;1,0,4后选择2,回车)

显示:

Theequation1isnotquadratic,solutionis-2.00

Theequation2isnotquadratic,solutionis-1.00

Theequation3hasdistinctrealroots:

-1.00and-2.00

Theeauation4hascomplexroots:

-0.00+2.00i

-0.00-2.00i

Pressandkeytocontinue…

按任意键返回菜单

输入:

3回车

显示:

317744

Pressandkeytocontinue…

按任意键返回菜单

输入:

4回车

10回车

显示:

1534

Pressandkeytocont

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

当前位置:首页 > 人文社科 > 法律资料

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

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