编程高手进来帮我找下这程序问题出在哪……
阿童木升级版2009/07/03软件综合 IP:重庆
很久很久以前,我发表了一篇文章《浅析模型火箭轨道》提出利用计算机解决“一个受与其速度成一非2k/π的角度的加速度的物体的运动分析”(XXXXXXXXXXXXXXXXXXXXXXXX/t/16723

由于本人编程能力基本没有(顶多看得懂程序)故请朋友帮忙,现在大概是写出来了,但是有严重BUG,根本无法正常计算。希望各位大虾帮忙……谢谢了

BUG主要见下图:
BUG.jpg

源码如下:
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
double Ft,M0,Mt,aj,a,g,p,A,D,t,Tz,i,Fj;
double Tj,x,y,v0x,v0y,M,fjf,ax,ay,vmx,vmy,xz,yz,fx,fy;
double sin(double shuju);
double cos(double shuju);
double atan(double shuju);

void init()
{
     cout<<"输入火箭推力Ft,单位牛顿(N)"<<endl;
     cin>>Ft;
     if(Ft<=0){cout<<"输入数据为非正常数据,请重新输入各个已知量。";return init();}
     cout<<"输入火箭初始质量M0,单位千克(KG)"<<endl;
     cin>>M0;
     if(M0<=0){cout<<"输入数据为非正常数据,请重新输入各个已知量。";return init();}
     cout<<"输入火箭终了质量Mt,单位千克(KG)"<<endl;
     cin>>Mt;
     if(Mt<=0||Mt>=M0) {cout<<"输入数据为非正常数据,请重新输入各个已知量。";return init();}
     cout<<"输入火箭发射倾角a,单位度(°)"<<endl;
     cin>>aj;
     if(aj<=0||aj>=180){cout<<"输入数据为非正常数据,请重新输入各个已知量。";return init();}
     a=(aj*3.1415926535897932384626)/180;
     g=9.8056;
     p=1.29;
     cout<<"输入气阻有效面积A,单位平方米(m2)"<<endl;
     cin>>A;
     if(A<=0) {cout<<"输入数据为非正常数据,请重新输入各个已知量。";return init();}
     cout<<"输入气阻常数D"<<endl;
     cin>>D;
     if(D<=0){cout<<"输入数据为非正常数据,请重新输入各个已知量。";return init();}
     cout<<"输入火箭推力有效时间t,单位秒(S)"<<endl;
     cin>>t;
     if(t<=0){cout<<"输入数据为非正常数据,请重新输入各个已知量。";return init();}
     cout<<"输入时间间隔Tz,必须小于火箭推力有效时间,单位秒(s)"<<endl;
     cin>>Tz;
     if(Tz<=0||Tz>t){cout<<"输入数据为非正常数据,请重新输入各个已知量。";return init();}
     x=0;
     y=0;
     Tj=0;
     v0x=0;
     v0y=0;
}

void jisuan1()
{
     M=((Mt-M0)/t)*Tj+M0;
     Fj=(-(M*M*M*M)+sqrt((M*M*M*M)+2*p*A*D*t*t*Ft*M*M))/p*A*D*Tj*Tj;
     ax=(fjf*cos(a))/M;
     ay=(fjf*sin(a)-M*g)/M;
     vmx=ax*Tz;
     vmy=ay*Tz;
     xz=v0x*t+((1/2)*ax*t*t);
     yz=v0y*t+((1/2)*ay*t*t);
     x=x+xz;
     y=y+yz;
     if(y<0){cout<<"Y坐标小于0,计算结束。"<<endl;return;}
     Tj=Tj+Tz;
     cout<<"输出时刻:"<<setprecision(10)<<Tj<<endl;
     cout<<"输出横坐标:"<<setprecision(10)<<x<<endl;
     cout<<"输出纵坐标:"<<setprecision(10)<<y<<endl;
     v0x=vmx;
     v0y=vmy;
     a=atan(v0y/v0x);
     fx=(1/2)*p*A*D*v0x*v0x*cos(a);
     fy=(1/2)*p*A*D*v0y*v0y*cos(a);
     ax=fx/Mt;
     ay=(fy+M*g)/Mt;
     xz=v0x*(Tz-t)+(1/2)*ax*(Tz-t)*(Tz-t);
     yz=v0y*(Tz-t)+(1/2)*ay*(Tz-t)*(Tz-t);
     x=x+xz;
     y=y+yz;
     Tj=Tj+Tz;
     if(y<0){cout<<"Y坐标小于0,计算结束。"<<endl;return;}
     cout<<"输出时刻:"<<setprecision(10)<<Tj<<endl;
     cout<<"输出横坐标:"<<setprecision(10)<<x<<endl;
     cout<<"输出纵坐标:"<<setprecision(10)<<y<<endl;
    
    
}

int main()
{
    init();
    for(i=0;i<=t;i+=Tz)
    {
       jisuan1();
    }
    system("pause");
    return 0;
}
另附全部组件(程序,代码,论文)

鄙人QQ:563184214
邮箱:BeyoundATOM@XXXXXXXXX
attachment icon 浅析模型火箭轨道.rar 384.21KB RAR 23次下载
来自:计算机科学 / 软件综合
16
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
阿童木升级版 作者
15年7个月前 IP:未同步
118493
啥意思……
已经把各位的意见给朋友了,等消息中……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
阿童木升级版作者
15年7个月前 IP:未同步
118974
……
看各位说的……貌似这个程序很危险一样……看来我电脑RP不错……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
阿童木升级版
学者 机友 笔友
文章
46
回复
341
学术分
2
2008/02/05注册,2个月16天前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}