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

📄 popupwin.java

📁 大学物理试验中的测量不确定
💻 JAVA
字号:
package physics;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;




 class PopupWin extends Dialog implements ActionListener 
{	
//MainFrame mf=new MainFrame("");
	 int i,x2=MainFrame.x1; //x1为MainFrame类中取的值
	 double sr;//数据中可定的系统误差
	 double n[]=new double[x2],sum;
	 double average;//算数平静值;
	 double temp=0;//求sum时候做捣腾作用的
	 double sum3;//每个实验数据减去平均值然后平方相加
	 double temp3=0; //求sum3时候做捣腾作用的
	 double bclass2;//国家计量标准的仪器误差
	 double end4;//不确定度的B类分量
	 double  combUncert;//最终求得的合成不确定度
	TextField m[]=new TextField[x2];
	TextField bclass,systemerror;
	Label serialNumber,averageResult,nouncement,end3Label,end4Label,combUncertLabel,endLable;
	JButton button;	
	private Panel gridpanel;

	PopupWin(Frame owner, String title, boolean modal) 
	{
		 super(owner,title, modal);

		 setLayout(new GridLayout(x2+7,4));

		 averageResult=new Label("算术平均值是");
		 nouncement=new Label("计算机弹出信息:");
		 end3Label=new Label("A类不确定度分量:");
		 end4Label=new Label("B类不确定度分量:");
		 combUncertLabel=new Label("合成不确定度:");
		 endLable=new Label("最终结论:");
		 button=new JButton("点击得出试验结果");
		 systemerror=new TextField("输入系统误差");	
		 bclass=new TextField("输入不确定度B类分量");	

		
		 bclass.setBackground(Color.cyan);
		for ( i=0;i<m.length;i++)
		  {		
			
			m[i]=new TextField(7);
			
		    add(m[i]);		
		   
			 m[i].addActionListener(this);  
		    try 
	        { 
				n[i]=Double.parseDouble(m[i].getText());	    
								 
	        }
	    catch(Exception ee)
	        { 
	    	nouncement.setText("请完整输入正确数字字符");
	        }

	       }
		addWindowListener(new WindowAdapter()
		  {
			   public void windowClosing(WindowEvent e)
			    {
				dispose();				
			   }
		  });	
		 add(bclass);
		 add(button);
		 add(nouncement);
		 add(averageResult);		
		 add(end3Label);
		 add(end4Label);
		 add(combUncertLabel);
		 add( endLable);
		 button.addActionListener(this);
		 setBounds(60,60,800,800);
		 validate();	
		 setVisible(true);
	}


	public void actionPerformed(ActionEvent e) {   
		for ( i=0;i<m.length;i++){
		try 
        {
			n[i]=Double.parseDouble( m[i].getText());
        }
    catch(Exception ee)
        { 
    	nouncement.setText("请输入数字字符");
        }
      sum=temp+n[i];
	  temp=sum;		
		}
		 average=sum/m.length; 
		 
		System.out.println("算术平均值是"+average);
		averageResult.setText("算术平均值是"+ average);
		
		//求平均值的标准偏差
		for ( i=0;i<m.length;i++)
		{
			try 
        {
			n[i]=Double.parseDouble( m[i].getText());
            sum3=(n[i]- average)*(n[i]- average)+temp3;
            temp3=sum3;
        }
			
    catch(Exception ee)
        { 
    	nouncement.setText("请输入数字字符");
        }
			
		}
	double	inside=sum3/(m.length*(m.length-1))	;
    double	end3=Math.sqrt(inside);
	System.out.println("A类不确定度分量:"+end3);		
	end3Label.setText("A类不确定度分量是:"+end3 );
	bclass2=Double.parseDouble( bclass.getText());
	end4=bclass2/1.732;
	System.out.println("B类不确定度分量:"+end4);	
	end4Label.setText("B类不确定度分量:"+end4);
	 combUncert=Math.hypot(	end3, end4) ;
	
	 System.out.println("合成不确定度"+ combUncert);	
	 combUncertLabel.setText("合成不确定度"+ combUncert);
	 System.out.println("测量的最后结果为:"+"("+average+ "±"+combUncert+")"+"单位"+"(p=2/3)");
	 endLable.setText("测量的最后结果为:"+"("+average+ "±"+combUncert+")"+"单位"+"(p=2/3)");
	
	}		
}		

⌨️ 快捷键说明

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