dataclass.cpp

来自「这是一个学生信息管理系统」· C++ 代码 · 共 756 行 · 第 1/2 页

CPP
756
字号
#include "StdAfx.h"
#include "DataClass.h"
#include "SMS.h"
CDataClass::CDataClass(void)
{
	m_Data=NULL;
}

CDataClass::~CDataClass(void)
{
	delete [] m_Data;
}
void CDataClass::Init(int nAmount) 
{
	m_iAmount=nAmount;
	m_Data=new tagData [m_iAmount];
}
//排序函数
void CDataClass::SortDataByCol_1(bool Up, int kind) 
{
	int i,j;
	if(Up)//升序排序
	{
		for(i=0;i<m_iAmount-1;i++)
			for(j=i+1;j<m_iAmount;j++)
			{
				switch(kind)
				{
				case 0://默认是对CString排序
					if(m_Data[i].m_sCol_1 >m_Data[j].m_sCol_1 )
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 1://日期的
					if(_StringToString(m_Data[i].m_sCol_1) >_StringToString(m_Data[j].m_sCol_1 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 2://货币的
					if(MoneyToInt(m_Data[i].m_sCol_1) >MoneyToInt(m_Data[j].m_sCol_1 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				default:break;
				}
			}
	}
	else
	{
		for(i=0;i<m_iAmount-1;i++)
			for(j=i+1;j<m_iAmount;j++)
			{
				switch(kind)
				{
				case 0://默认是对CString排序
					if(m_Data[i].m_sCol_1 <=m_Data[j].m_sCol_1 )
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 1://日期的
					if(_StringToString(m_Data[i].m_sCol_1) <=_StringToString(m_Data[j].m_sCol_1 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 2://货币的
					if(MoneyToInt(m_Data[i].m_sCol_1) <=MoneyToInt(m_Data[j].m_sCol_1 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				default:break;
				}
			}
	}
	
}
/////////////////////////////////////////////////////////////////////////////////////////
void CDataClass::SortDataByCol_2(bool Up, int kind) 
{
	int i,j;
	if(Up)//升序排序
	{
		for(i=0;i<m_iAmount-1;i++)
			for(j=i+1;j<m_iAmount;j++)
			{
				switch(kind)
				{
				case 0://默认是对CString排序
					if(m_Data[i].m_sCol_2 >m_Data[j].m_sCol_2 )
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 1://日期的
					if(_StringToString(m_Data[i].m_sCol_2) >_StringToString(m_Data[j].m_sCol_2 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 2://货币的
					if(MoneyToInt(m_Data[i].m_sCol_2) >MoneyToInt(m_Data[j].m_sCol_2 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				default:break;
				}
			}
	}
	else
	{
		for(i=0;i<m_iAmount-1;i++)
			for(j=i+1;j<m_iAmount;j++)
			{
				switch(kind)
				{
				case 0://默认是对CString排序
					if(m_Data[i].m_sCol_2 <=m_Data[j].m_sCol_2 )
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 1://日期的
					if(_StringToString(m_Data[i].m_sCol_2) <=_StringToString(m_Data[j].m_sCol_2 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 2://货币的
					if(MoneyToInt(m_Data[i].m_sCol_2) <=MoneyToInt(m_Data[j].m_sCol_2 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				default:break;
				}
			}
	}
	
}
///////////////////////////////////////////////////////////////////////
void CDataClass::SortDataByCol_3(bool Up, int kind) 
{
	int i,j;
	if(Up)//升序排序
	{
		for(i=0;i<m_iAmount-1;i++)
			for(j=i+1;j<m_iAmount;j++)
			{
				switch(kind)
				{
				case 0://默认是对CString排序
					if(m_Data[i].m_sCol_3 >m_Data[j].m_sCol_3 )
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 1://日期的
					if(_StringToString(m_Data[i].m_sCol_3) >_StringToString(m_Data[j].m_sCol_3 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 2://货币的
					if(MoneyToInt(m_Data[i].m_sCol_3) >MoneyToInt(m_Data[j].m_sCol_3 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				default:break;
				}
			}
	}
	else
	{
		for(i=0;i<m_iAmount-1;i++)
			for(j=i+1;j<m_iAmount;j++)
			{
				switch(kind)
				{
				case 0://默认是对CString排序
					if(m_Data[i].m_sCol_3 <=m_Data[j].m_sCol_3 )
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 1://日期的
					if(_StringToString(m_Data[i].m_sCol_3) <=_StringToString(m_Data[j].m_sCol_3 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 2://货币的
					if(MoneyToInt(m_Data[i].m_sCol_3) <=MoneyToInt(m_Data[j].m_sCol_3 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				default:break;
				}
			}
	}
	
}
////////////////////////////////////////////////////////////////////////////
void CDataClass::SortDataByCol_4(bool Up, int kind) 
{
	int i,j;
	if(Up)//升序排序
	{
		for(i=0;i<m_iAmount-1;i++)
			for(j=i+1;j<m_iAmount;j++)
			{
				switch(kind)
				{
				case 0://默认是对CString排序
					if(m_Data[i].m_sCol_4 >m_Data[j].m_sCol_4 )
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 1://日期的
					if(_StringToString(m_Data[i].m_sCol_4) >_StringToString(m_Data[j].m_sCol_4 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 2://货币的
					if(MoneyToInt(m_Data[i].m_sCol_4) >MoneyToInt(m_Data[j].m_sCol_4 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				default:break;
				}
			}
	}
	else
	{
		for(i=0;i<m_iAmount-1;i++)
			for(j=i+1;j<m_iAmount;j++)
			{
				switch(kind)
				{
				case 0://默认是对CString排序
					if(m_Data[i].m_sCol_4 <=m_Data[j].m_sCol_4 )
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 1://日期的
					if(_StringToString(m_Data[i].m_sCol_4) <=_StringToString(m_Data[j].m_sCol_4 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 2://货币的
					if(MoneyToInt(m_Data[i].m_sCol_4) <=MoneyToInt(m_Data[j].m_sCol_4 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				default:break;
				}
			}
	}
	
}
/////////////////////////////////////////////////////////////////////////////////
void CDataClass::SortDataByCol_5(bool Up, int kind) 
{
	int i,j;
	if(Up)//升序排序
	{
		for(i=0;i<m_iAmount-1;i++)
			for(j=i+1;j<m_iAmount;j++)
			{
				switch(kind)
				{
				case 0://默认是对CString排序
					if(m_Data[i].m_sCol_5 >m_Data[j].m_sCol_5 )
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 1://日期的
					if(_StringToString(m_Data[i].m_sCol_5) >_StringToString(m_Data[j].m_sCol_5 ))
					{
						tagData temp;
						temp=m_Data[i];
						m_Data[i]=m_Data[j];
						m_Data[j]=temp;
					}
					break;
				case 2://货币的
					if(MoneyToInt(m_Data[i].m_sCol_5) >MoneyToInt(m_Data[j].m_sCol_5 ))
					{
						tagData temp;

⌨️ 快捷键说明

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