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

📄 dlgx.cpp

📁 自己毕业时做的程序
💻 CPP
字号:
// DLGX.cpp : implementation file
//

#include "stdafx.h"
#include "RT.h"
#include "DLGX.h"
#include "Matrix.h"
#include "Complex.h"
#include "PandL.h"

#include<stdio.h>
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<cstring>
#include<string.h>

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

/////////////////////////////////////////////////////////////////////////////
// CDLGX dialog


CDLGX::CDLGX(CWnd* pParent /*=NULL*/)
	: CDialog(CDLGX::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDLGX)
	m_open = _T("");
	m_save = _T("");
	//}}AFX_DATA_INIT
}


void CDLGX::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDLGX)
	DDX_Text(pDX, IDC_EDIT1, m_open);
	DDX_Text(pDX, IDC_EDIT2, m_save);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDLGX, CDialog)
	//{{AFX_MSG_MAP(CDLGX)
	ON_BN_CLICKED(IDC_BUTOPEN, OnButopen)
	ON_BN_CLICKED(IDC_BUTSAVE, OnButsave)
	ON_BN_CLICKED(IDC_RADIOX, OnRadiox)
	ON_BN_CLICKED(IDC_RADIOY, OnRadioy)
	ON_BN_CLICKED(IDC_RADIOZ, OnRadioz)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDLGX message handlers

void CDLGX::OnButopen() 
{
	// TODO: Add your control notification handler code here
	CString fileName;
	char* szFilter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*||";
	CFileDialog dlg(TRUE, "txt", TEXT("name.txt"),
        OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,szFilter);
	
	dlg.DoModal();
	fileName = dlg.GetFileName();


	char FileFormat[4]="";

	if(fileName[0]=='\0')
	{
 		return;
	}
	for(int i=0;i<80;i++)
	{
		if(fileName[i]=='.')
		{
			for(int j=0;j<3;j++)
			{
				FileFormat[j]=fileName[i+1];
				i++;
			}
			break;
		}
	}
	if(!(FileFormat[0]=='t'||FileFormat[0]=='T'))
	{
		MessageBox("你选择的不是txt格式的文件!","Waring!",MB_ICONSTOP);
		return;
	}
	if(!(FileFormat[1]=='x'||FileFormat[1]=='X'))
	{
		MessageBox("你选择的不是txt格式的文件!","Waring!",MB_ICONSTOP);
		return;
	}
	if(!(FileFormat[2]=='t'||FileFormat[2]=='T'))
	{
		MessageBox("你选择的不是txt格式的文件!","Waring!",MB_ICONSTOP);
		return;
	}

	m_open=fileName;
	Invalidate();
	UpdateData(FALSE);
}

void CDLGX::OnButsave() 
{
	// TODO: Add your control notification handler code here
	CString fileName;
	char* szFilter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*||";
	CFileDialog dlg(FALSE, "txt", TEXT("name.txt"),
        OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,szFilter);
	
	dlg.DoModal();
	fileName = dlg.GetFileName();
    m_save=fileName;
	Invalidate();
	UpdateData(FALSE);
}

/*void CDLGX::OnButchange() 
{
	// TODO: Add your control notification handler code here
    int radio;
	radio=GetCheckedRadioButton(IDC_RADIOX,IDC_RADIOZ);
	if(radio==IDC_RADIOX)
		OnRadiox();

}*/

void CDLGX::OnRadiox() 
{
   UpdateData(TRUE);
//   GetDlgItem(IDC_CHANGE)->EnableWindow(FALSE);//"确定"按钮失效

   FILE  *fp;
   char ifileName[ 35 ] = "";
   char ofileName[ 35 ] = "";
 

 	strcat( ifileName, m_open); 
	strcat( ofileName, m_save); 
	
   	if(ifileName[0]=='\0')
	{
		MessageBox("请输入要转换的文件!   ","Warning!",MB_ICONSTOP);
//		GetDlgItem(IDC_CHANGE)->EnableWindow();//"确定"按钮恢复正常
		return;
	}

	if(ofileName[0]=='\0')
	{
		MessageBox("请输入生成文件的路径和文件名!","Warning!",MB_ICONSTOP);
//		GetDlgItem(IDC_CHANGE)->EnableWindow();//"确定"按钮恢复正常
		return;
	}


	 double  m[30000][3];
 int i,j,k;
 i=0;j=0;k=0;
 //FILE  *fp;
 //char ifileName[ 35 ] = "";
 //char ofileName[ 35 ] = "";
// char s0[ 25 ];
 char s1[] = ".txt";
 char s2[] = ".txt";  
 
 
//VDA文件输入
    ifstream infile; //建立输入文件流对象
//	cout << "Please input the name of TXT file :\n";
//	cin >> s0; //输入文件名
//	strcat( ifileName, s0); //将s0的字符复制到ifileName
//	strcat( ifileName, s1); //将s1的字符复制到ifileName
	fp=fopen(ifileName,"rb");   //文件读入
	    	
		
    for(i=0;i<30000;i++) //数组m[i][j]初始化
	{
      for(j=0;j<3;j++)
          m[i][j]=0; 

	}
 

    for(i=0;i<30000;i++)
    fscanf(fp,"%lf %lf %lf",&m[i][0],&m[i][1],&m[i][2]);  

   	infile.close();





	 ofstream outstuf;  //建立输出文件流对象
//	 cout << "Please input the name of TXT file :\n";
//	 cin >> s0; //输入文件名
//	 strcat( ofileName, s0);  //将s0的字符复制到ofileName
//	 strcat( ofileName, s2);  //将s2的字符复制到ofileName 
	 outstuf.open(ofileName,ios::out);  //连接文件,指定打开方式 
	 
	 if (!outstuf)
	 {  cerr << "File could not be open." << endl;
    	 abort();
	 } 
/*    for(i=0;i<30000;i++)
	{
		if(m[i][0]==0&&m[i][1]==0&&m[i][2]==0)
		{
		   break;
		}

	outstuf <<m[i][0]<<"  "<<m[i][1]<<"  "<<m[i][2]<<"  "<<i<<endl;


	}*/

	 int t,tt,ttt,nofl,nofp,noflc;
	 double	 nofpc[200];
	 for(i=0;i<200;i++)
	 {
		 nofpc[i]=0;
	 }
	 t=0;tt=0;ttt=0;nofl=1;nofp=1;noflc=0;

	 
	for(i=0;i<30000;i++) //数组m[i][j]初始化
	{
		if(m[i][0]==0&&m[i][1]==0&&m[i][2]==0)
		{
		   break;
		}			
		 t=i;
		 if (m[t][0]==m[t+1][0])
		 {
		    tt=tt+1;
		 }
		 else
		 { 
		   noflc++;
		   nofpc[ttt]=tt+1;
		   cout<<noflc<<"  "<<tt<<" "<<ttt<<"  "<<nofpc[ttt]<<"\n";
		   ttt=ttt+1; 
		   tt=0;
		 }
   	}


	CALine ALine;
	CPointtest* Point = NULL;
    CLine* line=NULL;

     for(i=0;i<noflc;i++)
     { 

//		 AfxMessageBox("TTT1", MB_OK|MB_ICONINFORMATION);
         line=new CLine();

	     for(j=0;j<nofpc[i];j++)
		 {
	  
            Point = new CPointtest();
			
		    Point->pt3.x=m[k+j][0];Point->pt3.y=m[k+j][1];Point->pt3.z=m[k+j][2];
    		line->m_PointList2.Add(Point);
		 }
	
	    ALine.Add(line);
		k=0;
		for(int g=0;g<=i;g++)
				k=k+nofpc[i];
	 }

    AfxMessageBox("TTT2", MB_OK|MB_ICONINFORMATION);

	int NumberOfPoint=0;
	for( int i0=0;i0<ALine.m_LineList2.GetSize();i0++) //数组m[i][j]初始化
	{
       
         NumberOfPoint=NumberOfPoint+ALine.m_LineList2[i0]->m_PointList2.GetSize();

	}

	 outstuf <<"total number of line:"<<ALine.m_LineList2.GetSize()<<"  "<<"total number of point:"<<NumberOfPoint<<endl;	
	 for( i=0;i<ALine.m_LineList2.GetSize();i++) //数组m[i][j]初始化
	{ 
		outstuf<<endl;
        outstuf <<"line"<<"  "<<i+1<<"  "<<"point"<<"   "<<ALine.m_LineList2[i]->m_PointList2.GetSize()<<endl;
       

		for( j=0;j<ALine.m_LineList2[i]->m_PointList2.GetSize();j++)
	   {
          outstuf <<ALine.m_LineList2[i]->m_PointList2[j]->pt3.x <<"  "<<ALine.m_LineList2[i]->m_PointList2[j]->pt3.y<<"  "<<ALine.m_LineList2[i]->m_PointList2[j]->pt3.z<<"\n";  
	   }
	}

		
	outstuf << endl;  //文件输出“endsolid”并回车。
	outstuf.close();   //关闭文件
    MessageBox("转换已成功谢谢使用!","Thanks!",MB_ICONSTOP);
}

void CDLGX::OnRadioy() 
{
	// TODO: Add your control notification handler code here
		// TODO: Add your control notification handler code here
   UpdateData(TRUE);
//   GetDlgItem(IDC_CHANGE)->EnableWindow(FALSE);//"确定"按钮失效

   FILE  *fp;
   char ifileName[ 35 ] = "";
   char ofileName[ 35 ] = "";
 

 	strcat( ifileName, m_open); 
	strcat( ofileName, m_save); 
	
   	if(ifileName[0]=='\0')
	{
		MessageBox("请输入要转换的文件!   ","Warning!",MB_ICONSTOP);
//		GetDlgItem(IDC_CHANGE)->EnableWindow();//"确定"按钮恢复正常
		return;
	}

	if(ofileName[0]=='\0')
	{
		MessageBox("请输入生成文件的路径和文件名!","Warning!",MB_ICONSTOP);
//		GetDlgItem(IDC_CHANGE)->EnableWindow();//"确定"按钮恢复正常
		return;
	}


	 double  m[30000][3];
 int i,j,k;
 i=0;j=0;k=0;
 //FILE  *fp;
 //char ifileName[ 35 ] = "";
 //char ofileName[ 35 ] = "";
// char s0[ 25 ];
 char s1[] = ".txt";
 char s2[] = ".txt";  
 
 
//VDA文件输入
    ifstream infile; //建立输入文件流对象
//	cout << "Please input the name of TXT file :\n";
//	cin >> s0; //输入文件名
//	strcat( ifileName, s0); //将s0的字符复制到ifileName
//	strcat( ifileName, s1); //将s1的字符复制到ifileName
	fp=fopen(ifileName,"rb");   //文件读入
	    	
		
    for(i=0;i<30000;i++) //数组m[i][j]初始化
	{
      for(j=0;j<3;j++)
          m[i][j]=0; 

	}
 

    for(i=0;i<30000;i++)
    fscanf(fp,"%lf %lf %lf",&m[i][0],&m[i][1],&m[i][2]);  

   	infile.close();





	 ofstream outstuf;  //建立输出文件流对象
//	 cout << "Please input the name of TXT file :\n";
//	 cin >> s0; //输入文件名
//	 strcat( ofileName, s0);  //将s0的字符复制到ofileName
//	 strcat( ofileName, s2);  //将s2的字符复制到ofileName 
	 outstuf.open(ofileName,ios::out);  //连接文件,指定打开方式 
	 
	 if (!outstuf)
	 {  cerr << "File could not be open." << endl;
    	 abort();
	 } 
/*    for(i=0;i<30000;i++)
	{
		if(m[i][0]==0&&m[i][1]==0&&m[i][2]==0)
		{
		   break;
		}

	outstuf <<m[i][0]<<"  "<<m[i][1]<<"  "<<m[i][2]<<"  "<<i<<endl;


	}*/

	 int t,tt,ttt,nofl,nofp,noflc;
	 double	 nofpc[200];
	 for(i=0;i<200;i++)
	 {
		 nofpc[i]=0;
	 }
	 t=0;tt=0;ttt=0;nofl=1;nofp=1;noflc=0;

	 
	for(i=0;i<30000;i++) //数组m[i][j]初始化
	{
		if(m[i][0]==0&&m[i][1]==0&&m[i][2]==0)
		{
		   break;
		}			
		 t=i;
		 if (m[t][1]==m[t+1][1])
		 {
		    tt=tt+1;
		 }
		 else
		 { 
		   noflc++;
		   nofpc[ttt]=tt+1;
		   cout<<noflc<<"  "<<tt<<" "<<ttt<<"  "<<nofpc[ttt]<<"\n";
		   ttt=ttt+1; 
		   tt=0;
		 }
   	}


	CALine ALine;
	CPointtest* Point = NULL;
    CLine* line=NULL;

     for(i=0;i<noflc;i++)
     { 

//		 AfxMessageBox("TTT1", MB_OK|MB_ICONINFORMATION);
         line=new CLine();

	     for(j=0;j<nofpc[i];j++)
		 {
	  
            Point = new CPointtest();
			
		    Point->pt3.x=m[k+j][0];Point->pt3.y=m[k+j][1];Point->pt3.z=m[k+j][2];
    		line->m_PointList2.Add(Point);
		 }
	
	    ALine.Add(line);
		k=0;
		for(int g=0;g<=i;g++)
				k=k+nofpc[i];
	 }

    AfxMessageBox("TTT2", MB_OK|MB_ICONINFORMATION);

	int NumberOfPoint=0;
	for( int i0=0;i0<ALine.m_LineList2.GetSize();i0++) //数组m[i][j]初始化
	{
       
         NumberOfPoint=NumberOfPoint+ALine.m_LineList2[i0]->m_PointList2.GetSize();

	}

	 outstuf <<"total number of line:"<<ALine.m_LineList2.GetSize()<<"  "<<"total number of point:"<<NumberOfPoint<<endl;	
	 for( i=0;i<ALine.m_LineList2.GetSize();i++) //数组m[i][j]初始化
	{ 
		outstuf<<endl;
        outstuf <<"line"<<"  "<<i+1<<"  "<<"point"<<"   "<<ALine.m_LineList2[i]->m_PointList2.GetSize()<<endl;
       

		for( j=0;j<ALine.m_LineList2[i]->m_PointList2.GetSize();j++)
	   {
          outstuf <<ALine.m_LineList2[i]->m_PointList2[j]->pt3.x <<"  "<<ALine.m_LineList2[i]->m_PointList2[j]->pt3.y<<"  "<<ALine.m_LineList2[i]->m_PointList2[j]->pt3.z<<"\n";  
	   }
	}

		
	outstuf << endl;  //文件输出“endsolid”并回车。
	outstuf.close();   //关闭文件
    MessageBox("转换已成功谢谢使用!","Thanks!",MB_ICONSTOP);
}

void CDLGX::OnRadioz() 
{
	   UpdateData(TRUE);
//   GetDlgItem(IDC_CHANGE)->EnableWindow(FALSE);//"确定"按钮失效

   FILE  *fp;
   char ifileName[ 35 ] = "";
   char ofileName[ 35 ] = "";
 

 	strcat( ifileName, m_open); 
	strcat( ofileName, m_save); 
	
   	if(ifileName[0]=='\0')
	{
		MessageBox("请输入要转换的文件!   ","Warning!",MB_ICONSTOP);
//		GetDlgItem(IDC_CHANGE)->EnableWindow();//"确定"按钮恢复正常
		return;
	}

	if(ofileName[0]=='\0')
	{
		MessageBox("请输入生成文件的路径和文件名!","Warning!",MB_ICONSTOP);
//		GetDlgItem(IDC_CHANGE)->EnableWindow();//"确定"按钮恢复正常
		return;
	}


	 double  m[30000][3];
 int i,j,k;
 i=0;j=0;k=0;
 //FILE  *fp;
 //char ifileName[ 35 ] = "";
 //char ofileName[ 35 ] = "";
// char s0[ 25 ];
 char s1[] = ".txt";
 char s2[] = ".txt";  
 
 
//VDA文件输入
    ifstream infile; //建立输入文件流对象
//	cout << "Please input the name of TXT file :\n";
//	cin >> s0; //输入文件名
//	strcat( ifileName, s0); //将s0的字符复制到ifileName
//	strcat( ifileName, s1); //将s1的字符复制到ifileName
	fp=fopen(ifileName,"rb");   //文件读入
	    	
		
    for(i=0;i<30000;i++) //数组m[i][j]初始化
	{
      for(j=0;j<3;j++)
          m[i][j]=0; 

	}
 

    for(i=0;i<30000;i++)
    fscanf(fp,"%lf %lf %lf",&m[i][0],&m[i][1],&m[i][2]);  

   	infile.close();





	 ofstream outstuf;  //建立输出文件流对象
//	 cout << "Please input the name of TXT file :\n";
//	 cin >> s0; //输入文件名
//	 strcat( ofileName, s0);  //将s0的字符复制到ofileName
//	 strcat( ofileName, s2);  //将s2的字符复制到ofileName 
	 outstuf.open(ofileName,ios::out);  //连接文件,指定打开方式 
	 
	 if (!outstuf)
	 {  cerr << "File could not be open." << endl;
    	 abort();
	 } 
/*    for(i=0;i<30000;i++)
	{
		if(m[i][0]==0&&m[i][1]==0&&m[i][2]==0)
		{
		   break;
		}

	outstuf <<m[i][0]<<"  "<<m[i][1]<<"  "<<m[i][2]<<"  "<<i<<endl;


	}*/

	 int t,tt,ttt,noflc;
	 double	 nofpc[200];
	 for(i=0;i<200;i++)
	 {
		 nofpc[i]=0;
	 }
	 t=0;tt=0;ttt=0;noflc=0;

	 
	for(i=0;i<30000;i++) //数组m[i][j]初始化
	{
	  if(m[i][0]==0 && m[i][1]==0 && m[i][2]==0)
	  {
		  break;
	  }

		 t=i;
		 if (m[t][2]==m[t+1][2])
		 {
		    tt=tt+1;
		 }
		 else
		 {
		   noflc=noflc+1;
		   nofpc[ttt]=tt+1;
		   ttt=ttt+1; 
		   tt=0;
		 }

	}


	CALine ALine;
	CPointtest* Point = NULL;
    CLine* line=NULL;

     for(i=0;i<noflc;i++)
     { 
         if(m[k][0]==0&&m[k][1]==0&&m[k][2]==0)
			 break;
//		 AfxMessageBox("TTT1", MB_OK|MB_ICONINFORMATION);
         line=new CLine();

	     for(j=0;j<nofpc[i];j++)
		 {
	  
            Point = new CPointtest();
			
		    Point->pt3.x=m[k+j][0];Point->pt3.y=m[k+j][1];Point->pt3.z=m[k+j][2];
    		line->m_PointList2.Add(Point);
		 }
	
	    ALine.Add(line);
		k=0;
		for(int g=0;g<=i;g++)
				k=k+nofpc[i];
	 }



	int NumberOfPoint=0;
	for(i=0;i<ALine.m_LineList2.GetSize();i++) //数组m[i][j]初始化
	{
       
         NumberOfPoint=NumberOfPoint+ALine.m_LineList2[i]->m_PointList2.GetSize();

	}

	 outstuf <<"total number of line:"<<ALine.m_LineList2.GetSize()<<"  "<<"total number of point:"<<NumberOfPoint<<endl;	
	 for( i=0;i<ALine.m_LineList2.GetSize();i++) //数组m[i][j]初始化
	{ 
		outstuf<<endl;
        outstuf <<"line"<<"  "<<i+1<<"  "<<"point"<<"   "<<ALine.m_LineList2[i]->m_PointList2.GetSize()<<endl;
       

		for( j=0;j<ALine.m_LineList2[i]->m_PointList2.GetSize();j++)
	   {
          outstuf <<ALine.m_LineList2[i]->m_PointList2[j]->pt3.x <<"  "<<ALine.m_LineList2[i]->m_PointList2[j]->pt3.y<<"  "<<ALine.m_LineList2[i]->m_PointList2[j]->pt3.z<<"\n";  
	   }
	}

		
	outstuf << endl;  //文件输出“endsolid”并回车。
	outstuf.close();   //关闭文件
    MessageBox("转换已成功谢谢使用!","Thanks!",MB_ICONSTOP);
}

⌨️ 快捷键说明

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