ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:126.42KB ,
资源ID:10829621      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10829621.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整word版C语言课程设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完整word版C语言课程设计.docx

1、完整word版C语言课程设计分屏处理数据系统一、设计内容随机产生1000个数,并分屏显示(每行显示10个数字,每页显示10行),而且在每一屏的下方显示本屏中数据的最大值、最小值和平均值。提示:循环显示,在分屏点上输出press any key to continue,通过getchar()函数让用户以按回车键的方式进入下一屏。二、方案设计与论证生成一个随机数,放入二维数组,输出。每输出十个一个回车。调用自定义函数求这个数组的最大最小值,平局值。摁下回车清屏。循环十次。三、程序运行结果(截图)四、心得体会运行时数字挤在一起,最后一行输出十个,每输出一行一个回车;五、参考资料与致谢查找书本清屏,随

2、机函数的写法。六、源程序#include#include#include#define MAX 99#define MIN 0int main() int ma(int a120); int mi(int a120); float v(int a120); int i,j,k,max,min,a120; float avg; int x; srand(unsigned)time(NULL); for(i=1;i=10;i+) /显示十页 for(j=1,x=1;j=10;j+) /显示十行 for(k=1;k=10;k+,x+) /显示十个 ax=rand()%(MAX-MIN+1)+MIN;

3、 printf(%d ,ax); printf(n); max=ma(a); min=mi(a); avg=v(a); printf(最大:%d 最小:%d 平均:%.2fn,max,min,avg); printf(请按回车键进入下一屏。); getchar(); /下一页 system(cls); /清屏 return 0;int ma(int a120) /最大 int i,z; for(i=1,z=0;i=z)z=ai; else if(aiz)z=z; return z;int mi(int a120) /最小 int i,z; for(i=1,z=999999999;i=z)z=z

4、; else if(aiz)z=ai; return z;float v(int a120) /平均 int sum=0,i; float z; for(i=1;i=100;i+) sum=sum+ai; z=sum*1.0/100; return z;求积分一、 设计内容小明最近在学高等数学,被数学里面的微积分难倒了。但小明编程能力很强,于是他就突发奇想,看能不能用编程的方法来帮助理解数学的学习。以下是他想求解的问题:请编程求解的值,并分析的值与的关系。(提示:如下图,按照积分的原理,将函数区间切分为非常小的长方形,其中长方形的宽度为切分的间距,长方形的高度为方格所在横坐标对应的函数值 ,则

5、图中第个小长方形(阴影部分)面积为,而最终函数的积分值为所有小方格的面积之和。)0.128二、 二、方案设计与论证将不规则图形分割成小矩形,最后求和。三、 程序运行结果(截图)四、 心得体会将不规则图形分的越多,面积越准确。五、 参考资料与致谢查找积分的几何意义。六、源程序#include#define N 100000int main() float x,sum; int i; for(i=1,sum=0,x=1;i=N;i+) sum=sum+(1.0/(x*x+4*x)*(1.0/N); x=x+1.0/N; printf(%f,sum); return 0;求离群点一、 设计内容随机生

6、成一组位于二维坐标系中的点集(集合大小小于50),点集中每个点的位置由x轴分量和y轴分量组成,且1x80, 1y80。 求这组点集中的离群点。(离群点定义:远离点集一般水平的极端大值和极端小值)。 要求:若有离群点,请输出离群点的坐标;若无离群点,则输出“No outliers!”,将离群点在终端用#输出表示,非离群点用*输出表示,显示方式如下图所示。 提示:离群点判断的方法不止一种,例如,可借助点集所有的数据的平均值为圆心,以所有点集到圆心的平均距离为半径,所构成的圆。在圆中的为正常点,否则为离群点。二、方案设计与论证开一个90*90的数组,并随机生成50个点。再开一个90*90的数组,计算

7、50个点到80*80个点的平均距离,找到最小的(离群点)。计算所有点到离群点的距离,小于等于就为正常点,否则为离群点。三、程序运行结果(截图) 四、心得体会由于行间距不对,所以看起来很怪,本来是正方形的。没有离群点的概率太小了.五、参考资料与致谢参考题目的提示来写的。参考随机数生成法。六、源程序#include#include#include#define MAX 80#define MIN 1int main() int a9090,b170; float r9090,min; int i,j,k,m,n,q=0,x,y,l; srand(unsigned)time(NULL); for(i

8、=1;i=80;i+) /准备工作,全为0 for(j=1;j=80;j+) aij=0; rij=0.0; for(1;1;1) for(i=1;i=160;i+) /取随机数 bi=rand()%(MAX-MIN+1)+MIN; for(j=2;j=160;j=j+2) m=bj; n=bj-1; if(amn=1)continue; else if(amn!=1)amn=1;q+; if(q=50)break; if(q50)continue; else if(q=50)break; for(i=1;i=80;i+) /计算平均圆心距 for(j=1;j=80;j+) for(m=1;m

9、=80;m+) for(n=1;n=80;n+) if(amn=1) x=m-i; x=abs(x); x=x*x; y=n-j; y=abs(y); y=y*y; rij=rij+sqrt(x+y); rij=rij*1.0/50; for(i=1,min=r11;i=80;i+) /找最小 for(j=1;j=80;j+) if(rijmin) min=min; for(l=0,i=1,k=0;i=80;i+) /判断该点是什么类型 for(j=1;j=80;j+) if(aij=1) x=m-i; x=abs(x); x=x*x; y=n-j; y=abs(y); y=y*y; if(s

10、qrt(x+y)min) aij=2; l+; if(l=0) printf(No outliers!); else for(i=1;i=80;i+) /输出 for(j=1;j=80;j+) if(aij=0) printf( ); else if(aij=2) printf(#); else if(aij=3) printf(*); printf(n); printf(n); n=80-n; printf(%d,%d)n,m,n); return 0;2阶曲线绘制一、 设计内容2阶曲线公式可描述为其中,为曲线的参数,由用户手动输入。请编程绘制出该曲线的图形,坐标原点,y轴正方向,x轴正方向

11、,如下图所示提示:可利用二维数组预先计算并存储每个点(图中用“*”表示)的坐标,然后利用循环一次性输出图形。二、方案设计与论证开一个400*80的二维数组(以中心点做原点)。再开一个数组,计算-4040的x代入方程的所得值。如果这个值大于200或小于-200,就计算下一个。输出。三、程序运行结果(截图) 四、心得体会由于WIN10于VC6.0不兼容,输出图形变形,于是输出一行一个回车。五、参考资料与致谢六、源程序#includeint main() float a0,a1,a2,a42090,zhi90; float ; int i,j,k,x,y; scanf(%f %f %f,&a0,&a

12、1,&a2); for(i=1;i=401;i+) /准备 for(j=1;j=85;j+) aij=0; for(i=1;i=79;i+) /建坐标系 a201i=1; for(i=1;i=401;i+) ai40=2; a140=6; a20140=4; a20179=5; for(i=-39,j=1;i=39;i+,j+)/算y值 zhij=a0+a1*i+a2*i*i; for(i=1;i=200|y=-200)continue; y=201-y; ayi=3; for(i=1;i=401;i+) for(j=1;j); else if(aij=6) printf(); printf(

13、n); return 0;概率法求圆周率一、 设计内容如下图所示,设一直角坐标系中,有一边长为1的正方形,以原点为中心1为半径,在正方形中画一扇形(1/4圆)。概率法求解圆周率的过程为:随机产生n个范围在(0,1)之间的点,若其中有m个点落于扇形中,则提示:根据圆的特点,判断随机生成的点是否在扇形内。二、方案设计与论证随机产生01之间的小数,赋值给x,y。计算x2+y2是否=1。循环,让数据更准确。三、程序运行结果(截图) 四、心得体会随机数并不是真正意义上的随机数。五、参考资料与致谢RAND_MAX是rand()随机产生的最大数。六、源程序#include#include#include#i

14、ncludeint main() float x,y,pi; int i,k; srand(unsigned)time(NULL); for(k=0,i=1;i=10000;i+) x=rand()*1.0/RAND_MAX; y=rand()*1.0/RAND_MAX; if(sqrt(x*x+y*y)=1) k+; pi=4*(k*1.0/10000); printf(%f,pi); return 0;推箱子游戏设计一、 设计内容功能:实现简易小人推箱子游戏,游戏过程:(1)初始时,小人在窗口的左上角位置,箱子在小人的右侧;(2)在小人前方随机生成若干个阻碍物;(3)在窗口的右侧随机生成一

15、个出口;(4)要求小人能够将箱子推到窗口右侧出口。基本要求:1用键盘上、下、左、右按键控制小人移动。2在小人前方随机生成若干个阻碍物和一个箱子。3小人必须推箱子,而不能拉箱子。4小人必须穿过阻碍物之间的空隙,到达出口。5 小人进入出口时提示游戏成功。6小人无路可走时提示游戏失败。7 小人每移动一步在窗口的左下角显示当前已经移动的步数。8用户可自行放弃游戏提示:小人可以用“”表示(ASCII码值为12),阻碍物可用“”表示(ASCII码值为5),推箱子可用“”表示(ASCII码值为30)。二、方案设计与论证 利用整形二维数组,围一个(025)*(081)的空间。 全部赋值为0。最边上一圈为墙,用

16、1表示。 随机生成墙,出口。 人用7表示。 方块用4表示。 用Getch读取上下左右,计算人,方块的坐标。 输出,逢0输出空格,逢1输出墙,逢7输出人,逢4输出方块。三、程序运行结果(截图) 四、心得体会 上下左右的读入有点小困难,在网上找了好久。 控制台行间距太大,看起来很难受。五、参考资料与致谢按照网上的方法,getch上下左右,输出前都有“-32”上72下80左75右77六、 源程序#include#include#includeint main() int a40100; int i,j,k,m,n,p,q,bu,cheng,zhong; srand(unsigned)time(NUL

17、L); for(i=1;i=23;i+) /画空气0 for(j=1;j=80;j+) aij=0; for(i=0;i=85;i+) a0i=1; a24i=1; for(i=0;i(p+4)|q(p-4)break; for(i=1;i=23;i+) if(i=m)continue; aip=1; am+1p=0; for(i=1;i=23;i+) if(i=n)continue; aiq=1; an+1q=0; zhong=rand()%21+2; /随机终点 azhong-180=1; azhong-179=1; azhong+180=1; azhong+179=1; a11=7; /

18、人 a22=4; /箱子 for(bu=0,cheng=9;1;1) for(i=1;i=23;i+) for(j=1;j=80;j+) if(aij=0) printf( ); else if(aij=1) printf(%c,5); else if(aij=7) printf(%c,12); m=i; n=j; else if(aij=4) printf(%c,30); p=i; q=j; printf(n); printf(总共%d步。(ESC退出)n,bu); if(cheng=1) printf(游戏成功!); break; else if(cheng=0) printf(游戏失败!

19、); break; k=getch(); if(k=27)break; if(k=75) /左 if(q=(n-1)&m=p) /箱子在左边 if(amq-1=1); /箱子左边是墙 else if(amq-1!=1) /箱子左边不是墙 amq=0; amq-1=4; amn=0; amn-1=7; bu+; q=q-1; n=n-1; else if(q!=(n-1)&m=p)|m!=p) /箱子不在 if(amn-1=1); /人左边是墙 else if(amn-1!=1) /人左边不是墙 amn=0; amn-1=7; bu+; n=n-1; else if(k=77) if(q=(n+

20、1)&m=p) /箱子在右边 if(amq+1=1); /箱子右边是墙 else if(amq+1!=1) /箱子右边不是墙 amq=0; amq+1=4; amn=0; amn+1=7; bu+; q=q+1; n=n+1; else if(q!=(n+1)&m=p)|m!=p) /箱子不在 if(amn+1=1); /人右边是墙 else if(amn+1!=1) /人右边不是墙 amn=0; amn+1=7; bu+; n=n+1; else if(k=72) if(p=(m-1)&n=q) if(ap-1q=1); else if(ap-1q!=1) apq=0; ap-1q=4; a

21、mn=0; am-1n=7; bu+; p=p-1; m=m-1; else if(p!=(m-1)&n=q)|n!=q) if(am-1n=1); else if(am-1n!=1) amn=0; am-1n=7; bu+; m=m-1; else if(k=80) if(p=(m+1)&n=q) if(ap+1q=1); else if(ap-1q!=1) apq=0; ap+1q=4; amn=0; am+1n=7; bu+; p=p+1; m=m+1; else if(p!=(m+1)&n=q)|n!=q) if(am+1n=1); else if(am+1n!=1) amn=0; am+1n=7; bu+; m=m+1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1