造福KCer,请编程高手帮忙
dracula14292012/03/10软件综合 IP:江苏
编写一个K-J公式计算程序,能够预测炸药的爆速和爆压。将视程序的质量给予1000~5000KCB鼓励。
1、基于CaHbOcNd类炸药,要求输入碳原子数a,氢原子数b,氧原子数c,氮原子数d,炸药的标准生成焓Hf,炸药密度ρ六项数据来计算爆速与爆压。
2、在用户输入界面附有说明:本公式适用于CaHbOcNd类单质炸药,在计算密度大于1.0g/cm3的单质炸药时,本公式相对误差不大于3%。
3、各种炸药的标准生成焓本人(dracula1429)将整理出表格单独发布。
4、本公式不适用于含氯、氟的炸药,含氯、氟的炸药K-J公式计算器将作为另一版本单独发布。
具体设计详情见附件。
由于本人疏忽导致公式错误,目前已修正,附件说明也已经更改。
我将抽取10种不同的炸药及同种炸药改变密度进行测试,最为吻合及数据错误率最低的将被管理员奖励。
10种炸药包括不含O类型,不含H类型,不含N类型。注意这方面的编写不要遗漏。
请直接在原帖修改,不要重复发帖以免造成混乱。
attachment icon K-J程序设计书.wps 40.00KB WPS 35次下载
+1  科创币    土豆    2012/03/11 整理公式数据不容易,辛苦了,,,
来自:计算机科学 / 软件综合
19
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
土豆
12年2个月前 IP:未同步
375563
1.咱不是编程高手,相反,这次是第一次用VB写程序,仅仅是因为蛋疼,SO,,你懂的
2.公式里还需要炸药的摩尔质量m你竟然不给公式,害我多花了好几分钟去回忆,[s:214]
3.不管做的这么样,下载附件花我2KCB你得还我,,
4.我睡觉了,,

/*****************************************************/
..........
/******************************************************/

附件换成正确的程序了,,不过,离虎哥的要求还差好多~~~~~~好好学习去了[s:215]
attachment icon K-J公式计算程序beta1.zip 4.03KB ZIP 24次下载
+2
科创币
虎哥
2012-03-11
俺代楼主还了,哈哈
+20
科创币
专打贾君鹏
2012-03-11
1000%的返还怎么样?
+2
科创币
dracula1429
2012-03-11
俺来还债了
+1000
科创币
虎哥
2012-03-13
谢谢参与。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
primula
12年2个月前 IP:未同步
375581
新人初来乍到,不懂之处还请指教。

程序使用了MFC,怕有的计算机没装MFC库,使用了静态库,程序就稍微胖了点。。。

贴上计算的代码,不知道是否有误?
        /*m_a,m_b,m_c,m_d分别对应a,b,c,d。speed:爆速;press:爆压*/
       double N,M,Q,mol,speed,press;
    UpdateData(TRUE);

    mol=m_a*12+m_b+m_c*16+m_d*14.01;

    if( m_c>=((2*m_a)+(m_b/2)))
    {
        N=(m_b+m_c*2+m_d*2)/(4*mol);
        M=(4*mol)/(m_b+m_c*2+m_d*2);
        Q=(1000*(28.9*m_b+94.05*m_a+0.239*m_Hf))/mol;

    }
    else if((m_c>=(m_b/2))&&(m_c<(2*m_a+m_b/2)))
    {
        N=(m_b+m_c*2+m_d*2)/(4*mol);
        M=(56*m_d+88*m_c-m_b*8)/(m_b+m_c*2+m_d*2);
        Q=(1000*(28.9*m_b+94.05*(m_c*0.5-0.25*m_b)+0.239*m_Hf))/mol;
    }
    else if(m_c<(m_b/2))
    {
        N=(m_b+m_d)/(2*mol);
        M=(2*m_b+28*m_d+32*m_c)/(m_b+m_d);
        Q=(1000*(57.8*m_c+0.239*m_Hf))/mol;
    }
    else
    {
        MessageBox(L"参数出错?");
        return;
    }

    speed= 1.01* pow((N*pow(M,0.5)*pow(Q,0.5)),0.5)*(1+1.3*m_p) ; //D=1.01(NM0.5Q0.5)0.5(1+1.30ρ)
    press=1.558*pow(m_p,2)*N*pow(M,0.5)*pow(Q,0.5);    // P=1.558p2NM0.5Q0.5

    m_XXXXXXXXrmat(L"%fGpa",press);
    m_XXXXXXXXXXXXrmat(L"%fkm/s",speed);

    UpdateData(FALSE);

由于不懂这方面的东西,没法给出测试用例,所以正不正确我也不知道。。。[s:220]  



/************************************************************************************************************/

以前的无视吧,程序改了,这是改了后的:
attachment icon CaHbOcNd.rar 147.92KB RAR 34次下载

翻帖子就像翻系统日志,习惯了只看最后面新增的的,没主意到要在原帖上修改。。
+2
科创币
davidlab
2012-03-11
非常实用&nbsp;&nbsp; 支持这个作品
+20
科创币
专打贾君鹏
2012-03-11
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
土豆
12年2个月前 IP:未同步
375676
1.虎哥太实在了,,,说2个还真就只给了2个KCB[s:241]
2.贾君鹏同志您把百分号去掉俺会很开心O(∩_∩)O~~
3.跟LS兄弟做的程序一比咱得的有些寒碜啊[s:213],只是,爆速爆压弄反了把~~~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dd
12年2个月前 IP:未同步
375679
喂。。。别用wps格式啊。。。mac下打不开啊。。。 = =

mac版,Intel 64

未命名.png


attachment icon EpCalc.zip 26.86KB ZIP 25次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
celeron533
12年2个月前 IP:未同步
375686
用javascript吧,全平台
win, mac, linux, unix
各种手机
甚至游戏机
只要能开浏览器都可以用
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dd
12年2个月前 IP:未同步
375694
Android版 =w=

DSC_0234.jpg   

DSC_0241.jpg


attachment icon EpCalc.apk.zip 12.22KB ZIP 44次下载
+20
科创币
yg9311
2012-03-11
高质量发帖
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
primula
12年2个月前 IP:未同步
375700
额。。还真填反了,都没注意到。。[s:233]
修正后的附上:
attachment icon CaHbOcNd.rar 147.93KB RAR 41次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yg9311
12年2个月前 IP:未同步
375729
等我进来ms已经没活干了...话说真是“各种”版本啊,支持下
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
12年2个月前 IP:未同步
375730
谁能编个网页代码,放到我们网站的在线工具栏目中?

https://www.kechuang.org/t/31992
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dracula1429作者
12年2个月前 IP:未同步
375765
先等一等= =,我代入数据时貌似有些问题,难道我给的公式出错了?
计算1.84密度时的HMX QQ截图20120311182450.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
kju
12年2个月前 IP:未同步
375787
网页版的。。。
我这些专业公式一点都不懂,抄的 primula 的 C 语言的。
结果弄反了也抄过来了,改一下。
attachment icon b.zip 1.38KB ZIP 38次下载
+100
科创币
虎哥
2012-03-13
感谢参与。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dracula1429作者
12年2个月前 IP:未同步
375789
恶寒,确实搞错了= =更正部分如下,我认错我认罚。。。。。。。 QQ截图20120311182450.jpg
+24
科创币
土豆
2012-03-11
安慰安慰
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dd
12年2个月前 IP:未同步
375792
引用第10楼dracula1429于2012-03-11 18:25发表的  :
先等一等= =,我代入数据时貌似有些问题,难道我给的公式出错了?
计算1.84密度时的HMX


貌似公式有错,我用Mathematica算了一次

未命名 2.png

另外2楼这句也有错: mol=m_a+m_b*12+m_c*16+m_d*14;
应该是 mol=m_a*12 + m_b + m_c * 16 + m_d * 14;
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dd
12年2个月前 IP:未同步
375793
引用第12楼dracula1429于2012-03-11 19:06发表的  :
恶寒,确实搞错了= =更正部分如下,我认错我认罚。。。。。。。


于是正确了。。。= =

未命名.png
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dracula1429作者
12年2个月前 IP:未同步
375795
还是如当年的破93一样可爱~pia
有回忆么?
话说93把安卓版修改一下发布吧,我白天在工地无法上网,手机的方面我很需要。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dd
12年2个月前 IP:未同步
375797
引用第15楼dracula1429于2012-03-11 19:26发表的  :
还是如当年的破93一样可爱~pia
有回忆么?
话说93把安卓版修改一下发布吧,我白天在工地无法上网,手机的方面我很需要。


我了个大噗……

于是更新Android版 。。。

顺便附上正确的代码



DSC_0245.jpg


attachment icon EpCalc2.apk.zip 12.38KB ZIP 46次下载   
+500
科创币
虎哥
2012-03-13
感谢参与。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
12年2个月前 IP:未同步
375808
个人感觉楼主的要求不够完备。一个程序应该有:确定的名称、关于操作步骤的明确的提示(不一定要语言写出来,但要做到用户拿着程序可以无师自通),输入量的名称、单位和格式的提示,明确的计算精度要求(无意义的小数位数要去掉),如果输入错误或侦测到错误,要有明确的提示,并且尽量减少因错误导致的损失(比如正确的输入应当保留)。使用要尽量简明易懂,比如输入如果少于5个可能的情况,应做成选择项;对于超过半数用户都会填进的数值,可以做成开机默认值。最后,要注明版本号和版权,例如科创论坛***出品。这些是程序人机交互的一些基本原则。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
primula
12年2个月前 IP:未同步
375882
公式修正了,另外像dd说的,碳原子数和氢原子数也被我弄反了。。
贴上代码:
    double N,M,Q,mol,speed,press;
    UpdateData(TRUE);

    mol=m_a*12+m_b+m_c*16+m_d*14.01;

    if( m_c>=((2*m_a)+(m_b/2)))
    {
        N=(m_b+m_c*2+m_d*2)/(4*mol);
        M=(4*mol)/(m_b+m_c*2+m_d*2);
        Q=(1000*(28.9*m_b+94.05*m_a+0.239*m_Hf))/mol;

    }
    else if((m_c>=(m_b/2))&&(m_c<(2*m_a+m_b/2)))
    {
        N=(m_b+m_c*2+m_d*2)/(4*mol);
        M=(56*m_d+88*m_c-m_b*8)/(m_b+m_c*2+m_d*2);
        Q=(1000*(28.9*m_b+94.05*(m_c*0.5-0.25*m_b)+0.239*m_Hf))/mol;
    }
    else if(m_c<(m_b/2))
    {
        N=(m_b+m_d)/(2*mol);
        M=(2*m_b+28*m_d+32*m_c)/(m_b+m_d);
        Q=(1000*(57.8*m_c+0.239*m_Hf))/mol;
    }
    else
    {
        MessageBox(L"参数出错?");
        return;
    }

    speed= 1.01* pow((N*pow(M,0.5)*pow(Q,0.5)),0.5)*(1+1.3*m_p) ; //D=1.01(NM0.5Q0.5)0.5(1+1.30ρ)
    press=1.558*pow(m_p,2)*N*pow(M,0.5)*pow(Q,0.5);    // P=1.558p2NM0.5Q0.5

    m_XXXXXXXXrmat(L"%fGpa",press);
    m_XXXXXXXXXXXXrmat(L"%fkm/s",speed);

    UpdateData(FALSE);
贴上程序:
attachment icon CaHbOcNd.rar 147.92KB RAR 35次下载
建议LZ以后能给个测试用例,写完了我都不知道怎么验证对不对[s:233]
+2000
科创币
虎哥
2012-03-13
感谢参与。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

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

所属专业
上级专业
同级专业
dracula1429
专家 学者 机友 笔友
文章
108
回复
1069
学术分
25
2006/07/09注册,9时43分前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
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)}}