C语言程序设计
课程设计报告
 
简谐振动实验的模拟
 
 
同组人员
 
年级专业
09电子信息工程(2)班
指导教师
完成日期
2010
6
13
 

一、问题描述
二、基本要求
三、系统分析和过程
四、流程图
五、源程序代码
小结及收获体会   
七、参考文献
八、评定意见
一:问题描述
  本程序设计是一个将物理问题与C语言程序设计结合的程序设计问题。能够实现用用C语言编程让计算机模拟简谐振动的实验,可以改变振动函数的各参数,绘出不同振幅频率和相位的简谐振动图形。以及完成两简谐振动的合成。
二:基本要求
1) 能够实现简谐振动的模拟;
2) 简谐振动的振幅、频率以及相位由键盘输入;
3) 能够实现动画效果
系统分析和过程
简谐振动的函数是y=a*cos(w*x+f),是一条余弦函数。
振幅频率和相位由键盘输入,最重要的是要使用到画图函数,并且实现动画效果。整个程序包括头文件,函数及变量声明,main主函数,开始页面函数,菜单页面函数,画图函数,输入处理函数和图形初始化函数。先用一个开始页面的函数,说明该程序的基本功能,
                    再进入菜单页面,从中可以选择操作(输入处理函数选项、画图选项、退出选项),到其他函数。在输入处理函数中输入振幅频率相位,在画图函数中进行画图,能够实现动画效果,退出选项退出运行。
难点是画图函数中画线,画图框,和实现动态效果,要运用到专门的函数,要了解他们的使用方法,作用,还要用到循环,要求能够在屏幕中显示出同方向传播的两列简谐波和它们的合成波,因此实现此功能必须引用图形函数,和其中很多功能的应用。
在屏幕中我们要实现三列波动态的演示效果,并能够在动态图形中观察三波的关系。因此在这里我们要引用时间函数来实现此功能。
本实验中我们调用了以下库函数:     
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#include <conio.h>
#include <math.h>
#include <time.h>
为实现功能写了以下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( )
{
    welcome( );
    menu( );
    return 0;
}
void welcome( )
{
    char s[40];
   
  /*屏幕初始化*/c++课程设计报告
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,440,1);
    setfillstyle(1,2);
    setcolor(YELLOW);
    rectangle(0,0,560,400);
    floodfill(50,50,14);
    rectangle(20,20,540,380);
    setfillstyle(1,13);       
    floodfill(19,19,14);
    setcolor(15);
    settextstyle(4,0,6);
    outtextxy(135,55,"Welcome You!");
    setviewport(100,150,540,380,0);
    setcolor(14);
    rectangle(20,20,420,230);
    setfillstyle(1,12);
    floodfill(21,100,14);
    setcolor(1);
    settextstyle(3,0,1);
/*程序功能说明部分*/
    sprintf(s,"    Thanks for you to use this program!"); 
    outtextxy(25,30,s);
    sprintf(s,"Instruction: ");
    outtextxy(25,57,s);
    sprintf(s,"This function of the program is that drawi");   
    outtextxy(25,79,s);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。