跪求助:C++编程 因初学,求好心人帮助,感激不尽!
程序如下#include<stdio.h>#include<stdlib.h>#definerealdouble#ifdefWIN32#defineEXPORT_decl...
程序如下
#include <stdio.h>
#include <stdlib.h>
#define real double
#ifdef WIN32
#define EXPORT _declspec(dllexport)
EXPORT real func_convehtransfer(char*, int, real, real, real, real, real, real, int);
#else
real func_convehtransfer(char*, int, real, real, real, real, real, real, int);
#endif
extern real usertemp1(int);
extern real userfs1(int);
extern real uservx1(int);
extern real uservy1(int);
extern real uservz1(int);
extern int nodNum (real,real,real,int,real* ,real* , real* );
/*
* convective heat transfer coefficient (applied on external surfaces)
*/
real func_convehtransfer(
char prefix[], /* case name */
int dimension, /* 2 = 2D ; 3 = 3D */
real temp, /* current temperature */
real fs, /* current fraction of solid */
real time, /* current time */
real x_coor, /* local coordinates: x */
real y_coor, /* local coordinates: y */
real z_coor, /* local coordinates: z */
int numBC) /* number of boundary condition */
{
/* ------------- Do not change anything above this line ------------- *
* ------------- Program your function below this line ------------- */
real zlimit;
real hcoeff;
hcoeff = 0;
zlimit = 118;/*结晶器最下端的Z轴坐标*/
if (z_coor<=zlimit)/*如果下端钢水出结晶器*/
if (z_coor>=-120)/*如果在118到-120之间认为是二冷区*/
if (z_coor>=93)/*如果在118到93之间认为是二冷一区*/
hcoeff=10;/*二冷一区的换热系数为10*/
else
hcoeff=1000;/*否则在93到-120之间认为是二冷二区,换热系数为1000*/
else
hcoeff=10;/*超过-120认为是空冷区,换热系数为10*/
else
hcoeff=0;/*在结晶器内的换热系数即在interface的设定值*/
return hcoeff;
/* ------------ Do not forget to remove the call to exit ------------ *
* ------------ hereafter before running the calculation ------------ */
return 0;
}
我的目的:想用0<X<5时(圆管内壁)执行
hcoeff = 0;
zlimit = 118;/*结晶器最下端的Z轴坐标*/
if (z_coor<=zlimit)/*如果下端钢水出结晶器*/
if (z_coor>=-120)/*如果在118到-120之间认为是二冷区*/
if (z_coor>=93)/*如果在118到93之间认为是二冷一区*/
hcoeff=10;/*二冷一区的换热系数为10*/
else
hcoeff=1000;/*否则在93到-120之间认为是二冷二区,换热系数为1000*/
else
hcoeff=10;/*超过-120认为是空冷区,换热系数为10*/
else
hcoeff=0;/*在结晶器内的换热系数即在interface的设定值*/
return hcoeff
当6<X<10 (圆管外壁)执行
hcoeff = 0;
zlimit = 118;/*结晶器最下端的Z轴坐标*/
if (z_coor<=zlimit)/*如果下端钢水出结晶器*/
if (z_coor>=-120)/*如果在118到-120之间认为是二冷区*/
if (z_coor>=93)/*如果在118到93之间认为是二冷一区*/
hcoeff=20;/*二冷一区的换热系数为20*/
else
hcoeff=3000;/*否则在93到-120之间认为是二冷二区,换热系数为3000*/
else
hcoeff=10;/*超过-120认为是空冷区,换热系数为10*/
else
hcoeff=0;/*在结晶器内的换热系数即在interface的设定值*/
return hcoeff
想用0<X<5和6<X<10来区分两个面(两个面的换热系数是随着Z坐标来改变,两个面需要同时执行)
那位好心人会,麻烦修改好发我邮箱QQ:1256676982@qq.com感激不尽 展开
#include <stdio.h>
#include <stdlib.h>
#define real double
#ifdef WIN32
#define EXPORT _declspec(dllexport)
EXPORT real func_convehtransfer(char*, int, real, real, real, real, real, real, int);
#else
real func_convehtransfer(char*, int, real, real, real, real, real, real, int);
#endif
extern real usertemp1(int);
extern real userfs1(int);
extern real uservx1(int);
extern real uservy1(int);
extern real uservz1(int);
extern int nodNum (real,real,real,int,real* ,real* , real* );
/*
* convective heat transfer coefficient (applied on external surfaces)
*/
real func_convehtransfer(
char prefix[], /* case name */
int dimension, /* 2 = 2D ; 3 = 3D */
real temp, /* current temperature */
real fs, /* current fraction of solid */
real time, /* current time */
real x_coor, /* local coordinates: x */
real y_coor, /* local coordinates: y */
real z_coor, /* local coordinates: z */
int numBC) /* number of boundary condition */
{
/* ------------- Do not change anything above this line ------------- *
* ------------- Program your function below this line ------------- */
real zlimit;
real hcoeff;
hcoeff = 0;
zlimit = 118;/*结晶器最下端的Z轴坐标*/
if (z_coor<=zlimit)/*如果下端钢水出结晶器*/
if (z_coor>=-120)/*如果在118到-120之间认为是二冷区*/
if (z_coor>=93)/*如果在118到93之间认为是二冷一区*/
hcoeff=10;/*二冷一区的换热系数为10*/
else
hcoeff=1000;/*否则在93到-120之间认为是二冷二区,换热系数为1000*/
else
hcoeff=10;/*超过-120认为是空冷区,换热系数为10*/
else
hcoeff=0;/*在结晶器内的换热系数即在interface的设定值*/
return hcoeff;
/* ------------ Do not forget to remove the call to exit ------------ *
* ------------ hereafter before running the calculation ------------ */
return 0;
}
我的目的:想用0<X<5时(圆管内壁)执行
hcoeff = 0;
zlimit = 118;/*结晶器最下端的Z轴坐标*/
if (z_coor<=zlimit)/*如果下端钢水出结晶器*/
if (z_coor>=-120)/*如果在118到-120之间认为是二冷区*/
if (z_coor>=93)/*如果在118到93之间认为是二冷一区*/
hcoeff=10;/*二冷一区的换热系数为10*/
else
hcoeff=1000;/*否则在93到-120之间认为是二冷二区,换热系数为1000*/
else
hcoeff=10;/*超过-120认为是空冷区,换热系数为10*/
else
hcoeff=0;/*在结晶器内的换热系数即在interface的设定值*/
return hcoeff
当6<X<10 (圆管外壁)执行
hcoeff = 0;
zlimit = 118;/*结晶器最下端的Z轴坐标*/
if (z_coor<=zlimit)/*如果下端钢水出结晶器*/
if (z_coor>=-120)/*如果在118到-120之间认为是二冷区*/
if (z_coor>=93)/*如果在118到93之间认为是二冷一区*/
hcoeff=20;/*二冷一区的换热系数为20*/
else
hcoeff=3000;/*否则在93到-120之间认为是二冷二区,换热系数为3000*/
else
hcoeff=10;/*超过-120认为是空冷区,换热系数为10*/
else
hcoeff=0;/*在结晶器内的换热系数即在interface的设定值*/
return hcoeff
想用0<X<5和6<X<10来区分两个面(两个面的换热系数是随着Z坐标来改变,两个面需要同时执行)
那位好心人会,麻烦修改好发我邮箱QQ:1256676982@qq.com感激不尽 展开
展开全部
如果要同时执行的话,就要用多线程了。再说两个面不可能同时执行呐。
因为你的条件都是互斥的。0<X<5和6<X<10
但这觉得,这里没有必要。这样用一个无限循环进行轮询就可以了。
while(1)
{
if(0<X && x<5)
//代码
else if (6<X && x <10)
//代码
}
因为你的条件都是互斥的。0<X<5和6<X<10
但这觉得,这里没有必要。这样用一个无限循环进行轮询就可以了。
while(1)
{
if(0<X && x<5)
//代码
else if (6<X && x <10)
//代码
}
更多追问追答
追问
因为圆管的内、外壁两个面的冷却是同时进行的,所以需要同时进行,用无限轮询可以实现吗?因为我是做的铸造模拟,需要用C++进行条件控制。以前也没学过C++,所以不太懂,请赐教。我先试试你给的程序
追答
我不了解你的铸造模拟啊,但从你给出的代码的逻辑来说,那个不可能同时进行呐,管内和管外时X的值是互斥的,还有就是,同一个时间只有一个X吧?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询