您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 6c语言课程设计设计报告
C语言课程设计报告姓名:学号:年月目录:●程序功能简介●题目分析●函数的调用关系图及主要算法●源程序及注释●测试流程●心得感想程序一:简单数学问题一、程序功能简介:实现多个简单数学问题的求解。二、题目分析完成与菜单项对应的功能设计1、voidFindNum();/*用穷举法找到被咬掉的数字*/2、voidFindRoot();/*求解方程ax2+bx+c=0的根*/3、voidDetective();/*根据线索用穷举法找出牌照号码*/4、voidMonkey();/*根据天数循环求出第一天所摘桃子数*/5、voidDiamond();/*调用函数Print_Diamond()输出line行的钻石图案*/6、voidCalculator();/*实现两个整数简单的加减乘除四则运算*/三、函数的调用关系图:四、源程序及注释:#includestdio.h#includestdlib.h#includectype.h#includemath.hintmenu_select();voidmain()/*主函数*/{for(;;)menumenu_selectFindNumFindRootDetectiveMonkeyDiamondCalculatorPrint_Diamond{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;i10;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(disc1e-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.FindNum2.FindRoot3.Detective4.Monkey5.Dismond6.Calculator0.Goodbye!输入:1回车显示:9Pressanykeytocontinue…按任意键返回菜单输入:2回车显示:pleaseinputthreerealnumber:输入:0回车1回车2回车显示:press‘1’tocontinuepress’2’tocalculate输入:1回车显示:pleaseinputthreerealnumber:(按照以上方法再输入三组数据:1,2,1;1,3,2;1,0,4后选择2,回车)显示:Theequation1isnotquadratic,solutionis-2.00Theequation2isnotquadratic,solutionis-1.00Theequation3hasdistinctrealroots:-1.00and-2.00Theeauation4hascomplexroots:-0.00+2.00i-0.00-2.00iPressandkeytocontinue…按任意键返回菜单输入:3回车显示:317744Pressandkeytocontinue…按任意键返回菜单输入:4回车10回车显示:1534Pressandkeytocontinue…按任意键返回菜单输入:5回车5回车输出:*************Pressandkeytocontinue…按任意键返回菜单输入:6回车显示:succeed!Pressandkeytocontinue…按任意键返回菜单输入:0回车显示:Goodbye!Pressandkeytocontinue…按任意键结束程序程序二:学生成绩简单管理一、程序功能简介:用结构体数组结构实现简单的学生管理成绩管理功能,要求具有数据输入、数据输出、数组排序、元素插入、元素删除、查询等功能。二、题目分析完成与菜单项对应的功能设计1、intInput(structstudentstu[],intn);/*从键盘输入若干条纪录,依次存放到结构体数组stud中,n为数组原有纪录数,程序运行初始纪录数为0,函数返回纪录数.*/2、Display(structstudentstu[],intn);/*显示所有记录,每10个暂停一下,n为数组元素个数*/3、Sort_by_Name(structstudentstu[],intn);/*按姓名作升序排序,要求用选择排序法*/4、intInsert_a_record(structstudentstu[],intn);/*输入待插入的姓名和成绩,按姓名作有序插入,输出插入成功信息,返回纪录个数*/5、intDelete_a_record(structstudentstu[],intn);/*输入待删除的姓名,经确认后删除该姓名的纪录,输出删除成功与否的信息.返回数组中的纪录数*/6、intQuery_a_recored(structstudentstu[],intn);/*输入待查找的姓名,查找该姓名的纪录,输出查找成功与否的信息和该学生的信息*/7、intAddfromText(structstudentstud[],intn);/*从文件filename添加一批纪录到数组中,返回添加纪录后的新的纪录数*/8、WritetoText(structstudentstu[],intn);/*将数组中的纪录全部写入文件records.txt*/三、函数调用关系图:四、源程序及注释:#includestdio.h#includestdlib.h#
本文标题:6c语言课程设计设计报告
链接地址:https://www.777doc.com/doc-5198338 .html