实验数据处理C语言源代码.doc_第1页
实验数据处理C语言源代码.doc_第2页
实验数据处理C语言源代码.doc_第3页
实验数据处理C语言源代码.doc_第4页
实验数据处理C语言源代码.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/ Liubin.cpp : 处理实验数据/ #include #include #include #include #define MAX 20 typedef struct wuli float dMAX; char name10; int LEN; float cchaMAX; /*残差数组*/ float avg; /*data的平均值*/ double sx; /*标准偏差Sx*/ double DU; /*总不确定度*/ wulidata; wulidata *InputData(); void average(wulidata *wl); void YCZhi(wulidata *wl); void CanCha(wulidata *wl); void BZPianCha(wulidata *wl);/*标准偏差*/ void BQDdu(wulidata *wl);/*总不确定度*/ void rage(wulidata *wl); void output(wulidata *wl); /*-*/ void line() int i; printf(n); for(i=0;iname); printf(n下面请你输入数据%s具体数值,数据不能超过MAX个n,wl-name); printf(当name=#时输入结束n); do printf(%s%d=,wl-name,i+1); scanf(%f,&da); wl-di=da; i+;if(getchar()=#) break; while(wl-di-1!=0.0&iLEN=i-1; do printf(你输入的数据如下:n); for(i=0;iLEN;i+) printf(%s%d=%ft,wl-name,i+1,wl-di); printf(n你是否要作出修改(Y/N)?); while( getchar()!=n); Z=getchar(); if( Z=y|Z=Y) printf(你须要修改哪一个元素,请输入其标号i=(1%d)n,wl-LEN); while( getchar()!=n); scanf(%d,&k); printf(n%s%d=,wl-name,k); scanf(%f,&(wl-dk-1); else if(Z=n|Z=N) printf(OK!下面开始计算。n); while(Z!=N&Z!=n); return(wl); /*-*/ void average(wulidata *wl) float ad,sum=0; int i; for(i=0;iLEN;i+) sum=sum+(wl-di); ad=sum/(wl-LEN); wl-avg=ad; /*-*/ void CanCha(wulidata *wl) int i; for(i=0;iLEN;i+) wl-cchai=(wl-di)-(wl-avg); /*-*/ void YCZhi(wulidata *wl)/*检查并剔除异常值*/ int i,j; float g,YCZhi; double temp,CCha; printf(下面开始检查并提出异常值!n); doprintf(当前共有%d个数,数据如下:n,wl-LEN); for(i=0;iLEN;i+) printf(%s%d=%ft,wl-name,i+1,wl-di); j=-1;CCha=0.0;printf(n请输入g的值ng=);scanf(%f,&g);for(i=0;iLEN;i+) temp=fabs(wl-di)-(wl-avg);if(tempg*(wl-sx)&(tempCCha)YCZhi=wl-di;CCha=temp;j=i;if(j=0)printf(找到异常值为%s%d=%f,将它剔除。n,wl-name,(j+1),wl-dj);for(i=j;iLEN-1;i+)wl-di=wl-di+1;wl-LEN-;elseprintf(本次未找到异常数据,数据中异常数据已剔除完毕!n); while(j=0); printf(当前共有%d个数,数据如下:n,wl-LEN); for(i=0;iLEN;i+) printf(%s%d=%ft,wl-name,i+1,wl-di); /*-*/ void BZPianCha(wulidata *wl)/*标准偏差*/ double sum; int i; sum=0.0; for(i=0;iLEN;i+) sum=sum+pow(wl-di,2); sum=sum-wl-LEN*pow(wl-avg,2); wl-sx=sqrt(sum/(wl-LEN-1); /*-*/ void leijinxwc(wulidata *wl)/*判断累进性误差*/ double M,sum1,sum2,temp; int i; sum1=sum2=0.0; temp=wl-ccha0; for (i=1;iLEN;i+) if (tempcchai) temp=wl-cchai; if(wl-LEN%2=0) /*数据为偶数个时*/ for(i=0;iLEN/2);i+) sum1=sum1+ wl-cchai; for (i=(wl-LEN/2);iLEN;i+) sum2=sum2+wl-cchai; M=fabs(sum1-sum2); if(Mtemp) printf(存在累进性误差n); else printf(不存在累进性误差n); else /*数据为奇数个时*/ for(i=0;iLEN)-1)/2);i+) sum1=sum1+ wl-cchai; for (i=(wl-LEN)+1)/2;iLEN;i+) sum2=sum2+wl-cchai; M=fabs(sum1-sum2); if(Mtemp) printf(存在累进性误差n); else printf(不存在累进性误差n); /*-*/ void zhouqixwc(wulidata *wl)/*判断周期性误差*/ double sum=0; int i; for(i=0;iLEN-1;i+) sum=sum+(wl-cchai)*(wl-cchai+1); if(fabs(sum)(sqrt(wl-LEN-1)*pow(wl-sx,2) printf(存在周期性误差n); else printf(不存在周期性误差n); /*-*/ void BQDdu(wulidata *wl)/*总不确定度*/ float A,B,Q,k1,k2,y; printf(请输入系统不确定度百分比y:); scanf(%f,&y); printf(请输入系统误差分布系数k1:); scanf(%f,&k1); printf(请输入平均值随机误差分布系数k2:); scanf(%f,&k2); printf(%lfn,(double)(wl-avg)*y); printf(%fn,(wl-sx)/sqrt(wl-LEN); Q=(wl-avg)*y)/k1; A=(double)pow(wl-sx)/sqrt(wl-LEN),2); B=(double)pow(Q,2); wl-DU=(double)k2*(sqrt(A+B); /*-*/ void rage(wulidata *wl) printf(计算得到所求数值的范围应取%f%f。n,(wl-avg-wl-DU),(wl-avg+wl-DU); /*-*/ void output(wulidata *wl) int i; printf(n); line(); printf(你输入的数据如下:n); for(i=0;iLEN;i+) printf(%s%d=%ft,wl-name,i+1,wl-di); printf(n); printf(nt数据%s的平均值(A)%s=%f,wl-name,wl-name,wl-avg); line(); printf(数据的残差如下:n); for(i=0;iLEN;i+) printf(%s%d=%s%d-(A)%s=%ftt,wl-name,i+1,wl-name,i+1,wl-name,wl-cchai); line(); printf(求得标准偏差Sxn); printf(Sx=%f,wl-sx); printf(n); printf(总不确定度=k2*【A2B2】n); printf(%s的总不确定度=%lfnn,wl-name,wl-DU); /*=*/ int main() wulidata *Hua=NULL; Hua=InputData()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论