基于C语言的课程设计——正弦波的模拟.docVIP

  • 59
  • 0
  • 约2.82千字
  • 约 9页
  • 2017-12-26 发布于河南
  • 举报

基于C语言的课程设计——正弦波的模拟.doc

基于C语言的课程设计——正弦波的模拟

《简谐振动实验的模拟》 课程设计 题 目 简谐振动实验的模拟 学 号 姓 名 XX 年级专业 2015级电子信息工程 指导教师 XX 完成日期 2016 年 6 月 12 日 目 录 一、问题描述 二、基本要求 三、系统分析和过程 四、流程图 五、源程序代码 六、小结及收获体会 七、评定意见 一:问题描述 本程序设计是一个将物理问题与C语言程序设计结合的程序设计问题。能够实现用用C语言编程让计算机模拟简谐振动的实验,可以改变振动函数的各参数,绘出不同振幅、频率和相位的简谐振动图形。以及完成两简谐振动的合成。 二:基本要求 1) 能够实现简谐振动的模拟; 2) 简谐振动的振幅、频率以及相位由键盘输入; 3) 能够实现动画效果。 三、系统分析和过程 简谐振动的函数是y=A*cos(w*x+c),是一条余弦函数。 振幅、频率和相位由键盘输入,最重要的是要使用到画图函数,并且实现动画效果。整个程序包括头文件,函数及变量声明,main主函数,菜单页面函数,画图函数,输入处理函数和图形初始化函数。先用一个开始页面的函数,说明该程序的基本功能, 再进入菜单页面,从中可以选择操作(输入处理函数选项、画图选项、退出选项),到其他函数。在输入处理函数中输入振幅、频率、相位,在画图函数中进行画图,能够实现动画效果,退出选项退出运行。 难点是画图函数中画线,画图框,和实现动态效果,要运用到专门的函数,要了解他们的使用方法,作用,还要用到循环,要求能够在屏幕中显示出同方向传播的两列简谐波和它们的合成波,因此实现此功能必须引用图形函数,和其中很多功能的应用。 在屏幕中我们要实现三列波动态的演示效果,并能够在动态图形中观察三波的关系。因此在这里我们要引用时间函数来实现此功能。 本实验中我们调用了以下库函数: #include stdio.h #include stdlib.h #include graphics.h #include conio.h #include math.h #include time.h 为实现功能写了以下2个函数: void quxian(); /*图形绘制界面 */ void zuobiao(); /*坐标轴绘制*/ 四、流程图 五:程序清单 #include stdio.h #include stdlib.h #include graphics.h #include conio.h #include math.h #define PI 3.14 void quxian(float A,float w,float c) { float t,r; for(t=0;t=640;t+=0.005) { r=255.0-A*cos(w*t+c/180.0*PI); putpixel(t+100,r,4); /*在指定位置画一像素。void far putpixel (int x, int y, int pixelcolor); 其中(x,y)是坐标,pixelcolor是像素的颜色 */ } } void zuobiao(float h) { line(100,h,100,h+140); /*画y轴*/ line(0,h+70,640,h+70); /*画x轴*/ outtextxy(105,h+80,Ow); outtextxy(620,h+80,t); outtextxy(80,40,r1); /*用于在指定位置上显示一字符串*/ line(640,h+70,620,h+65); /*在指定两点画线,为x轴箭头*/ line(640,h+70,620,h+75); line(100,h-5,105,h+15); /*画y轴箭头*/ line(100,h-5,95,h+15); } void main() { float A,w,c; int gdriver,gmode; gdriver=DETECT; initgraph(gdriver,gmode,C:\\TC20\\BGI); cleardevice(); outtextxy(0,5,please input A,w,c); gotoxy(45,1); scanf(%f,%f,%f,A,w,c); zuobiao(185); outtextxy(80,190,r); quxian(A

文档评论(0)

1亿VIP精品文档

相关文档