Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<fstream>
- #include<stdlib.h>
- #include<vector>
- using namespace std;
- struct Date{
- int year;
- int month;
- int day;
- };
- struct Drug{
- char drugName[100];
- char drugManufacturer[100];
- int drugAmountDelivered;
- int drugAmountInStock;
- Date drugExpirationDate;
- bool drugPrescriptionRequired;
- Date drugManufacturedDate;
- char drugShipment[100];
- };
- vector<Drug> drugs;
- static int drugMinAmount= 5;
- void clearConsole(){
- system("CLS");
- }
- void menu();
- void printDrugList();
- void viewDrugs();
- void createNewDrug(){
- cin.clear();
- cin.sync();
- clearConsole();
- Drug drugTemporaryInput;
- string drugTemporaryPrescription;
- cout<<"\t\t## CREATE NEW DRUG ##"<<endl;
- cout<<"Please enter the required information. You can exit at any time by inputting 'exit' or 'quit'\n\n"<<endl;
- cout<<"Drug name (100 characters limit):"<<endl;
- cin.getline(drugTemporaryInput.drugName, 100);
- cout<<"Drug manufacturer (100 characters limit):"<<endl;
- cin.getline(drugTemporaryInput.drugManufacturer, 100);
- cout<<"Amount delivered:"<<endl;
- cin>>drugTemporaryInput.drugAmountDelivered;
- cout<<"Amount currently in stock:"<<endl;
- cin>>drugTemporaryInput.drugAmountInStock;
- cout<<"Expiration date YEAR:"<<endl;
- cin>>drugTemporaryInput.drugExpirationDate.year;
- while(drugTemporaryInput.drugExpirationDate.year<2018 || drugTemporaryInput.drugExpirationDate.year>3000){
- cout<<"Invalid year, try again:"<<endl;
- cin>>drugTemporaryInput.drugExpirationDate.year;
- }
- cout<<"Expiration date MONTH:"<<endl;
- cin>>drugTemporaryInput.drugExpirationDate.month;
- while(drugTemporaryInput.drugExpirationDate.month<1 || drugTemporaryInput.drugExpirationDate.month>12){
- cout<<"Invalid month, try again:"<<endl;
- cin>>drugTemporaryInput.drugExpirationDate.month;
- }
- cout<<"Expiration date DAY:"<<endl;
- cin>>drugTemporaryInput.drugExpirationDate.day;
- while(drugTemporaryInput.drugExpirationDate.day<1 || drugTemporaryInput.drugExpirationDate.day>31){
- cout<<"Invalid day, try again:"<<endl;
- cin>>drugTemporaryInput.drugExpirationDate.day;
- }
- cin.clear();
- cin.sync();
- cout<<"Prescription required? Input 'yes' or 'no':"<<endl;
- cin>>drugTemporaryPrescription;
- while(drugTemporaryPrescription!="yes" && drugTemporaryPrescription!="no")
- {
- cout<<drugTemporaryPrescription;
- cout<<"Invalid input, please try again. Input 'yes' or 'no':"<<endl;
- cin>>drugTemporaryPrescription;
- }
- if(drugTemporaryPrescription=="yes"){
- drugTemporaryInput.drugPrescriptionRequired=true;
- }else if(drugTemporaryPrescription=="no"){
- drugTemporaryInput.drugPrescriptionRequired=false;
- }else{
- cout<<"Something went wrong..."<<endl;
- }
- cout<<"Date manufactured, YEAR:"<<endl;
- cin>>drugTemporaryInput.drugManufacturedDate.year;
- while(drugTemporaryInput.drugManufacturedDate.year<2010 || drugTemporaryInput.drugManufacturedDate.year>3000){
- cout<<"Invalid year, try again:"<<endl;
- cin>>drugTemporaryInput.drugManufacturedDate.year;
- }
- cout<<"Date manufactured, MONTH:"<<endl;
- cin>>drugTemporaryInput.drugManufacturedDate.month;
- while(drugTemporaryInput.drugManufacturedDate.month<1 || drugTemporaryInput.drugManufacturedDate.month>12){
- cout<<"Invalid month, try again:"<<endl;
- cin>>drugTemporaryInput.drugManufacturedDate.month;
- }
- cout<<"Date manufactured, DAY:"<<endl;
- cin>>drugTemporaryInput.drugManufacturedDate.day;
- while(drugTemporaryInput.drugManufacturedDate.day<1 || drugTemporaryInput.drugManufacturedDate.day>31){
- cout<<"Invalid day, try again:"<<endl;
- cin>>drugTemporaryInput.drugManufacturedDate.day;
- }
- cin.clear();
- cin.sync();
- cout<<"Drug shipment (100 characters limit):"<<endl;
- cin.getline(drugTemporaryInput.drugShipment, 100);
- drugs.push_back(drugTemporaryInput);
- clearConsole();
- cout<<"Drug successfully added to database!\n\n"<<endl;
- menu();
- }
- void deleteDrug(){
- int drugDeletionID;
- printDrugList();
- cout<<"Please enter the ID of the drug you would like to delete from the database:"<<endl;
- cin.clear();
- cin.sync();
- cin>>drugDeletionID;
- while(drugDeletionID<0||drugDeletionID>drugs.size())
- {
- cout<<"Invalid input, ID out of range, please try again..."<<endl;
- cin>>drugDeletionID;
- }
- drugs.erase (drugs.begin() + drugDeletionID - 1);
- clearConsole();
- cout<<"Drug #"<<drugDeletionID<<" has been successfully deleted."<<endl;
- menu();
- }
- void printDrugList(){
- for(int i=0;i<drugs.size(); i++){
- cout<<"DRUG #"<<i+1<<endl;
- cout<<"Name: "<<drugs[i].drugName<<endl;
- cout<<"Manufacturer: "<<drugs[i].drugManufacturer<<endl;
- cout<<"Amount delivered: "<<drugs[i].drugAmountDelivered<<endl;
- cout<<"Amount in stock: "<<drugs[i].drugAmountInStock<<endl;
- cout<<"Expiration date: "<<drugs[i].drugExpirationDate.day<<"."<<drugs[i].drugExpirationDate.month<<"."<<drugs[i].drugExpirationDate.year<<endl;
- cout<<"Requires prescription?: "<<drugs[i].drugPrescriptionRequired<<endl;
- cout<<"Date of manufacture: "<<drugs[i].drugManufacturedDate.day<<"."<<drugs[i].drugManufacturedDate.month<<"."<<drugs[i].drugManufacturedDate.year<<endl;
- cout<<"Shipment: "<<drugs[i]. drugShipment<<endl;
- cout<<endl;
- }
- }
- void viewDrugs(){
- string userResponseViewDrugs;
- cout<<"###Drugs currently in database: "<<drugs.size()<<endl;
- printDrugList();
- cout<<"Input 'menu' to return to the main menu or 'exit' to quit"<<endl;
- while(userResponseViewDrugs!="menu"&&userResponseViewDrugs!="exit"){
- cin>>userResponseViewDrugs;
- if(userResponseViewDrugs=="menu"){
- menu();
- }else if(userResponseViewDrugs=="exit"){
- exit(0);
- }else{
- cout<<"Invalid input, enter 'menu' to return to the main menu or 'exit' to quit"<<endl;
- }
- }
- }
- void menu(){
- int userResponseMenu;
- cout<<"\t\t## MENU ##"<<endl;
- cout<<"1. Create new drug profile..."<<endl;
- cout<<"2. Delete drug profile..."<<endl;
- cout<<"3. View all drug profiles..."<<endl;
- cout<<"4. View all drug profiles between two manufacture dates..."<<endl;
- cout<<"5. View drug profiles by manufacturer..."<<endl;
- cout<<"6. View drugs with less than " <<drugMinAmount<< " in stock..."<<endl;
- cout<<"7. View total amount of drug profiles in system..."<<endl;
- cout<<"To access the option of your choosing, simply input its number and press ENTER"<<endl;
- cout<<"To exit, please enter 0."<<endl;
- while(true){
- cin>>userResponseMenu;
- switch(userResponseMenu)
- {
- case 0:
- exit(0);
- case 1:
- createNewDrug();
- break;
- case 2:
- deleteDrug();
- break;
- case 3:
- viewDrugs();
- break;
- default:
- cout<<"Invalid input..."<<endl;
- }
- }
- }
- int main(){
- cout<<"Welcome to the world worst apothecary stock management software!!"<<endl;
- menu();
- }
- /*Тема 4: Да се състави програма на C++ за нуждите
- на аптека, която поддържа следната информация:
- Наименование на медикамент;
- Производител;
- Брой доставени;
- Брой в наличност;
- Срок на годност на медикамент;
- Отпуска се с рецепта;
- Дата на производство;
- Партида;
- Програмата извършва следните операции:
- 1.Създава масив от медикаменти;
- 2.Добавя нов медикамент;
- 3.Изтрива медикамент;
- 4.Извежда списък с имената на всички медикаменти
- между две въведени дати на производство;
- 5.Извежда списък на медикаментите, чиито
- производители започват с дадена дума;
- 6.Извежда списък на медикаментите, чиято
- наличност е под 5 към момента на ревизията;
- 7.Извежда общ брой медикаменти в аптеката.*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement