VS mfc设计窗口打开文件

img

img


如何用VS写出如图要求的窗口,要求点击按钮打开文件,并计算其中数据的平均值和中值,完全0基础,可否详细步骤讲解一下

你最好是给出你的数据文件的格式,之前回答过你,怎么现在又换C++了

假设你的按钮叫做 Button1,两个文本框叫 Edit1 Edit2,用ClassWizard映射为CEdit类型

void CMyDialog::OnButton1Clicked()
{
    CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST, _T("Text Files (*.txt)|*.txt||"), this);
    if (dlg.DoModal() == IDOK)
    {
        CString filePath = dlg.GetPathName();

        // 打开文件
        CStdioFile file;
        if (file.Open(filePath, CFile::modeRead | CFile::typeText))
        {
            CString line;
            CArray<double, double> numbers;

            // 逐行读取数字
            while (file.ReadString(line))
            {
                double number = _ttof(line);
                numbers.Add(number);
            }

            file.Close();

            // 数字排序
            numbers.Sort();

            // 计算中值和均值
            double median = numbers[numbers.GetSize() / 2];
            double sum = 0;
            for (int i = 0; i < numbers.GetSize(); i++)
            {
                sum += numbers[i];
            }
            double mean = sum / numbers.GetSize();

            // 将结果输出到编辑框
            CString strMedian, strMean;
            strMedian.Format(_T("%.2f"), median);
            strMean.Format(_T("%.2f"), mean);
            m_Edit1.SetWindowText(strMedian);
            m_Edit2.SetWindowText(strMean);
        }
        else
        {
            AfxMessageBox(_T("无法打开文件"));
        }
    }
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/193246
  • 除此之外, 这篇博客: 使用VS的MFC应用创建单文档应用并添加对话框菜单和工具栏中的 一、考核题目要求 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    学习习惯问卷调查:

    • 建立一个单文档应用项目(项目名称为学生姓名拼音首字母缩写)
    • 在该应用项目下,建立一个对话框进行问卷调查,并更改对话框的标题。问卷调查的内容是学习习惯,包括早晨起床时间、每天学习小时数、学习内容、睡觉时间等。
    • 在对话框中要求采用单选按钮、复选按钮、编辑框、旋转按钮等进行选择。
    • 在应用项目主框架的菜单上设置一个菜单调用该对话框。
    • 在工具栏设置一个工具按钮,点击该工具按钮也可调用该对话框。
    • 将对话框的调查结果显示出来。
  • 以下回答来自chatgpt:

    首先,我们需要创建一个MFC单文档应用程序,并添加一个按钮。具体步骤如下:

    1. 打开Visual Studio,选择“新建项目”。
    2. 在“新建项目”对话框中,选择“Visual C++”类别,然后选择“MFC应用程序”模板。输入项目名称并选择保存的位置,点击“确定”。
    3. 在“应用程序类型”对话框中,选择“单文档”模板,并点击“完成”。
    4. Visual Studio将自动创建一个基础的MFC应用程序。
    5. 在资源视图中,打开对话框资源文件(一般为 .rc 文件)。
    6. 在对话框中,从工具箱中拖动一个按钮控件到对话框上。

    接下来,我们需要为按钮添加单击事件,使其能够打开文件对话框。具体步骤如下:

    1. 在资源视图中,双击对话框资源文件,打开对话框编辑器。
    2. 选中按钮控件,右键点击,选择“添加事件处理程序”。
    3. 在“添加事件处理程序”对话框中,选择“单击”事件,并点击“确定”。
    4. Visual Studio将自动创建一个按钮单击事件的处理函数。
    5. 在处理函数中,使用CFileDialog类实现文件对话框的打开功能。具体代码如下:
    void CMyDialog::OnBnClickedButton1()
    {
        // 创建文件对话框对象
        CFileDialog fileDlg(TRUE);
    
        // 显示文件对话框
        if (fileDlg.DoModal() == IDOK) {
            CString filePath = fileDlg.GetPathName();
            // 将文件路径传递给计算函数,并获取计算结果
            double average = CalculateAverage(filePath);
            double median = CalculateMedian(filePath);
    
            // 将计算结果显示到窗口中
            CString result;
            result.Format(_T("Average: %.2lf\nMedian: %.2lf"), average, median);
            SetDlgItemText(IDC_RESULT, result);
        }
    }
    

    在上述代码中,CalculateAverage和CalculateMedian函数用于计算文件中数据的平均值和中值。你可以根据具体的需求和数据格式实现这两个函数。计算结果可以用SetDlgItemText函数将文本显示到窗口中的一个静态文本控件(IDC_RESULT)中。

    最后,编译并运行应用程序,点击按钮即可打开文件对话框,选择要打开的文件,并在窗口中显示计算结果。

    请注意,上述代码仅为示例代码,具体的实现需根据你的实际需求进行调整。希望对你有帮助!


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^