Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
5.0 kB
2
Indexable
Never
#include <iostream>
using namespace std;
#define MAX_Number 9999
#define MIN_Number 1000
#define div 100000000

void identification();
void Cheking_ID();
bool is_safe(char c);
int Menu();
void Checking_Credit();
void Cheking_Age();
bool check_email();


int main()
{
	int counter = 0;
	int option = 0;
	int serviceOption = 0;
	identification();
	Cheking_ID();
	
	
	while (option != 4) {
		++counter;
		option = Menu();
		switch (option) {
		case 1: 
			// Reading last name.
			// reading age.
			// last 4 digits for credit card.
			break;
		case 2:
			// print list to select what info required.
			serviceOption; // new  minue function
				switch (serviceOption) {
				case a:
					//how much i need to pay
				case b:
					//know more about u
				case c:
					//speak with real human
				case d:
					//return to the main menu

				}
			break;
		case 3:
			// Contact customer support.
			// Check email
			cout << "Please leave your email to contact you later.\n";
			cout << "Enter your email:\n";
			if (check_email())
				cout << "We are sorry to hear you are unhappy. We will contact you in the next (3) hours.\n";
			else 
				cout << "Email not in correct format, please retry to enter email.\n";
			
			break;
		default:
			if (counter <= 3)
				cout << "Please retry\n";
			else
				cout << "Please come back only when you need something. Have a good day!\n";
		}
	}
	//  
	cout << "";
	Checking_Credit();
	Cheking_Age();

	

	return 0;
}

void identification()
{
	cout << "Enter name and press '.' at the end:" << endl;
	bool strValid = false;
	while (!strValid)
	{
		char inputChar = getc(stdin);
		if (inputChar < 'A' || inputChar>'Z')
		{
			continue;
		}
		bool scanningActive = true;
		while (scanningActive)
		{
			char inputChar = getc(stdin);
			if (inputChar == '.')
			{
				strValid = true;
				break;
			}

			if (inputChar < 'a' || inputChar>'z')
			{
				break;
			}

		}
	}
}

void Cheking_ID()
{
	long id;

	while (true)
	{
		cout << "Enter id: ";
		cin >> id;
		cin.clear();
		cin.ignore(1000, '\n');

		unsigned int check = id / div;

		if (id / div > 0 && id / div < 10)
			break;
		cout << "Please provide correct id:" << endl;
	}
}

int Menu()
{
	int select;
	cout << "Thank you for choosing SCE Internet Company! How can we help you?" << endl;
	cout << "" << endl;
	cout << "\n\t\tMENU :" << endl;
	cout << "Press 1\nI want to join your company as a new client." << endl;
	cout << "" << endl;
	cout << "Press 2\nI want to find out some details about my already existing account." << endl;
	cout << "" << endl;
	cout << "Press 3\nI want to leave your company." << endl;
	cout << "" << endl;
	cout << "Press 4\nI want to exit the chat." << endl;
	
	cin >> select;
	return select;
}



void second_Menu()
{
	int Select;
	cout << "What information are you after?" << endl;
	cout << "" << endl;
	cout << "\n\t\tMENU :" << endl;
	cout << "Press a\nI would like to know how much I need to pay this month." << endl;
	cout << "" << endl;
	cout << "Press b\nI would like to know more about you." << endl;
	cout << "" << endl;
	cout << "Press c\nI would like to speak with a real human." << endl;
	cout << "" << endl;
	cout << "Press d\nI want to return to the main menu." << endl;

	cin >> Select;
	return Select;
}

void Checking_Credit()
{
	int Card_NUM = 0;
	bool flag = true;

	cout << "Enter 4 last number of your card:" << endl;
	cin >> Card_NUM;
	while (Card_NUM > 9999 || Card_NUM < 1000)
	{
		flag = false;
		if (flag == false)
		{
			cout << "Error! Please try again:" << endl;
			cin >> Card_NUM;
		}
	}

	cout << "Correct" << endl;
}

void Cheking_Age()
{
	int age = 0;
	bool flag = 0;
	cout << "Enter your age:" << endl;
	cin >> age;

	while (age > 120 || age < 18)
	{
		flag == false;
		if (flag == false)
		{
			cout << "Your age is incorrect, Please try again:" << endl;
			cin >> age;
		}
	}
	cout << "Correct" << endl;

}

bool is_safe(char c) {
	if (c <= '9' && c >= '0')
		return true;
	if (c >= 'a' && c <= 'z')
		return true;
	if (c >= 'A' && c <= 'Z')
		return true;
	if (c == '_')
		return true;
	return false;
}

bool check_email()
{
	// @ flag
	bool domin_flag = false;
	// Dot flag
	bool dot_flag = false;
	// Bad Email
	bool bad_email = false;
	// Safe chars (a-zA-Z 0-9 _ .. )
	bool safe_char = false;

	// Input char 
	char input;
	// track prevous character.    
	char last_seen = '\0';

	do {
		cin >> input;
		if (!is_safe(input)) {
			// Dot case
			if(input =='.')
				if (last_seen == '.') {
					bad_email = true;
					break;
				}
			// @ case
			if (domin_flag) {
				bad_email = true;
				break;
			}
			else
				domin_flag = true;
			// Space case
			if (input == ' ')
				break;
		}
		last_seen = input;
	} while (input != ' ');
	return !bad_email;
}