C语言课程设计机械设计制造课程设计.doc_第1页
C语言课程设计机械设计制造课程设计.doc_第2页
C语言课程设计机械设计制造课程设计.doc_第3页
C语言课程设计机械设计制造课程设计.doc_第4页
C语言课程设计机械设计制造课程设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言课程设计学 院: 机电专 业: 机械设计制造 班 级: 数控(2)班 学 号: 2520110201 姓 名: 徐莹 指导教师: 宋亚岚 2012年6月22日目 录第一章 选择和循环程序设计3第二章 数组7第三章 函数9第四章 指针11第五章 课程设计总结14例1:输入任意的三位整数以反向形式输出。如输入678则输出876。【算法分析】(用文字或流程图进行描述)对于三位数n以反向输出要求将构成这三位数的元素进行拆分。个位上的元素乘100加上十位上的元素乘10加上百位上的元素乘1得到一个新三位数。将新的三位数输出即可。如何将三位数进行拆分则需用到表达式中整除和求余运算具体方法如下:用x1,x2,x3分别存放拆分后的百位、十位个位数x1=n/100 则得到百位数x2=n/10%10 则得到十位数x3=n%10 则得到个位数y=x3*100+x2*10+x1*1【源程序代码】#includevoid main() int x1,x2,x3,n,y; printf(“please input number n:”); scanf(“%d”,&n); x1=n/100; x2=n/10%10; x3=n%10;y=x3*100+x2*10+x1*1;printf(“y=%d”,y); 【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】第一章 选择和循环程序设计1、企业发放的奖金根据利润提成。利润i低于或等于100000元的,奖金可提10%,利润高于100000元,低于200000元(100000i=200000)时,低于100000元的部分按10%提成,高于100000的部分,可提成7.5%; 200000i=400000时,低于200000元的部分仍按上述办法提成(下同)。高于200000的部分,按5%提成;400000i=600000元时,高于400000的部分按3%提成;600000i1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润i,求应发奖金总数。要求:(1) 用if 语句编程(2) 用switch语句编程序 【算法分析】(用文字或流程图进行描述)根据利润的范围,确定可提成的百分比,利润为i1. i=100000,w=i*0.12. 100000i=200000,w=(i-100000)*0.75+100000*0.13. 200000i=400000,w=(i-200000)*0.05+100000*0.75+100000*0.14. 400000i=600000,w=(i-400000)*0.03+100000*0.05+100000*0.075+100000*0.15. 600000i1000000,7. w=(i-1000000)*0.01+100000*0.1+100000+0.075+100000*0.05+100000+0.03+100000*0.015 【源程序代码】(1). #includeint main()int i; float w;printf(请输入利润i:);scanf(%d,&i);if(i=100000)w=i*0.1;else if(i=200000)w=(i-100000)*0.075+100000*0.1;else if(i=400000)w=(i-200000)*0.05+100000*0.1+100000*0.075;else if(i=600000)w=(i-400000)*0.03+100000*0.1+100000*0.075+100000*0.05;else if(i=1000000)w=(i-600000)*0.015+100000*0.1+100000*0.075+100000*0.05+100000*0.03;elsew=(i-1000000)*0.01+100000*0.1+100000+0.075+100000*0.05+100000+0.03+100000*0.015;printf(应发奖金总数w=%fn,w);return 0;(2). #includeint main()int i,w,j;printf(请输入利润i: );scanf(%d,&i);j=i/100000;switch(j)case 0: w=i*0.1;break;case 1: w=(i-100000)*0.075+100000*0.1;break;case 2:case 3: w=(i-200000)*0.05+100000*0.1+100000*0.075;break;case 4:case 5: w=(i-400000)*0.03+100000*0.1+100000*0.075+100000*0.05;break;case 6:case 7:case 8:case 9: w=(i-600000)*0.015+100000*0.1+100000*0.075+100000*0.05+100000*0.03;break;case 10: w=(i-1000000)*0.01+100000*0.1+100000+0.075+100000*0.05+100000+0.03+100000*0.015;break;printf(应发奖金总数为:%dn,w);return 0;【编译示图】(示图中要有0 error,0 warning的提示)(1)(2)【运行结果示图】(1)(2)2、猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上又想再吃时,就只剩下一个桃子了。求第1天共摘了多少个桃子。【算法分析】(用文字或流程图进行描述)第一天的桃子是第二天桃子加1后的两倍,如此循环下去。【源程序代码】#includeint main()int i,j,day;day=9;j=1;while(day0)i=(j+1)*2;j=i;day-;printf(%dn,i);return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】3、某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。问45块砖,有多少种搬法?【算法分析】(用文字或流程图进行描述)有男人x,女人y,小孩z;3*x+2*y+z/2=45;(0=x=15,0=y=22,0=z=90)【源程序代码】#includeint main()int x,y,z,j=0;for(x=0;x=15;x+)for(y=0;y=22;y+)for(z=0;z=90;z+)if(3*x+2*y+z/2=45) j+;printf(有%d种搬法n,j);return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】第二章 数组1、某班有10名学生参加全国计算机等级考试,编写一个程序求该班学生考试成绩的平均分和高于平均分的人数。【算法分析】(用文字或流程图进行描述)先用scanf函数输入这十个人的成绩,然后用累加法算出这十个人的总成绩,用总成绩除人数10就得到了平均成绩。然后用if语句求出高于平均分的人数。【源程序代码】#includeint main()int i,s,a10,j=0;float ave;for(i=0;i10;i+)scanf(%d,&ai);s=0;for(i=0;i10;i+)s+=ai;ave=s/10.0;printf(这个班的平均成绩为:%fn,ave);for(i=0;iave) j+;printf(高于平均分的人数为:%dn,j);return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】2、定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每5个数求出一个平均值,放在另一数组中并输出。【算法分析】(用文字或流程图进行描述)先用scanf函数输入这30个数,然后再定义一个数组,把每五个数的平均值按顺序依次放入新定义的数组中,最后输出新定义的数组即可。【源程序代码】#includeint main()int a30,b6,i,j;printf(enter 30 integer numbers:);for(i=0;i30;i+)scanf(%d,&ai);b0=(a0+a1+a2+a3+a4)/5.0;b1=(a5+a6+a7+a8+a9)/5.0;b2=(a10+a11+a12+a13+a14)/5.0;b3=(a15+a16+a17+a18+a19)/5.0;b4=(a20+a21+a22+a23+a24)/5.0;b5=(a25+a26+a27+a28+a29)/5.0;for(j=0;j6;j+)printf(%d ,bj);printf(n);return 0;【编译示图】(示图中要有0 error,0 warning的提示)第三章 函数1、有一个一维数组score,内存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分。【算法分析】(用文字或流程图进行描述)用max函数求出最高分,用min函数求出最低分,【源程序代码】#includeint main()int score10,i,m,s=0;int max(int x,int y);int min(int j,int k);float ave;printf(enter 10 integer numbers:);for(i=0;i10;i+)scanf(%d,&scorei);printf(n);for(i=0;i10;i+)s=s+scorei;ave=s/10.0;printf(平均成绩为:%fn,ave);for(i=1,m=score0;im)m=max(m,scorei);printf(这十个学生的最高分是:%dn,m);for(i=1,m=score0;i10;i+)if(min(m,scorei)y?x:y);int min(int j,int k)return(jk?k:j);【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】2、输入年月日,求它是该年的第几天。注:闰年的2月有29天,平年的2月有28天。【算法分析】(用文字或流程图进行描述)先判断该年是闰年还是平年,然后根据月份的天数算出是第几天.【源程序代码】#includeint main()int i,year,month,day,sum=0,m,n;int a12;printf(输入年月日:);scanf(%d,%d,%d,&year,&month,&day);if(year%4=0&year%100!=0)|(year%400=0)m=29;else m=28;a0=a2=a4=a6=a7=a9=a11=31;a3=a5=a8=a10=30;a1=m;for(i=0;imonth-1;i+)sum=sum+ai;n=sum+day;printf(这天是该年的第:%d天n,n);return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】第四章 指针1、已知一个整型数组a5,其各元素值为4,6,8,10,12。使用指针法求该数组元素之积。【算法分析】(用文字或流程图进行描述)通过指针引用数组,然后再累乘.【源程序代码】#includeint main()int a5=4,6,8,10,12,w=1;int *p=a;for(p=a;p=a+4;p+)w=w*(*p);printf(所有元素的积是:%dn,w);return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】2、编写两个排序函数,要求一个函数完成从小到大排序,一个函数完成从大到小排序,并编写主函数完成: 输入n个数; 组织调用排序函数对n个数按从大到小排序并输出; 组织调用排序函数对n个数按从小到大排序并输出;【算法分析】(用文字或流程图进行描述)在主函数中定义数组a存放10个整数,定义int *型指针变量p指向a0。定义函数sort使数组a中的元素按由大到小的顺序排列。定义fac函数使数组a中的函数按由小到大的顺序排列。【源程序代码】#includeint main()void sort(int x,int n);void fac(int x,int n);int i,*p,a10;p=a;printf(输入n个数:);for(i=0;i10;i+)scanf(%d,p+);p=a;sort(p,10);for(p=a,i=0;i10;i+)printf(%d ,*p);p+;printf(n);p=a;fac(p,10);for(p=a,i=0;i10;i+)printf(%d ,*p);p+;printf(n);return 0;void sort(int x,int n)int i,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jxk) k=j;if(k!=i)t=xi;xi=xk;xk=t;void fac(int x,int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论