📄 bfdell.cpp
字号:
}
void sblt()
{
char *ch;
int exxt,kk,temp;
float flag1=0.0;
float x1[10],y1[10];
float x2,y2;
float maxx,maxy;
char buf[12];
int maxx_num,maxy_num;
int x,y,x0,y0,m0,n0;
register int i,j;
char *spara_c_hz="待测浓度";
cls_all_scrn();
x0=270;y0=420;
maxx=0;maxy=0;maxx_num=0;maxy_num=0;
for(i=0;i<=10;i++){x1[i]=0;y1[i]=0;}
point_line();
for(kk=0;kk<4;kk++) flag1+=fabs(l_data[kk]);
for(kk=0;kk<4;kk++)
{
in_scrn1[kk].ptr=(char *)malloc(sizeof(" "));
if(flag1==0){
ch=" ";
strcpy(in_scrn1[kk].ptr,ch);
}
else
gcvt(l_data[kk],6,in_scrn1[kk].ptr);
}
win_board(8,118,184,in_scrn1[3].y+18,20,6,0);
disp_hz_str(54,123,"双标类推法",15);
exxt=miti_fld(in_scrn1,4,184,8,118);
if(exxt==27)
{
cls_all_scrn();
for(kk=0;kk<4;kk++)
if(in_scrn1[kk].ptr!=NULL) free(in_scrn1[kk].ptr);
setcolor(0);
return;
}
for(temp=0;temp<2;temp++)
{
if((strlen(in_scrn1[2*temp].ptr)!=0)&&(strlen(in_scrn1[2*temp+1].ptr)!=0))
{
if((in_scrn1[2*temp].ptr!=" ")&&(in_scrn1[2*temp+1].ptr!=" "))
{
x1[temp]=atof(in_scrn1[2*temp].ptr);
y1[temp]=atof(in_scrn1[2*temp+1].ptr);
}
}
}
for(kk=0;kk<4;kk++)
if(in_scrn1[kk].ptr!=NULL){
l_data[kk]=atof(in_scrn1[kk].ptr);
free(in_scrn1[kk].ptr);
}
for(i=1;i<2;i++){
flag1=y1[i]-y1[i-1];
if(flag1!=0){ flag1=0; break;}
flag1=1;
}
if(flag1!=0){
file_warn(4);
cls_all_scrn();
return;
}
setcolor(0);
maxx=x1[0];
maxy=y1[0];
for(i=0;i<2;i++)
{
if(x1[i]>maxx) maxx=x1[i];
if((y1[i])>maxy) maxy=y1[i];
}
maxx_num=dpoint(maxx,0)-1;
maxy_num=dpoint(maxy,0)-1;
for(i=0;i<2;i++)
{
x=(int)floor(x0+x1[i]*300/(10*pow(10,maxx_num)));
y=(int)floor(y0-(y1[i])*300/(10*pow(10,maxy_num)));
if((y>=64)&&(y<=460)) outtextxy(x,y,"+");
}
outtextxy(554,446,"X:");
maxx_num=dpoint(maxx,0)-1;
gcvt(pow(10,maxx_num),maxx_num,buf);
outtextxy(574,446,buf);
outtextxy(238,104,"Y:");
maxy_num=dpoint(maxy,0)-1;
gcvt(pow(10,maxy_num),maxy_num,buf);
outtextxy(258,104,buf);
x2=(int)floor(x0+x1[0]*300/(10*pow(10,maxx_num)));
y2=(int)floor(y0-(y1[0])*300/(10*pow(10,maxy_num)));
m0=(int)floor(x0+x1[1]*300/(10*pow(10,maxx_num)));
n0=(int)floor(y0-(y1[1])*300/(10*pow(10,maxy_num)));
setcolor(15);
line(x2+3,y2+3,m0+3,n0+3);
setcolor(0);
line(x2+2,y2+2,m0+2,n0+2);
in_scrn3[0].ptr=(char *)malloc(sizeof(" "));
ch=" ";
strcpy(in_scrn3[0].ptr,ch);
board(1,20,23,24,20,0);
disp_hz_str(60,365,"待测浓度",15);
for(;;){
exxt=miti_fld(in_scrn3,1,184,8,360);
if(exxt==27){ bell(400,0); break;}
y2=atof(in_scrn3[0].ptr);
x2=(x1[0]*(y1[1]-y2)-x1[1]*(y1[0]-y2))/(y1[1]-y1[0]);
disp_hz_str(16,406,spara_c_hz,YELLOW);
gcvt(x2,dpoint(x2,3),buf);
setfillstyle(1,0);
bar(98,404,178,424);
disp_hz_str(100,410,buf,YELLOW);
x2=(int)floor(x0+x2*300/(10*pow(10,maxx_num)));
y2=(int)floor(y0-(y2)*300/(10*pow(10,maxy_num)));
setcolor(0);
if((y2>=64)&&(y2<=460)) outtextxy(x2,y2,"+");
if((exxt==PGDN)||(exxt==PGUP)){ bell(400,1); break;}
}
return;
}
void bzjr()
{
char *ch;
int exxt,kk,temp;
float flag1=0.0;
float b0,b1,r,x1[10],y1[10],_x,_y,xx,xy,_xy,yy;
float c,con,x2,y2;
float maxx,maxy;
float Sxx,Syy,Sxy;
char buf[12];
int maxx_num,maxy_num;
int x,y,x0,y0,m0,n0,n;
register int i,j;
char *spara_c_hz="待测浓度";
cls_all_scrn();
x0=270;y0=420;
maxx=0;maxy=0;maxx_num=0;maxy_num=0;
b0=0;b1=0;_x=0;_y=0;_xy=0;xx=0;xy=0;
yy=0;Sxx=0;Syy=0;Sxy=0;r=0;
for(i=0;i<10;i++){x1[i]=0;y1[i]=0;}
point_line();
win_board(8,62,184,116,20,6,0);
disp_hz_str(54,67,"外推加入法",15);
in_scrn2[0].ptr=(char *)malloc(sizeof(" "));
itoa(l_number,ch,10);
strcpy(in_scrn2[0].ptr,ch);
exxt=miti_fld(in_scrn2,1,184,8,62);
if(exxt==27){
cls_all_scrn();
return;
}
n=atoi(in_scrn2[0].ptr);
free(in_scrn2[0].ptr);
if(n<3){
file_warn(4);
cls_all_scrn();
return;
}
if(n>10) n=10;
l_number=n;
for(kk=0;kk<2*n;kk++)
{
in_scrn1[kk].ptr=(char *)malloc(sizeof(" "));
if(l_data[kk]==0){
ch=" ";
strcpy(in_scrn1[kk].ptr,ch);
}
else gcvt(l_data[kk],6,in_scrn1[kk].ptr);
}
win_board(8,118,184,in_scrn1[2*n-1].y+18,20,6,0);
exxt=miti_fld(in_scrn1,2*n,184,8,118);
if(exxt==27)
{
cls_all_scrn();
for(kk=0;kk<2*n;kk++)
if(in_scrn1[kk].ptr!=NULL) free(in_scrn1[kk].ptr);
setcolor(0);
return;
}
for(temp=0;temp<n;temp++)
{
if((strlen(in_scrn1[2*temp].ptr)!=0)&&(strlen(in_scrn1[2*temp+1].ptr)!=0))
{
if((in_scrn1[2*temp].ptr!=" ")&&(in_scrn1[2*temp+1].ptr!=" "))
{
x1[temp]=atof(in_scrn1[2*temp].ptr);
y1[temp]=atof(in_scrn1[2*temp+1].ptr);
}
}
}
for(kk=0;kk<2*n;kk++)
if(in_scrn1[kk].ptr!=NULL){
l_data[kk]=atof(in_scrn1[kk].ptr);
free(in_scrn1[kk].ptr);
}
for(i=1;i<temp;i++){
flag1=x1[i]-x1[i-1];
if(flag1!=0){ flag1=0; break;}
flag1=y1[i]-y1[i-1];
if(flag1!=0){ flag1=0; break;}
flag1=1;
}
if(flag1!=0){
file_warn(4);
cls_all_scrn();
return;
}
setcolor(0);
maxx=x1[0];
maxy=y1[0];
for(i=0;i<n;i++){
if(x1[i]>maxx) maxx=x1[i];
if((y1[i])>maxy) maxy=y1[i];
}
maxx_num=dpoint(maxx,0)-1;
maxy_num=dpoint(maxy,0)-1;
for(i=0;i<n;i++){
x=(int)floor(x0+x1[i]*300/(10*pow(10,maxx_num)));
y=(int)floor(y0-(y1[i])*300/(10*pow(10,maxy_num)));
if((y>=64)&&(y<=460)) outtextxy(x,y,"+");
}
outtextxy(554,446,"X:");
maxx_num=dpoint(maxx,0)-1;
gcvt(pow(10,maxx_num),maxx_num,buf);
outtextxy(574,446,buf);
outtextxy(238,104,"Y:");
maxy_num=dpoint(maxy,0)-1;
gcvt(pow(10,maxy_num),maxy_num,buf);
outtextxy(258,104,buf);
for(i=0;i<n;i++){
_x=_x+x1[i];_y=_y+y1[i];xy=xy+x1[i]*y1[i];
xx=xx+x1[i]*x1[i];
yy=yy+y1[i]*y1[i]; };
Sxx=xx-_x*_x/n;
Syy=yy-_y*_y/n;
Sxy=xy-_x*_y/n;
_x=_x/n;_y=_y/n;
_xy=_x*_y;
b1=(float)(xy-n*_xy)/(xx-n*_x*_x);
b0=(float)(_y-_x*b1);
m0=(int)floor(x0+x1[n-1]*300/(10*pow(10,maxx_num)));
n0=420-floor((b0+b1*x1[n-1])*300/(10*pow(10,maxy_num)));
x2=(int)floor(x0-(b0/b1)*300/(10*pow(10,maxx_num)));
y2=(int)floor(y0);
if(Sxx*Syy<=0) r=1;
else r=(float)(Sxy/sqrt(Sxx*Syy));
if(r<9.8) r=9.8+0.008*r;
setcolor(15);
line(x2+3,y2+3,m0+3,n0+3);
setcolor(0);
line(x2+2,y2+2,m0+2,n0+2);
x2=-b0/b1;
board(1,21,23,24,20,0);
disp_hz_str(60,365+18,"待测浓度",15);
disp_hz_str(20,406,spara_c_hz,14);
gcvt(fabs(x2),dpoint(fabs(x2),3),buf);
disp_hz_str(96,408,buf,14);
board(61,14,72,16,0,7);
setcolor(0);
outtextxy(496,258,"B0=");
gcvt(fabs(b0),dpoint(fabs(b0),3),buf);
outtextxy(520,258,buf);
outtextxy(496,266,"B1=");
gcvt(fabs(b1),dpoint(fabs(b1),3),buf);
outtextxy(520,266,buf);
outtextxy(496,274,"R =");
gcvt(fabs(r),dpoint(fabs(r),3),buf);
outtextxy(520,274,buf);
bell(400,1);
return;
}
void gzqx()
{
char *ch;
int exxt,kk,temp;
float flag1=0.0;
float b0,b1,r,x1[10],y1[10],_x,_y,xx,xy,_xy,yy;
float x2,y2;
float maxx,maxy;
float Sxx=0,Sxy=0,Syy=0;
char buf[12];
int maxx_num,maxy_num;
int x,y,x0,y0,m0,n0,n;
register int i,j;
char *spara_c_hz="待测浓度:";
maxx=0;maxy=0;maxx_num=0;maxy_num=0;
b0=0;b1=0;_x=0;_y=0;_xy=0;xx=0;xy=0;
yy=0;r=0;
x0=270;y0=420;
cls_all_scrn();
for(i=0;i<10;i++){ x1[i]=0;y1[i]=0;}
point_line();
in_scrn2[0].ptr=(char *)malloc(sizeof(" "));
itoa(l_number,ch,10);
strcpy(in_scrn2[0].ptr,ch);
win_board(8,62,184,116,20,6,0);
disp_hz_str(54,67,"校准曲线法",15);
exxt=miti_fld(in_scrn2,1,184,8,62);
n=atoi(in_scrn2[0].ptr);
free(in_scrn2[0].ptr);
if(exxt==27){
cls_all_scrn();
return;
}
if(n<3){
file_warn(4);
cls_all_scrn();
return;
}
if(n>10) n=10;
l_number=n;
for(kk=0;kk<2*n;kk++)
{
in_scrn1[kk].ptr=(char *)malloc(sizeof(" "));
if(l_data[kk]==0){
ch=" ";
strcpy(in_scrn1[kk].ptr,ch);
}
else gcvt(l_data[kk],6,in_scrn1[kk].ptr);
}
win_board(8,118,184,in_scrn1[2*n-1].y+18,20,6,0);
exxt=miti_fld(in_scrn1,2*n,184,8,118);
if(exxt==27)
{
cls_all_scrn();
for(kk=0;kk<2*n;kk++) if(in_scrn1[kk].ptr!=NULL) free(in_scrn1[kk].ptr);
setcolor(0);
return;
}
for(temp=0;temp<n;temp++){
if((strlen(in_scrn1[2*temp].ptr)!=0)&&(strlen(in_scrn1[2*temp+1].ptr)!=0))
{
if((in_scrn1[2*temp].ptr!=" ")&&(in_scrn1[2*temp+1].ptr!=" "))
{
x1[temp]=atof(in_scrn1[2*temp].ptr);
y1[temp]=atof(in_scrn1[2*temp+1].ptr);
}
}
}
for(kk=0;kk<2*n;kk++)
if(in_scrn1[kk].ptr!=NULL){
l_data[kk]=atof(in_scrn1[kk].ptr);
free(in_scrn1[kk].ptr);
}
for(i=1;i<temp;i++){
flag1=x1[i]-x1[i-1];
if(flag1!=0){ flag1=0; break;}
flag1=y1[i]-y1[i-1];
if(flag1!=0){ flag1=0; break;}
flag1=1;
}
if(flag1!=0){
file_warn(4);
cls_all_scrn();
return;
}
setcolor(0);
maxx=x1[0];
maxy=y1[0];
for(i=0;i<n;i++)
{
if(x1[i]>maxx) maxx=x1[i];
if((y1[i])>maxy) maxy=y1[i];
}
maxx_num=dpoint(maxx,0)-1;
maxy_num=dpoint(maxy,0)-1;
for(i=0;i<n;i++)
{
x=(int)floor(x0+x1[i]*300/(10*pow(10,maxx_num)));
y=(int)floor(y0-(y1[i])*300/(10*pow(10,maxy_num)));
if((y>=64)&&(y<=460)) outtextxy(x,y,"+");
}
outtextxy(554,446,"X:");
maxx_num=dpoint(maxx,0)-1;
gcvt(pow(10,maxx_num),maxx_num,buf);
outtextxy(574,446,buf);
outtextxy(238,104,"Y:");
maxy_num=dpoint(maxy,0)-1;
gcvt(pow(10,maxy_num),maxy_num,buf);
outtextxy(258,104,buf);
for(i=0;i<n;i++){
_x=_x+x1[i];
_y=_y+y1[i];
xy=xy+x1[i]*y1[i];
xx=xx+x1[i]*x1[i];
yy=yy+y1[i]*y1[i];
};
Sxx=xx-_x*_x/n;
Syy=yy-_y*_y/n;
Sxy=xy-_x*_y/n;
_x=_x/n;_y=_y/n;
_xy=_x*_y;
b1=(float)(xy-n*_xy)/(xx-n*_x*_x);
b0=(float)(_y-_x*b1);
m0=(int)floor(x0+x1[n-1]*300/(10*pow(10,maxx_num)));
n0=420-floor((b0+b1*x1[n-1])*300/(10*pow(10,maxy_num)));
x2=(int)floor(x0-(b0/b1)*300/(10*pow(10,maxx_num)));
y2=(int)floor(y0);
if(Sxx*Syy<=0) r=1;
else r=(float)(Sxy/sqrt(Sxx*Syy));
if(r<9.8) r=9.8+0.008*r;
setcolor(15);
line(x2+3,y2+3,m0+3,n0+3);
setcolor(0);
line(x2+2,y2+2,m0+2,n0+2);
board(61,14,72,16,0,7);
setcolor(0);
outtextxy(496,258,"B0=");
gcvt(b0,dpoint(fabs(b0),3),buf);
outtextxy(520,258,buf);
outtextxy(496,266,"B1=");
gcvt(b1,dpoint(fabs(b1),3),buf);
outtextxy(520,266,buf);
outtextxy(496,274,"R =");
gcvt(fabs(r),dpoint(fabs(r),3),buf);
outtextxy(520,274,buf);
in_scrn3[0].ptr=(char *)malloc(sizeof(" "));
ch=" ";
strcpy(in_scrn3[0].ptr,ch);
board(1,20,23,24,20,0);
disp_hz_str(60,365,"待测浓度",15);
for(;;){
exxt=miti_fld(in_scrn3,1,184,8,360);
if(exxt==27){ bell(400,0); break;}
y2=atof(in_scrn3[0].ptr);
x2=(y2-b0)/b1;
disp_hz_str(16,406,spara_c_hz,YELLOW);
gcvt(x2,dpoint(x2,3),buf);
setfillstyle(1,0);
bar(98,404,178,424);
disp_hz_str(100,410,buf,YELLOW);
x2=(int)floor(x0+x2*300/(10*pow(10,maxx_num)));
y2=(int)floor(y0-(y2)*300/(10*pow(10,maxy_num)));
setcolor(0);
if((y2>=64)&&(y2<=460)) outtextxy(x2,y2,"+");
if((exxt==PGDN)||(exxt==PGUP)){ bell(400,1); break;}
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -