问题描述:
for information on how your program can
#include "stdafx.h"
using namespace std;
void main()
{
int i,j,num;
double str[11];//11个特征值查询模型
double ds[11];//数据库模型的特征值
double same[400]; //相似度
double sum;
tot:
CString f_name,m_path,m_name;
cout<<"选择特征文件 ";
system("pause");
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY,_T("模型特征向量文件(*.txt)|*.txt||"));
if(dlg.DoModal()==IDOK)
{
m_path=dlg.GetPathName();
cout<<m_path<<endl;
m_name=dlg.GetFileName();
}//if(dlg.DoModal()==IDOK)
ifstream f;
f.open(m_path,ios::in);
if f.is_open())
{
/*文件不存在,操作失败*/
AfxMessageBox(_T("文件"+m_path+"不存在!"));
goto tot;
}
for (i=0;i<11;i++)
{
f>>str[i];
// cout<<str[i]<<" ";
}
f.clear();
f.close();
cout<<"\n输入计算相似度模型的个数 ";
cin>>num;
char s[256];
char t[2];
for(j=1;j<=num;j++)
{
strcpy(s,"E:\\cut\\off\\");
sprintf(t,"%d",j);
strcat(t,".txt");
strcat(s,t);
f_name=s;
f.open(f_name,ios::in);
if f.is_open())
{
/*文件不存在,操作失败*/
AfxMessageBox(_T("文件"+f_name+"不存在"));
return;
}
for (i=0;i<11;i++)
{
f>>ds[i];
// cout<<"["<<i<<"]"<<ds[i]<<endl;
}
sum=0.0;
for(i=0;i<11;i++)
{
sum+=(str[i]-ds[i])*(str[i]-ds[i]);
}
same[j]=sqrt(sum);
//cout<<"same["<<j<<"]="<<same[j]<<endl;
f.clear();
f.close();
}//for(j=1;j<=num;j++)
//保存文件
char tt[2];
sprintf(tt,"%d",num);
FILE *fp;
char fname[32];/*文件名*/
strcpy(fname,"1-");
strcat(fname,tt);
strcat(fname,".txt");
fp=fopen(fname,"w+");
for(i=1;i<=num;i++)
{
fprintf(fp,"%f",same[i]);
fprintf(fp,"\n");
}
fclose(fp);
}
运行首先出现第一张图,忽略后能运行.执行完了跳出第二三张图,忽略后结束.
#include "stdafx.h"
using namespace std;
void main()
{
int i,j,num;
double str[11];//11个特征值查询模型
double ds[11];//数据库模型的特征值
double same[400]; //相似度
double sum;
tot:
CString f_name,m_path,m_name;
cout<<"选择特征文件 ";
system("pause");
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY,_T("模型特征向量文件(*.txt)|*.txt||"));
if(dlg.DoModal()==IDOK)
{
m_path=dlg.GetPathName();
cout<<m_path<<endl;
m_name=dlg.GetFileName();
}//if(dlg.DoModal()==IDOK)
ifstream f;
f.open(m_path,ios::in);
if f.is_open())
{
/*文件不存在,操作失败*/
AfxMessageBox(_T("文件"+m_path+"不存在!"));
goto tot;
}
for (i=0;i<11;i++)
{
f>>str[i];
// cout<<str[i]<<" ";
}
f.clear();
f.close();
cout<<"\n输入计算相似度模型的个数 ";
cin>>num;
char s[256];
char t[2];
for(j=1;j<=num;j++)
{
strcpy(s,"E:\\cut\\off\\");
sprintf(t,"%d",j);
strcat(t,".txt");
strcat(s,t);
f_name=s;
f.open(f_name,ios::in);
if f.is_open())
{
/*文件不存在,操作失败*/
AfxMessageBox(_T("文件"+f_name+"不存在"));
return;
}
for (i=0;i<11;i++)
{
f>>ds[i];
// cout<<"["<<i<<"]"<<ds[i]<<endl;
}
sum=0.0;
for(i=0;i<11;i++)
{
sum+=(str[i]-ds[i])*(str[i]-ds[i]);
}
same[j]=sqrt(sum);
//cout<<"same["<<j<<"]="<<same[j]<<endl;
f.clear();
f.close();
}//for(j=1;j<=num;j++)
//保存文件
char tt[2];
sprintf(tt,"%d",num);
FILE *fp;
char fname[32];/*文件名*/
strcpy(fname,"1-");
strcat(fname,tt);
strcat(fname,".txt");
fp=fopen(fname,"w+");
for(i=1;i<=num;i++)
{
fprintf(fp,"%f",same[i]);
fprintf(fp,"\n");
}
fclose(fp);
}
运行首先出现第一张图,忽略后能运行.执行完了跳出第二三张图,忽略后结束.
问题解答:
我来补答展开全文阅读