




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上振动波的合成原理课程设计报告题 目振动合成原理的模拟学 号姓 名同组人员年级专业2009级电子信息工程指导教师完成日期2010年6月27日物理与电子信息学院课程设计评定意见指导教师评语主要内容包括:设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。成绩: 签名: 年 月 日设计过程:1)选题 2)分析设计 3)编程调试 4)撰写实验报告程序设计模板与流程:模板: 流程:#include“stdio.h” #include“stdlib.h” 主函数调用welcomegui()#include “graphics.h” #include “co
2、nio.h” 图形初始化initial()#include “stdlib.h” #include “math.h” 输入两图形的参数userinput()#include “time.h” void initian(); 合成处理图形synthesize() void userinput();void synthesize();void welcomegui();int main ()一问题描述:在程序中,要输入振动参数,实现动态效果及合成图像的显示。二基本要求:此程序用来实现简谐振动的合成,在程序中,要输入两个分简谐振动的振幅,频率和初位相,还要实现动态效果。其中,动态效果的实现是此程序的
3、重点。在程序中,必须用到一些绘图函数。三系统分析和数据:此程序主要是实现简谐振动的合成,其中,开始利用主函数调用一个函数,对操作进行选择;然后绘出三坐标轴,使图形出现的方位确定;接着,输入两分振动的参数;最后合成三图形。四程序的说明:此程序是为了实现简谐振动的合成。在程序中,开始利用主函数调用welcomegui();函数,对要进行的操作进行选择。然后对图形坐标及图形显示在屏幕上的位置进行定位,其中运用了sprintf();和outtextxy();函数,接着输入Y1和Y2的参数,并再次调用函数,对操作进行选择,最后,合成处理函数,同步显示来年各个分振动和一个合振动。五主要函数的说明:spri
4、ntf(); :格式化输出函数或图形,sprintf()给出的第一个参数string,然后再调用outtextxy()将串里的字符显示在屏幕上通常在绘图方式下输出数字,可调用sprintf()将所输出的格式送到第一个参数,然后显示输出。outtextxy();:在指定位置显示一字符串。 void outtextxy (int x, int y, char *textstring)setlinestyle();:设置当前画线宽度和类型。setfillstyle();:设置填充模式和颜色。bar(); :画一个两维条形图。void bar(int left, int top, int right,
5、int bottom)delay();:将程序的执行暂停一段时间(毫秒)。lineto ();:直线的绘制。cleardevice(); :清屏。moveto(); :将CP移到(x,y)。 源程序代码与调试用前在TC目录下输入以下两个命令BGIOBJ EGAVGA和TLIB LIBGRAPHICS.LIB+EGAVGA代码如下:#include "stdio.h"#include "stdlib.h"#include "graphics.h"#include "conio.h"#include "std
6、lib.h"#include "math.h"#include "time.h"#define GAIN 10 /*增益*/void initial(void); /*图形初始化*/void userinput(void); /*输入处理函数*/void synthesize(void); /*合成处理过程*/void welcom
7、egui(void); /*开始页面*/float a1 = 1,w1 = 1,f1 = 0; /*两振动的参数*/float a2 = 1,w2 = 1,f2 = 0;int main(void) welcomegui(); return 0;void initial(void) char s50; setbkcolor
8、(BLACK); /*设置背景色为黑色*/ setlinestyle(SOLID_LINE,0,THICK_WIDTH); /*设置直线的风格,粗线*/ cleardevice(); /*清屏*/
9、0; /*画最外围的边框*/ line(10,10,629,10); line(629,10,629,469); line(629,469,10,469); line(10,469,10,10); /*图形区动画区初
10、始化*/ line(40,30,450,30); line(450,30,450,400); line(450,400,40,400); line(40,400,40,30);sprintf(s,"SYNTHESIZED BELOW:"); /*三个坐标轴的说明*/ &
11、#160; outtextxy(70,40,s); sprintf(s,"THE X1:"); outtextxy(70,160,s); sprintf(s,"THE X2:"); outtextxy(70,280,s);&
12、#160; /*函数X1信息区初始化*/ line(470,30,609,30); line(609,30,609,130); line(609,130,470,130); line(470,
13、130,470,30); settextstyle(DEFAULT_FONT,HORIZ_DIR,1); sprintf(s,"Dynamic"); outtextxy(480,40,s); sprintf(s,"Information");
14、60; outtextxy(480,50,s); sprintf(s,"of x1:"); outtextxy(480,60,s); sprintf(s,"A1=%.2f,W1=%.2f",a1,w1); outtextxy(480,7
15、0,s); sprintf(s,"f1=%.2f",f1); outtextxy(480,80,s); /*函数X2信息区域初始化*/ line(470,180,609,180); line(609,180,609,280);
16、60; line(609,280,470,280); line(470,280,470,180); sprintf(s,"Dynamic"); outtextxy(480,190,s); sprintf(s,"Information");
17、; outtextxy(480,200,s); sprintf(s,"of X2:"); outtextxy(480,210,s); sprintf(s,"A2=%.2f,W2=%.2f",a2,w2); outtextxy
18、(480,220,s); sprintf(s,"f2=%.2f",f2); outtextxy(480,230,s); /*合成图形信息区初始化*/ line(470,300,609,300); line(609,300
19、,609,400); line(609,400,470,400); line(470,400,470,300); sprintf(s,"Dynamic"); outtextxy(480,310,s); sprintf(s
20、,"Information"); outtextxy(480,320,s); sprintf(s,"of SX:"); outtextxy(480,330,s); setlinestyle(SOLID_LINE,0,NORM_WIDTH); /*设置直接风格为细线*/
21、160; /*合成函数的坐标轴*/ line(60,90,430,90); line(60,40,60,140); line(425,85,430,90); /*画坐标箭头*/ line(430,90,425,95);
22、; line(55,45,60,40); line(60,40,65,45); sprintf(s,"SX"); /*坐标名称*/ outtextxy(43,55,s); sprint
23、f(s,"t"); outtextxy(425,105,s); sprintf(s,"0"); /*坐标原点*/ outtextxy(50,90,s); /*X1的坐标轴*/ &
24、#160; 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);
25、line(60,160,65,165); sprintf(s,"X1"); /*坐标名称*/ outtextxy(43,175,s); sprintf(s,"t"); outtextxy(
26、425,225,s); sprintf(s,"0"); /*坐标原点*/ outtextxy(50,210,s); /*X2的坐标轴*/ line(60,330,430,330);
27、160; 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);
28、60; sprintf(s,"X2"); /*坐标名称*/ outtextxy(43,295,s); sprintf(s,"t"); outtextxy(425,345,s);
29、 sprintf(s,"0"); /*坐标原点*/ outtextxy(50,330,s); void userinput(void) /*输入X1的参数*/ printf(" X1 = A1 * COS(W1 * t + f1)");&
30、#160; printf(" Please input the parameters for X1"); printf(" A1 = "); scanf("%f",&a1); printf(" W1 = "); &
31、#160; scanf("%f",&w1); printf(" f1 = "); scanf("%f",&f1); /*输入X2的参数*/ printf(" X2 = A2 * COS(W2
32、 * t + f2)"); printf(" Please input the parameters for X2"); printf(" A2 = "); scanf("%f",&a2); printf(" W2 = &q
33、uot;); scanf("%f",&w2); printf(" f2 = "); scanf("%f",&f2); printf(" Press any key to return to the Welcome GUI&qu
34、ot;); getch(); /*等待任意键*/ welcomegui();void synthesize(void) /*合成处理函数*/ int i = 0; float y1,y2;
35、160; float sy; char s40; /*屏幕初始化*/ int gdriver,gmode; gdriver = DETECT; registerbgidriver(EGAVGA_driver); initgraph(&
36、;gdriver, &gmode,""); /*注意此处的第三个参数*/ initial(); /*初始化图形*/ setfillstyle(SOLID_FILL,BLACK);
37、; sprintf(s,"Press any key to begin!"); outtextxy(50,420,s); w1 = w1/10; w2 = w2/10;y1 = a1 * cos(w1*i + f1); y2 = a2 * cos(w2*i + f2)
38、; y1 = y1 * GAIN; y2 = y2 * GAIN; sy = y1 + y2; getch(); /*任意键开始*/ /*开始画线*/
39、60; while(i<360) i+; /*画X1的线*/
40、160; moveto(60+i-1,y1+210); y1 =GAIN * a1 * cos(w1*i + f1); lineto(60+i,y1+210);
41、0; /*X1的动态信息显示*/ bar(480,90,600,110); sprintf(s,"X1 = -%f",y1/GAIN);
42、 outtextxy(480,90,s); sprintf(s,"t1 = %d",i); outtextxy(480,100,s); &
43、#160; /*画X2的线*/ moveto(60+i-1,y2+330); y2 =GAIN * a2 * cos(w2*i + f2); lineto(60+i,y2+330)
44、; /*X2的动态信息显示*/ bar(480,240,600,260); sprintf(s,"X2 = -%f&quo
45、t;,y2/GAIN); outtextxy(480,240,s); sprintf(s,"t2 = %d",i);
46、0; outtextxy(480,250,s); /*画合成曲线*/ moveto(60+i-1,sy+90); sy =y1 + y2;
47、160; lineto(60 + i, sy+90); /*合成曲线动态信息显示*/ bar(480,340,600,360);
48、160; sprintf(s,"SX = -%f",y1/GAIN+y2/GAIN); outtextxy(480,340,s); sprintf(s,"t2 =
49、 %d",i); outtextxy(480,350,s); delay(2000); /*为看清过程,中间有延迟*/ &
50、#160; bar(50,410,250,440);/*此句将前的任意键开始的说明擦除*/ sprintf(s,"Press any key to return to the welcome GUI!"); outtextxy(50,420,s); getch(); /*任意键返回开始的页面*/ closegraph();
51、160; welcomegui();void welcomegui(void) int sel; system("cls"); /*调用DOS命令清屏*/ printf(" Welcme to use this programe ");
52、 printf(" Please select: "); printf(" 0.Input "); printf(" 1.Synthesize "); printf(" 2.Exit ");
53、60; scanf("%d",&sel); switch(sel) case 0 : userinput(); break; case 1 : synthesize(); break; case 2 : exit(0); &
54、#160; default : printf(" ERROR INPUT! Please input again: "); getch();
55、60; welcomegui(); # include <graphics.h># include<stdlib.h># include<stdio.h># include<math.h> main () int graphdrv=
56、VGA; int graphmode=VGAHI; int a=150,t=0,x=200,u=20,n=1000,y,r=4,i; float w=0.05,f=0.8; initgraph(&graphdrv,&graphmode,"tcbgi")&
57、#160; for(t=0;t<=100;t+) for(i=0;i<=100;i+) line(x,u,x,100); y=a*cos(w*t+f)+250; cleardvice(); l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玉米栽培的土壤改良考核试卷
- 稀土金属冶炼与国际标准对接考核试卷
- 海洋渔业资源与渔业资源国际友好合作共识考核试卷
- 稀土金属矿选矿厂智能化工厂设计与实施策略考核试卷
- 聚乳酸改性与加工技术考核试卷
- 玻璃制品的耐紫外线性能测试考核试卷
- 老年生活关爱考核试卷
- 跨境人民币双向资金池资金结算与监管合同
- 医疗健康数据可视化数字孪生平台开发合同
- 海外房产买卖经纪合同样本
- 2024年上海市公安机关文职辅警、公安机关勤务辅警、检察系统辅助文员招聘笔试参考题库含答案解析
- 劳动教育智慧树知到期末考试答案章节答案2024年华中师范大学
- 新时代大学生劳动教育智慧树知到期末考试答案章节答案2024年江西中医药大学
- 2022金融科技SDL安全设计Checklist-v1.0
- 免疫缺陷病例讨论
- 排球比赛规则与裁判法
- 中考生物二轮复习实验突破课件:花生果实大小的变异探究实验(含答案)
- 决策树在饲料技术推广中的应用研究
- 空管自动化系统的基本组成与功能课件
- 安宁疗护之舒适护理
- 大模型的因果推理与可解释性
评论
0/150
提交评论