c语言程序设计抛物线Word格式.docx

上传人:b****4 文档编号:18514458 上传时间:2022-12-18 格式:DOCX 页数:12 大小:100.97KB
下载 相关 举报
c语言程序设计抛物线Word格式.docx_第1页
第1页 / 共12页
c语言程序设计抛物线Word格式.docx_第2页
第2页 / 共12页
c语言程序设计抛物线Word格式.docx_第3页
第3页 / 共12页
c语言程序设计抛物线Word格式.docx_第4页
第4页 / 共12页
c语言程序设计抛物线Word格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

c语言程序设计抛物线Word格式.docx

《c语言程序设计抛物线Word格式.docx》由会员分享,可在线阅读,更多相关《c语言程序设计抛物线Word格式.docx(12页珍藏版)》请在冰豆网上搜索。

c语言程序设计抛物线Word格式.docx

需要在源代码相应的位置注释出以上知识点;

4.课程设计的主体包括题目名称、算法分析、流程设计、代码设计及运行结果。

C设计抛物线计算器

算法分析:

抛物线计算器程序的开头是文件包含的预处理命令。

语言中,预处理命令都是以“#”开头,#include表示包含某个头文件。

stdio.h是标准输入输出头文件。

(#include<

stdio.h>

#include<

math.h>

#include<

graphics.h>

)。

然后程序对所做图形的大小模型分辨率进行了设置,将其设置成了合适的图形模式。

(initgraph(640,480);

再依次输入抛物线的四个参数(1初始高度,2初始角度,3初始速度,4重力加速度),并且分别对四个参数的要求以及数值范围进行了规范。

然后程序中调用函数公式对其他参数进行计算并且将其输出。

再对图形的背景颜色以及线条颜色进行了设置。

之后程序利用sprintf命令将输出的数据添加到字符串中。

sprintf%[指定参数][标识符][宽度][.精度]指示符。

1.处理字符方向。

负号时表示从后向前处理。

2.填空字元。

0的话表示空格填0;

空格是内定值,表示空格就放着。

3.字符总宽度。

为最小宽度。

4.精确度。

指在小数点后的浮点数位数。

最后程序运行正确,数据正确时,将文件保存到指定位置,打开读取保存的函数文件。

流程设计:

操作开始

调整图像模式

输入参数h,v1,a,g

h>

v1>

Na>

g>

Y

调用函数公式计算其他参数,输出其他参数

保存函数,读取函数N

操作结束

代码设计:

1.开始部分

#definePI3.1415926

doublegeth_t(doubleh,doublev1,doubleA,doubleg,doublet);

intmain(void)

{

2.图像设置

initgraph(640,480);

3.输入参数计算参数:

doubleh,v1,a,g;

chars[10];

intflag=0;

do

{

InputBox(s,10,"

请输入初始高度"

);

sscanf(s,"

%lf"

&

h);

if(h<

=0)

flag=0;

else

flag=1;

}while(!

flag);

flag=0;

请输入出始速度"

v1);

if(v1<

请输入初始角度"

a);

if(a>

=-90)

if(a<

=90)

flag=1;

else

flag=0;

}

请输入重力加速度"

g);

if(g<

doubleA=(a*PI)/180;

doublev2=sqrt(v1*v1+2*g*h);

doublecosB=(v1*cos(A))/v2;

doublesinB=sqrt(1-cosB*cosB);

doubleB=acos(cosB);

doubleT=(v1*sin(A)+v2*sinB)/g;

doubleS=v1*cos(A)*T;

doubleb=-B*180/PI;

doubleh_max;

doublev_max;

if(a<

h_max=h;

v_max=v1;

}

h_max=h+(v1*v1*sin(A)*sin(A))/g;

v_max=v1*sin(A);

4.画出图像嵌入数据:

doubledet_s=S/400.0;

doubledet_h=h_max/400.0;

doubledet;

if(det_s>

=det_h)

det=det_s;

det=det_h;

ints_n=(int)(S/det)+1;

setbkcolor(blue);

cleardevice();

setcolor(green);

line(20,440,460,440);

line(40,30,40,460);

intpoints[]={40,30,35,40,45,40};

fillpoly(3,points);

intpoints2[]={460,440,450,435,450,445};

fillpoly(3,points2);

setcolor(red);

outtextxy(20,445,'

0'

outtextxy(40+s_n,445,'

S'

outtextxy(20,440-(int)(h/det),'

H'

moverel(40,440-(int)(h/det));

intdx=40;

intdy=dx*tan(A);

linerel(dx,-dy);

setcolor(WHITE);

charstr[50];

sprintf(str,"

初始高度为%.2f米"

h);

outtextxy(440,50,str);

初速度为%.2f米/秒"

v1);

outtextxy(440,70,str);

初始角度为%.2f度"

a);

outtextxy(440,90,str);

重力加速度为%.2f米/秒^2"

g);

outtextxy(440,110,str);

落地时间为%.2f秒"

T);

outtextxy(440,130,str);

落地时速度为%.2f米/秒"

v2);

outtextxy(440,150,str);

落地角为%.2f度"

b);

outtextxy(440,170,str);

落地点水平距离为%.2f米"

S);

outtextxy(440,190,str);

最高点速度为%.2f米/秒"

v_max);

outtextxy(440,210,str);

最高点垂直距离为%.2f米"

h_max);

outtextxy(440,230,str);

setcolor(YELLOW);

inti;

moveto(40,440-(int)(h/det));

for(i=0;

i<

s_n;

i++)

doublet=(double)(T/s_n)*i;

doubleh_t=geth_t(h,v1,A,g,t);

inth_n=(int)(h_t/det);

intx=40+i;

inty=440-h_n;

lineto(x,y);

lineto(40+s_n,440);

charp[]="

保存"

;

outtextxy(490,400,p);

charr[]="

打开"

outtextxy(490,420,r);

MOUSEMSGm;

while(true)

m=GetMouseMsg();

switch(m.uMsg)

{

caseWM_LBUTTONDOWN:

if(m.x>

490&

&

m.x<

510&

m.y>

400&

m.y<

420)

{

chars[50];

InputBox(s,10,"

请输入要保存的文件名"

saveimage("

s"

}

if(m.x>

420&

440)

请输入要读取的文件名"

loadimage(NULL,"

break;

}

getchar();

closegraph();

return0;

}

doublegeth_t(doubleh,doublev1,doubleA,doubleg,doublet)

return(h+v1*t*sin(A)-0.5*g*t*t);

运行结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1