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

📄 cconsumframe.cpp

📁 AA制消费管理系统 要深入学习C++面向对象编程的同学可以看看。
💻 CPP
字号:
#include "CConsumFrame.h"
#include "interface.h"
#include "CAddBalance.h"
#include "CBroweAccFrame.h "
#include "CAccManager.h"
#include "CAddAccFrame.h"
#include "check_int.h"
#include "check_char.h"
#include "CPrintMessage.h"
#include "data_cmp.h"
#include  "CFile.h"
#include "check_empty.h"
#include "CDelSpace.h"
#include "check_double.h"
#include "CAddMoneyInfo.h"
#include "CDataRange.h"
#include "check_date.h"
#include <string.h>
#include <iostream>
#include <conio.h>
#include <windows.h>

extern CAccManager acc_admin;

void CConsumFrame::printConsumFrame()
{
	CFile file;
	CConsumInfo consumInfo;
	CBroweAccFrame browframe;
	double money;
	string date;
	int totalNum;
	string explain;
	string consumid;
	int n;//********消费类型 选择
	int n1;//********
	int consum_exit=1;
	int all_exit=1;
	do{
	
	system("cls");
	CInterface:: printTitle("Add Consum Info");	
	while(!(money=moneyInputCtrl()));	
	while(!(atoi((date=dateInputCtrl()).c_str())));		
	while(!(totalNum=atoi(totalNumInputCtrl().c_str())));
	
	while( (explain=explainInputCtrl())=="0");
	//string strstyle[3]={"======================================","Id    Name                     Balance","======================================"};
	string str1[4]={"----------Menu List----------","2.All People Join The Consum","1.Some People Absent The Consum","0.Some People join the Consum"};
	string str2[4]={"are you sure to save the consum?  ","2.yes,save it now","1.no,abandon and continue to add","0.return back"	};
	system("cls");
	do{
	system("cls");
	consum_exit=1;
	CInterface:: printTitle("Add Consum Info");
	//CInterface::printOption(strstyle,3);
	browframe.printVeAcc();
	CInterface::printOption(str1,4);
	while((n=inputCtrl(2))==0);
	switch(n)
	{
	case 3://******************全部人参加消费

		if(checkConsumNumToTotalNum(totalNum,acc_admin.getUseAbleCount())==0)
		{
			break;
		}
		
		system("cls");

		CInterface:: printTitle("Add Consum Info");
		printAllConsumDetail(date,money,totalNum,explain);
		CInterface::printOption(str2,4);
		while((n1=inputCtrl(2))==0);
		switch(n1)
		{
		case 3:
			consumInfo.setAmount(money);
			acc_admin.setAllJoinAmount(consumInfo,money);//在全部人账户类里扣钱 并生成消费账号保存在消费信息对象里
			consumInfo.setDate(date);
			consumInfo.setExplain(explain);
			consumInfo.setConsumTotalNum(totalNum);	
			acc_admin.addToConsumVectoor(consumInfo);
			file.saveToFile();
			consum_exit=0;
			all_exit=0;
			system("cls");
			CInterface:: printTitle("Add Consum Info");
			printAbsentConsumDetail(consumInfo.getDate(),consumInfo.getAmount(),consumInfo.getConsumTotalNum(),consumInfo.getExplain(),consumInfo.getConsumId());

			CInterface:: printTitle("");
			CInterface:: printTitle("save successfull!");
			CInterface:: printTitle("");
			system("pause");



			break;

		case 2:
			consum_exit=0;
			break;
		case 1:
			consum_exit=0;
			all_exit=0;
			break;
		default:
			break;
		}		
		break;	


	case 2://*****************************一些人不参加消费
		if(checkConsumNumToTotalNum(totalNum,acc_admin.getUseAbleCount(),1)==0)
		{
			break;
		}
		while(atoi((consumid=absentConsumIdInputCtrl(totalNum)).c_str())==0);
		system("cls");

		CInterface:: printTitle("Add Consum Info");
		printAbsentConsumDetail(date,money,totalNum,explain,consumid);
		CInterface::printOption(str2,4);
		while((n1=inputCtrl(2))==0);
		switch(n1)
		{
		case 3:
			consumInfo.setAmount(money);
			
			acc_admin.setAbsentAmount(consumInfo,consumid,money,totalNum);//在扣除不参加的人后的账户类里扣钱 并生成消费账号保存在消费信息对象里
			consumInfo.setDate(date);
			consumInfo.setExplain(explain);
			consumInfo.setConsumTotalNum(totalNum);
			acc_admin.addToConsumVectoor(consumInfo);
			file.saveToFile();			
			consum_exit=0;
			all_exit=0;
			system("cls");
			CInterface:: printTitle("Add Consum Info");
			printJoinConsumDetail(consumInfo.getDate(),consumInfo.getAmount(),consumInfo.getConsumTotalNum(),consumInfo.getExplain(),consumInfo.getConsumId());
			CInterface:: printTitle("");
			CInterface:: printTitle("save successfull!");
			CInterface:: printTitle("");
			system("pause");


			break;

		case 2:
			consum_exit=0;
			break;
		case 1:
			consum_exit=0;
			all_exit=0;
			break;
		default:
			break;
		}
		break;
		

	case 1://****************************一些人参加消费
		while(atoi((consumid=joinConsumIdInputCtrl(totalNum)).c_str())==-1);
		system("cls");

		CInterface:: printTitle("Add Consum Info");
		printJoinConsumDetail(date,money,totalNum,explain,consumid);
		CInterface::printOption(str2,4);
		while((n1=inputCtrl(2))==0);
		switch(n1)
		{
		case 3:
		consumInfo.setAmount(money);		
		acc_admin.setJoinAmount(consumInfo,consumid,money,totalNum);//在扣除不参加的人后的账户类里扣钱 并生成消费账号保存在消费信息对象里
		consumInfo.setDate(date);
		consumInfo.setExplain(explain);
		consumInfo.setConsumTotalNum(totalNum);
		acc_admin.addToConsumVectoor(consumInfo);
		file.saveToFile();
		consum_exit=0;
		all_exit=0;
		system("cls");
		CInterface:: printTitle("Add Consum Info");
		printJoinConsumDetail(consumInfo.getDate(),consumInfo.getAmount(),consumInfo.getConsumTotalNum(),consumInfo.getExplain(),consumInfo.getConsumId());
		CInterface:: printTitle("");
		CInterface:: printTitle("save successfull!");
		CInterface:: printTitle("");
		system("pause");
		break;
		

		case 2:
			consum_exit=0;
			break;
		case 1:
			consum_exit=0;
			all_exit=0;
			break;
		default:
			break;
		}
		break;

	default:
		break;

	}
	}while(consum_exit);
	}while(all_exit);
	



}
/////////////////////////////////////////////////////////////////////////////////
int CConsumFrame::inputCtrl(int n)
{
	cout<<"                           please make a choice 0-"<<n<<":";
	char ch_input = getche();
	

	if(!(C_check_char::checkChar(ch_input)==1))
	{
		CPrintMessage::printMessage(C_check_char::checkChar(ch_input));
		system("pause");
		return 0;
		
		
	}
	else
	{
		if(!(C_check_cmp::check_char(ch_input,n)==1))
		{
			CPrintMessage::printMessage(C_check_cmp::check_char(ch_input,n));
			system("pause");
			return 0;
			

		}
		else
		{
			if(ch_input=='0')
			{
				return 1;
			}
			if(ch_input=='1')
			{
				return 2;
			}
			if(ch_input=='2')
			{
				return 3;
			}
	


		}
	}

	return -1;

}
//////////////////////////////////////////////////////////
double CConsumFrame::moneyInputCtrl()
{
	cout<<"please input the consum amount[0.00-999.99]:";
	string double_temp;
	char str_temp[1024];
	cin.get(str_temp,1024);
	cin.clear();
	cin.ignore(1024,'\n');
	double_temp=str_temp;
	if(!(Cchcek_empty::check_empty(double_temp)==1))
	{
		CPrintMessage::printMessage(Cchcek_empty::check_empty(double_temp));
		system("pause");
		return 0;
		
		
	}
	else
	{
		CDelSpace::delSpace(double_temp);
		if(!(C_check_double::check_double(double_temp)==1))
		{
			CPrintMessage::printMessage(C_check_double::check_double(double_temp));
			system("pause");
			return 0;
			
		}
		else
		{
			if(!(CDataRange::doubleRange(double_temp)==1))
			{
				CPrintMessage::printMessage(CDataRange::doubleRange(double_temp));
				system("pause");
				return 0;
				
			}
			else
			{
				if(!(C_check_cmp::check_consumMoney(double_temp)==1))
				{
					CPrintMessage::printMessage(C_check_cmp::check_doulble(double_temp));
					system("pause");
					return 0;
					
				}
				else
				{
					return atof(double_temp.c_str());

				}
			}
		}
	}
	return -9;
	


//////////////////////////////////////////////////////////////////////////////////////////
}
string CConsumFrame::dateInputCtrl()
{
	string birth_temp;
	cout<<"please enter date(example:1985-02-05):";
	char str_temp[1024];
	cin.get(str_temp,1024);
	cin.clear();
	cin.ignore(1024,'\n');
	birth_temp=str_temp;
			
	if(!(Cchcek_empty::check_empty(birth_temp)==1))
	{
		CPrintMessage::printMessage(Cchcek_empty::check_empty(birth_temp));
		system("pause");
		return "0";
					
	}
	else
	{
		CDelSpace::delSpace(birth_temp);
		if(!(C_check_date::check_date(birth_temp)==1))
		{
			CPrintMessage::printMessage(C_check_date::check_date(birth_temp));
			system("pause");
			return "0";
		}
		else
		{
			if(!(C_check_cmp::check_date(birth_temp)==1))
			{
				CPrintMessage::printMessage(C_check_cmp::check_date(birth_temp));
				system("pause");
				return "0";
			}
			else
			{
				if(!(CDataRange::dateRange(birth_temp)==1))
				{
					CPrintMessage::printMessage(CDataRange::dateRange(birth_temp));
					system("pause");
					return "0";
					}
				else
				{
								
					birth_temp = C_check_date::changeToStdDate();			
					return birth_temp;			
								
								
				}
			}
		}
	}














}
//////////////////////////////////////////////////////////////////////////////////
string CConsumFrame::explainInputCtrl()
{

	string explain_temp;
	cout<<"please enter explain(don't over 200 bits):";
	char str_temp[1024];
	cin.get(str_temp,1024);
	cin.clear();
	cin.ignore(1024,'\n');
	explain_temp=str_temp;
	if(!(CDataRange::explainRange(explain_temp)==1))
	{
		CPrintMessage::printMessage(CDataRange::explainRange(explain_temp));
		system("pause");
		return "0";
	}
	else
	{
		return explain_temp;

	}



}
//////////////////////////////////////////////////////////////
string CConsumFrame::totalNumInputCtrl()
{
	string totalnum_temp;
	cout<<"please enter the total numbers who consum:";
	char str_temp[1024];
	cin.get(str_temp,1024);
	cin.clear();
	cin.ignore(1024,'\n');
	totalnum_temp=str_temp;
	if(!(Cchcek_empty::check_empty(totalnum_temp)==1))
	{
		CPrintMessage::printMessage(Cchcek_empty::check_empty(totalnum_temp));
		system("pause");
		return "0";
	}
	CDelSpace::delSpace(totalnum_temp);
	if(!(C_check_int::check_int(totalnum_temp)==1))
	{
		CPrintMessage::printMessage(C_check_int::check_int(totalnum_temp));
		system("pause");
		return "0";
	}
	if(!(C_check_cmp::check_consumTotalNum(totalnum_temp)==1))
	{
		CPrintMessage::printMessage(C_check_cmp::check_consumTotalNum(totalnum_temp));
		system("pause");
		return "0";
	}
	
	return totalnum_temp;





}







////////////////////////////////////////////////////////////////////////////

string  CConsumFrame::joinConsumIdInputCtrl(int num)
{
	string consumid_temp;
	cout<<endl<<"                         please enter the consum id who join:";
	char str_temp[1024];
	cin.get(str_temp,1024);
	cin.clear();
	cin.ignore(1024,'\n');
	consumid_temp=str_temp;
	if(!(Cchcek_empty::check_empty(consumid_temp)==1))
	{
		CPrintMessage::printMessage(Cchcek_empty::check_empty(consumid_temp));
		system("pause");
		return "-1";
	}
	CDelSpace::delSpace(consumid_temp);
	if(!(C_check_cmp::check_joincomsumId(consumid_temp, num)==1))
	{
		CPrintMessage::printMessage(C_check_cmp::check_joincomsumId(consumid_temp, num));
		system("pause");
		return "-1";
	}

	
	return consumid_temp;







}



///////////////////////////////////////////////////////////////////////



string CConsumFrame::absentConsumIdInputCtrl(int num)
{
	string consumid_temp;
	cout<<endl<<"                          please enter the consum id who absent:";
	char str_temp[1024];
	cin.get(str_temp,1024);
	cin.clear();
	cin.ignore(1024,'\n');
	consumid_temp=str_temp;
	if(!(Cchcek_empty::check_empty(consumid_temp)==1))
	{
		CPrintMessage::printMessage(Cchcek_empty::check_empty(consumid_temp));
		system("pause");
		return "0";
	}
	CDelSpace::delSpace(consumid_temp);
	if(!(C_check_cmp::check_absentcomsumId(consumid_temp, num)==1))
	{
		CPrintMessage::printMessage(C_check_cmp::check_absentcomsumId(consumid_temp, num));
		system("pause");
		return "0";
	}

	
	return consumid_temp;







}






//////////////////////////////////////////////////////////////////////////////////////////////////


void CConsumFrame::printAllConsumDetail(string date,double money,int totalnum,string explain)
{
	CInterface::printLine("Consum Info Details");
		
	
	
	CAddAccFrame::printInfo("Amount:",money);
	
	CAddAccFrame::printInfo("Date:",date);


	CAddAccFrame::printInfo("Consum Numbers:",totalnum);

	CAddAccFrame::printInfo("Consum Id:","All");

	CAddAccFrame::printInfo("Explain:",explain);

	CInterface::printLine("");		
















}
///////////////////////////////////////////////////////////////////////////////
void CConsumFrame::printJoinConsumDetail(string date,double money,int totalnum,string explain,string consumid)
{

	CInterface::printLine("Consum Info Details");
		
	
	
	CAddAccFrame::printInfo("Amount:",money);
	
	CAddAccFrame::printInfo("Date:",date);


	CAddAccFrame::printInfo("Consum Numbers:",totalnum);

	CAddAccFrame::printInfo("Join Consum Id:",consumid);

	CAddAccFrame::printInfo("Explain:",explain);

	CInterface::printLine("");	




}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
void CConsumFrame::printAbsentConsumDetail(string date,double money,int totalnum,string explain,string consumid)
{

	CInterface::printLine("Consum Info Details");
		
	
	
	CAddAccFrame::printInfo("Amount:",money);
	
	CAddAccFrame::printInfo("Date:",date);


	CAddAccFrame::printInfo("Consum Numbers:",totalnum);

	CAddAccFrame::printInfo("Absent Consum Id:",consumid);

	CAddAccFrame::printInfo("Explain:",explain);

	CInterface::printLine("");	



}
//////////////////////////////////////////////////////////////////////////////
int CConsumFrame::checkConsumNumToTotalNum(int consumnum,int totalNumI)
{
		if(consumnum!=totalNumI)
		{
			cout<<endl<<"ERROR INFO:"<<endl;
			cout<<"sorry!!,the number you input before is not equal the all numbers!!";	
			system("pause");
			
			return 0;
		}

	return -1;
}

//////////////////////////////////////////////////////////////////////////////////
int CConsumFrame::checkConsumNumToTotalNum(int consumnum,int totalNumI,int a)
{
		if(consumnum==totalNumI)
		{
			cout<<endl<<"ERROR INFO:"<<endl;
			cout<<"sorry!!,all people attends the consum,there is no absent members!!";	
			system("pause");
			return 0;
			
		}



	return -1;

	
}




⌨️ 快捷键说明

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