Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.84 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. #include<stdlib.h>
  4. #include<vector>
  5. using namespace std;
  6. struct Date{
  7.     int year;
  8.     int month;
  9.     int day;
  10. };
  11. struct Drug{
  12.     char drugName[100];
  13.     char drugManufacturer[100];
  14.     int drugAmountDelivered;
  15.     int drugAmountInStock;
  16.     Date drugExpirationDate;
  17.     bool drugPrescriptionRequired;
  18.     Date drugManufacturedDate;
  19.     char drugShipment[100];
  20. };
  21. vector<Drug> drugs;
  22. static int drugMinAmount= 5;
  23.  
  24. void clearConsole(){
  25.     system("CLS");
  26. }
  27. void menu();
  28. void createNewDrug(){
  29.     cin.clear();
  30.     cin.sync();
  31.     clearConsole();
  32.     Drug drugTemporaryInput;
  33.     string drugTemporaryPrescription;
  34.     cout<<"\t\t## CREATE NEW DRUG ##"<<endl;
  35.     cout<<"Please enter the required information. You can exit at any time by inputting 'exit' or 'quit'\n\n"<<endl;
  36.     cout<<"Drug name (100 characters limit):"<<endl;
  37.     cin.getline(drugTemporaryInput.drugName, 100);
  38.     cout<<"Drug manufacturer (100 characters limit):"<<endl;
  39.     cin.getline(drugTemporaryInput.drugManufacturer, 100);
  40.     cout<<"Amount delivered:"<<endl;
  41.     cin>>drugTemporaryInput.drugAmountDelivered;
  42.     cout<<"Amount currently in stock:"<<endl;
  43.     cin>>drugTemporaryInput.drugAmountInStock;
  44.  
  45.     cout<<"Expiration date YEAR:"<<endl;
  46.     cin>>drugTemporaryInput.drugExpirationDate.year;
  47.         while(drugTemporaryInput.drugExpirationDate.year<2018 || drugTemporaryInput.drugExpirationDate.year>3000){
  48.             cout<<"Invalid year, try again:"<<endl;
  49.             cin>>drugTemporaryInput.drugExpirationDate.year;
  50.         }
  51.  
  52.     cout<<"Expiration date MONTH:"<<endl;
  53.     cin>>drugTemporaryInput.drugExpirationDate.month;
  54.         while(drugTemporaryInput.drugExpirationDate.month<1 || drugTemporaryInput.drugExpirationDate.month>12){
  55.             cout<<"Invalid month, try again:"<<endl;
  56.             cin>>drugTemporaryInput.drugExpirationDate.month;
  57.         }
  58.     cout<<"Expiration date DAY:"<<endl;
  59.     cin>>drugTemporaryInput.drugExpirationDate.day;
  60.         while(drugTemporaryInput.drugExpirationDate.day<1 || drugTemporaryInput.drugExpirationDate.day>31){
  61.             cout<<"Invalid day, try again:"<<endl;
  62.             cin>>drugTemporaryInput.drugExpirationDate.day;
  63.         }
  64.     cin.clear();
  65.     cin.sync();
  66.     cout<<"Prescription required? Input 'yes' or 'no':"<<endl;
  67.     cin>>drugTemporaryPrescription;
  68.     while(drugTemporaryPrescription!="yes" && drugTemporaryPrescription!="no")
  69.     {
  70.         cout<<drugTemporaryPrescription;
  71.         cout<<"Invalid input, please try again. Input 'yes' or 'no':"<<endl;
  72.         cin>>drugTemporaryPrescription;
  73.     }
  74.     if(drugTemporaryPrescription=="yes"){
  75.         drugTemporaryInput.drugPrescriptionRequired=true;
  76.     }else if(drugTemporaryPrescription=="no"){
  77.         drugTemporaryInput.drugPrescriptionRequired=false;
  78.     }else{
  79.         cout<<"Something went wrong..."<<endl;
  80.     }
  81.  
  82.  
  83.        cout<<"Date manufactured, YEAR:"<<endl;
  84.     cin>>drugTemporaryInput.drugManufacturedDate.year;
  85.         while(drugTemporaryInput.drugManufacturedDate.year<2010 || drugTemporaryInput.drugManufacturedDate.year>3000){
  86.             cout<<"Invalid year, try again:"<<endl;
  87.             cin>>drugTemporaryInput.drugManufacturedDate.year;
  88.         }
  89.  
  90.     cout<<"Date manufactured, MONTH:"<<endl;
  91.     cin>>drugTemporaryInput.drugManufacturedDate.month;
  92.         while(drugTemporaryInput.drugManufacturedDate.month<1 || drugTemporaryInput.drugManufacturedDate.month>12){
  93.             cout<<"Invalid month, try again:"<<endl;
  94.             cin>>drugTemporaryInput.drugManufacturedDate.month;
  95.         }
  96.     cout<<"Date manufactured, DAY:"<<endl;
  97.     cin>>drugTemporaryInput.drugManufacturedDate.day;
  98.         while(drugTemporaryInput.drugManufacturedDate.day<1 || drugTemporaryInput.drugManufacturedDate.day>31){
  99.             cout<<"Invalid day, try again:"<<endl;
  100.             cin>>drugTemporaryInput.drugManufacturedDate.day;
  101.         }
  102.  
  103.     cout<<"Drug shipment (100 characters limit):"<<endl;
  104.     cin.getline(drugTemporaryInput.drugShipment, 100);
  105.     drugs.push_back(drugTemporaryInput);
  106.     clearConsole();
  107.     cout<<"Drug successfully added to database!\n\n"<<endl;
  108.     menu();
  109. }
  110. void viewDrugs(){
  111.     string userResponseViewDrugs;
  112.     cout<<"###Drugs currently in database:"<<endl;
  113.     cout<<drugs.size();
  114.     for(int i=drugs.size();i>0; i--){
  115.         cout<<"DRUG #"<<i<<endl;
  116.         cout<<"Name: "<<drugs[i].drugName<<endl;
  117.         cout<<"Manufacturer: "<<drugs[i].drugManufacturer<<endl;
  118.         cout<<"Amount delivered: "<<drugs[i].drugAmountDelivered<<endl;
  119.         cout<<"Amount in stock: "<<drugs[i].drugAmountInStock<<endl;
  120.         cout<<"Expiration date: "<<drugs[i].drugExpirationDate.day<<"."<<drugs[i].drugExpirationDate.month<<"."<<drugs[i].drugExpirationDate.year<<"."<<endl;
  121.         cout<<"Requires prescription?: "<<drugs[i].drugPrescriptionRequired<<endl;
  122.         cout<<"Date of manufacture: "<<drugs[i].drugManufacturedDate.day<<"."<<drugs[i].drugManufacturedDate.month<<"."<<drugs[i].drugManufacturedDate.year<<"."<<
  123.         cout<<"Shipment: "<<drugs[i]. drugShipment<<endl;
  124.         cout<<endl;
  125.     }
  126.     cout<<"Input 'menu' to return to the main menu or 'exit' to quit"<<endl;
  127.     while(userResponseViewDrugs!="menu"&&userResponseViewDrugs!="exit"){
  128.         cin>>userResponseViewDrugs;
  129.         if(userResponseViewDrugs=="menu"){
  130.             menu();
  131.         }else if(userResponseViewDrugs=="exit"){
  132.             exit(0);
  133.         }else{
  134.         cout<<"Invalid input, enter 'menu' to return to the main menu or 'exit' to quit"<<endl;
  135.         }
  136.     }
  137. }
  138. void menu(){
  139.     int userResponseMenu;
  140.     cout<<"\t\t## MENU ##"<<endl;
  141.     cout<<"1. Create new drug profile..."<<endl;
  142.     cout<<"2. Delete drug profile..."<<endl;
  143.     cout<<"3. View all drug profiles..."<<endl;
  144.     cout<<"4. View all drug profiles between two manufacture dates..."<<endl;
  145.     cout<<"5. View drug profiles by manufacturer..."<<endl;
  146.     cout<<"6. View drugs with less than " <<drugMinAmount<< "in stock..."<<endl;
  147.     cout<<"7. View total amount of drug profiles in system..."<<endl;
  148.     cout<<"To access the option of your choosing, simply input its number and press ENTER"<<endl;
  149.     cout<<"To exit, please enter 0."<<endl;
  150.     while(true){
  151.         cin>>userResponseMenu;
  152.         switch(userResponseMenu)
  153.         {
  154.             case 0:
  155.                 exit(0);
  156.             case 1:
  157.                 createNewDrug();
  158.                 break;
  159.             case 3:
  160.                 viewDrugs();
  161.             default:
  162.                 cout<<"Invalid input..."<<endl;
  163.  
  164.         }
  165.     }
  166. }
  167. int main(){
  168.     cout<<"Welcome to the world worst apothecary stock management software!!"<<endl;
  169.     menu();
  170. }
  171. /*Тема 4: Да се състави програма на C++ за нуждите
  172. на аптека, която поддържа следната информация:
  173. Наименование на медикамент;
  174. Производител;
  175. Брой доставени;
  176. Брой в наличност;
  177. Срок на годност на медикамент;
  178. Отпуска се с рецепта;
  179. Дата на производство;
  180. Партида;
  181. Програмата извършва следните операции:
  182. 1.Създава масив от медикаменти;
  183. 2.Добавя нов медикамент;
  184. 3.Изтрива медикамент;
  185. 4.Извежда списък с имената на всички медикаменти
  186. между две въведени дати на производство;
  187. 5.Извежда списък на медикаментите, чиито
  188. производители започват с дадена дума;
  189. 6.Извежда списък на медикаментите, чиято
  190. наличност е под 5 към момента на ревизията;
  191. 7.Извежда общ брой медикаменти в аптеката.*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement