1、C程序设计课程设计 学 院: * 专 业: * 班 级: * 学 号: * 姓 名: * 指导教师: * 2016 年 9 月第1章 分支与循环1.2 设计任务1. 王小二自夸刀工不错,有人放一张大地煎饼在砧板上,问他:“煎饼不许离开砧板,切100刀最多能分成多少块?”2. 若一个口袋中放有12个球,其中有3个红色球,3个白色球和6个黑色球,从中任取8个球,问共有多少不同的颜色搭配,把每种搭配显示出来。3. 输入年月日,求它是该年的第几天。注:闰年的2月有29天,平年的2月有28天。4. 简单计算器。请编写一个程序计算表达式:data1 op data2的值。其中op为运算符+、-、*、/,d
2、ata1和data2是数据。5. 猜数游戏。由计算机“想”一个数请人猜,如果猜对了,则游戏结束,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到猜对为止。计算机记录人猜的次数,以此可以反映出猜数者“猜”的水平。6. 一辆肇事汽车的号码是4位十进制数。目击者向交警描述这个车号:这是一个完全平方数;这4个数字从左至右一个比一个小。请帮助交警寻找肇事者,将车号算出来。1.3 实现过程1.3.1设计任务1的实现过程【任务描述】 1王小二自夸刀工不错,有人放一张大地煎饼在砧板上,问他:“煎饼不许离开砧板,切100刀最多能分成多少块?”【算法分析】(用文字或流程图进行描述)用到数学中的逆推公式。s=
3、1+n*(n+1)/2【源程序代码】#include main()int n,s;for(n=1;n=100;n+)s=1+n*(n+1)/2;printf(%dn,s);【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】1.3.2 设计任务2的实现过程【任务描述】6. 一辆肇事汽车的号码是4位十进制数。目击者向交警描述这个车号:这是一个完全平方数;这4个数字从左至右一个比一个小。请帮助交警寻找肇事者,将车号算出来。【算法分析】(用文字或流程图进行描述)找出这个四位数的个、十、百、千位数,利用题目条件运用两个for循环最后求出结果。【源程序代码】#include
4、 main()int s,a,b,c,d,e;for(s=1000;s10000;s+)a=s%10;/geweib=s/10%10;/shiweic=s/100%10;/baiweid=s/1000;/qianweifor(e=30;eb&bc&cd&e*e=s) printf(%dn,s);【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】1.3.3设计任务3实现过程【任务描述】2. 若一个口袋中放有12个球,其中有3个红色球,3个白色球和6个黑色球,从中任取8个球,问共有多少不同的颜色搭配,把每种搭配显示出来。【算法分析】(用文字或流程图进行描述)用三个f
5、or循环嵌套,再以一个if条件语句就可以输出最后结果。【源程序代码】#include main()int x,y,z;for(x=0;x4;x+)for(y=0;y4;y+)for(z=0;z7;z+)if(x+y+z=8)printf(%d红 %d白 %d黑n,x,y,z);【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】1.3.4 设计任务4实现过程【任务描述】3. 输入年月日,求它是该年的第几天。注:闰年的2月有29天,平年的2月有28天。【算法分析】(用文字或流程图进行描述)先用if语句判断出平年和闰年,再用for循环输出最后结果。【源程序代码】#in
6、clude void main()int year,moth,day;int a12=31,28,31,30,31,30,31,31,30,31,30,31;/平年2月28天 365天int b12=31,29,31,30,31,30,31,31,30,31,30,31;/闰年2月29天 366天int i,j,num=0;int x;printf(请输入年 月 日,n);scanf(%d,%d,%d,&year,&moth,&day);if(year%4=0)&(year%100!=0)|(year%4=0)&(year%400=0)x=1;else x=0;if(x)for(i=0;imo
7、th-1;i+) num+=bi;num+=day;elsefor(j=0;jmoth-1;j+)num+=aj;num+=day;printf(今天是第%d年的第%d天n,year,num);【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】1.3.5 设计任务5实现过程【任务描述】4. 简单计算器。请编写一个程序计算表达式:data1 op data2的值。其中op为运算符+、-、*、/,data1和data2是数据。【算法分析】(用文字或流程图进行描述)先输出所需数据和运算符,然后用switch语句进行判断,最后输出结果。【源程序代码】#include v
8、oid main()float a,b;char c;printf(请输入数字a,运算符c,数字b:n);scanf(%f%c%f,&a,&c,&b);/char c;/printf(请输入运算符:n);/scanf(%c,&c);switch(c)case+: printf(%fn,a+b); break;case-: printf(%fn,a-b); break;case*: printf(%fn,a*b); break;case/: printf(%fn,a/b); break;default: printf(input errorn);【编译示图】(示图中要有0 error,0 war
9、ning的提示)【运行结果示图】第2章 数组与函数2.2 设计任务1. 有一个一维数组score,内存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分。2. 编写一个函数,将输入的一串字符中的小写字母转变成大写字母,并输出所有的大写字母。3. 输入10个学生姓名,按字典顺序将排在最前面的学生姓名输出。即在字符数组中求最小字符串。4. 用函数求N*N的对角线的和。其中的N是用户通过键盘输入的任意值。5. “数学黑洞”:任意一个4位自然数,将组成该数的各位数字重新排列,形成一个最大数和一个最小数,之后两数相减,其差任为一个自然数。重复进行上述运算
10、,会发现一个神秘的数。6. 输入n值,打印边长为n的空心正六边形,其边有*组成。例如:n=4时,图形如下:* * * * * * * * * * * *2.3实现过程2.3.1 设计任务1实现过程【任务描述】1. 有一个一维数组score,内存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分。【算法分析】(用文字或流程图进行描述)用数组存放10个学生的成绩,然后用求出平均分、最高分、最低分。【源程序代码】#includeint score10=56,66,21,45,52,65,70,82,90,92;int i,max,min; aver(
11、)int i;float aver=0,a=0;for(i=0;i10;i+)a+=scorei;printf(aver=%fn,a/10);maxain() max=min=score0; for(i=0;imax) max=scorei; if(score0min) min=scorei; printf(max=%dn min=%dn,max,min); void main() aver(); max=min=score0; for(i=0;imax) max=scorei; if(score0min) min=scorei; printf( max=%dn min=%dn,max,min
12、); 【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】2.3.2设计任务2实现过程【任务描述】2. 编写一个函数,将输入的一串字符中的小写字母转变成大写字母,并输出所有的大写字母。【算法分析】(用文字或流程图进行描述)用gets()函数输入字符串,然后讲小写字母转换成大写使用puts()输出。【源程序代码】#includevoid main()char ch20;int i; printf(input string:n); gets(ch);for(i=0;i=97&chi=122)chi-=32; puts(ch);【编译示图】(示图中要有0 error,0
13、 warning的提示)【运行结果示图】第3章 指针3.2 设计任务1.已知一个整型数组a5,其各元素值为4,6,8,10,12。使用指针法求该数组元素之积。2.100个围成一圈,从第1个人开始,每数到3的人出圈。问最后一个出圈的人是哪一个。3.编写两个排序函数,要求一个函数完成从小到大排序,一个函数完成从大到小排序,并编写主函数完成: 输入n个数; 调用排序函数对n个数按从大到小排序并输出; 调用排序函数对n个数按从小到大排序并输出;3.3实现过程3.3.1 设计任务1实现过程【任务描述】1.已知一个整型数组a5,其各元素值为4,6,8,10,12。使用指针法求该数组元素之积。【算法分析】(
14、用文字或流程图进行描述)使用数组存放元素,然后用指针取出数值运算。【源程序代码】#includemain()int a5=4,6,8,10,12;int *p,s=1;for(p=a;p=a+4;p+)s=s*(*p);printf(%dn,s);【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】3.3.2设计任务2实现过程【任务描述】100个围成一圈,从第1个人开始,每数到3的人出圈。问最后一个出圈的人是哪一个。【算法分析】(用文字或流程图进行描述)使用for循环取出出圈人,然后用wile输出最后一个出圈的人。【源程序代码】#include#define n
15、100 void main() int an,i,quit_num,k; for(i=0;in;i+)/数组a存放原始编号ai=i+1; quit_num=0;/出圈人数 i=0; k=0; while(quit_numn-1)/直到只剩下1人时if(ai!=0)k+; if(k=3) ai=0; quit_num+; k=0; i+; if(i=n)i=0; for(i=0;in;i+) if(ai!=0)printf(%dn,ai); 【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】第4章 综合设计题4.1 设计任务1.运用C语言开发一个“小学生算术四则运
16、算测试系统”。该系统是让计算机充当一位给小学生布置作业的算术老师,为学生出题并阅卷。该系统要求实现下列功能:为小学生出题(分别进行+、-、*、/等不同运算)。学生做题后,进行评阅。学生每做一题后,评阅给出“答题正确,很好”或“答题错误,重做”等信息。加、减、乘、除运算功能可以自由选择实现。运算数值可控制在两位数的四则运算范围内。2.运用C语言开发一个“比赛评分系统”。评委打分原则:满分10分,评委打分后,去掉一个最高分和一个最低分,最后的平均分为参赛选手的最后得分(精确到小数点后两位)。要求该系统实现以下功能: 假设参赛人数为20人,评委为10人。(有兴趣的同学可拓展为参赛人数为n人,评委为m
17、人)。并对参赛选手和评委分别编号,序号从1开始,顺序编号。 选手按编号顺序依次参加比赛,统计最后得分。 比赛结束,按从高分到低分每行5人依次打印选手的得分情况。 公布选手获奖。取一等奖1名,二等奖2名,三等奖3名。3.王小二帮学生食堂编了一个买菜计价的程序,该程序可以显示菜单,让学生输入菜号来选择买什么菜,之后程序会报出你买了多少个菜,用了多少钱。4.2 设计过程4.2.1 设计任务实现过程【任务描述】2.运用C语言开发一个“比赛评分系统”。评委打分原则:满分10分,评委打分后,去掉一个最高分和一个最低分,最后的平均分为参赛选手的最后得分(精确到小数点后两位)。要求该系统实现以下功能: 假设参
18、赛人数为20人,评委为10人。(有兴趣的同学可拓展为参赛人数为n人,评委为m人)。并对参赛选手和评委分别编号,序号从1开始,顺序编号。 选手按编号顺序依次参加比赛,统计最后得分。 比赛结束,按从高分到低分每行5人依次打印选手的得分情况。 公布选手获奖。取一等奖1名,二等奖2名,三等奖3名。【算法分析】(用文字或流程图进行描述)使用for循环嵌套输出每位选手的评分,然后用冒泡排序法排序,然后输出得奖人。【源程序代码】#include#includevoid main() int max(float b); int min(float b); int i1,k1,j1,t,t1,b1; float
19、 tt; int ii, jj; int flag = 1; int k,m,i,b,j; float sum=0; float a10,c20; printf( 评分系统n); printf(*n); for(b=0;b20;b+) printf(%d号选手:n,b+1); for(i=0;i=9;i+) printf(%d号评委的评分是:,i+1); scanf(%f,&ai); sum+=ai; for(j=0;j10;j+) cj=sum/10; printf(nn); k=max(a); m=min(a); printf(-n); printf(n-n); printf(n最高分是:
20、%g 最低分是:%gnn,ak,am); printf(删除最高分最低分之后的总分是: %gnn,sum-ak-am); printf(这位选手的平均分是:%gnn,(sum-ak-am)/10);cb = (sum-ak-am)/10;sum = 0; printf(*nnnn); for(b1=0;b120;b1+) printf(第%d位选手的分数是:%gn,b1+1,cb1); for(ii=0;ii20;ii+) for(jj=0;jjajj+1) /如果后面的数字大于前面的数字 tt=cjj; cjj=cjj+1; cjj+1=tt; /就把两个数交换 printf(%g ,cjj
21、); printf(第一名%g ,c0);printf(第二名%g ,c1);printf(第三名%g ,c2); int max(float b)/最大值 int i,k=0; float max=b0; for(i=0;i10;i+) if(maxbi) max=bi;k=i; return k; int min(float b)/最小值 int i,m=0; float min=b0; for(i=1;i10;i+) if(bimin)min=bi;m=i; return m;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】4.2.2设计任务实现过程【任
22、务描述】运用C语言开发一个“小学生算术四则运算测试系统”。该系统是让计算机充当一位给小学生布置作业的算术老师,为学生出题并阅卷。该系统要求实现下列功能:为小学生出题(分别进行+、-、*、/等不同运算)。学生做题后,进行评阅。学生每做一题后,评阅给出“答题正确,很好”或“答题错误,重做”等信息。加、减、乘、除运算功能可以自由选择实现。运算数值可控制在两位数的四则运算范围内。【算法分析】(用文字或流程图进行描述)用随机函数取出两个数1-100,用while循环判断是否重做,用switch(选择加、减、乘、除运算,然后输出结果。【源程序代码】#include#include #include int
23、 main()int a=0,b=1,x=0,y=0,i=0,x1=0,y1=0;srand(unsigned int)time(NULL);/设置当前时间为种子while(ab)a=rand()%100+1;b=rand()%100+1;printf(请选择 n1 加法运算,n2 减法运算,n3 乘法运算,n4 除法运算n);scanf(%dn,&x);x1=x;switch(x1)case 1:while(i=0)printf(请计算 %d+%d=,a,b);scanf(%dn,&y1);y=y1;if(y=(a+b)printf(答案正确n);i=1;elseprintf(答案错误,重做
24、n);i=0;break;case 2:while(i=0)printf(请计算 %d-%d=,a,b);scanf(%dn,&y1);y=y1;if(y=(a-b)printf(答案正确n);i=1;elseprintf(答案错误,重做n);i=0;break;case 3:while(i=0)printf(请计算 %d*%d=,a,b);scanf(%dn,&y1);y=y1;if(y=(a*b)printf(答案正确n);elseprintf(答案错误,重做n);break;case 4:while(i=0)printf(请计算 %d/%d=,a,b);scanf(%dn,&y1);y=
25、y1;if(y=(a/b)printf(答案正确n);i=1;elseprintf(答案错误,重做n);i=0;break;return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】课程设计小结 通过这次C语言的课程设计,我明白了很多也知道了很多,更收获了很多。在课程设计的过程中出现过困难,这个学期的课程设计已经结束了。回想学习C语言的过程中,既有快乐又有烦恼,回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没
26、有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到的问题,这毕竟独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说指针通过这次课程设计之后,一定把以前所学过的知识从新温故。这次课设终于顺利完成了,在设计中遇到了很多编程问题做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对于我们C语言初学者来
27、说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在美妙啊!很感谢这次的课程设计,它使我更加地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,在做任何事倒要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的道路上,总遇到重重困难,但正是因为困难我们才变得更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究2. 基于单片机的嵌入式Web服务器的研究
28、3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器7. 单片机控制的二级倒立摆系统的研究8. 基于增强型51系列单片机的TCP/IP协议栈的实现 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的交流伺服电机运动控制系统研究与开发 13. 基于单片机的泵
29、管内壁硬度测试仪的研制 14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发 16. 基于单片机的液压动力系统状态监测仪开发 17. 模糊Smith智能控制方法的研究及其单片机实现 18. 一种基于单片机的轴快流CO,2激光器的手持控制面板的研制 19. 基于双单片机冲床数控系统的研究 20. 基于CYGNAL单片机的在线间歇式浊度仪的研制 21. 基于单片机的喷油泵试验台控制器的研制 22. 基于单片机的软起动器的研究和设计 23. 基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究 24. 基于单片机的机电产品控制系统开发 25. 基于P
30、IC单片机的智能手机充电器 26. 基于单片机的实时内核设计及其应用研究 27. 基于单片机的远程抄表系统的设计与研究 28. 基于单片机的烟气二氧化硫浓度检测仪的研制 29. 基于微型光谱仪的单片机系统 30. 单片机系统软件构件开发的技术研究 31. 基于单片机的液体点滴速度自动检测仪的研制32. 基于单片机系统的多功能温度测量仪的研制 33. 基于PIC单片机的电能采集终端的设计和应用 34. 基于单片机的光纤光栅解调仪的研制 35. 气压式线性摩擦焊机单片机控制系统的研制 36. 基于单片机的数字磁通门传感器 37. 基于单片机的旋转变压器-数字转换器的研究 38. 基于单片机的光纤B
31、ragg光栅解调系统的研究 39. 单片机控制的便携式多功能乳腺治疗仪的研制 40. 基于C8051F020单片机的多生理信号检测仪 41. 基于单片机的电机运动控制系统设计 42. Pico专用单片机核的可测性设计研究 43. 基于MCS-51单片机的热量计 44. 基于双单片机的智能遥测微型气象站 45. MCS-51单片机构建机器人的实践研究 46. 基于单片机的轮轨力检测 47. 基于单片机的GPS定位仪的研究与实现 48. 基于单片机的电液伺服控制系统 49. 用于单片机系统的MMC卡文件系统研制 50. 基于单片机的时控和计数系统性能优化的研究 51. 基于单片机和CPLD的粗光栅
32、位移测量系统研究 52. 单片机控制的后备式方波UPS 53. 提升高职学生单片机应用能力的探究 54. 基于单片机控制的自动低频减载装置研究 55. 基于单片机控制的水下焊接电源的研究 56. 基于单片机的多通道数据采集系统 57. 基于uPSD3234单片机的氚表面污染测量仪的研制 58. 基于单片机的红外测油仪的研究 59. 96系列单片机仿真器研究与设计 60. 基于单片机的单晶金刚石刀具刃磨设备的数控改造 61. 基于单片机的温度智能控制系统的设计与实现 62. 基于MSP430单片机的电梯门机控制器的研制 63. 基于单片机的气体测漏仪的研究 64. 基于三菱M16C/6N系列单片
33、机的CAN/USB协议转换器 65. 基于单片机和DSP的变压器油色谱在线监测技术研究 66. 基于单片机的膛壁温度报警系统设计 67. 基于AVR单片机的低压无功补偿控制器的设计 68. 基于单片机船舶电力推进电机监测系统 69. 基于单片机网络的振动信号的采集系统 70. 基于单片机的大容量数据存储技术的应用研究 71. 基于单片机的叠图机研究与教学方法实践 72. 基于单片机嵌入式Web服务器技术的研究及实现 73. 基于AT89S52单片机的通用数据采集系统 74. 基于单片机的多道脉冲幅度分析仪研究 75. 机器人旋转电弧传感角焊缝跟踪单片机控制系统 76. 基于单片机的控制系统在P
34、LC虚拟教学实验中的应用研究77. 基于单片机系统的网络通信研究与应用 78. 基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究79. 基于单片机的模糊控制器在工业电阻炉上的应用研究 80. 基于双单片机冲床数控系统的研究与开发 81. 基于Cygnal单片机的C/OS-的研究82. 基于单片机的一体化智能差示扫描量热仪系统研究 83. 基于TCP/IP协议的单片机与Internet互联的研究与实现 84. 变频调速液压电梯单片机控制器的研究 85. 基于单片机-免疫计数器自动换样功能的研究与实现 86. 基于单片机的倒立摆控制系统设计与实现 87. 单片机嵌入式以太网防盗报警系统
35、 88. 基于51单片机的嵌入式Internet系统的设计与实现 89. 单片机监测系统在挤压机上的应用 90. MSP430单片机在智能水表系统上的研究与应用 91. 基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用92. 单片机在高楼恒压供水系统中的应用 93. 基于ATmega16单片机的流量控制器的开发 94. 基于MSP430单片机的远程抄表系统及智能网络水表的设计95. 基于MSP430单片机具有数据存储与回放功能的嵌入式电子血压计的设计 96. 基于单片机的氨分解率检测系统的研究与开发 97. 锅炉的单片机控制系统 98. 基于单片机控制的电磁振动式播种控制系统的设计 99
36、. 基于单片机技术的WDR-01型聚氨酯导热系数测试仪的研制 100. 一种RISC结构8位单片机的设计与实现 101. 基于单片机的公寓用电智能管理系统设计 102. 基于单片机的温度测控系统在温室大棚中的设计与实现103. 基于MSP430单片机的数字化超声电源的研制 104. 基于ADC841单片机的防爆软起动综合控制器的研究105. 基于单片机控制的井下低爆综合保护系统的设计 106. 基于单片机的空调器故障诊断系统的设计研究 107. 单片机实现的寻呼机编码器 108. 单片机实现的鲁棒MRACS及其在液压系统中的应用研究 109. 自适应控制的单片机实现方法及基上隅角瓦斯积聚处理中
37、的应用研究110. 基于单片机的锅炉智能控制器的设计与研究 111. 超精密机床床身隔振的单片机主动控制 112. PIC单片机在空调中的应用 113. 单片机控制力矩加载控制系统的研究 项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机设计论文,优秀毕业论文,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,毕业论文,单片机论文,基于单片机论文,毕业论文终稿,毕业论文初稿,本文档支持完整下载,支持任意编辑!本文档全网独一无二,放心使用,下载这篇文档,定会成功!