你最好是给出你的数据文件的格式,之前回答过你,怎么现在又换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("无法打开文件"));
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:学习习惯问卷调查:
- 建立一个单文档应用项目(项目名称为学生姓名拼音首字母缩写)
- 在该应用项目下,建立一个对话框进行问卷调查,并更改对话框的标题。问卷调查的内容是学习习惯,包括早晨起床时间、每天学习小时数、学习内容、睡觉时间等。
- 在对话框中要求采用单选按钮、复选按钮、编辑框、旋转按钮等进行选择。
- 在应用项目主框架的菜单上设置一个菜单调用该对话框。
- 在工具栏设置一个工具按钮,点击该工具按钮也可调用该对话框。
- 将对话框的调查结果显示出来。
首先,我们需要创建一个MFC单文档应用程序,并添加一个按钮。具体步骤如下:
接下来,我们需要为按钮添加单击事件,使其能够打开文件对话框。具体步骤如下:
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)中。
最后,编译并运行应用程序,点击按钮即可打开文件对话框,选择要打开的文件,并在窗口中显示计算结果。
请注意,上述代码仅为示例代码,具体的实现需根据你的实际需求进行调整。希望对你有帮助!