m0_55237514 2021-07-07 02:21 采纳率: 100%
浏览 55
已结题

用MFC向导创建一个程序,对10个数据进行统计计算,如平均值、方差、均方差等。

用MFC向导创建一个程序,在程序运行的界面上能任意输入10个数据,然后对10个数据进行统计计算,如平均值、方差、均方差等。

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-07-07 04:00
    关注

    新建一个MFC工程,添加一个输入框、两个按钮(添加按钮和计算按钮),给输入框添加了一个变量CEdit m_editNmb;
    添加四个静态标签,分别用来显示输入的所有数值、均值、方差和均方差。
    在工程的头文件中添加两个变量:float mArray[20]; int mNmb;用来存放输入的数据和数组元素的实际个数
    在cpp中初始化mNmb = 0;
    在添加按钮的响应事件中添加如下代码:

    // TODO: 在此添加控件通知处理程序代码
        CString val;
        m_editNmb.GetWindowText(val);
        float vv =_tstof(val);
        mArray[mNmb] = vv;
        mNmb++;
    
        CString ss;
        GetDlgItem(IDC_STATIC_NMB)->GetWindowText(ss);
        ss = ss + CString("\n") + val;
        GetDlgItem(IDC_STATIC_NMB)->SetWindowText(ss);
    

    在计算按钮的响应事件中添加如下代码:

    // 计算均值
        float avg = 0.0;
        for (int i = 0;i<mNmb;i++)
        {
            avg += mArray[i];
        }
        avg /= mNmb;
    
        //计算方差
        float fc = 0;
        for (int i=0;i<mNmb;i++)
        {
            fc += (mArray[i]- avg) * (mArray[i]- avg);
        }
        fc /= mNmb;
    
        //计算均方差
        float jfc = 0;
        jfc = sqrt(fc);
    
        CString str;
        str.Format(_T("均值:%.3f"), avg);
    
        GetDlgItem(IDC_STATIC_AVG)->SetWindowText(str);
        str.Format(_T("方差:%.3f"), fc);
        GetDlgItem(IDC_STATIC_FC)->SetWindowText(str);
        str.Format(_T("均方差:%.3f"), jfc);
        GetDlgItem(IDC_STATIC_JFC)->SetWindowText(str);
    

    编译运行即可。
    如需源码,私信我

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 9月23日
  • 已采纳回答 9月16日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部