《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小时内删除。
发表评论