C语言课程设计-振动波的合成原理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《振动波的合成原理》课程设计报告题目振动合成原理的模拟学号姓名同组人员年级专业2009级电子信息工程指导教师完成日期2010年6月27日物理与电子信息学院课程设计评定意见指导教师评语主要内容包括:设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。成绩:签名:年月日设计过程:1)选题2)分析设计3)编程调试4)撰写实验报告程序设计模板与流程:模板:流程:#include“stdio.h”#include“stdlib.h”主函数调用welcomegui()#include“graphics.h”↓#include“conio.h”图形初始化[initial()]#include“stdlib.h”↓#include“math.h”输入两图形的参数[userinput()]#include“time.h”↓voidinitian();合成处理图形[synthesize()]voiduserinput();voidsynthesize();voidwelcomegui();intmain(){}一.问题描述:在程序中,要输入振动参数,实现动态效果及合成图像的显示。二.基本要求:此程序用来实现简谐振动的合成,在程序中,要输入两个分简谐振动的振幅,频率和初位相,还要实现动态效果。其中,动态效果的实现是此程序的重点。在程序中,必须用到一些绘图函数。三.系统分析和数据:此程序主要是实现简谐振动的合成,其中,开始利用主函数调用一个函数,对操作进行选择;然后绘出三坐标轴,使图形出现的方位确定;接着,输入两分振动的参数;最后合成三图形。四.程序的说明:此程序是为了实现简谐振动的合成。在程序中,开始利用主函数调用welcomegui();函数,对要进行的操作进行选择。然后对图形坐标及图形显示在屏幕上的位置进行定位,其中运用了sprintf();和outtextxy();函数,接着输入Y1和Y2的参数,并再次调用函数,对操作进行选择,最后,合成处理函数,同步显示来年各个分振动和一个合振动。五..主要函数的说明:sprintf();:格式化输出函数或图形,sprintf()给出的第一个参数string,然后再调用outtextxy()将串里的字符显示在屏幕上通常在绘图方式下输出数字,可调用sprintf()将所输出的格式送到第一个参数,然后显示输出。outtextxy();:在指定位置显示一字符串。voidouttextxy(intx,inty,char*textstring)setlinestyle();:设置当前画线宽度和类型。setfillstyle();:设置填充模式和颜色。bar();:画一个两维条形图。voidbar(intleft,inttop,intright,intbottom)delay();:将程序的执行暂停一段时间(毫秒)。lineto();:直线的绘制。cleardevice();:清屏。moveto();:将CP移到(x,y)。源程序代码与调试用前在TC目录下输入以下两个命令BGIOBJEGAVGA和TLIBLIBGRAPHICS.LIB+EGAVGA代码如下:#includestdio.h#includestdlib.h#includegraphics.h#includeconio.h#includestdlib.h#includemath.h#includetime.h#defineGAIN10/*增益*/voidinitial(void);/*图形初始化*/voiduserinput(void);/*输入处理函数*/voidsynthesize(void);/*合成处理过程*/voidwelcomegui(void);/*开始页面*/floata1=1,w1=1,f1=0;/*两振动的参数*/floata2=1,w2=1,f2=0;intmain(void){welcomegui();return0;}voidinitial(void){chars[50];setbkcolor(BLACK);/*设置背景色为黑色*/setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置直线的风格,粗线*/cleardevice();/*清屏*//*画最外围的边框*/line(10,10,629,10);line(629,10,629,469);line(629,469,10,469);line(10,469,10,10);/*图形区动画区初始化*/line(40,30,450,30);line(450,30,450,400);line(450,400,40,400);line(40,400,40,30);sprintf(s,SYNTHESIZEDBELOW:);/*三个坐标轴的说明*/outtextxy(70,40,s);sprintf(s,THEX1:);outtextxy(70,160,s);sprintf(s,THEX2:);outtextxy(70,280,s);/*函数X1信息区初始化*/line(470,30,609,30);line(609,30,609,130);line(609,130,470,130);line(470,130,470,30);settextstyle(DEFAULT_FONT,HORIZ_DIR,1);sprintf(s,Dynamic);outtextxy(480,40,s);sprintf(s,Information);outtextxy(480,50,s);sprintf(s,ofx1:);outtextxy(480,60,s);sprintf(s,A1=%.2f,W1=%.2f,a1,w1);outtextxy(480,70,s);sprintf(s,f1=%.2f,f1);outtextxy(480,80,s);/*函数X2信息区域初始化*/line(470,180,609,180);line(609,180,609,280);line(609,280,470,280);line(470,280,470,180);sprintf(s,Dynamic);outtextxy(480,190,s);sprintf(s,Information);outtextxy(480,200,s);sprintf(s,ofX2:);outtextxy(480,210,s);sprintf(s,A2=%.2f,W2=%.2f,a2,w2);outtextxy(480,220,s);sprintf(s,f2=%.2f,f2);outtextxy(480,230,s);/*合成图形信息区初始化*/line(470,300,609,300);line(609,300,609,400);line(609,400,470,400);line(470,400,470,300);sprintf(s,Dynamic);outtextxy(480,310,s);sprintf(s,Information);outtextxy(480,320,s);sprintf(s,ofSX:);outtextxy(480,330,s);setlinestyle(SOLID_LINE,0,NORM_WIDTH);/*设置直接风格为细线*//*合成函数的坐标轴*/line(60,90,430,90);line(60,40,60,140);line(425,85,430,90);/*画坐标箭头*/line(430,90,425,95);line(55,45,60,40);line(60,40,65,45);sprintf(s,SX);/*坐标名称*/outtextxy(43,55,s);sprintf(s,t);outtextxy(425,105,s);sprintf(s,0);/*坐标原点*/outtextxy(50,90,s);/*X1的坐标轴*/line(60,210,430,210);line(60,160,60,260);line(425,205,430,210);/*画坐标箭头*/line(430,210,425,215);line(55,165,60,160);line(60,160,65,165);sprintf(s,X1);/*坐标名称*/outtextxy(43,175,s);sprintf(s,t);outtextxy(425,225,s);sprintf(s,0);/*坐标原点*/outtextxy(50,210,s);/*X2的坐标轴*/line(60,330,430,330);line(60,280,60,380);line(425,325,430,330);/*画坐标箭头*/line(430,330,425,335);line(55,285,60,280);line(60,280,65,285);sprintf(s,X2);/*坐标名称*/outtextxy(43,295,s);sprintf(s,t);outtextxy(425,345,s);sprintf(s,0);/*坐标原点*/outtextxy(50,330,s);}voiduserinput(void){/*输入X1的参数*/printf(X1=A1*COS(W1*t+f1));printf(PleaseinputtheparametersforX1);printf(A1=);scanf(%f,&a1);printf(W1=);scanf(%f,&w1);printf(f1=);scanf(%f,&f1);/*输入X2的参数*/printf(X2=A2*COS(W2*t+f2));printf(PleaseinputtheparametersforX2);printf(A2=);scanf(%f,&a2);printf(W2=);scanf(%f,&w2);printf(f2=);scanf(%f,&f2);printf(PressanykeytoreturntotheWelcomeGUI);getch();/*等待任意键*/welcomegui();}voidsynthesize(void)/*合成处理函数*/{inti=0;floaty1,y2;floatsy;chars[40];/*屏幕初始化*/intgdriver,gmode;gdriver=DETECT;registerbgidriver(EGAVGA_driver);initgraph(&gdriver,&gmode,);/*注意此处的第三个参数*/initial();/*初始化图形*/setfillstyle(SOLID_FILL,BLACK);sprintf(s,Pressanykeytobegin!);outtextxy(50,420,s);w1=w1/10;w2=w2/10;y1=a1*cos(w1*i+f1);y2=a2*cos(w2*i+f2);y1=y1*GAIN;y2=y2*GAIN;sy=y1+y2;getch();/*任意键开始*//*开始画线*/while(i360){i++;/*画X1的线*/moveto(60+i-1,y1+210);y1=GAIN*a1*cos(w1*i+f1);lineto(60+i,y1+210);/*X1的动态信息显示*/bar(480,90,600,110);sprintf(s,X1=-%f,y1/GAIN);outtextxy(480,90,s);sprintf(s,t1=%d,i);outtextxy(480,100,s);/*画X2的线*/moveto(60+i-1,y2+330);y2=GAIN*a2*cos(w2*i+f2);lineto(60+i,y2+330);/*X2的动态信息显示*/bar(480,240,600,260);sprintf(s,X2=-%f,y2/GAIN);outtextxy(480,240,s);sprintf(s,t2=%d

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功