版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、v1.0可编辑可修改北方民族大学课程报告课程名称: 程序设计实践专业班级:软件工程(2)班学生姓名:李思良学号:任课教师:王晓锋学期:2015-2016 学年春季学期课程报告任务书题目30个小程序组合成一个大程序主要内容1-已知半径求圆面积2-已知球半径,求表回积和体积3-输入两个实数,交换其值输出4-输入两个整数,求他们的平方和5-分段计费6-求一元二次方程的根7-判断三个整数是否能构成三角形8-计算11000之间能被三整除的所有自然数之和9-猴子吃桃问题10-输入一个正整数,求位数和位数之和11-输入一行字符,统计大小写字母,数字和其他字符12-输入一个四位数,将其加密后输出14-用for
2、 , while , dowhile循环实现100以内素数之和15-将大丁 10兀小于100兀的钱换成1兀,2兀,5兀的组合16-输出99乘法口诀iiiv1.0可编辑可修改17-验证哥德巴赫猜想18-求两个正整数的最大公约数和最小公倍数19-判断素数20-求(m,n)以内全部素数,每行输出 10个21-输出10000至IJ 99999的所有回数22-两个6*6矩阵的乘积23-对一批数进行排列,求出最大值与平均数24-输入一批学生的成绩,换成五分制25-逆序输出26-求阶乘27-用递归函数求Fibonacci数歹前40个数,每行输出 8个28-输入某年某月某日,判断这一天是这一年的第几天29-写
3、出1000以内的所有完数30-输入年和天数,输出对应的年、月、日将以上30个子函数放在一个主函数内进行调用。一、提交材料应包括:(1)系统源代码(2)课程报告二、整个设计过程具体要求(1)需求分析对子函数各功能进行分析,设计出需要完成的功能,完善各个子函数的调用关系;任务要求(2)设计过程 进一步明确各模块调用关系,进一步完善模块函数细节(函数 名、参数、返回值等)(3)实现过程 养成良好的编码习惯、完成各个模块并进行测试,最终完成系 统整体测试;(4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。成绩报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规
4、范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分答辩情况30分评定成绩评定教师:1.需求分析经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程序设计实践课。课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形成一个系 统性质的规模较大的程序。本次课程设计要求我们达到能独立完成一个 1000行以上的程序,完成后要求实现已知半径求圆面积、已知球半径,求表面积和体积,输入两个实数、交换其值输出等30中功能。通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉C语言开发的全过程,提高综合应用 C语言的能力、编程和调试能力,为学习计
5、算机后续课 程打好专业基础2.概要设计模块划分:1. int diyi()已知半径求圆面积2. int dier()已知球半径,求表面积和体积3. void disan()输入两个实数,交换其值输出4. voiddisi()输入两个整数,求他们的平方和5. voiddiwu()分段计费6. voiddiliu()求一元二次方程的根7. voiddiqi()判断三个整数是否能构成三角形8. voiddiba()计算11000之间能被三整除的所有自然数之和9. voiddijiu()猴子吃桃问题10. void dishi()输入一个正整数,求位数和位数之和11. void dishiyi()输入
6、一行字符,统计大小写字母,数字和其他字符12. void dishier()输入一个四位数,将其加密后输出13. int dishisan()用冒泡排序对10个数排序14. void dishisi()用for , while , dowhile循环实现100以内素数之和15. void dishiwu()将大于10元小于100元的钱换成1元,2元,5元的组合16. void dishiliu()输出99乘法口诀17. void dihsiqi()验证哥德巴赫18. void dishiba()gcd(int m,int n) int lcm(int m,int n)求两个正整数的最大公约数和
7、最小公倍数19. void dihsijiu() int isprime(int m)判断素数20. void diershi()21. void diershiyi()22. void diershier()求(m,n)以内全部素数,每行输出10个输出10000到99999的所有回数两个6*6矩阵的乘积23. void diershisan() void allPrimes(int m,int n) void sort(int array口,int n)对一批数进行排列,求出最大值与平均数24. int diershisi() char switchScore(int score)输入一批学
8、生的成绩,换成五分制25. void diershiwu()逆序输出long reverse(long number) 返回 number 的逆序数26. void diershiliu()求阶乘27. void diershiqi()用递归函数求Fibonacci数列白前40个数,每行输出8个28. int dierhsiba()输入某年某月某日,判断这一天是这一年的第几天29. void diershijiu()写出1000以内的所有完数30. void disanshi() void MonthDay(int year,int yearDay,int *pMonth,int *pDay)
9、输入年和天数,输出对应的年、月、日myprint()显示菜单界面将以上30个子函数放在一个主函数内进行调用。int main()主函数3.详细设计:#include<> #include<>#include<>#include<>#include<>#define PIvoid myprint();/*显示菜单界面*/*此函数的功能是:已知圆半径 R的值,求圆的面积 So*/int diyi()float r,area;printf("请输入圆的半径:");scanf("%f",&r);
10、area = PI * r *r;printf("该圆的面积为:%fn",area);return area;/*此函数的功能是:已知球半径R的值,求球的表面积 S和球的体积V。r R2; V = 4/3兀R3 ;*/int dier()float r,s,v;printf("请输入球的半径:");scanf("%f",&r);PIr *r;printf("该球的表面积为:%fn",s);v = s * r / 3;printf("该球的体积为:%fn",v);/*此函数的功能是:从键盘
11、输入两个实数,并交换其值后输出。*/void disan()double x,y,z;printf("请输入两个实数:");scanf("%lf%lf",&x,&y);printf("交换前两个实数为:%f,%fn",x,y);z = x; x = y; y = z;printf("交换后两个实数为:%f,%fn",x,y);/*此函数的功能是:从键盘输入两个整数,输出它们的平方和。*/void disi()int x,y,z;printf("请输入两个整数:");scanf(&
12、quot;%d%d",&x,&y);printf("%d 和 d 的平方和为: dn",x,y,x*x+y*y);/*此函数的功能是:创建时间:*/void diwu()int x;double y;printf("请输入 x :");scanf("%d",&x );if( x < 0)y = 0;else if (x>=0 && x<=15)y = 4*x/;elsey = *;printf("x = %d, y = f(x) = %lf n",
13、x, y);/*此函数的功能是:编写程序,求一元二次方程 ax2+bx+c=0的根。创建时间:*/void diliu()float a,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;248v1.0可编辑可修改if(delt = 0)x1 = x2 = -b / (2 *a);printf(" 有两个相同的实根: %.2f.n",x1);else if(delt
14、 > 0)x1 = (-b + sqrt(delt)/(2*a);x2 = (-b - sqrt(delt)/(2*a);printf(" 有两个不同的实根: x1 = %.2f,x2 = %.2f。n",x1,x2);else printf(" 无实根。n");elseprintf("不是一元二次方程。n");while, while, for三种循环语句求和,输出结果。*/void diba()int i,sum_for = 0;for( i=3; i<1000; i+=3 )sum_for = sum_for + i
15、;88v1.0可编辑可修改printf(" 使用 for 循环计算 3+6+9+.+999 的和,结果为:%d n",sum_for);/*此函数的功能是:解决猴子吃桃问题创建时间:*/void dijiu() int day,peach_num;peach_num = 1; n",peach_num);for(day=9; day>=1; day-)peach_num = 2 * (peach_num + 1);n”,day,peach_num);n”,peach_num);/*输入一个正整数,求该整数的位数和各位数之和。*/*逆序输出一个正整数 */vo
16、id dishi(void)int n,count = 0, sum = 0,m;printf("Enter n: ");/*输入提示 */scanf ("%d", &n);m = n; n",count_upper,count_lower,count_digit,count_other);return ;/*此函数的功能是:编写程序,完成以下功能:输入一个四位数,将其加密后输出。方法是该数每一位上的数字加9,然后除以10取余,作为该位上的新数字,最后将千位和十位上的数字互换,百位和各位上的数字互换,组成加密后的新四位数。如:输入 12
17、57,输出4601。创建时间:*/void dishier()int x,y,ge,shi,bai,qian;n",n);elseprintf("%d is not a prime.n",n);/*定义判断素数的函数,如果 x是素数则返回1 ("真");否则返回0 ("假")*/int isprime(int m)int i;double n;if(m = 1) return 0;/* 1n = sqrt(m);for( i = 2; i <= n; i+)if (m % i = 0)return 0;不是素数,返回0
18、 */*如果m不是素数*/*返回0 */return 1;/* m是素数,返回1 */*求m,n以内的全部素数(1<m<=n<500),每行输出10个。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。*/*使用嵌套循环求一定范围以内的全部素数*/*调用求平方根函数,需要包含数学库*/*声明:判断素数白函数,如果x是素数则返回1 ("真");否则返回0 ("假")*/int isprime(int m);:98789,这个数字正读是 98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数.还有10001,11111
19、,12721等都是回文数.*/void diershiyi()printf(" 输出10000到99999的所有回文数nn");int a,b,c,d,e;long f=10000;dof+;a=f/10000;b=(f-a*10000)/1000;c=(f-a*10000-b*1000)/100;d=(f-a*10000-b*1000-c*100)/10;e=f-a*10000-b*1000-c*100-d*10;if (a=e&&b=d) printf("%8ld",f);while (f);/*求两个矩阵的乘积*/void dier
20、shier()int a66;int i,j,sum=0;int max=0;printf("请输入一个6*6数组的各个元素:n");for(i=0;i<6; i+)for(j=0;j<6;j+)scanf("%d”,&aij);if(aij>max)max=aij;sum+=aij;printf("最大值为:dn所有元素的和为dn",max,sum);for(i=0;i<6;i+)for(j=0;j<6;j+)if(aij=max)printf(" 最大值的行标:%d 列标:dn",i
21、+1,j+1);break; if(aij=max)break;/*对一批数进行排列,并求出最大值与平均数*/#define MAX 100#define SWAP(x,y) int t;t=x;x=y;y=t;void diershisan()int n,i;void sort(int a,int );int arrayMAX;printf("你想对多少个数进行排序:n");scanf("%d",&n);srand(unsigned)time(NULL);for(i=0;i<n;i+)arrayi=rand()%50;printf(&qu
22、ot;n 输出排序前的数:n");for(i=0;i<n;i+)printf("%3d",arrayi);printf("n");sort(array,n);void sort(int array口,int n)int i,k,j;double av=0;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(arrayj>arrayk)k=j;if(k!=i)SWAP(arrayi,arrayk);for(i=0;i<n;i+)av+=arrayi;printf("输出排序后的
23、数:n");for(i=0;i<n;i+)printf("%3d",arrayi);printf("n 最大数是:dn",array0);printf("平均数是:%lfn",av/n);printf("n");/*此函数的功能是:将学生成绩由百分制换算成五分制创建时间:*/char switchScore(int score);void diershisi()int score;char grade;char switchScore(int score);while(1) */*逆序输出一个正整数
24、*/void diershiwu()printf("逆序输出一个正整数nn");long n,m;long reverse(long number);printf("Enter n: ");/*输入提示 */scanf ("%d", &n);m = reverse(n);printf("该数是:%d,它的逆序数是:d.n",n,m);long reverse(long number) long m ;m = 0;编程找出1000以内的所有完数。*/void diershijiu()int i,j,sum;f
25、or(i=2;i<1000;i+)2416v1.0可编辑可修改sum=0;for(j=1;j<i;j+)if(i%j=0)sum=sum+j;if(sum=i)printf("%d its factors are %dn",i,j);*/*输入年和天数,输出对应的年、月、日void MonthDay(int year,int yearDay,int *pMonth,int *pDay);void disanshi()int year,yearDay,month,day;printf("请输入年份和天数");scanf("%d%d&q
26、uot;,&year,&yearDay); 试分析:问题一:一些小错误比如单词前后拼写错误以及中英的标的符号解决办法:反复调试修改问题二:在函数的调用中,有些函数无法调用问题解决办法:多次具体分析,函数返回值返回return+返回函数定义类型,如果是void无返回值类型,可以用return;表示退出函数体测试结果1.开始菜单话输入选项编号【1-利卜1-己却为迳求同却不只知球半径.求表前积和体积3一输入两个宝数,交换其值输出 k-较人两个整数.求他们的平方和5一分段计熨7-求一元次方程的根了一判断三千整数是否能构成匚角形计算1口眄。之间能被一整除的所有自蜕数之和多一猴子吃桃问廖1
27、。一情入一个正整数,求位数邪1立数之和“一嫡入一行字符-统计大小写字母r数字和其他字符1Z一情人一个四位数:晡其加密后输出1 A-用选拷排序对1。个数排序14一庄干or, Hhil* dortdiNB环实现一日以内索敦15一将大十1日无小于兀的钱顿成1元,N元,5元的矩合16一输出99乘法口诀1一虻记尉货巴赫猪朝1注求两个正整数的最K公用数和病小公僭数1加一判断素效求(*E)班内全部素数,每行输出1。个21 -轲出1画配到39999的所有回教22-两个6*6矩阵的乘快2418v1.0可编辑可修改202.已知半径求圆面积1请输入圆的半程=5该图的面积为:”.黑96酶醛眦读选产吗阳/N)?3 .已
28、知球半径,求表面积和体积4 .输入两个实数,交换其值输出2京帝人琴的以校:加球的表面积为:290 960007诬理枳为 之a6686耍继嫌选带吗(Y/N)?扇狗拼音输入法全二v1.0可编辑可修改2205.输入两个实数,交换其值输出3请输入两个实数:1 S交求汇两个实数为;1 .090900 6 G303G3交推后两个实数为;s,QeMee j GBeaea要锚饯选弹吗 WN)?血狗拼音输入法全;6.分段计费耳京晌入两个蕾粒;2 4R引电的甲方和知29要里续选择吗家狗法音越人法全:7.求一元二次方程的根序输入x : 3K = 3, y : f(xl : 4.600969笠能续选挎吗("
29、吗 ¥超狗拼音软入法全:8.判断三个整数是否能构成三角形请输入第蓼.!?,= 2 51 2有两个不同的家书t xl = G.G xZ = -25.4G,要韭就选择吗卬/田?搜食物白他入法全:7请镯入三个整越* 3 4 5请输入三个整新1 9 8三个里敕可以作为三条边构成一个三角形用能构成一个二角形要继域选择吗(VN)?要驻缕选择吗(VN)?L狗拼音输入法至:搜狗拼音输入法隹j使用网广嘴坏广算3+白*9*+999的和.结果为I 1&Ga33笠噩续选择嗯(W*)?狗拼管输入法至:9第1天摘的桃子总效为15M .要继续逸择隔(Y/N)?11.v1.0可编辑可修改16Enter n:
30、 E73B9167309,它共有5位,它的各个数字之和为”.12.鎏继续选择吗(*/2?11甫输入十个字符.最好位含大小写字母.数字却其他符号士hquil23/一,.大写字母有 0个,小写字母有 4个,数字字符有 3个,其他字符育 3个.要继续选择隔(丫4)?242913.请输入一X向位的正整数x:4567加密前读数的各位数字分别为二4 5 6 7加密前该数为,456 T .加密后该裳变为;56a请帝人一个四位的正整数JC;S789e耗转续标捋叫(Y/N)?14.Hida V ", f_ _小_ i iaput 16 hUfiMf : 9 8 4 7 8 3 7 77 8B 1>
31、;lth。 result i电!aa T? 14 9 5 8 8 7 7 4要林及选择吗小/町?15.用于。.明”明曲-曲订/荫环实现108以内所有偶效之门的循环:sui;25504iil循环:sum=255ed0 - ldhi 1.循印:4U*tZSS0要继里选择吗。川尸 *汽,*.=P-WJT:,5MW,一叶- 一巾丁: :c一17.18.17验证谕德巴扬希想t壮呵一个大于6的偶数均可表示为2个素数之和19.20.21.19请输入一个正整数:钏28642a is not a p广i“一要统续选拜玛"N?请输入一个正整教二2323 is a pritn«.要夔线法择吗(W
32、N”性两正整数的最大公约数和最小公倍数input n.m46 98Ld(4E.93j=2要继续造屋吗d/W?20情嗡人正楚效的范围周杆In 口工就训45日口); H 36571113171923233122.1000110101102B11G3G1194011656116G611070119B311999111C11111111121111311114111151111611117111 1S11119111262112121122211232112421125211262112?21128211 292113到1)131132311 33311 331353113?3113S311 3931
33、mem14141142%143411叫41145*1memm?m148411 4941155115151152511535115咐155511S65115751isasi1595115防1161611B2611036116*4611656116G611SYS11B861169811TBT1171711 72711 7371174711 7571iron1 ?711 78711 ?9711RB11313118281183S11到81185811W811SYS11888118981196911919119291193911943119591196911979119891199912QG022010
34、2202Gz2G3Q22Q4Q22M8I2206622970220882299M216122111221212213122141221slz2U1221712213122191d22022221222222222322224222252222G2222722228222232Z2363223132232322333223143223532旬提23S32之39.24Q42241422U2U222244422454224642247422斗蚪224942505225152252522 5352254S225S5i56*2575225S52之的5a2&1S22&2G22&4E22ESG2EGG267G2?&B£?270722T1T22727227372274722T57i722777227S72i7973”i atq 0nmn523.输11 0£|耻1到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- XX建筑工程有限公司材料会计岗位职责
- 电厂安全管理视频讲解
- 安全试验操作指南讲解
- 幼师学业与职业规划
- 士官职业发展指导方案
- HKICPA认证就业价值
- 生产安全预案分类解析讲解
- 职业规划评语集锦
- 2026年销售经理面试模拟题
- 2026年安全监测专业知识
- 河南省郑州市郑州枫杨外国语校2026届中考数学最后冲刺模拟试卷含解析
- DB32∕T 4825-2024 普通国省道数字化建设与应用技术规程
- DBJ53T-44-2021云南省建筑工程资料管理规程
- 鲁南制药就业协议书
- 海外出国劳务合同8篇
- 《宠物饲养管理》课件-宠物犬生殖系统解剖生理特点
- 贵州省遵义市(2024年-2025年小学六年级语文)统编版小升初模拟((上下)学期)试卷及答案
- 《中国心力衰竭诊断和治疗指南2024》解读(下)
- 侵袭性肺曲霉病课件
- 电梯维保人员奖惩制度
- 商务英语专业四级
评论
0/150
提交评论