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

📄 px.cpp

📁 对话框实现读入文件
💻 CPP
字号:
// PX.cpp : implementation file
//

#include "stdafx.h"
#include "CmyPX.h"
#include "PX.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPX dialog


CPX::CPX(CWnd* pParent /*=NULL*/)
	: CDialog(CPX::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPX)
	m_nInput = _T("");
	m_nOutput = _T("");
	m_nMethod = -1;
	m_nUporDown = -1;
	//}}AFX_DATA_INIT
}


void CPX::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPX)
	DDX_Text(pDX, IDC_EDIT1, m_nInput);
	DDX_Text(pDX, IDC_EDIT2, m_nOutput);
	DDX_Radio(pDX, IDC_RADIO1, m_nMethod);
	DDX_Radio(pDX, IDC_RADIO5, m_nUporDown);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPX, CDialog)
	//{{AFX_MSG_MAP(CPX)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPX message handlers

void CPX::OnButton1() 
{
	// TODO: Add your control notification handler code here
	CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
		"Txt Files(*.txt)|*.txt||",NULL);
	if(dlg.DoModal() == IDOK)
	{
		m_nInput=dlg.GetPathName();
		SetDlgItemText(IDC_EDIT1,m_nInput);
	}
	
}

void CPX::OnButton2() 
{
	// TODO: Add your control notification handler code here
	CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
		"Txt Files(*.txt)|*.txt||",NULL);
	if(dlg.DoModal() == IDOK)
	{
		m_nOutput=dlg.GetPathName();
		SetDlgItemText(IDC_EDIT2,m_nOutput);
	}
	
}
void run(int *pData,int left,int right)
{
	int i,j,middle,iTemp;
	i=left;j=right;
	middle=pData[(left+right)/2];
	do{
		while((pData[i]<middle)&&i<(right))
			i++;
		while((pData[j]>middle)&&j>left)
			j--;
		if (i<=j)
		{
			iTemp=pData[i];
			pData[i]=pData[j];
			pData[j]=iTemp;
			i++;
			j--;
		}
		
	}while(i<=j);
	if(left<j)
		run(pData,left,j);
	if(right>i)
		run(pData,i,right);
}

void QuickSort(int *pData,int count)
{
	run(pData,0,count-1);
}
void CPX::Method1()
{	
	int count=10,k,j;
	int iTemp;
    Read();
	for(j=0,k=0;j<count,k<count;j++,k++)
    temp[j]=m_nIn[k];
	QuickSort(temp,count); 
	if(m_nUporDown == 1)
	{for( int i=0;i<count/2;i++){
    iTemp=temp[i];
	temp[i]=temp[count-1-i];
    temp[count-1-i]=iTemp;}
	}
	Write();
}
void bubble2sort(int *pData,int count)
{
	int iTemp,left=1,right=count-1,t;
	do 
	{
		for(int i=right;i>=left;i--)
		{
			if(pData[i]<pData[i-1])
			{
				iTemp=pData[i];
				pData[i]=pData[i-1];
				pData[i-1]=iTemp;
				t=i;
			}
		}
		left=t+1;
		for(i=left;i<right+1;i++)
		{
			if(pData[i]<pData[i-1])
			{
				iTemp=pData[i];
				pData[i]=pData[i-1];
				pData[i-1]=iTemp;
				t=i;
			}
		}
		right=t-1;
		
	}while(left<=right);
} 

void CPX::Method2()
{	int count=10,iTemp,j,k;
    Read();
	for(j=0,k=0;j<count,k<count;j++,k++)
		temp[j]=m_nIn[k];
    bubble2sort(temp,count);
	if(m_nUporDown == 1)
	{for(int i=0;i<count/2;i++)
	{  iTemp=temp[i];
	temp[i]=temp[count-1-i];
	temp[count-1-i]=iTemp;  }
	}
	Write();
}
void misshel(int *p,int n)
{
	int i,j,k,t;
	k=n/2;
	while(k>0)
	{
		for(j=k;j<=n-1;j++)
		{
			t=p[j];i=j-k;
			while((i>=0)&&(p[i]>t))
			{p[i+k]=p[i];i=i-k;}
			p[i+k]=t;
		}
		k=k/2;
	}
	return;
}

void CPX::Method3()
{
	int count=10,iTemp,j,k;
	Read();
	for(j=0,k=0;j<count,k<count;j++,k++)
		temp[j]=m_nIn[k];
	misshel(temp,count);
	if(m_nUporDown == 1)
	{for( int i=0;i<count/2;i++){
		iTemp=temp[i];
		temp[i]=temp[count-1-i];
		temp[count-1-i]=iTemp;}
	}
	Write();
	
}

static void sift(int p[],int i,int n)
{
	int j,t;
	t=p[i];j=2*(i+1)-1;
	while(j<=n)
	{
		if((j<n)&&(p[j]<p[j+1]))
			j=j+1;
		else if(t<p[j])
		{p[i]=p[j];i=j;j=2*(i+1)-1;}
		else j=n+1;
	}
	p[i]=t;
	return;
}

void mheap(int p[],int n)
{
	int i,mm,t;
	mm=n/2;
	for(i=mm-1;i>=0;i--)
		sift(p,i,n-1);
	for (i=n-1;i>=1;i--)
	{
		t=p[0];p[0]=p[i];p[i]=t;
		sift(p,0,i-1);
	}
}
void CPX::Method4()
{
	int count=10,iTemp,j,k;
	Read();
	for(j=0,k=0;j<count,k<count;j++,k++)
		temp[j]=m_nIn[k];
	mheap(temp,count);
	if(m_nUporDown == 1)
	{for( int i=0;i<count/2;i++){
		iTemp=temp[i];
		temp[i]=temp[count-1-i];
		temp[count-1-i]=iTemp;}
	}
	Write();

}

void CPX::Read()
{
	FILE *fp=fopen(m_nInput,"r");
	if(fp==NULL)
	{
		AfxMessageBox(CString("文件读入错误:\n")+m_nInput);
// 		return 0;
	}
	int i=0;
	while(!feof(fp))
	{
		fscanf(fp, "%d",&m_nIn[i++]);
	}
	
	fclose(fp);
	
	
// 	return 0;
}

void CPX::Write()
{
	int i;
	
	for(i=0;i<10;i++)
	{
		m_nOut[i]=temp[i];
	}
	
	FILE *fp=fopen(m_nOutput,"w");
	for (i = 0; i < 10; i ++)
	{
		fprintf(fp,"%d\n",m_nOut[i]);
	}
	fclose(fp);
	
// 	return 0;
}

⌨️ 快捷键说明

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