CC++学习笔记五

CC++学习笔记五,第1张

1、模板函数+冒泡排序
#include "stdafx.h"
#include 

template 								//定义一个模板
void Sort(Type Array[], int nLen)						
{
	for(int i=0; i Array[j+1])					//交换数组元素
			{
				Type nTmp = Array[j];
				Array[j] = Array[j+1] ;
				Array[j+1] = nTmp;
			}
		}
	}
}


int main(int argc, char* argv[])
{
	int nArray[] = {85, 98, 45, 76, 75};
	Sort(nArray, 5);
	cout << "整数排序" << endl;
	//输出结果
	for(int i=0; i<5; i++)
	{
		cout << nArray[i] << endl;
	
	}
	double dArray[] = {76.85, 95.75, 84.56, 85.5, 67.4};
	Sort(dArray, 5);
	//输出结果
	cout << "实数排序" << endl;
	for(int j=0; j<5; j++)
	{
		cout << dArray[j] << endl;
	}
	return 0;
}
2、根据年月日计算是一年中的第几天

        需要注意区分平年和闰年。

// OutDays.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "string.h"
#include "stdlib.h"
#include "iostream.h"

//判断某一年是否是闰年
bool IsLeapyear(int nYear)
{
	if (nYear % 4 == 0 && nYear % 100 != 0)
	{
		return true;
	}
	else if (nYear % 100 == 0 && nYear % 400 == 0)
	{
		return true;
	}

	return false;
}

//pszData格式XXXX-XX-XX
int GetDays(const char* pszDate)
{
	//解析年月日
	char szYear[5] = {0};
	char szMonth[3] = {0};
	char szDay[3] = {0};
	strncpy(szYear, pszDate, 4);
	
	int nYear = atoi(szYear);
	char* pszMonth = (char*)pszDate + 5;
	strncpy(szMonth, pszMonth, 2);
	int nMonth = atoi(szMonth);
	
	char* pszDay =  pszMonth + 3;
	int nDay = atoi(pszDay);
	
	//判断日期是否正确
	if (nMonth < 1 || nMonth > 12)
		return -1;
	if (nDay < 1 )
		return -1;
	if (nMonth == 1 || nMonth == 3 || nMonth == 5 || nMonth == 7 
			|| nMonth == 8 || nMonth == 10 || nMonth == 12)
	{
		if (nDay > 31)
			return -1;
	}
	else if (nDay > 30)
	{
		return -1;
	}
	
	bool bLeapYear = IsLeapyear(nYear);
	if (bLeapYear && nMonth == 2)
	{
		if (nDay > 29)
			return -1;
	}
	else if (nMonth == 2)
	{
		if (nDay > 28)
			return -1;		
	}

	int nDayNum = nDay;
    // 循环月份
	for (int i=1; i
3、实现struct和了解方法原型
#include "stdafx.h"
#include "iostream.h"
#include "string.h"

struct CUser							//定义一个类
{
	char m_Username[128] ;				//定义数据成员
	char m_Password[128];				//定义数据成员
	bool Login();						//定义方法原型
};
bool CUser::Login()						//实现CUser类中的Login方法
{
	if (strcmp(m_Username,"MR")==0 && strcmp(m_Password,"KJ")==0)
	{
		cout << "登录成功!" << endl;
		return true;
	}
	else
	{
		cout << "登录失败!" << endl;
		return false;
	}
}


int main(int argc, char* argv[])
{
	CUser User;								//定义一个对象User
	strcpy(User.m_Password, "KJ");				//设置m_Password成员数据
	strcpy(User.m_Username, "MR");				//设置m_Username成员数据
	User.Login();								//调用Login方法
	return 0;
}
4、体现封装原则的类

        使用private/public设置成员访问级别;成员对象设置私有;调用/设置方法设置公开;

#include "stdafx.h"
#include "iostream.h"
#include "string.h"

class CUser										//定义一个类
{
private:											//设置成员访问级别
	char m_Username[128];							//定义数据成员
	char m_Password[128];							//定义数据成员
public:											//设置成员访问级别
	void SetUsername(const char *pUsername)			//公有方法,设置用户名称
	{
		if (pUsername != NULL)						//判断参数是否为空
		{
			strcpy(m_Username,pUsername);
		}
	}
	char* GetUsername()							//公有方法,获取用户名称
	{
		return (char*)m_Username;					//返回用户名
	}
	void SetPassword(const char *pPassword)			//公有方法,设置密码
	{
		if (pPassword != NULL)						//判断参数是否为空
		{
			strcpy(m_Password,pPassword);
		}
	}
	char* GetPassword()								//公有方法,获取用户密码
	{
		return (char*)m_Password;
	}
	bool Login()									//定义方法
	{
		if (strcmp(m_Username,"MR")==0 && strcmp(m_Password,"KJ")==0)
		{
			cout << "登录成功!" << endl;
			return true;
		}
		else
		{
			cout << "登录失败!" << endl;
			return false;
		}
	}
};

int main(int argc, char* argv[])
{
	CUser User;									//定义CUser类对象
	//strcpy(User.m_Password, "KJ");					//不能够直接访问m_Password成员
	//strcpy(User.m_Username, "MR");					//不能够直接访问m_Username成员
	User.SetUsername("MR");						//调用SetUsername设置m_Username成员
	User.SetPassword("KJ");						//调用SetPassword设置m_Password成员
	char* pszUser = User.GetUsername();				//获取m_Username成员数据
	User.Login();									//调用Login方法
	return 0;
}
5、无参和有参构造函数
#include "stdafx.h"
#include "iostream.h"
#include "string.h"

class CUser										//定义一个类
{
private:											//设置成员访问级别
	char m_Username[128];							//定义数据成员
	char m_Password[128];							//定义数据成员
public:	
	CUser()											//默认构造函数
	{
		strcpy(m_Username, "MR");					//为数据成员赋值
		strcpy(m_Password, "KJ");					//为数据成员赋值
		cout << "构造函数被调用!" << endl;				//输出信息
	}
	CUser(const char* pszUser, const char* pszPassword)	//有参数的构造函数
	{
		strcpy(m_Username, pszUser);
		strcpy(m_Password, pszPassword);
		cout << "有参构造函数被调用!" << endl;				//输出信息
	}
	char* GetUsername()const							//公有方法,获取用户名称
	{
		return (char*)m_Username;						//返回用户名
	}
	char* GetPassword()	const							//公有方法,获取用户密码
	{
		return (char*)m_Password;
	}
};



int main(int argc, char* argv[])
{
	CUser defUser;									//定义CUser对象
	cout << "用户名: " << defUser.GetUsername() << endl;		//输出用户名
	CUser paramUser("VCBCCD", "MRSOFT");				//定义CUser对象
	cout << "用户名: " << paramUser.GetUsername() << endl;		//输出用户名
	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/673739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)