// Pharmacy Management System - C++// // Developed By: Md. Saifuddin Tipu // // Brought To You By code-projects.org // //Standard Library #include <iostream> #include <stdlib.h> #include <string> #include <cctype> #include <cmath> #include <cstdio> #include <fstream> #include <iomanip> #define max 10 using namespace std; //the header file class medicineType //base class { public: void take_order();//to take_order void delete_order(); //to delete the order void modify(); //to modify the order void order_list(); //to display the order_list void daily_summary(); //to display daily_summary void exit(); //function to exit system medicineType();//constuctor }; medicineType::medicineType () { } //constructor for class CarType struct node //constract node { int reciept_number; string customerName; string date; int quantity[10]; string type = {"OTC"}; int x, menu2[10]; double amount[10]; string medicineName[10]={"Probiotics","Vitamin C(500mg)","Acid Free C(500mg)","Women'S Multivate","Marino Tablet","Maxi Cal Tablet", "Amino Zinc Tablet","Burnex","Fabuloss 5","Royal Propollen"}; double Medicine[10] = {2.00,3.00,1.00,4.00,1.00,5.00,7.00,4.00,3.00,5.00}; double total; node *prev; node *next; node *link; }*q, *temp; //pointer declaration node *start_ptr = NULL; node *head = NULL; node *last = NULL; int main() // Main function { system("COLOR 0"); //Color to change background medicineType medicine; int menu; do { system("cls"); cout<<"\t\t\t Pharmacy Management System \n"; cout<<"\t\t==================================================\n\n"; cout<<"\t\t--------------------------------------------------\n"; cout<<"\t\t||\t1. Take new Medicine order \t\t ||\n"; cout<<"\t\t||\t2. Delete latest Medicine order\t\t ||\n"; cout<<"\t\t||\t3. Modify Order List \t\t\t ||\n"; cout<<"\t\t||\t4. Print the Reciept and Make Payment \t ||\n"; cout<<"\t\t||\t5. Daily Summary of total Sale \t\t ||\n"; cout<<"\t\t||\t6. Exit\t\t\t\t\t ||\n"; cout<<"\t\t--------------------------------------------------\n"; cout<<"Enter choice: "; cin>>menu; switch (menu) { case 1: { medicine.take_order(); //function add break; } //end case 1 case 2: { medicine.delete_order(); //function delete system("PAUSE"); break; } //end case 2 case 3: { medicine.modify(); //function modify system("PAUSE"); break; } //end case 3 case 4: { medicine.order_list(); //function order system("PAUSE"); break; } //end case 4 case 5: { medicine.daily_summary(); //function daily_summary system("PAUSE"); break; } //end case 5 case 6: { medicine.exit(); //function exit goto a; break; } //end case 6 default: { cout<<"You enter invalid input\nre-enter the input\n"<<endl; break; }//end defeault }//end Switch }while(menu!=6);//end do a://goto cout<<"thank you"<<endl; system ("PAUSE"); return 0; }//end main function void medicineType::take_order() //function to take_order { system("cls"); int i; int choice, quantity, price,None; cout <<"\nAdd Order Details\n"; cout <<"_____________________________________ \n\n"; node *temp; temp=new node; cout <<"**************************************************************************\n"; cout<<"DRUGS ID"<<"\tDRUGS TYPE"<<" \t\tDRUGS NAME"<<" DRUGS PRICE(RM)"<<endl; cout <<"**************************************************************************\n"; cout<<"0001"<<"\t"<<"\tOTC"<<"\t\t"<<" Probiotics"<<" RM 2.00"<<endl; cout<<"0002"<<"\t"<<"\tOTC"<<"\t\t"<<" Vitamin C(500mg)"<<" RM 3.00"<<endl; cout<<"0003"<<"\t"<<"\tOTC"<<"\t\t"<<" Acid Free C(500mg)"<<" RM 1.00"<<endl; cout<<"0004"<<"\t"<<"\tOTC"<<"\t\t"<<" Women'S Multivate"<<" RM 4.00"<<endl; cout<<"0005"<<"\t"<<"\tOTC"<<"\t\t"<<" Marino Tablet"<<" RM 1.00"<<endl; cout<<"0006"<<"\t"<<"\tOTC"<<"\t\t"<<" Maxi Cal Tablet"<<" RM 5.00"<<endl; cout<<"0007"<<"\t"<<"\tOTC"<<"\t\t"<<" Amino Zinc Tablet"<<" RM 7.00"<<endl; cout<<"0008"<<"\t"<<"\tOTC"<<"\t\t"<<" Burnex"<<" RM 4.00"<<endl;//1353fn cout<<"0009"<<"\t"<<"\tOTC"<<"\t\t"<<" Fabuloss 5"<<" RM 3.00"<<endl; cout<<"0010"<<"\t"<<"\tOTC"<<"\t\t"<<" Royal Propollen"<<" RM 5.00"<<endl; cout<<" "<<endl; temp = new node; cout << "Type Order no: "; cin >> temp->reciept_number; cout<< "Enter Customer Name: "; cin>> temp->customerName; cout<<"Enter Date : "; cin>>temp->date; cout << "How many Medicine would you like to order:"<< endl; cout<<"( Maximum is 10 order for each transaction ) \n"; cout << " " ; cin >> temp->x; if (temp->x >10) { cout << "The Medicine you order is exceed the maximum amount of order !"; system("pause"); } else{ for (i=0; i<temp->x; i++) { cout << "Please enter your selection : "<<endl; cin>> temp->menu2[i]; cout<< "Medicine Name: " <<temp->medicineName[temp->menu2[i]-1]<<endl; cout << "How many medicine do you want: "; cin >> temp->quantity[i]; temp->amount[i] = temp->quantity[i] * temp->Medicine[temp->menu2[i]-1]; cout << "The amount You need to pay is: " << temp->amount[i]<<" RM"<<endl; system("PAUSE"); } cout<<"==========================================================================="<<endl; cout << "Order Taken Successfully"<<endl; cout<<"==========================================================================="<<endl; cout << "Go to Reciept Menu to Pay The Bill"<<endl; cout<<"==========================================================================="<<endl; system ("PAUSE"); temp->next=NULL; if(start_ptr!=NULL) { temp->next=start_ptr; } start_ptr=temp; system("cls"); } }//End function take_order void medicineType::order_list() //Function to display receipt { int i, num, num2; bool found; //variable to search system("cls"); node *temp; temp=start_ptr; found = false; cout<<" Enter the Reciept Number To Print The Reciept\n"; cin>>num2; cout<<"\n"; cout<<"==========================================================================="<<endl; cout <<"\t\tHere is the Order list\n"; cout<<"==========================================================================="<<endl; if(temp == NULL) //Invalid receipt code { cout << "\tThere is no Order to show\n\t\t\tSo The List is Empty\n\n\n"; } while(temp !=NULL && !found) { if (temp->reciept_number==num2) { found = true; } else { temp = temp -> next; } if (found) //print the receipt { cout <<"Reciept Number : "<<temp->reciept_number; cout <<"\n"; cout<<"Customer Name: "<<temp->customerName<<endl; cout<<"Order Date : "<<temp->date<<endl; cout<<"_____________________________________________________________________________"<<endl; cout << "===============================================================================" << endl; cout << "| Medicine Type | Medicine Name | Quantity | Total Price |" << endl; cout << "=======++==================++================++===============++===============" << endl; for (i=0;i<temp->x;i++) { cout << temp->type <<" \t\t"; cout<<temp->medicineName[temp->menu2[i]-1]<<"\t\t\t "; cout<<temp->quantity[i] <<"\t\t"; cout<< temp->amount[i]<<" RM"<<endl; cout<<"_________________________________________________________________________________"<<endl; } temp->total = temp->amount[0]+temp->amount[1]+temp->amount[2]+temp->amount[3]+temp->amount[4]+temp->amount[5]+temp->amount[6]+temp->amount[7] +temp->amount[8]+temp->amount[9]; cout<<"Total Bill is : "<<temp->total; cout<<"\n"; cout << "Type the exact amount You need to pay: "; cin >> num; cout <<"\n"; cout <<"\n"; cout<<"Payment Done\nThank You\n"; cout <<"\n_______________________________________________________________________________\n"; } } } //End function order_list void medicineType::delete_order() //function to delete_order { system("cls"); int i, num, count; cout<<"Enter the data you want to delete \n"; cin>>num; node *q; node *temp; bool found; if(start_ptr == NULL) cerr<<"Can not delete from an empty list.\n"; else { if(start_ptr->reciept_number == num) { q = start_ptr; start_ptr = start_ptr->next; count--; if(start_ptr == NULL) last = NULL; delete q; cout<<"The Reciept is Deleted Successfully"<<endl; } else { found = false; temp = start_ptr; q = start_ptr->next; while((!found) && (q != NULL)) { if(q->reciept_number != num) { temp = q; q = q-> next; } else found = true; } if(found) { temp->next = q->next; count--; if(last == q) last = temp; delete q; cout<<"The Reciept is Deleted Successfully"<<endl; } else cout<<"Item to be deleted is not in the list."<<endl; } } } //End function delete_order void medicineType::modify() //function to modify order { system("cls"); int i, ch, sid; bool found; found = false; temp = start_ptr; cout<<"Enter Receipt Number To Modify: "; cin>>sid; if (temp==NULL && sid==0) { cout<<"NO RECORD TO MODIFY..!"<<endl; } else { while(temp !=NULL && !found) { if (temp->reciept_number==sid) { found = true; } else { temp = temp -> next; } if (found) { cout << "Change Order Number: "; cin >> temp->reciept_number; cout<< "Change Customer Name: "; cin>> temp->customerName; cout<<"Change Date : "; cin>>temp->date; cout << "How many New Medicine would you like to Change:"<< endl; cout<<"( Maximum is 10 order for each transaction ) \n"; cout << " " ; cin >> temp->x; if (temp->x >10) { cout << "The Medicine you order is exceed the maximum amount of order !"; system("pause"); } else{ for (i=0; i<temp->x; i++) { cout << "Please enter your selection to Change: "<<endl; cin>> temp->menu2[i]; cout<< "Change Medicine Name: " <<temp->medicineName[temp->menu2[i]-1]<<endl; cout << "How many New medicine do you want: "; cin >> temp->quantity[i]; temp->amount[i] = temp->quantity[i] * temp->Medicine[temp->menu2[i]-1]; cout << "The amount You need to pay After Modify is: " << temp->amount[i]<<" RM"<<endl; system("PAUSE"); } temp = temp->next; system("cls"); } cout<<"RECORD MODIFIED....!"<<endl; } else { if(temp != NULL && temp->reciept_number != sid) { cout<<"Invalid Reciept Number...!"<<endl; } } } } } //End modify function void medicineType::daily_summary() //Function to display Daily Summary { int i,num; system("cls"); node *temp ; temp=start_ptr; if(temp == NULL) //Invalid receipt code { cout << "\t\t\tThere is no Order to show\n\t\t\tSo The List is Empty\n\n\n"; } else { cout<<"\n"; cout<<"==========================================================================="<<endl; cout <<" \t\tHere is the Daily Summary of All Orders \n"; //print all receipt cout<<"==========================================================================="<<endl; while(temp!=NULL) { cout <<"Reciept Number : "<<temp->reciept_number; cout <<"\n"; cout<<"Customer Name: "<<temp->customerName<<endl; cout<<"Order Date : "<<temp->date<<endl; cout<<"____________________________________________________________________________"<<endl; cout << "==========================================================================" << endl; cout << "| Medicine Type | Medicine Name | Quantity | Total Price |" << endl; cout << "=======++==================++================++===============++==========" << endl; for (i=0;i<temp->x;i++) { cout << temp->type <<" \t\t"; cout<<temp->medicineName[temp->menu2[i]-1]<<"\t\t"; cout<<temp->quantity[i] <<"\t\t"; cout<< temp->amount[i]<<" RM"<<endl; cout<<"_____________________________________________________________________________"<<endl; } temp->total = temp->amount[0]+temp->amount[1]+temp->amount[2]+temp->amount[3]+temp->amount[4]+temp->amount[5]+temp->amount[6]+temp->amount[7] +temp->amount[8]+temp->amount[9]; cout<<"Total Bill is : "<<temp->total; cout <<"\n"; cout <<"\n"; cout <<"\n_______________________________________________________________________________\n"; temp=temp->next; } } } //End daily summary void medicineType::exit() //Function to exit { cout<<"\nYou choose to exit.\n"<<endl; } //end function exit ////////////////////////////THE END OF PROGRAM//////////////////////////////////////////
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}