Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- В един фитнес клуб се прави малка програма за работа с клиентите му.
- Всеки клиент се описва с име, тегло, платена такса (лв) и
- брой посещения до момента.
- Броят клиенти е между 10 и 100. Въведете информация за тези клиенти.
- Изведете информация за:
- 1. всички клиенти;
- 2. клиенти, които са платили повече от 35.50 лв и са направили над 10 посещения;
- 3. клиентите с максимален и минимален брой посещения с тегло над 80 кг;
- 4. броя клиенти с тегло между 60 и 90 кг.
- */
- #include "stdAfx.h" // при нужда сменете или премахнете този ред, в зависимост от компилатора
- #include <iostream>
- #include <string>
- using namespace std;
- const int MaxClients = 100;
- // глобална дефиниция на структурата, за да е видима от функциите извън main()
- struct Client {
- string Name;
- float Weight;
- float Paid;
- int Visits;
- };
- Client Clients[MaxClients + 1]; // правим и масива Clients глобален, MaxClients+1 елемента, за да работим с 1..MaxClients
- void EnterNumberOfClients(int &n, int aMax)
- {
- do {
- cout << "Enter the number of Clients (10.." << aMax << "): ";
- cin >> n;
- } while (n < 10 || n > aMax);
- };
- void EnterClient(Client &aClient, int id) // въвеждане на един елемент от тип Client
- {
- cout << "Enter information for Client " << id << endl;
- cout << " Name: ";
- cin.get(); // flush the cin's buffer
- getline(cin, aClient.Name);
- cout << " Weight: ";
- cin >> aClient.Weight;
- cout << " Paid: ";
- cin >> aClient.Paid;
- cout << " Visits: ";
- cin >> aClient.Visits;
- }
- void EnterAllClients(Client ClientsArr[], const int size)
- {
- for (int i = 1; i <= size; i++)
- EnterClient(ClientsArr[i], i);
- }
- void PrintClient(Client aClient, const int id)
- {
- cout << " " << id
- << ": name: " << aClient.Name
- << ", weight: " << aClient.Weight
- << ", paid: " << aClient.Paid
- << ", visits: " << aClient.Visits << endl;
- }
- void PrintAllClients(Client ClientsArr[], const int size)
- {
- for (int i = 1; i <= size; i++)
- PrintClient(ClientsArr[i], i);
- }
- void PrintClientsByVisitsAndPayment(Client ClientsArr[], const int size, int Visits, float Payment)
- {
- for (int i = 1; i <= size; i++)
- if (ClientsArr[i].Visits > Visits && ClientsArr[i].Paid > Payment)
- PrintClient(ClientsArr[i], i);
- }
- void PrintMaxMinVisitsOverWeight(Client ClientsArr[], const int size, float aWeight)
- {
- int maxVisits = -1; int minVisits = -1; bool first = true;
- for (int i = 1; i <= size; i++)
- {
- if (ClientsArr[i].Weight > aWeight)
- {
- // ако е 1-вия с по-голямо тегло от указаното - запомняме веднага
- if (first)
- {
- first = false;
- maxVisits = ClientsArr[i].Visits;
- minVisits = ClientsArr[i].Visits;
- }
- // проверяваме посещенията дали са повече от най-голямото до момента
- if (ClientsArr[i].Visits > maxVisits)
- maxVisits = ClientsArr[i].Visits;
- // проверяваме посещенията дали са под най-малкото до момента
- if (ClientsArr[i].Visits < minVisits)
- minVisits = ClientsArr[i].Visits;
- }
- }
- if (first)
- cout << "No Clients with Weight over " << aWeight << endl;
- else
- {
- cout << "Maximum visits are " << maxVisits << " by: " << endl;
- for (int i = 1; i <= size; i++)
- if (ClientsArr[i].Weight > aWeight && ClientsArr[i].Visits == maxVisits)
- PrintClient(ClientsArr[i], i);
- cout << "Minimum visits are " << minVisits << " by: " << endl;
- for (int i = 1; i <= size; i++)
- if (ClientsArr[i].Weight > aWeight && ClientsArr[i].Visits == minVisits)
- PrintClient(ClientsArr[i], i);
- }
- }
- int CountBetween(Client ClientsArr[], const int size, float aWeightLow, float aWeightHigh)
- {
- int count = 0;
- for (int i = 1; i <= size; i++)
- if (ClientsArr[i].Weight >= aWeightLow && ClientsArr[i].Weight <= aWeightHigh)
- count++;
- return count;
- }
- int main()
- {
- int numClients;
- EnterNumberOfClients(numClients, MaxClients);
- EnterAllClients(Clients, numClients);
- cout << "1. Information for all Clients: " << endl;
- PrintAllClients(Clients, numClients);
- cout << "2. Clients with more than 10 visits and paid more than 35.50:" << endl;
- PrintClientsByVisitsAndPayment(Clients, numClients, 10, 35.50);
- cout << "3. Clients with max/min visits from these with weight over 80:" << endl;
- PrintMaxMinVisitsOverWeight(Clients, numClients, 80);
- cout << "4. Number of clients with weight between 60 and 90 is: "
- << CountBetween(Clients, numClients, 60, 90) << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment