C语⾔程序设计简谐运动的模拟,C语⾔课程设计简谐振动实验
的模拟.doc
C语⾔课程设计简谐振动实验的模拟
《C语⾔程序设计》
课程设计报告
题 ⽬简谐振动实验的模拟姓 名 学 号 同组⼈员 学 号 年级专业09电⼦信息⼯程(2)班指导教师 完成⽇期2010年6⽉13⽇
⽬ 录
⼀、问题描述
⼆、基本要求
三、系统分析和过程
四、流程图
五、源程序代码
六、⼩结及收获体会
七、参考⽂献
⼋、评定意见
⼀:问题描述
本程序设计是⼀个将物理问题与C语⾔程序设计结合的程序设计问题。能够实现⽤⽤C语⾔编程让计算机模拟简谐振动的实验,可以改变振动函数的各参数,绘出不同振幅、频率和相位的简谐振动图形。以及完成两简谐振动的合成。
⼆:基本要求
1) 能够实现简谐振动的模拟;
2) 简谐振动的振幅、频率以及相位由键盘输⼊;
3) 能够实现动画效果。
三、系统分析和过程
简谐振动的函数是y=a*cos(w*x+f),是⼀条余弦函数。
振幅、频率和相位由键盘输⼊,最重要的是要使⽤到画图函数,并且实现动画效果。整个程序包括头⽂件,函数及变量声明,main主函数,开始页⾯函数,菜单页⾯函数,画图函数,输⼊处理函数和图形初始化函数。先⽤⼀个开始页⾯的函数,说明该程序的基本功能, 再进⼊菜单页⾯,从中可以选择操作(输⼊处理函数选项、画图选项、退出选项),到其他函数。在输⼊处理函数中输⼊振幅、频率、相位,在画图函数中进⾏画图,能够实现动画效果,退出选项退出运⾏。
难点是画图函数中画线,画图框,和实现动态效果,要运⽤到专门的函数,要了解他们的使⽤⽅法,作⽤,还要⽤到循环,要求能够在屏幕中显⽰出同⽅向传播的两列简谐波和它们的合成波,因此实现此功能必须引⽤图形函数,和其中很多功能的应⽤。
在屏幕中我们要实现三列波动态的演⽰效果,并能够在动态图形中观察三波的关系。因此在这⾥我们要引⽤时间函数来实现此功能。
本实验中我们调⽤了以下库函数:
#include
#include
#include
#include
#include
#include
为实现功能写了以下5个函数:
void welcome(); /*开始页⾯*/
void menu(); /*菜单页⾯*/
void input();/*输⼊处理函数*/
void initial();/*图形初始化*/
void draw();/*画图及合成处理过程*/
在以下的清单中对它们列出,且简要说明。
四、流程图
True False
⽤户输⼊1 (合成) 2
五:程序清单
#include"stdio.h"
#include"stdlib.h"
#include"graphics.h"
#include"conio.h"
#include"math.h"
#include"time.h"
#define GAIN 10 /*增益*/
void welcome( ); /*初始界⾯*/
void menu( ); /*选择菜单页⾯*/
void input( ); /*输⼊处理函数*/
void draw( ); /*画图函数*/
void initial( ); /*图形初始化*/
float a1,w1,f1; /*两振动的参数*/
float a2,w2,f2;
int main( )c++课程设计报告
{
welcome( );
menu( );
return 0;
}
void welcome( )
{
char s[40];
/*屏幕初始化*/
int gdriver,gmode;
gdriver=DETECT;
initgraph(&gdriver,&gmode,"c:\\tc"); cleardevice( );
setbkcolor(0); /*设置背景为⿊⾊*/ setfillstyle(6,14); /*⽤黄⾊粗“\\”线填充*/ bar(2,2,638,478);
setfillstyle(1,1);
bar(8,8,632,472);
setviewport(40,40,600,