好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

c语言课设第一题.doc

8页
  • 卖家[上传人]:gg****m
  • 文档编号:231145166
  • 上传时间:2021-12-28
  • 文档格式:DOC
  • 文档大小:122KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 课题:简单数学问题一、 程序的主要功能利用循环,选择和控制语句对数据进行处理,并利用函数的调用和嵌套,通过控制菜单实现对简单数学问 题的求解二、 题目分析1. Main实现控制菜单的运行,输入数字0~6,分别调用对应的数据2. FindNum;利用循环语句(穷举法),调节语句筛选出符合条件的数字,并打印输出3. FindRoot利用选择控制语句,将一元二次方程前系数不同情况分类并打印输出不同的根1) a=0,则表达式不是一元二次方程,解为-c/bo(2) b*b-4ac=0,有两个相等的实数根3) b*b-4ac>0,有两个不相等的实数根4) b*b-4ac<0,有两个共轨的复数根4. Detective求出后四位再加上310000,该数前两位相同,后两位也相同,互相又不相同并且是某整数的平方的数利用 循环(穷举法),将符合条件的数字打印输出5. Monkey此函数可实现求出第一天桃子数目,利用递推算法,设第十天的桃子数是x=l,则第九天的桃子数为(x+1) *2共递推九次就可以得到第一天猴子所摘桃子数并打印输6. Diamond通过观察图案组成的特点,可以把它分成两个部分:上面4行和下面3行,上面按行数递增,下面部分按 行数递减。

      欲将图案输岀在屏幕中心,通过计算可知每一行的左边该有多少空格在此基础上,对图案的 上半部分第i行,先输出i个空格,然后输出2i—l个星号下半部分同此函数通过循环实现钻石图案 的输出7. Calculator打开数据文件expres. txt,按顺序依次读入每行表达式中的两个运算量和一个运算符,根据运算符确定 执行的是哪一种运算,计算后将结果在屏幕上显示,同时写入结果数据文件result, txto三、 感想与心得通过这次的课程设计训练,我意识到想要正真编好一个程序是多么的不容易,这不仅需要大量的时间与精 力,还需要毅力与耐心,因为在程序设计的过程中总是会有这样那样的错误,这个时候就需要我们耐心的 寻找错误在我刚开始编写这一程序时,非常的粗心,因此花了好多时间在程序调适上,导致我的进度大打折扣,后 来我发现是由于我总是在随意编,没有逻辑性,因此我认识到写出程序构架的重要性,渐渐地,编程越来 越顺手了在此次的课程设计中,我对基本算法有了一定的复习同时我还发现调试程序的重要性,一个程序调试, 要先调好一个程序的基本功能,再完善,再调整,到完成后再调下一个程序,这样比较有针对性,节约时 间,提高效率。

      通过这次程序的整体设计和细节修整不仅让我获得了专业方面的进步,还对本学期所学的课程进行一次系 统而深入的复习,对存在的不懂的知识做了思考,发现了自己的很多不足C语言的学习让我受益匪浅, 是我的结构性和逻辑性有了很大的提高,同时也在很大程度上锻炼了我的思维,使我的思维具有逻辑性、 层次性C语言作为常用的基础的编程工具,具有着重要的作用,为我们以后学习相关的专业知识打下了 基础感谢李老师的指导四、源程序及注释#include#include#include /*所包含文件名*/#include/*所包含文件名*//*函数声明*/int menu_select();void FindNumO ;void FindRoot ();void Detective();void Monkey ();void Diamond();void Print_Diamond(int lines): void Calculator();/*主函数*/void mainO{for (:;){switch(menu_se1ect()) {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 ("cis");printf ("1. FindNumn"); printf (z,2. FindRootn"); printf (〃3・ Detective\n"); printf ("4. Monkeyn"); printf ("5. Diamond\n");printf (z/6・ Calculator\n"); printf (〃0・ Goodbye!\n"); printf ("Input 1-6,0:; c=getcharO ;}wh 订 e(c<‘ 0| |c> 6); return (c-1 0’);}/*找数字*/void FindNum(){int i:for (i=0; i<10; i++) /*穷举*/if((3*10+i) *6237= (i*10+3) *3564) /* 循环筛选符合条件的数*/printf C3%d*6237=%d3*3564\n", i, i);}}/*解方程*/void FindRoot(){float a, b, c, disc, xl, x2, real, image; /*定义 abc 三个系数,A=disc,实部 real,虚部 image*/printf(^Please input three real numbers:");scanf ("%f%f%f", &a, &b, &c);printfCThe equation");if (fabs(a) ==0) /*a=0 的情况*/printf("is not quadratic, solution is %・2f\n",-c/b);else{disc=b*b-4*a*c;if (fabs (disc) =0) /*有两个相等的实根的情况*/printf("is not quadratic, solution is:%・2f\n",-b/(2*a));else if (disc>0) /*有两个不等实根的情况*/{ xl=(-b+sqrt (disc))/(2*a);x2= (-b-sqrt(disc))/(2*a);printf("has distinct real roots:%・2f and %• 2f\n", xl, x2);}else /*有两个虚根的情况*/{ real二-b/(2*a);image=sqrt(-disc)/(2*a);printf("has complex roots:\n");printf(“%・ 2f+%・ 2fi\n", real, image);printf ("%・ 2f-%・ 2fi\n", real, image);}}}/*牌照号码*/void Detective(){int a, b, c, d, i, m;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)printf("The number is:%ld\n", m+310000);}/*猴子吃桃*/void Monkey(){int x=l, i,n; /*x为水果数,n为最后一天的天数*/printf(*Please input the day that left 1 peach:\n"); scanf &n);for(i=n-l;i>=l;i—)x= (x+l)*2;printf("The first day has %d peachesn", x);)/*钻石图案*/void Print_Diamond(int lines) /*钻石图案被调函数*/{int i, j; /*行数 i 列数 j*/for (i=l; i<= (lines+l)/2; i++) /* 上半部分*/{printf ("\n"); /*换行*/for (j=l; j<= (1 ines+1) /2-i+32; j++)printff "); /*输入空格*/for(j=l;j<=2*i-l;j++)printf ("*"); /*于屏幕中央输出* */}for(i=l;i<=(lines/2) ;i++) /*下半部分*/{printf("\n");for(j=l;j<=i+32;j++)printf (“ ”);for (j=l;j<=(lines-2*i);j++)printf(***);}}void Diamond() /*钻石图案*/{int num;printf("Please input num:");scanf("%d", &num);if (num%2==0) /*图形不能出现偶数行*/printf ("Your operation is wrong!\nz,);else Print_Diamond(num); /*调用函数*/printf("\n");/*计算器*/void Calculator()FILE *fpl,*fp2;char s[100];if ((fpl=fopen(^expres. txt", "r"))二二NULL) /*判断打开文件是否成功*/ {printf("Cannot open f订e\n");exit (1);}if ((fp2二fopen ("result, txt", "w"))二二NULL) /*判断打开文件是否成功*/ {printf("Cannot open f订e\n");exit (1);}while(1){if(fscanf(fpl, "%s", s)!=EOF){fprintf(fp2, "%s二",s);if (s[l]==,+) fprintf (fp2, "%d\n", s[0]+s[2]~, O O);if (s[l]==, ) fprintf (fp2, "%d\n", s[0]-s[2]);if (s[l]==,*) fprintf (fp2, "%d\n", (s[0]-‘ 0, )*(s[2]- O));if (s[l]==, r ) fprintf (fp2, "%d\n", (s[0]~, O)/(s[2]- O));}else break;)fclose(fpl);fclose(fp2);}五、函数调用关系图。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.