c语言 模拟正弦波,基于C语言的课程设计正弦波的模拟.docx

C语言程序设计报告

《简谐振动实验的模拟》

课程设计报告

题目 简谐振动实验的模拟

学号姓名XX

年级专业2015级电子信息工程

指导教师仝

完成日期 2016 年 6 月 12日

安徽师范大学物理与电子信息学院

College of Physics and Electronic Information, Anhui Normal University

一、问题描述

二、基本要求

三、系统分析和过程

四、流程图

五、源程序代码

六、小结及收获体会

七、评定意见

:问题描述

本程序设计是一个将物理问题与C语言程序设计结合的程序设计 问题。能够实现用用C语言编程让计算机模拟简谐振动的实验,可 以改变振动函数的各参数,绘出不同振幅、频率和相位的简谐振动图 形。以及完成两简谐振动的合成。

二:基本要求

1)能够实现简谐振动的模拟;

2)简谐振动的振幅、频率以及和位由键盘输入;

3)能够实现动画效果。

三、系统分析和过程

简谐振动的函数是y=A*cos(w*x+c),是一条余弦函数。

振幅、频率和相位由键盘输入,最重要的是要使用到画图函数, 并且实现动画效果。整个程序包括头文件,函数及变量声明,main 主函数,菜单页面函数,画图函数,输入处理函数和图形初始化两数。 先用一个开始页面的函数,说明该程序的基本功能, 再进入菜单页面,从屮可以选择操作(输入处理函数选项、画图选项、 退出选项),到其他函数。在输入处理函数中输入振幅、频率、相位, 在画图函数中进行画图,能够实现动画效果,退出选项退出运行。

难点是画图函数中画线,画图框,和实现动态效果,要运用到专 门的函数,要了解他们的使用方法,作用,还要用到循环,要求能够 在屏幕屮显示出同方向传播的两列简谐波和它们的合成波,因此实现 此功能必须引用图形函数,和其中很多功能的应用。

在屏幕中我们要实现三列波动态的演示效果,并能够在动态图 形中观察三波的关系。因此在这里我们要引用时间函数来实现此

功能。

本实验中我们调用了以下库函数:

ftinclude

ttinclude

#include

ttinclude

ttinclude

ftinclude〈

ftinclude

〈time. h>

为实现功能写了以下2个函数:

void quxian();

void quxian();

/*图形绘制界面*/

void zuobiao();

void zuobiao();

/*坐标轴绘制*/

四、流程图

程序开始

进入菜单页而

用丿'"输入A, w, c

进入图形模式,绘 制图形

v

退出图形模式

退出程序

五:程序清单

#include

#include

#include

#include

#include

#define PI 3.14

void quxian(float A,float w, fl oat c)

{

float t,r;

for(t=0;t<=640;t+=0.005)

{

r=255.0?A*cos(w*t+c/l 80.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,n0wn);

outtextxy(620,h+80,"tn);

oimextxy(80,40「Tl“); /*用于在指定位置上显示一字符串*/ line(640,h+70,620,h+65); /*在指定两点I田i线,为x轴箭头*/ line(640,h+70,620,h+75);

line(100,h-5,105,h+15); /*imi y 轴箭头*/ line(100,h-5,95,h+15);

}

void main()

{

float A,w,c;

int gdriver,gmode;

gdrivei?二 DETECT;

initgraph(&gdriver,&gmode,"C:\\TC20\\BGI”); cleardevice();

outtextxy(0,5,"please input A,w,c”);

gotoxy(45,l

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值