(完整版)c语言课程设计设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计报告
姓名:
学号:
年月
目录:
●程序功能简介
●题目分析
●函数的调用关系图及主要算法●源程序及注释
●测试流程
●心得感想
程序一:简单数学问题
一、程序功能简介:
实现多个简单数学问题的求解。
二、题目分析
完成与菜单项对应的功能设计
1、void FindNum( ); /*用穷举法找到被咬掉的数字*/
2、void FindRoot( ); /*求解方程ax2+bx+c=0的根*/
3、void Detective( ); /*根据线索用穷举法找出牌照号码*/
4、void Monkey( ); /*根据天数循环求出第一天所摘桃子数*/
5、void Diamond( ); /*调用函数Print_Diamond( )输出line行的钻石图案*/
6、void Calculator( ); /*实现两个整数简单的加减乘除四则运算*/
三、函数的调用关系图:
四、源程序及注释:
#include
#include
#include
#include
int menu_select();
void main() /*主函数*/
{
for(;;)
{
switch(menu_select())
{case 1:
FindNum();
system("pause");
break;
case 2:
FindRoot();
system("pause");
break;
case 3:
Detective();
system("pause");
break;
case 4:
Monkey();
system("pause");
break;
case 5:
Diamond();
system("pause");
break;
case 6:
Calculator();
system("pause");
break;
case 0:
printf("Goodbye!\n");
system("pause");
exit(0);
}
}
}
int menu_select() /*主函数菜单*/ {
char c;
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() /*找数字*/
{
int i;
for(i=1;i<=9;i++) /*穷举*/
if((30+i)*6237==(10*i+3)*3564)
printf("%d\n",i);
}
FindRoot() /*找方程的根*/
{
float a[10],b[10],c[10],disc,x1,x2,real,image; /*定义abc三个数组存放方程的系数*/
int i,k,j;
for(i=0;i<10;i++) /*循环输入方程的三个系数*/
{
printf("please input three real numbers:\n");
scanf("%f%f%f",&a[i],&b[i],&c[i]);
printf("press '1' to continue\npress '2' to calculate\n");
scanf("%d",&k);
if (k==2) break; /*判断是否继续输入*/
}
for(j=0;j<=i;j++)
{
printf("The equation %d",j+1);
if (fabs(a[j])<=1e-7) /*a=0的情况*/
printf(" is not quadratic, solution is %.2f\n",-c[j]/b[j]);
else
{
disc=b[j]*b[j]-4*a[j]*c[j];
if (fabs(disc)<=1e-7) /*有两个相等的实根的情况*/ printf(" is not quadratic,solution is: %.2f\n",-b[j]/(2*a[j])); else if (disc>1e-7) /*有两个不等实根的情况*/
{
x1=(-b[j]+sqrt(disc))/(2*a[j]);
x2=(-b[j]-sqrt(disc))/(2*a[j]);
printf(" has distinct real roots: %.2f and %.2f\n",x1,x2); }
else /*有两个虚根的情况*/