Advertisement
AleksandarH

Y1S1 Colleague's Semester Homework, Phone Calls

Apr 30th, 2021
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 24.75 KB | None | 0 0
  1. // Използвани библиотеки
  2. #include <iostream>
  3. #include <string>
  4. #include <sstream>
  5. #include <iomanip>
  6.  
  7. // Използвano именувано пространство
  8. using namespace std;
  9.  
  10. // Структура, която съдържа всичката нужна информация за един абонамент
  11. struct Subscription {
  12.     string signerName, phoneNumber, contractNumber;
  13.     int contractDuration{}, callShortest{}, callTotalDuration{}, callNationalDuration{}, callInternationalDuration{}, callsTotal{}, callNational{}, callInternational{};
  14.     double monthlyTotalTax{}, monthlyNationalTax{}, monthlyInternationalTax{};
  15. };
  16.  
  17. // Функция за брояч на абонаменти
  18. // Вика се винаги в края на inputSubscription() функцията
  19. void subscriptionCounter(Subscription* S, int& Count, Subscription createSubscription) {
  20.     S[Count] = createSubscription;
  21.     Count++;
  22. }
  23.  
  24. // Функция за добавяне на абонаменти
  25. void addSubscription(Subscription* S, int& Count) {
  26.     srand((unsigned int)time(NULL));
  27.     Subscription addSubscription;
  28.  
  29.     // Променливи използвани за създаването на телефонен номер за абонамента
  30.     string num = "+35987";
  31.     int rand1 = 0, rand2 = 0, rand3 = 0, rand4 = 0, rand5 = 0, rand6 = 0, rand7 = 0;
  32.  
  33.     // Променливи използвани за създаването на договор номер за абонамента
  34.     int year = 0, month = 0, day = 0, num2 = 0;
  35.  
  36.     // Въвежда се име на човек
  37.     cout << endl << "QUESTION: Name of the contract signer: ";
  38.     cin.ignore();
  39.     getline(cin, addSubscription.signerName);
  40.  
  41.     // Въвежда се дължина на договор (1-2 години)
  42.     // Въведеното число трябва да е 1 или 2. Ако не е 1 или 2, програмата извежда грешка и запитва отново
  43.     do {
  44.         cout << endl << "QUESTION: Duration of contract (1 or 2 years): ";
  45.         cin >> addSubscription.contractDuration;
  46.         if (addSubscription.contractDuration < 1 || addSubscription.contractDuration > 2) {
  47.             cout << endl << "SYSTEM MESSAGE: Invalid choice, please try again!" << endl;
  48.         }
  49.     } while (addSubscription.contractDuration < 1 || addSubscription.contractDuration > 2);
  50.  
  51.     cout << endl << "//////////////////////////////////////////////////////////////////////////////////////////////////////////" << endl << endl;
  52.  
  53.     // Генерира произволна година, месец и ден
  54.     year = rand() % 21 + 2001;
  55.     month = rand() % 12 + 1;
  56.     day = rand() % 31 + 1;
  57.     num2 = rand() % 99 + 1;
  58.  
  59.     // Конвертира променливите цели числа (година, месец и ден) в низове
  60.     ostringstream y_num, m_num, d_num, n_num;
  61.     y_num << year;
  62.  
  63.     // Проверка на стойностите (month, day, num2), ако са <= от 9, добавя 0 пред тях и ги превръща в низ
  64.     // Ако са по-големи от 9, просто ги превръща в низ без да добавя 0 пред тях
  65.     if (month <= 9) {
  66.         m_num << setw(2) << setfill('0') << month;
  67.     }
  68.     else {
  69.         m_num << month;
  70.     }
  71.     if (day <= 9) {
  72.         d_num << setw(2) << setfill('0') << day;
  73.     }
  74.     else {
  75.         d_num << day;
  76.     }
  77.     if (num2 <= 9) {
  78.         n_num << setw(2) << setfill('0') << num2;
  79.     }
  80.     else {
  81.         n_num << num2;
  82.     }
  83.  
  84.     // Задава получените низове като номер на договора за съответният абонамент
  85.     addSubscription.contractNumber = y_num.str() + m_num.str() + d_num.str() + n_num.str();
  86.  
  87.     // Проверка на всички добавени абонаменти, ако има такива, за съвпадения в номер на договор
  88.     // Ако има съвпадение в номер на договор, програмата генерира нов номер и го задава като нов за този абонамент
  89.     // Ако няма съвпадения, програмата продължата и задава първоначално генерираният номер на договор за съответният абонамент
  90.     for (int i = 0; i < Count; i++) {
  91.         if (addSubscription.contractNumber == S[i].contractNumber) {
  92.             year = rand() % 21 + 2001;
  93.             month = rand() % 12 + 1;
  94.             day = rand() % 31 + 1;
  95.             num2 = rand() % 99 + 1;
  96.  
  97.             ostringstream y_num, m_num, d_num, n_num;
  98.             y_num << year;
  99.  
  100.             if (month <= 9) {
  101.                 m_num << setw(2) << setfill('0') << month;
  102.             }
  103.             else {
  104.                 m_num << month;
  105.             }
  106.             if (day <= 9) {
  107.                 d_num << setw(2) << setfill('0') << day;
  108.             }
  109.             else {
  110.                 d_num << day;
  111.             }
  112.             if (num2 <= 9) {
  113.                 n_num << setw(2) << setfill('0') << num2;
  114.             }
  115.             else {
  116.                 n_num << num2;
  117.             }
  118.  
  119.             addSubscription.contractNumber = y_num.str() + m_num.str() + d_num.str() + n_num.str();
  120.         }
  121.     }
  122.     cout << "SYSTEM MESSAGE: Program automatically generated ( " << addSubscription.contractNumber << " ) as a contract number for this subscription." << endl;
  123.  
  124.     // Генерира 7 променливи със стойност от 1-9
  125.     rand1 = rand() % 9 + 1;
  126.     rand2 = rand() % 9 + 1;
  127.     rand3 = rand() % 9 + 1;
  128.     rand4 = rand() % 9 + 1;
  129.     rand5 = rand() % 9 + 1;
  130.     rand6 = rand() % 9 + 1;
  131.     rand7 = rand() % 9 + 1;
  132.  
  133.     // Конвертира променливите цели числа (rand1, rand2, rand3, rand4, rand5, rand6, rand7) променливи в низове
  134.     ostringstream r_num1, r_num2, r_num3, r_num4, r_num5, r_num6, r_num7;
  135.     r_num1 << rand1;
  136.     r_num2 << rand2;
  137.     r_num3 << rand3;
  138.     r_num4 << rand4;
  139.     r_num5 << rand5;
  140.     r_num6 << rand6;
  141.     r_num7 << rand7;
  142.  
  143.     // Събира всички низове в един низ и го задава като телефонен номер на съотвеният абонамент
  144.     addSubscription.phoneNumber = num + r_num1.str() + r_num2.str() + r_num3.str() + r_num4.str() + r_num5.str() + r_num6.str() + r_num7.str();
  145.  
  146.     // Проверка на всички добавени абонаменти, ако има такива, за съвпадения в телефонни номера
  147.     // Ако има съвпадение в номерата, програмата генерира нов номер и го слага като нов номер за абонамента
  148.     // Ако няма съвпадения, програмата продължата и задава първоначално генерираният номер за съответният абонамент
  149.     for (int i = 0; i < Count; i++) {
  150.         if (addSubscription.phoneNumber == S[i].phoneNumber) {
  151.             rand1 = rand() % 9 + 1;
  152.             rand2 = rand() % 9 + 1;
  153.             rand3 = rand() % 9 + 1;
  154.             rand4 = rand() % 9 + 1;
  155.             rand5 = rand() % 9 + 1;
  156.             rand6 = rand() % 9 + 1;
  157.             rand7 = rand() % 9 + 1;
  158.  
  159.             ostringstream r_num1, r_num2, r_num3, r_num4, r_num5, r_num6, r_num7;
  160.             r_num1 << rand1;
  161.             r_num2 << rand2;
  162.             r_num3 << rand3;
  163.             r_num4 << rand4;
  164.             r_num5 << rand5;
  165.             r_num6 << rand6;
  166.             r_num7 << rand7;
  167.  
  168.             addSubscription.phoneNumber = num + r_num1.str() + r_num2.str() + r_num3.str() + r_num4.str() + r_num5.str() + r_num6.str() + r_num7.str();
  169.         }
  170.     }
  171.     cout << "SYSTEM MESSAGE: Program automatically generated ( " << addSubscription.phoneNumber << " ) as a phone number for this subscription." << endl;
  172.  
  173.     // Добавя абонамента към брояча
  174.     subscriptionCounter(S, Count, addSubscription);
  175.     cout << "SYSTEM MESSAGE: Program successfully added subscription to counter!" << endl << endl;
  176.  
  177.     // Връща обратно към main() функцията
  178.     return;
  179. }
  180.  
  181. // Функция за провеждане на разговори (интернационални и международни) за всеки добавен абонамент
  182. // Измерва се времетраенето на разговор като се генерира случайно число между 1 секунда и 3600 секунди
  183. void makePhoneCalls(Subscription* S, int& Count) {
  184.     srand((unsigned int)time(NULL));
  185.  
  186.     // Променлива, която се генерира между 1-2 и се използва за да се определи вида на разговора (международен или национален)
  187.     int callType = 0;
  188.  
  189.     // Променлива, която се генерира между 1-3600 и се използва за да се определи времетраенето на разговора
  190.     int callDuration = 0;
  191.  
  192.     system("cls");
  193.     cout << "//////////////////////////////" << endl;
  194.     cout << "//    RESULTS FROM CALLS    //" << endl;
  195.     cout << "//////////////////////////////" << endl << endl;
  196.     for (int i = 0; i < Count; i++) {
  197.  
  198.         // Абоната има <= от 19 обаждания
  199.         // Програмта създава пройзволно число между 1 и 2.
  200.         // 1 = Национален | 2 - Международен
  201.         if (S[i].callsTotal < 20) {
  202.             callType = rand() % 2 + 1;
  203.             S[i].callsTotal += 1;
  204.  
  205.             // Национален разговор
  206.             if (callType == 1) {
  207.                 S[i].callNational += 1;
  208.                 callDuration = rand() % 3600 + 1;
  209.                 S[i].callNationalDuration += callDuration;
  210.  
  211.                 // Извеждане на резултатите
  212.                 cout << "// Phone Number: " << S[i].phoneNumber << "  // Call Type: National" << "  // Call Duration: " << callDuration << " sec." << endl << endl;
  213.             }
  214.  
  215.             // Международен разговор
  216.             else {
  217.                 S[i].callInternational += 1;
  218.                 callDuration = rand() % 3600 + 1;
  219.                 S[i].callInternationalDuration += callDuration;
  220.  
  221.                 // Извеждане на резултатите
  222.                 cout << "// Phone Number: " << S[i].phoneNumber << "  // Call Type: International" << "  // Call Duration: " << callDuration << " sec." << endl << endl;
  223.             }
  224.  
  225.             if (S[i].callsTotal == 1) {
  226.                 S[i].callShortest = callDuration;
  227.             }
  228.             else {
  229.                 if (callDuration < S[i].callShortest) {
  230.                     S[i].callShortest = callDuration;
  231.                 }
  232.             }
  233.         }
  234.  
  235.         // Абоната е достигнал максминалният брой обаждания, той ще бъде пропуснат
  236.         else {
  237.             cout << "SYSTEM MESSAGE: ( " << S[i].phoneNumber << " ) has already made a maximum of 20 calls. He won't be making any calls, therefore he will be skipped." << endl << endl;
  238.         }
  239.     }
  240.  
  241.     // Връща обратно към main() функцията
  242.     system("pause");
  243.     return;
  244. }
  245.  
  246. // Функцията пресмята общата национална и международна такса от обажданията на всеки абонамент
  247. // После ги събира като една обща месечна такса
  248. // Извежда таблица с резултатите
  249. void calculateMonthlyTax(Subscription* S, int& Count) {
  250.     system("cls");
  251.     cout << "//////////////////////////////" << endl;
  252.     cout << "// RESULTS FROM CALCULATION //" << endl;
  253.     cout << "//////////////////////////////" << endl << endl;
  254.     for (int i = 0; i < Count; i++) {
  255.         double national = 0, international = 0;
  256.         // Пресмятане на таксите за национални обаждания
  257.         for (int a = 0; a < S[i].callNationalDuration; a++) {
  258.             national += 0.1;
  259.         }
  260.  
  261.         // Пресмятане на таксите за международни обаждания
  262.         for (int b = 0; b < S[i].callInternationalDuration; b++) {
  263.             international += 0.25;
  264.         }
  265.  
  266.         // Събиране и задаване на национални и международни такси като една обща
  267.         S[i].monthlyTotalTax = national + international;
  268.  
  269.         // Извеждане на резултатите
  270.         cout << "// Phone Number: " << S[i].phoneNumber << "  // National Taxes: " << national << " lev." << "  // International Taxes: " << international << " lev." << "  // Total Taxes: " << S[i].monthlyTotalTax << " lev." << endl << endl;
  271.     }
  272.  
  273.     // Връща обратно към main() функцията
  274.     system("pause");
  275.     return;
  276. }
  277.  
  278. // Функция, която извежда всички абонаменти и всичката информация за всеки един от тях
  279. void showSubscriptions(Subscription* S, int& Count) {
  280.     system("cls");
  281.     cout << "//////////////////////////" << endl;
  282.     cout << "//  SUBSCRIPTIONS LIST  //" << endl;
  283.     cout << "//////////////////////////" << endl << endl;
  284.     for (int i = 0; i < Count; i++) {
  285.         cout << "// Signer Name: " << S[i].signerName << "  // Contract Number: " << S[i].contractNumber << "  // Contract Duration: ";
  286.         if (S[i].contractDuration == 1) {
  287.             cout << S[i].contractDuration << " year";
  288.         }
  289.         else {
  290.             cout << S[i].contractDuration << " years";
  291.         }
  292.         cout << "  // Phone Number: " << S[i].phoneNumber << "  // National Calls: " << S[i].callNational << "  // International Calls: " << S[i].callInternational << "  // Monthly Tax: " << S[i].monthlyTotalTax << endl << endl;
  293.     }
  294.     cout << "///////////////////////////////////////////////////////////////////////////" << endl << endl;
  295.     cout << "SYSTEM MESSAGE: Program successfully listed all subscriptions added so far!" << endl << endl;
  296.  
  297.     // Връща обратно към main() функцията
  298.     system("pause");
  299.     return;
  300. }
  301.  
  302. // Функция, която извежда всички абонати, които им остава 1 година до края на договора
  303. void showSubscriptionsWithExpiringContracts(Subscription* S, int& Count) {
  304.     system("cls");
  305.     cout << "/////////////////////////////////////////////" << endl;
  306.     cout << "//  SUBSCRIPTIONS WITH EXPIRING CONTRACTS  //" << endl;
  307.     cout << "/////////////////////////////////////////////" << endl << endl;
  308.     for (int i = 0; i < Count; i++) {
  309.         if (S[i].contractDuration == 1) {
  310.             cout << "// Phone Number: " << S[i].phoneNumber << "  // Contract Duration: " << S[i].contractDuration << " year" << endl << endl;
  311.         }
  312.     }
  313.  
  314.     // Връща обратно към main() функцията
  315.     system("pause");
  316.     return;
  317. }
  318.  
  319. // Функция, която извежда абоната с най-малка месечна такса
  320. void showSubscriptionsWithLeastMonthlyTax(Subscription* S, int& Count) {
  321.  
  322.     // Променлив, която поддържа десетични числа и има начална стойност от INT_MAX, което е 2,147,483,647
  323.     double temp = INT_MAX;
  324.  
  325.     system("cls");
  326.     cout << "/////////////////////////////////////////////" << endl;
  327.     cout << "//  SUBSCRIPTION WITH MINIMAL MONTHLY TAX  //" << endl;
  328.     cout << "/////////////////////////////////////////////" << endl << endl;
  329.  
  330.     // Цикъл, който намира най-ниската месечна такса и я задава като стойност за променливата temp
  331.     for (int i = 0; i < Count; i++) {
  332.         if (S[i].monthlyTotalTax < temp) {
  333.             temp = S[i].monthlyTotalTax;
  334.         }
  335.     }
  336.  
  337.     // Цикъл, който сръвнява променливата temp с месечните такси на всеки абонамент
  338.     // Като намери съвпадение изкарва съответният абонамент
  339.     for (int j = 0; j < Count; j++) {
  340.         if (S[j].monthlyTotalTax == temp) {
  341.             cout << "// Phone Number: " << S[j].phoneNumber << "  // Monthly Tax: " << temp << " lev." << endl << endl;
  342.         }
  343.     }
  344.  
  345.     // Връща обратно към main() функцията
  346.     system("pause");
  347.     return;
  348. }
  349.  
  350. void showSubscriptionWithMostInternationalCalls(Subscription* S, int& Count) {
  351.  
  352.     // Променлива, която поддържа цели числа и има начална стойност от 0
  353.     int temp = 0;
  354.  
  355.     system("cls");
  356.     cout << "///////////////////////////////////////////////////" << endl;
  357.     cout << "//  SUBSCRIPTIONS WITH MOST INTERNATIONAL CALLS  //" << endl;
  358.     cout << "///////////////////////////////////////////////////" << endl << endl;
  359.  
  360.     // Цикъл, който намира най-много международни обаждания и ги задава като стойност за променливата temp
  361.     for (int i = 0; i < Count; i++) {
  362.         if (S[i].callInternational > temp) {
  363.             temp = S[i].callInternational;
  364.         }
  365.     }
  366.  
  367.     // Цикъл, който сръвнява променливата temp с броя международни обаждания на всеки абонамент
  368.     // Като намери съвпадение, изкарва съответният абонамент и колко обаждания има
  369.     // Функцията ще изведе повече от един абонамент ако има повече от един с еднакъв брой обаждания
  370.     for (int i = 0; i < Count; i++) {
  371.         if (S[i].callInternational == temp) {
  372.             cout << "// Phone Number: " << S[i].phoneNumber << "  // International Calls: " << temp << endl << endl;
  373.         }
  374.     }
  375.  
  376.     // Връща обратно към main() функцията
  377.     system("pause");
  378.     return;
  379. }
  380.  
  381. void showSubscriptionWithShortestCall(Subscription* S, int& Count) {
  382.  
  383.     // Променлива, която поддържа цели числа и има начална стойност от 0
  384.     int temp = INT_MAX;
  385.  
  386.     system("cls");
  387.     cout << "///////////////////////////////////////" << endl;
  388.     cout << "//  SUBSCRIPTION WITH SHORTEST CALL  //" << endl;
  389.     cout << "///////////////////////////////////////" << endl << endl;
  390.  
  391.     for (int i = 0; i < Count; i++) {
  392.         if (S[i].callShortest < temp) {
  393.             temp = S[i].callShortest;
  394.         }
  395.     }
  396.  
  397.     // Цикъл, който сръвнява променливата temp със стойността на  всеки абонамент
  398.     // Като намери съвпадение, изкарва съответният абонамент и колко обаждания има
  399.     // Функцията ще изведе повече от един абонамент ако има повече от един с еднакъв брой обаждания
  400.     for (int i = 0; i < Count; i++) {
  401.         if (S[i].callShortest == temp) {
  402.             cout << "// Phone Number: " << S[i].phoneNumber << "  // Call Duration: " << temp << " sec." << endl << endl;
  403.         }
  404.     }
  405.  
  406.     // Връща обратно към main() функцията
  407.     system("pause");
  408.     return;
  409. }
  410.  
  411. int main() {
  412.     Subscription S[10];
  413.     string choiceAdd;
  414.     int choice;
  415.     int subscriptions = 0;
  416.     do {
  417.         system("cls");
  418.         cout << "//////////////////////////////" << endl;
  419.         cout << "//           MENU           //" << endl;
  420.         cout << "//////////////////////////////" << endl << endl;
  421.         cout << "1# - Add one subscription" << endl;
  422.         cout << "2# - Add multiple subscriptions" << endl;
  423.         cout << "3# - Make phone calls" << endl;
  424.         cout << "4# - Calculate monthly tax for all subscriptions" << endl;
  425.         cout << "5# - Show all subscriptions" << endl;
  426.         cout << "6# - Show subscription(s) with expiring contracts" << endl;
  427.         cout << "7# - Show subscription(s) with minimal monthly tax" << endl;
  428.         cout << "8# - Show subscription(s) with most international calls" << endl;
  429.         cout << "9# - Show subscription with shortest call" << endl;
  430.         cout << "10# - CLOSE PROGRAM" << endl << endl;
  431.         do {
  432.             cout << "Enter choice: ";
  433.             cin >> choice;
  434.         } while (choice < 1 || choice > 10);
  435.         switch (choice) {
  436.         case 1: {
  437.             if (subscriptions == 10) {
  438.                 system("cls");
  439.                 cout << "////////////////////////////////////////////////////////////////////" << endl;
  440.                 cout << "//     YOU REACHED THE MAXIMUM NUMBER OF ALLOWED SUBSCRIPTIONS    //" << endl;
  441.                 cout << "//                   RETURNING YOU TO MAIN MENU                   //" << endl;
  442.                 cout << "////////////////////////////////////////////////////////////////////" << endl << endl;
  443.                 system("pause");
  444.                 break;
  445.             }
  446.             else {
  447.                 do {
  448.                     system("cls");
  449.                     cout << "//////////////////////////////" << endl;
  450.                     cout << "//    SINGLE SUBSCRIPTION   //" << endl;
  451.                     cout << "//////////////////////////////" << endl;
  452.                     addSubscription(S, subscriptions);
  453.                     system("pause");
  454.                     if (subscriptions == 10)
  455.                     {
  456.                         system("cls");
  457.                         cout << "////////////////////////////////////////////////////////////////////" << endl;
  458.                         cout << "//          PROGRAM ADDED YOUR SUBSCRIPTION(S) TO COUNTER         //" << endl;
  459.                         cout << "//                                                                //" << endl;
  460.                         cout << "//     YOU REACHED THE MAXIMUM NUMBER OF ALLOWED SUBSCRIPTIONS    //" << endl;
  461.                         cout << "//                   RETURNING YOU TO MAIN MENU                   //" << endl;
  462.                         cout << "////////////////////////////////////////////////////////////////////" << endl << endl;
  463.                         system("pause");
  464.                         break;
  465.                     }
  466.                     else if (subscriptions < 10)
  467.                     {
  468.                         system("cls");
  469.                         cout << "////////////////////////////////////////////////////////////////////" << endl;
  470.                         cout << "//          PROGRAM ADDED YOUR SUBSCRIPTION(S) TO COUNTER         //" << endl;
  471.                         cout << "//               YOU MAY ENTER " << 10 - subscriptions << " MORE SUBSCRIPTIONS               //" << endl;
  472.                         cout << "//                                                                //" << endl;
  473.                         cout << "//            WOULD YOU LIKE TO ADD MORE SUBSCRIPTIONS?           //" << endl;
  474.                         cout << "//   ENTER (Y/y) TO ADD OR ANYTHING ELSE TO RETURN TO MAIN MENU   //" << endl;
  475.                         cout << "////////////////////////////////////////////////////////////////////" << endl << endl;
  476.                         cout << "Enter choice: ";
  477.                         cin >> choiceAdd;
  478.                     }
  479.                 } while (choiceAdd == "Y" || choiceAdd == "y");
  480.                 break;
  481.             }
  482.         }
  483.         case 2: {
  484.             if (subscriptions == 10) {
  485.                 system("cls");
  486.                 cout << "////////////////////////////////////////////////////////////////////" << endl;
  487.                 cout << "//     YOU REACHED THE MAXIMUM NUMBER OF ALLOWED SUBSCRIPTIONS    //" << endl;
  488.                 cout << "//                   RETURNING YOU TO MAIN MENU                   //" << endl;
  489.                 cout << "////////////////////////////////////////////////////////////////////" << endl << endl;
  490.                 system("pause");
  491.                 break;
  492.             }
  493.             else {
  494.                 do {
  495.                     int n;
  496.                     system("cls");
  497.                     cout << "//////////////////////////////" << endl;
  498.                     cout << "//  MULTIPLE SUBSCRIPTIONS  //" << endl;
  499.                     cout << "//////////////////////////////" << endl << endl;
  500.                     cout << "SYSTEM MESSAGE: Choose how many subscriptions to add: ";
  501.                     cin >> n;
  502.                     cout << endl << "//////////////////////////////////////////////////////////////////////////////////////////////////////////" << endl;
  503.                     for (int i = 0; i < n; i++) {
  504.                         addSubscription(S, subscriptions);
  505.                     }
  506.                     if (subscriptions == 10)
  507.                     {
  508.                         system("cls");
  509.                         cout << "////////////////////////////////////////////////////////////////////" << endl;
  510.                         cout << "//          PROGRAM ADDED YOUR SUBSCRIPTION(S) TO COUNTER         //" << endl;
  511.                         cout << "//                                                                //" << endl;
  512.                         cout << "//     YOU REACHED THE MAXIMUM NUMBER OF ALLOWED SUBSCRIPTIONS    //" << endl;
  513.                         cout << "//                   RETURNING YOU TO MAIN MENU                   //" << endl;
  514.                         cout << "////////////////////////////////////////////////////////////////////" << endl << endl;
  515.                         system("pause");
  516.                         break;
  517.                     }
  518.                     else if (subscriptions < 10)
  519.                     {
  520.                         system("cls");
  521.                         cout << "////////////////////////////////////////////////////////////////////" << endl;
  522.                         cout << "//          PROGRAM ADDED YOUR SUBSCRIPTION(S) TO COUNTER         //" << endl;
  523.                         cout << "//               YOU MAY ENTER " << 10 - subscriptions << " MORE SUBSCRIPTIONS               //" << endl;
  524.                         cout << "//                                                                //" << endl;
  525.                         cout << "//            WOULD YOU LIKE TO ADD MORE SUBSCRIPTIONS?           //" << endl;
  526.                         cout << "//   ENTER (Y/y) TO ADD OR ANYTHING ELSE TO RETURN TO MAIN MENU   //" << endl;
  527.                         cout << "////////////////////////////////////////////////////////////////////" << endl << endl;
  528.                         cout << "Enter choice: ";
  529.                         cin >> choiceAdd;
  530.                     }
  531.                 } while (choiceAdd == "Y" || choiceAdd == "y");
  532.                 break;
  533.             }
  534.         }
  535.         case 3: {
  536.             makePhoneCalls(S, subscriptions);
  537.             break;
  538.         }
  539.         case 4: {
  540.             calculateMonthlyTax(S, subscriptions);
  541.             break;
  542.         }
  543.         case 5: {
  544.             showSubscriptions(S, subscriptions);
  545.             break;
  546.         }
  547.         case 6: {
  548.             showSubscriptionsWithExpiringContracts(S, subscriptions);
  549.             break;
  550.         }
  551.         case 7: {
  552.             showSubscriptionsWithLeastMonthlyTax(S, subscriptions);
  553.             break;
  554.         }
  555.         case 8: {
  556.             showSubscriptionWithMostInternationalCalls(S, subscriptions);
  557.             break;
  558.         }
  559.         case 9: {
  560.             showSubscriptionWithShortestCall(S, subscriptions);
  561.             break;
  562.         }
  563.         }
  564.     } while (choice != 10); {
  565.         system("cls");
  566.         cout << "//////////////////////////////" << endl;
  567.         cout << "//     QUITTING PROGRAM     //" << endl;
  568.         cout << "//////////////////////////////" << endl;
  569.     }
  570. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement