#include <stdio.h>
#include <stdlib.h>
#include "Computes.h"
int l=1;//置信概率选择,默认为95
int n; //准则序号
int k=0;//剔除数量
int flag=2;// 开始结束标志
bool ml=0,ap=0;
void show(int n,double data[],int num,int x);
int main(){
int i;//循环因子
int num=0;//实验数据数量
while(flag==2){
flag=3;//刷新标志位
system("CLS");
printf("请输入实验数据个数:");
scanf("%d",&num) ;
if(num<3){
while(1){
printf("实验数据不足,请选择操作:\n");
printf(" 1、退出程序\n");
printf(" 2、重新录入数据\n");
scanf("%d",&flag);
if(flag==1||flag==2)break;
system("CLS");
}
}
else {
//double data[num]={2.72,2.75,2.65,2.71,2.62,2.45,2.62,2.70,2.67,2.73,2.74};//2.74
double data[num];
printf("请输入实验数据:\n");
for(i=0;i<num;i++){
printf(" 实验数据");
if(i<9)
printf("%d ",i+1);
else printf("%d",i+1);
printf("为:");
scanf("%lf",&data[i]);
}
while(flag==3){
show(n,data,num,1);
scanf("%d",&n);
while(n!=1&&n!=2&&n!=3){
show(n,data,num,1);
printf("选择错误,请重新选择:");
scanf("%d",&n);
}
show(n,data,num,1);
printf("请选择置信概率: \n");
printf(" 1、95%\n");
printf(" 2、99%\n");
scanf("%d",&l);
while(l!=1&&l!=2){
show(n,data,num,1);
printf("请选择置信概率: \n");
printf(" 1、95%\n");
printf(" 2、99%\n");
printf("选择错误,请重新选择:");
scanf("%d",&l);
}
show(n,data,num,2);
if(n==1)lt(num,data,&k);
else if(n==2)xwn(num,data,&k);
else if(n==3)glbs(num,data,&k,l);
num=num-k;
ml=mlkf(num,data);
ap=aphm(num,data);
show(n,data,num,3);
scanf("%d",&flag);
while(1){
if(flag!=1&&flag!=2&&flag!=3){
show(n,data,num,3);
printf("选择错误,请重新选择:");
scanf("%d",&flag);
}
else break;
}
}
}
}
/////////////////////////////////////////////////以下是测试代码
// int i;
// int num=11;//实验数据数量
// int k=0;//剔除数量
// double data[num]={2.72,2.75,2.65,2.71,2.62,2.45,2.62,2.70,2.67,2.73,2.74};//2.74
// show(n,data,num,1);
return 0;
}
void show(int n,double data[],int num,int x){
system("CLS");
int i;
printf("请输入实验数据个数:%d\n",num+k);
printf("请输入实验数据:\n");
for(i=0;i<num+k;i++){
printf(" 实验数据");
if(i<9)printf("%d ",i+1);
else printf("%d",i+1);
printf("为:%.2f\n",data[i]);
}
printf("数据录入完毕,选择选择剔除粗大误差准则;\n");
printf(" 1、莱特准则 (n>10)\n");
printf(" 2、肖维纳准则 (n>5 )\n");
printf(" 3、格拉布斯准则 (n>2 )\n");
///////////////////////////////////////////////////二级操作界面//////////////////////////////
if(x>1){
printf("请选择置信概率: \n");
printf(" 1、95%\n");
printf(" 2、99%\n");
if(n==1){
if(l==1)
printf("您的选择是:莱特准则 (n>2 ),置信概率为95%\n");
else
printf("您的选择是:莱特准则 (n>2 ),置信概率为99%\n");
}
else if(n==2){
if(l==1)
printf("您的选择是:肖维纳准则 (n>2 ),置信概率为95%\n");
else
printf("您的选择是:肖维纳准则 (n>2 ),置信概率为99%\n");
}
else if(n==3){
if(l==1)
printf("您的选择是:格拉布斯准则 (n>2 ),置信概率为95%\n");
else
printf("您的选择是:格拉布斯准则 (n>2 ),置信概率为99%\n");
}
}
////////////////////////////////////////////三级操作界面////////////////////////////////////
if(x>2){
printf("有%d个数据为粗大误差:",k);
for(i=0;i<k;i++)printf("%f\n",data[num-i]);
printf("剔除粗大误差后数据为:");
for(i=0;i<num;i++){
if(i<num-1)printf("%.2f, ",data[i]);
else printf("%.2f\n",data[i]);
}
if(ml)printf("该组数据不存在累进性系统误差\n");
else printf("该组数据存在累进性系统误差\n");
if(ap)printf("该组数据不存在周期性系统误差\n");
else printf("该组数据存在周期性系统误差\n");
printf("置信区间为:");
zxqj(num,data,l);
printf("选择操作: \n");
printf(" 1、退出程序\n");
printf(" 2、重新录入数据\n");
printf(" 3、更换处理准则\n");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
大作业2-21.rar (10个子文件)
Electronic measurement
Electronic measurement.layout 285B
Makefile.win 1KB
main.c 5KB
Computes.h 424B
Computes.c 4KB
Electronic measurement.dev 1KB
Computes.o 37KB
Electronic measurement.exe 198KB
main.o 33KB
大作业2-21.docx 279KB
共 10 条
- 1
ALinorange
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0