⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bf_dell.cpp

📁 吐血奉献:一套完整的DOS版软件工程
💻 CPP
📖 第 1 页 / 共 3 页
字号:
  }
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();
  l_number=2;
  for(kk=0;kk<2*l_number;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(594,436,"X ");
  maxx_num=dpoint(maxx,0)-1;
  gcvt(pow(10,maxx_num),maxx_num,buf);
  outtext(buf);
  outtextxy(230,104,"X ");
  maxy_num=dpoint(maxy,0)-1;
  gcvt(pow(10,maxy_num),maxy_num,buf);outtext(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) 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)) 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(594,436,"X");
  maxx_num=dpoint(maxx,0)-1;
  gcvt(pow(10,maxx_num),maxx_num,buf);outtext(buf);
  outtextxy(230,104,"X");
  maxy_num=dpoint(maxy,0)-1;
  gcvt(pow(10,maxy_num),maxy_num,buf);outtext(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));
  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);
  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(594,426,"X");
  maxx_num=dpoint(maxx,0)-1;
  gcvt(pow(10,maxx_num),maxx_num,buf);outtext(buf);
  outtextxy(230,104,"X");
  maxy_num=dpoint(maxy,0)-1;
  gcvt(pow(10,maxy_num),maxy_num,buf);outtext(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));
  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) 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)) break;
    }
  return;
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -