您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《C语言程序设计实践》课程报告
1北方民族大学课程报告课程名称:程序设计实践专业班级:软件工程(2)班学生姓名:李思良学号:20152170任课教师:王晓锋学期:2015-2016学年春季学期课程报告任务书题目30个小程序组合成一个大程序主要内容1--已知半径求圆面积2--已知球半径,求表面积和体积3--输入两个实数,交换其值输出4--输入两个整数,求他们的平方和5--分段计费6--求一元二次方程的根7--判断三个整数是否能构成三角形8--计算1~1000之间能被三整除的所有自然数之和9--猴子吃桃问题10--输入一个正整数,求位数和位数之和11--输入一行字符,统计大小写字母,数字和其他字符12--输入一个四位数,将其加密后输出14--用for,while,do~while循环实现100以内素数之和15--将大于10元小于100元的钱换成1元,2元,5元的组合16--输出99乘法口诀17--验证哥德巴赫猜想18--求两个正整数的最大公约数和最小公倍数219--判断素数20--求(m,n)以内全部素数,每行输出10个21--输出10000到99999的所有回数22--两个6*6矩阵的乘积23--对一批数进行排列,求出最大值与平均数24--输入一批学生的成绩,换成五分制25--逆序输出26--求阶乘27--用递归函数求Fibonacci数列的前40个数,每行输出8个28--输入某年某月某日,判断这一天是这一年的第几天29--写出1000以内的所有完数30--输入年和天数,输出对应的年、月、日将以上30个子函数放在一个主函数内进行调用。任务要求一、提交材料应包括:(1)系统源代码(2)课程报告二、整个设计过程具体要求(1)需求分析对子函数各功能进行分析,设计出需要完成的功能,完善各个子函数的调用关系;(2)设计过程进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3)实现过程养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4)总结阶段按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分答辩情况30分成绩评定教师:31.需求分析经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程序设计实践课。课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形成一个系统性质的规模较大的程序。本次课程设计要求我们达到能独立完成一个1000行以上的程序,完成后要求实现已知半径求圆面积、已知球半径,求表面积和体积,输入两个实数、交换其值输出等30中功能。通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉C语言开发的全过程,提高综合应用C语言的能力、编程和调试能力,为学习计算机后续课程打好专业基础。2.概要设计模块划分:1.intdiyi()已知半径求圆面积2.intdier()已知球半径,求表面积和体积3.voiddisan()输入两个实数,交换其值输出4.voiddisi()输入两个整数,求他们的平方和5.voiddiwu()分段计费6.voiddiliu()求一元二次方程的根7.voiddiqi()判断三个整数是否能构成三角形8.voiddiba()计算1~1000之间能被三整除的所有自然数之和9.voiddijiu()猴子吃桃问题10.voiddishi()输入一个正整数,求位数和位数之和11.voiddishiyi()输入一行字符,统计大小写字母,数字和其他字符12.voiddishier()输入一个四位数,将其加密后输出13.intdishisan()用冒泡排序对10个数排序14.voiddishisi()用for,while,do~while循环实现100以内素数之和15.voiddishiwu()将大于10元小于100元的钱换成1元,2元,5元的组合16.voiddishiliu()输出99乘法口诀17.voiddihsiqi()验证哥德巴赫18.voiddishiba()gcd(intm,intn)intlcm(intm,intn)求两个正整数的最大公约数和最小公倍数19.voiddihsijiu()intisprime(intm)判断素数20.voiddiershi()求(m,n)以内全部素数,每行输出10个21.voiddiershiyi()输出10000到99999的所有回数22.voiddiershier()两个6*6矩阵的乘积23.voiddiershisan()voidallPrimes(intm,intn)voidsort(intarray[],intn)对一批数进行排列,求出最大值与平均数24.intdiershisi()charswitchScore(intscore)输入一批学生的成绩,换成五分制25.voiddiershiwu()逆序输出longreverse(longnumber)返回number的逆序数26.voiddiershiliu()求阶乘27.voiddiershiqi()用递归函数求Fibonacci数列的前40个数,每行输出8个428.intdierhsiba()输入某年某月某日,判断这一天是这一年的第几天29.voiddiershijiu()写出1000以内的所有完数30.voiddisanshi()voidMonthDay(intyear,intyearDay,int*pMonth,int*pDay)输入年和天数,输出对应的年、月、日31.voidmyprint()显示菜单界面将以上30个子函数放在一个主函数内进行调用。intmain()主函数3.详细设计:#includestdio.h#includemath.h#includestdlib.h#includetime.h#includestring.h#definePI3.14voidmyprint();/*显示菜单界面*//*此函数的功能是:已知圆半径R的值,求圆的面积S。*/intdiyi(){floatr,area;printf(请输入圆的半径:);scanf(%f,&r);area=PI*r*r;printf(该圆的面积为:%f\n,area);returnarea;}/*此函数的功能是:已知球半径R的值,求球的表面积S和球的体积V。S=4πR2;V=4/3πR3;*/intdier()5{floatr,s,v;printf(请输入球的半径:);scanf(%f,&r);s=4*PI*r*r;printf(该球的表面积为:%f\n,s);v=s*r/3;printf(该球的体积为:%f\n,v);}/*此函数的功能是:从键盘输入两个实数,并交换其值后输出。*/voiddisan(){doublex,y,z;printf(请输入两个实数:);scanf(%lf%lf,&x,&y);printf(交换前两个实数为:%f,%f\n,x,y);z=x;x=y;y=z;printf(交换后两个实数为:%f,%f\n,x,y);}/*此函数的功能是:从键盘输入两个整数,输出它们的平方和。*/voiddisi(){intx,y,z;printf(请输入两个整数:);6scanf(%d%d,&x,&y);printf(%d和%d的平方和为:%d\n,x,y,x*x+y*y);}/*此函数的功能是:创建时间:*/voiddiwu(){intx;doubley;printf(请输入x:);scanf(%d,&x);if(x0){y=0;}elseif(x=0&&x=15){y=4*x/3.0;}else{y=2.5*x-10.5;}printf(x=%d,y=f(x)=%lf\n,x,y);}/*此函数的功能是:编写程序,求一元二次方程ax2+bx+c=0的根。创建时间:*/7voiddiliu(){floata,b,c,delt,x1,x2;printf(请输入系数a,b,c:);scanf(%f%f%f,&a,&b,&c);if(a!=0){delt=b*b-4*a*c;if(delt==0){x1=x2=-b/(2*a);printf(有两个相同的实根:%.2f.\n,x1);}elseif(delt0){x1=(-b+sqrt(delt))/(2*a);x2=(-b-sqrt(delt))/(2*a);printf(有两个不同的实根:x1=%.2f,x2=%.2f。\n,x1,x2);}elseprintf(无实根。\n);}else{printf(不是一元二次方程。\n);}}//该程序的功能是:8/*从键盘输入三个整数,判断能否由它们作为三边长构成一个三角形。(提示:任意两边之和大于第三边。)*/voiddiqi(){inta,b,c;printf(请输入三个整数:);scanf(%d%d%d,&a,&b,&c);if(a+bc&&a+cb&&b+ca)printf(三个整数可以作为三条边构成一个三角形。\n);elseprintf(不能构成一个三角形);}//该函数的功能是:用循环语句计算1~1000之间的能被3整除的所有自然数的和。/*分别用do…..while,while,for三种循环语句求和,输出结果。*/voiddiba(){inti,sum_for=0;for(i=3;i1000;i+=3)sum_for=sum_for+i;printf(使用for循环计算3+6+9+….+999的和,结果为:%d\n,sum_for);}/*此函数的功能是:解决猴子吃桃问题9创建时间:*/voiddijiu(){intday,peach_num;peach_num=1;//第10天的桃子个数//printf(第10天的桃子个数为%6d.\n,peach_num);for(day=9;day=1;day--){peach_num=2*(peach_num+1);//printf(第%2d天的桃子个数为%6d.\n,day,peach_num);}//第一天的桃子数即为所摘的桃子总数。输出第一天的桃子数。printf(第1天摘的桃子总数为%d.\n,peach_num);}/*输入一个正整数,求该整数的位数和各位数之和。*//*逆序输出一个正整数*/voiddishi(void){intn,count=0,sum=0,m;printf(Entern:);/*输入提示*/scanf(%d,&n);m=n;//保存输入的n的值,便于后面输出while(n!=0){sum+=n%10;n=n/10;count++;}printf(该数是%d,它共有%d位,它的各个数字之和为%d。\n,m,count,sum);10}//该函数的功能是:/*************************************************************输入十个字符,分别统计其中的英文大写字母,小写字母、数字字符和其他字符。***********************************************************/voiddishiyi(){intcount_upper=0,count_lower=0,count_digit=0,count_other=0,i,j;charch[10];printf(请输入十个字符,最好包含大小写字母、数字和其他符号:\n);getchar();for(i=0;i10;i++){scanf(%c,&ch[i]);}printf(%c,ch[9]);for(j=0;j10;j++){if(ch[j]='A'&&ch[j]='Z')count_upper++;elseif(ch[j]='a'&&ch[j]='z')count_lower++;elseif(ch[j]='0'&&ch[j]='9')count_
本文标题:《C语言程序设计实践》课程报告
链接地址:https://www.777doc.com/doc-3179394 .html