In this tutorial, we’ll code Medical Store Management System Project in a very easy and understandable way. Medical Store Management System can be coded using many programming languages, But in this project, we’re going to use C++ language as per the demand of students.
Table of Contents
What is Medical Store Management System?
As the name suggests the Medical Store Management System is a software that handles the entire data of Medical. It makes the work of a Shopkeeper very easy instead of writing data in a notebook. In past, the shopkeepers were using notebooks to write the data from books along with customers’ names who purchased the medicines. So it was very difficult to keep track of each and every record.
If a shopkeeper wants to search for a particular sale record then that task was very time-consuming. So to make this task easy the programming languages were developed and the C++ language is one of them.
Features of Medical Store Management System Project in C++
- Entire data of suppliers as well as customers can be handled by this project.
- You can add, edit, update and delete the details of suppliers.
- You can also do crud operations on the details of customers.
- This software also has a billing system. Bill is generated after successful order creation.
- A shopkeeper can generate an entire sales report using this software.
- The entire rights are given to the shopkeeper to manage all the data of the software.
- In this project, a Medical shopkeeper can do all the crud operations of suppliers as well as customers.
Modules of Medical Store Management System Project in C++
- Supplier Info (manage suppliers’ data).
- Customer Info (manage customers’ data).
- Medicine.
- Report.
- Bill.
- About.
- Exit
Working of Project
After extracting the zip file you’ll get an executable .exe file where you can directly run the entire project manually. This .exe file is also generated after compiling the project using the compiler. Now we’ll see the working of the entire project with proper explanation.
Main Screen:
When you run the project from any compiler or directly click on the executable .exe file you’ll see the following screen shown in the picture.
Note: for selection of any menu option you’ve to enter the starting letter of that menu. Suppose you’ve to choose supplier info menu then you’ve to enter starting character i.e s
In this main menu, we’ve shown the menu options such as supplier info, customer info, medicine, report, bill, about, and the exit. If the shopkeeper wants to add, delete or search any supplier info then he should choose the option as s. If he wants to do the crud operations on customers’ data then he should choose option c. By choosing the option as m then the shopkeeper will be able to handle the data of medicines. similarly r for generation report, b for creation of bills, and a, e for about and exit the application.
Now we’ll discuss each and every menu in detail.
1. Supplier Info
To choose the supplier menu you have to enter the first character of supplier info which is s. After choosing the supplier info menu option the following screen will be prompted.
This section is for handling the whole supplier’s data and this section has some sub-menus which we’ll discuss one by one.
1. Add New Supplier:
To choose this option you’ve to press a. With the help of this option, you’ll be able to add new supplier records. During the time of record creation software will ask you for some supplier’s details such as supplier name, their city, phone number, and email id. After entering all the data the software will confirm whether you want to add this data or cancel it. To save this data click s and to cancel click c. If the record is created successfully then the message will be displayed “supplier added successfully”.
2. Update Supplier:
If you want to update the supplier’s details then you’ve to choose the option as u. With the help of this option, you’ll be able to update the existing supplier record. First, you’ve to enter the unique supplier id to fetch the existing supplier detail, then the software will ask you to enter new details and then press u for updating the record.
3. Search Supplier:
To choose this option you’ve to press s. With the help of this option, you’ll be able to search for any supplier. The software provides you with two search methods 1. search by supplier id (press i)and 2. by supplier name (press n).
4. List of Existing Suppliers:
Press l to use this option and with the help of this option, you’ll be able to see the list of all existing suppliers in tabular form.
5. Main Menu
2. Customer Info
To choose the customer menu you have to enter the first character of customers info which is c. After choosing the customer info menu option the following screen will be displayed.
This section is for handling the whole customer’s data and this section has some sub-menus which we’ll discuss one by one.
1. Add New Customer:
To choose this option you’ve to press a. With the help of this option, you’ll be able to add new customer records. During the time of record creation software will ask you for some customers’ details such as customer name, their city, contact number, and email id. After entering all the data the software will confirm whether you want to add this data or cancel it. To save this data click s and to cancel click c. If the record is created successfully then the message will be displayed “customer added successfully”.
2. Update Customer:
If you want to update the customer’s details then you’ve to choose the option as u. With the help of this option, you’ll be able to update the existing customer record. First, you’ve to enter the unique customer id to fetch the existing customer detail, then the software will ask you to enter new details and then press u for updating the record.
3. Search Customer:
To choose this option you’ve to press s. With the help of this option, you’ll be able to search for any customer. The software provides you with two search methods 1. search by customer id (press i)and 2. by customer name (press n).
4. List of Existing Customers:
Press l to use this option and with the help of this option, you’ll be able to see the list of all existing customers in tabular form.
5. Main menu
3. Medicine
To choose the medicine menu you have to enter the first character of supplier info which is m. After choosing the medicine menu option the following screen will be displayed.
1. Purchase New Medicine:
To use this menu option you’ve to enter p from the keyboard. By using this option you’ll be able to create a new purchase record of medicine. During the creation of the new record software will ask you for some details such as medicine id, medicine name, rack no, cabinet no, company name, supplier name, unit cost, sale cost, quantity, manufacturing date, and expiry data. After entering all the data the software will confirm whether you want to add this data or cancel it. To save this data click s and to cancel click c. If the record is created successfully then the message will be displayed “Medicine added successfully”.
2. Sale Medicine:
With the help of this menu option, you’ll be able to create a new sale record of medicine.
3. Stock of Medicine:
Using this option you’ll be able to see the available stock of existing medicines in the medical shop.
4. Search Medicine:
With the help of this option, search operations can be done using this option. You’ve to enter s to use this option.
5. Main Menu:
By pressing m you’ll be redirected to the main menu.
4. Report
To choose the report menu you have to enter the first character of supplier info which is r. After choosing the report menu option the following screen will be displayed.
1. Purchase Report:
With the help of this menu option, a medicine purchase report is generated.
2. Sale Report:
A medicine sales report will be generated.
3. Profit Report:
A profit report is generated.
4. Daily Sale Report:
By pressing d, the daily sales report is generated.
5. Daily Purchase Report:
Using this menu option, the daily purchase report is generated.
6. Main Menu:
you’ll be redirected to the main menu.
5. Bill
To use this menu option you’ve to press b from the keyboard. Using this menu option you’ll be able to generate bills. The following screen will be prompted after choosing the bill option.
6. About
Project details are shown in this menu option. The following screen will appear after pressing character a
7. Exit
By pressing the e key the whole project will be closed.
Download the Project
By clicking the following button you can download the zip file of the project which consists of the source code and the executable .exe file.
If you need quick project code then please read the following code:
Source Code of Medical Store Management System Project in C++
//Learnprogramo - programming made simple #include<stdio.h> #include<conio.h> #include<string.h> #include<math.h> #include<dos.h> #include<time.h> #include<ctype.h> #include<windows.h> COORD coord = {0, 0}; void gotoxy(int x, int y) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } int i; //function for auto increment customer & supplier Id. int getcust_id(); int getsupp_id(); //function for welcome & main menu void welcome(); void main_menu(); //function for all box void main_box(); void box1(); void wbox(); //function for bill slip void bill(); //function for about menu void about(); //function for medicine menu void medicine(); void medi_sale(); void stock(); void update_stock(); void medi_entry(); void medi_search(); void remainder(); //function for supplier menu void supplier(); void supp_entry(); void supp_list(); void sup_update(); void search(); void search_id(); void search_name(); //function for customer menu void customer(); void cust_search(); void search_cid(); void search_cname(); void cust_entry(); void cust_list(); void cust_update(); //function for report menu void report_menu(); void report(); void sale_rpt(); void sale_rpt_daily(); void profit_rpt(); void pur_rpt(); void pur_rpt_daily(); //===================================structures ========================= struct medical { char id[6]; char medi_name[20]; int rack; char cabnit[2]; int quantity; float sale; float total; float unit; float cost; float profit; float bye; int qty; char pur_date[15]; char exp_date[15]; char manu_date[15]; int bill_no; char comp_name[20]; char supp_name[30]; }; struct medical temp; struct medical x[20]; FILE *ptr; char a[10]; struct supplier { int supp_id; char supp_name[25]; char city[20]; char mob_no[11]; char email[30]; }; struct supplier temp1; struct customer { int cust_id; char cust_name[30]; char city[20]; char mob_no[11]; char email[50]; }; struct customer temp_c; FILE *ptr1; struct bill { char billno[6]; char cname[30]; char mediname[30]; int medi_qty; float medi_rate; float total; int day; int month; int year; }; struct bill bil; FILE *ptrbill; struct sales_report { char medi_id[6]; char medir_name[20]; char cust_name[30]; int sDay,sMonth,sYear; int qty; float rate; float total; }; struct sales_report s_r; FILE *ptrs_r; struct purchase_report { char medi_id[6]; char medir_name[20]; char supp_name[30]; int sDay,sMonth,sYear; int qty; float rate; float total; }; struct purchase_report p_r; FILE *ptrp_r; struct profit_report { char medi_id[6]; char medir_name[20]; int sDay,sMonth,sYear; int qty; float rate; float unit; float profit; }; struct profit_report pr_r; FILE *ptrpr_r; void linkfloat() { float f,*p; p=&f; f=*p; } //=========================Time & Date ==================== int t(void) { //struct date d; //struct time t; time_t t = time(0); // get time now struct tm * now = localtime( & t ); //getdate(&d); //gettime(&t); gotoxy(55,46); printf("Date: %d-%d-%d ",now->tm_mday,now->tm_mon,now->tm_year); gotoxy(55,48); printf("Time: %d:%d:%d",now->tm_hour, now->tm_min,now->tm_sec); return 0; } //=======================Animation ========================== void animation() { for (i=45; i>=1; i--) { Sleep(30); gotoxy(1,i); //clreol(); } for (i=1; i<=20; i++) { //clreol(); Sleep(40); gotoxy(1,i); } } //=========================== validation ========================= void ventry(char t[],int code) { int i=0; if(code==0) { while((t[i]=getch())!='\r' && i<30) if((t[i]>=97 && t[i]<=122) || (t[i]>=65 && t[i]<=90) || t[i]==32 || t[i]=='_') { printf("%c",t[i]); i++; } else if(t[i]==8 && i>0) { printf("%c%c%c",8,32,8); i--; //Length counter is decremented. } } else if(code==1) { while((t[i]=getch())!='\r' && i<10 ) if((t[i]>=48 && t[i]<=57) || t[i]==46 || t[i]=='-') { printf("%c",t[i]); i++; } else if(t[i]==8 && i>0) { printf("%c%c%c",8,32,8); i--; //Length counter is decremented. } } else if(code==2) { while((t[i]=getch())!='\r' && i<30 ) if((t[i]>=97 && t[i]<=122) || (t[i]>=65 && t[i]<=90) ||(t[i]>=48 && t[i]<=57) || t[i]==32 || t[i]==8 ||t[i]=='@'||t[i]=='.') { printf("%c",t[i]); i++; } else if(t[i]==8 && i>0) { printf("%c%c%c",8,32,8); i--; //Length counter is decremented. } } t[i]='\0'; } //============================================================================ void box() { for(i=3;i<=79;i++) //This 'FOR' loop will print a combination of { gotoxy(i,3); //the 79th column is reached. printf("%c",219); gotoxy(78,45); printf("%c",219); gotoxy(i,45); printf("%c",219); } for(i=3;i<=45;i++) //This 'FOR' loop will print asterisks 'I' { //vertically till the 3th row is reached. gotoxy(3,i); printf("%c",219); gotoxy(79,i); printf("%c",219); } } void wbox() { for(i=5;i<=75;i++) //This 'FOR' loop will print a combination of { gotoxy(i,5); //the 75th column is reached. printf("%c",219); gotoxy(74,40); printf("%c",219); gotoxy(i,40); printf("%c",219); } for(i=5;i<=40;i++) //This 'FOR' loop will print asteriks 'I' { //vertically till the 17th row is reached. gotoxy(5,i); printf("%c",219); gotoxy(75,i); printf("%c",219); } } //=========================getsupp_id ======================= int getsupp_id() { FILE *fp; fp=fopen("supplier.dat","r"); if(fp==NULL) { gotoxy(22,15); printf("Data not Found....."); getch(); } else { temp1.supp_id=100; rewind(fp); while(fscanf(fp,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.city, temp1.mob_no,temp1.email)!=EOF) { } } fclose(fp); return temp1.supp_id+1; } //=========================getcust_id ======================= int getcust_id() { FILE *fp; fp=fopen("customer.dat","r"); if(fp==NULL) { gotoxy(22,15); printf("Data not Found....."); getch(); } else { temp_c.cust_id=100; rewind(fp); while(fscanf(fp,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF) { } } fclose(fp); return temp_c.cust_id+1; } //=========================welcome screen ============== void welcome() { int j,k,l,m; system("cls"); for(m=0;m<16;m++) { //textcolor(m); wbox(); for(i=0;i<16;i++) { //textcolor(i); gotoxy(35,20); printf("WELCOME"); k=i+2; //textcolor(k); gotoxy(38,22); printf("TO"); l=i+3; //textcolor(l); gotoxy(28,24); printf("MEDICAL"); //textcolor(l); gotoxy(36,24); printf("STORE"); //textcolor(l); gotoxy(42,24); printf("SYSTEM"); gotoxy(52,45); j=i+1; //textcolor(j); printf("Loading......"); Sleep(40); } } } //============================ box for label ========== void lbox() { gotoxy(25,6); printf("%c",201); for(i=26;i<55;i++) { gotoxy(i,6); printf("%c",205); } gotoxy(55,6); printf("%c",187); gotoxy(25,6); for(i=6;i<8;i++) { gotoxy(25,i+1); printf("%c",186); } gotoxy(25,9); printf("%c",200); for(i=26;i<55;i++) { gotoxy(i,9); printf("%c",205); } gotoxy(55,9); printf("%c",188); gotoxy(55,6); for(i=6;i<8;i++) { gotoxy(55,i+1); printf("%c",186); } } //============================small box =============== void box1() { gotoxy(1,3); printf("%c",201); for(i=1;i<79;i++) { gotoxy(1+i,3); printf("%c",205); } gotoxy(80,3); printf("%c",187); gotoxy(1,3); for(i=4;i<10;i++) { gotoxy(1,i); printf("%c",186); } gotoxy(1,9); for(i=4;i<8;i++) { gotoxy(80,i); printf("%c",186); } } //===========================main =================== int main() { char name[15]; char pass[15]; int count=0,i; system("cls"); /*start: //textcolor(5); wbox(); lbox(); //textcolor(GREEN); gotoxy(35,8); printf(" LOGIN "); //textcolor(RED); gotoxy(32,18); printf("Enter user name :"); gotoxy(32,22); printf("Enter password :"); gotoxy(51,18); strcpy(gets(name),name); gotoxy(51,22); i=0; do { pass[i] = getch(); if(pass[i] == 13 ) { break; } else if(pass[i]==8 && i>0) { printf("%c%c%c",8,32,8); i--; } else { printf("*"); i++; } }while(pass[i]!=13); pass[i] = '\0'; if(strcmp(name,"rana") || strcmp(pass,"singh")) { system("cls"); gotoxy(20,20); printf("Please Enter vailid Username & Passward!!!!!"); count++; gotoxy(20,23); printf("%d chance left!!!!",3-count); getch(); system("cls"); if(count==3) exit(0); else goto start; } else {*/ //welcome(); main_menu(); //} } void main_box() { gotoxy(1,6); printf("%c",201); for(i=1;i<79;i++) { gotoxy(1+i,6); printf("%c",205); } gotoxy(80,6); printf("%c",187); gotoxy(1,6); for(i=5;i<35;i++) { gotoxy(1,2+i); printf("%c",186); } gotoxy(1,37); printf("%c",200); for(i=1;i<79;i++) { gotoxy(1+i,37); printf("%c",205); } gotoxy(80,37); printf("%c",188); gotoxy(80,6); for(i=5;i<35;i++) { gotoxy(80,2+i); printf("%c",186); } } void main_menu() { char ch; do { //window(1,1,80,50); //textbackground(BLACK); system("cls"); //textcolor(4+BLINK); gotoxy(3,5); printf("S"); //textcolor(WHITE); gotoxy(4,5); printf("upplier Info"); //textcolor(4+BLINK); gotoxy(19,5); printf("C"); //textcolor(15); gotoxy(20,5); printf("ustomer Info"); //textcolor(4+BLINK); gotoxy(36,5); printf("M"); //textcolor(15); gotoxy(37,5); printf("edicine"); //textcolor(4+BLINK); gotoxy(48,5); printf("R"); //textcolor(15); gotoxy(49,5); printf("Report"); //textcolor(4+BLINK); gotoxy(57,5); printf("B"); //textcolor(15); gotoxy(58,5); printf("ill"); //textcolor(4+BLINK); gotoxy(64,5); printf("A"); //textcolor(15); gotoxy(65,5); printf("bout"); //textcolor(4+BLINK); gotoxy(72,5); printf("E"); //textcolor(15); gotoxy(73,5); printf("xit"); t(); //this function display date & time box1(); main_box(); gotoxy(30,10); //textcolor(GREEN); printf("Welcome To Medical Store "); gotoxy(2,28); //textcolor(15); remainder();//this function is active when medicine qty is less then 10. gotoxy(10,40); //textcolor(RED+BLINK); printf("Press "); gotoxy(16,40); //textcolor(15); printf("First Character for further Menu "); ch=toupper(getche()); switch(ch) { case 'S':supplier(); break; case 'C':customer(); break; case 'M':medicine(); break; case 'R':report_menu(); break; case 'B':bill(); break; case 'A':about(); break; case 'E':gotoxy(23,20); //textcolor(4); printf("Do you want to exit now? Y/N :"); Sleep(100); ch=(getche()); ch=toupper(ch); if(ch=='Y') { animation(); system("cls"); //textcolor(2); gotoxy(35,20); printf(" Please wait....."); Sleep(2000); exit(0); } else { main_menu(); } default://textcolor(4+BLINK); gotoxy(11,34); printf("Plese Enter right character ONLY (S,C,M,R,B,A)."); getch(); } }while(ch!='E'); } //=========================For supplier =========================== void supplier() { char ch; do { system("cls"); gotoxy(34,3); //textcolor(GREEN); printf("----------------"); gotoxy(35,4); //textcolor(GREEN); printf("Supplier MENU"); gotoxy(34,5); //textcolor(GREEN); printf("----------------"); gotoxy(25,11); //textcolor(4+BLINK); printf("A"); gotoxy(26,11); //textcolor(15); printf("dd New Supplier"); gotoxy(25,15); //textcolor(4+BLINK); printf("U"); gotoxy(26,15); //textcolor(15); printf("pdate Supplier"); gotoxy(25,19); //textcolor(4+BLINK); printf("S"); gotoxy(26,19); //textcolor(15); printf("earch Supplier"); gotoxy(25,23); //textcolor(4+BLINK); printf("L"); gotoxy(26,23); //textcolor(15); printf("ist of Existing Supplier"); gotoxy(25,27); //textcolor(4+BLINK); printf("M"); gotoxy(26,27); //textcolor(15); printf("ain Menu"); main_box(); gotoxy(10,40); //textcolor(15); printf("Press First Character for further Operation "); ch=toupper(getche()); switch(ch) { case 'A':animation(); supp_entry(); break; case 'U':animation(); sup_update(); break; case 'L':animation(); supp_list(); break; case 'S':search(); break; case 'M':main_menu(); break; default://textcolor(4+BLINK); gotoxy(11,34); printf("Plese Enter right character ONLY (A,L,U,S,M)."); getch(); } }while(ch!='M'); } //=========================For customer =========================== void customer() { char ch; do { system("cls"); gotoxy(34,3); //textcolor(GREEN); printf("---------------"); gotoxy(35,4); printf("Customer Menu."); gotoxy(34,5); printf("---------------"); gotoxy(25,11); //textcolor(4+BLINK); printf("A"); gotoxy(26,11); //textcolor(15); printf("dd New Customer"); gotoxy(25,15); //textcolor(4+BLINK); printf("U"); gotoxy(26,15); //textcolor(15); printf("pdate Customer"); gotoxy(25,19); //textcolor(4+BLINK); printf("S"); gotoxy(26,19); //textcolor(15); printf("earch Customer"); gotoxy(25,23); //textcolor(4+BLINK); printf("L"); gotoxy(26,23); //textcolor(15); printf("ist of Existing Customer"); gotoxy(25,27); //textcolor(4+BLINK); printf("M"); gotoxy(26,27); //textcolor(15); printf("ain Menu"); main_box(); gotoxy(10,40); //textcolor(15); printf("Press First Character for further Operations "); ch=toupper(getche()); switch(ch) { case 'A':animation(); cust_entry(); break; case 'U':animation(); cust_update(); break; case 'L':animation(); cust_list(); break; case 'S':cust_search(); break; case 'M':main_menu(); break; default://textcolor(4+BLINK); gotoxy(11,34); printf("Plese Enter right character ONLY (A,L,U,S,M)."); getch(); } }while(ch!='M'); } //=========================For Medicine =========================== void medicine() { char ch; do { system("cls"); gotoxy(34,3); //textcolor(GREEN); printf("---------------"); gotoxy(35,4); printf("Medicine Menu."); gotoxy(34,5); printf("---------------"); gotoxy(25,15); //textcolor(4+BLINK); printf("P"); gotoxy(26,15); //textcolor(15); printf("urchase New Medicine"); gotoxy(25,19); //textcolor(4+BLINK); printf("S"); gotoxy(26,19); //textcolor(15); printf("ale Medicine"); gotoxy(25,23); //textcolor(15); printf("Sto"); gotoxy(28,23); //textcolor(4+BLINK); printf("c"); gotoxy(29,23); //textcolor(15); printf("k of Medicine"); gotoxy(25,27); //textcolor(15); printf("Se"); gotoxy(27,27); //textcolor(4+BLINK); printf("a"); gotoxy(28,27); //textcolor(15); printf("rch Medicine"); gotoxy(25,31); //textcolor(4+BLINK); printf("M"); gotoxy(26,31); //textcolor(15); printf("ain Menu"); main_box(); gotoxy(10,40); //textcolor(15); printf("Press First Character for further Operations "); ch=toupper(getche()); switch(ch) { case 'P':medi_entry(); break; case 'S':medi_sale(); break; case 'C':stock(); break; case 'A':medi_search(); break; case 'M':main_menu(); break; default://textcolor(4+BLINK); gotoxy(11,34); printf("Plese Enter right character ONLY (P,S,C,M)."); getch(); } }while(ch!='M'); } //=========================For Report =========================== void report_menu() { char ch; do { system("cls"); gotoxy(34,3); //textcolor(GREEN); printf("---------------"); gotoxy(35,4); printf("Report Menu."); gotoxy(34,5); printf("---------------"); gotoxy(25,12); //textcolor(4+BLINK); printf("P"); gotoxy(26,12); //textcolor(15); printf("urchase Report"); gotoxy(25,16); //textcolor(4+BLINK); printf("S"); gotoxy(26,16); //textcolor(15); printf("ale Report"); gotoxy(25,20); //textcolor(15); printf("Pr"); gotoxy(27,20); //textcolor(4+BLINK); printf("o"); gotoxy(28,20); //textcolor(15); printf("fit Report"); gotoxy(25,24); //textcolor(15); printf("D"); gotoxy(26,24); //textcolor(4+BLINK); printf("a"); gotoxy(27,24); //textcolor(15); printf("ily Sale Report"); gotoxy(25,28); //textcolor(4+BLINK); printf("D"); gotoxy(26,28); //textcolor(15); printf("aily Purchase Report"); gotoxy(25,32); //textcolor(4+BLINK); printf("M"); gotoxy(26,32); //textcolor(15); printf("ain Menu"); main_box(); gotoxy(10,40); //textcolor(15); printf("Press First Character for further Operations "); ch=toupper(getche()); switch(ch) { case 'P':pur_rpt(); break; case 'S':sale_rpt(); break; case 'A':sale_rpt_daily(); break; case 'O':profit_rpt(); break; case 'D':pur_rpt_daily(); break; case 'M':main_menu(); break; default://textcolor(4+BLINK); gotoxy(11,34); printf("Plese Enter right character ONLY (P,S,O,M)."); getch(); } }while(ch!='M'); } void about() { int c; system("cls"); do { // window(1,1,80,50); //textcolor(LIGHTGRAY); gotoxy(28,4); //textcolor(RED+BLINK); printf("***** MEDICAL STORE *****"); gotoxy(10,8); printf("=> This Project Is About Medical Store "); gotoxy(10,10); printf("=> In This Project we Can Add Medicine ,Customer,Supplier Details"); gotoxy(10,12); printf("=> We Can Modifed & Delete Existing Record"); gotoxy(10,14); printf("=> We Can Also Search Medicine ,Customer,Supplier Details"); gotoxy(10,16); printf("=> It's Helpfull For Display Stock Of Medicine "); printf("<<<<-Press 1 for main menu->>>>"); c = (getche()); switch (c) //This 'SWITCH' structure will ask the user for input from [1] to [7] and will display error on Invalid Entry. { case '1':animation(); main_menu(); gotoxy(26,24); puts("<<--ENTER FROM 1 PLEASE-->>"); //This message will only print on INVALID ENTRY and Will ask again for input. getch(); } }while(c != '1'); } //======================Remainder for medicine stock =============== void remainder() { ptr1=fopen("medical.dat","r"); if(ptr1==NULL) { // printf("\n\t Can not open File! "); } while((fread(&temp,sizeof(temp),1,ptr1))==1) { if(temp.quantity<10) { gotoxy(10,45); //textcolor(RED); printf("%s : ",temp.medi_name); printf("Quantity of this medicine is less then 10"); } } } //========================for bill ============================= void bill() { //struct date d; time_t td = time(0); // get time now struct tm * now = localtime( & td ); FILE *ptrbill; char id[6]; int j=1,d1,m,y,k; float netamt=0.0; //getdate(&d); d1=now->tm_mday; m=now->tm_mon; y=now->tm_year; system("cls"); ptrbill=fopen("dbbill.dat","r"); gotoxy(13,4); printf("Enter bill no : "); scanf("%s",&id); system("cls"); gotoxy(25,3); ////textcolor(YELLOW+BLINK); // printf("***** CareWell Medico *****"); box(); gotoxy(7,7); printf("Bill No: "); printf(" %s",id); gotoxy(7,9); printf("Customer Name: "); gotoxy(50,7); printf("Date : "); printf("%d-%d-%d",d1,m,y); gotoxy(7,12); printf("Sr.No Medicine Name Qty Rate Total "); gotoxy(6,14); printf("---------------------------------------------------------------------"); i=15; while(fscanf(ptrbill,"%s %s %s %d %f %f %d %d %d",bil.billno,bil.cname,bil.mediname,&bil.medi_qty,&bil.medi_rate,&bil.total,&bil.day,&bil.month,&bil.year)!=EOF) { do { if(strcmp(id,bil.billno)==0) { gotoxy(7,i); printf(" %d",j); gotoxy(14,i); printf(" %s",bil.mediname); gotoxy(22,9); printf(" %s",bil.cname); gotoxy(35,i); printf(" %d",bil.medi_qty); gotoxy(47,i); printf(" %.2f",bil.medi_rate); gotoxy(60,i); printf(" %.2f",bil.total); netamt=netamt+bil.total; i++; j++; gotoxy(35,32); printf(" "); gotoxy(20,50); //textcolor(YELLOW+BLINK); printf("Press Any key to go to MENU ..........."); // break; } }while(feof(ptrbill)); } gotoxy(6,35); printf("---------------------------------------------------------------------"); gotoxy(50,37); printf("Net Amount : "); printf("%.2f",netamt); fclose(ptrbill); getch(); } //========FOR SUPPLIERS ENTRY================= void supp_entry() { int id; char ch; FILE *fp; system("cls"); fp=fopen("supplier.dat","a"); if(fp==NULL) { printf("\n Can not open file!!"); exit(0); } system("cls"); ch='y'; while(ch=='y') { system("cls"); //textcolor(14); t(); box(); lbox(); gotoxy(30,8); printf(" SUPPLIER ENTRY "); gotoxy(8,13); // //flushall(); temp1.supp_id=getsupp_id(); printf("SUPPLIER ID : %d ",temp1.supp_id); //ventry(temp1.supp_id,1); //flushall(); gotoxy(39,13); printf("SUPPLIER NAME : "); gotoxy(8,18); printf("CITY : "); gotoxy(39,18); printf("CONTACT NO. : "); gotoxy(8,23); printf("EMAIL ID : "); gotoxy(55,13); //flushall(); ventry(temp1.supp_name,0); gotoxy(22,18); ventry(temp1.city,0); //flushall(); gotoxy(55,18); ventry(temp1.mob_no,1); //flushall(); gotoxy(22,23); gets(temp1.email); //flushall(); gotoxy(20,30); //textcolor(RED+BLINK); printf("S"); //textcolor(WHITE); gotoxy(21,30); printf("ave"); gotoxy(28,30); //textcolor(RED+BLINK); printf("C"); //textcolor(WHITE); gotoxy(29,30); printf("ancel"); gotoxy(18,36); printf("Press First charecter for the operation : "); ch=getch(); if(ch=='s' || ch=='S') { fprintf(fp,"%d %s %s %s %s\n\n",temp1.supp_id,temp1.supp_name,temp1.mob_no,temp1.city,temp1.email); fprintf(fp,"\n"); //flushall(); system("cls"); gotoxy(20,20); printf("Supplier Added successfully!!!!!"); //textcolor(10); gotoxy(20,25); printf("More entries [y/n]"); ch=getche(); } } fclose(fp); } //=========FOR SUPPLIER DISPLAY LIST ========== void supp_list() { char ch; int j; system("cls"); ptr1=fopen("supplier.dat","r"); if(ptr1==NULL) { printf("\n\t Can not open File! "); exit(0); } system("cls"); box(); t(); //textcolor(GREEN+BLINK); gotoxy(8,48); printf("Press Anykey to go to SUPPLIER MENU !!!"); //textcolor(GREEN); lbox(); gotoxy(30,8); printf(" SUPPLIER LIST "); //textcolor(WHITE); gotoxy(5,10); printf("ID. SUPPLIER NAME. PH.NO. CITY. EMAIL"); gotoxy(4,12); i=14; printf("================================================================="); while(fscanf(ptr1,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.city,temp1.mob_no,temp1.email)!=EOF) { gotoxy(4,i); printf(" %d",temp1.supp_id); gotoxy(9,i); printf(" %s",temp1.supp_name); gotoxy(29,i); printf(" %s",temp1.city); gotoxy(41,i); printf(" %s",temp1.mob_no); gotoxy(54,i); printf(" %s",temp1.email); i=i+2; } getche(); } //======================search supplier================== void search() { int ch; do { system("cls"); //textcolor(WHITE); gotoxy(17,10); printf(" Two options Available for searching "); gotoxy(15,15); printf("Search by"); gotoxy(25,15); //textcolor(RED+BLINK); printf("I"); //textcolor(WHITE); gotoxy(26,15); printf("D number"); gotoxy(15,18); printf("Search by"); gotoxy(25,18); //textcolor(RED+BLINK); printf("N"); //textcolor(WHITE); gotoxy(26,18); printf("ame"); gotoxy(15,21); //textcolor(RED+BLINK); printf("R"); //textcolor(WHITE); gotoxy(16,21); printf("eturn"); main_box(); gotoxy(17,24); printf("Press First charecter for the operation : "); ch=toupper(getche()); switch(ch) { case 'I': animation(); search_id(); break; case 'N': animation(); search_name(); break; case 'R': animation(); supplier(); break; default: gotoxy(22,18); printf("You entered wrong choice!!!!!"); getch(); } }while(ch!='R'); } //=============================== Search by id ============================= void search_id() { int id; FILE *fp; fp=fopen("supplier.dat","r"); if(fp==NULL) { printf("file can't open!!!!"); } system("cls"); box(); gotoxy(13,8); printf("Enter id to be searched:"); scanf("%d",&id); gotoxy(20,35); //textcolor(YELLOW); printf("Press Any key to Return Back Menu ...."); gotoxy(12,14); printf("ID. SUPPLIER NAME. CITY. PH.NO. EMAIL"); gotoxy(12,16); i=18; printf("=============================================================="); while(fscanf(fp,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.mob_no,temp1.city,temp1.email)!=EOF) { if(temp1.supp_id==id) { gotoxy(10,i); printf(" %d",temp1.supp_id); gotoxy(15,i); printf(" %s",temp1.supp_name); gotoxy(30,i); printf(" %s",temp1.city); gotoxy(40,i); printf(" %s",temp1.mob_no); gotoxy(53,i); printf(" %s",temp1.email); i++; break; } } if(temp1.supp_id!=id) { gotoxy(20,30); printf("Record not found!"); } fclose(fp); getche(); } //============================ Search by name ============================= void search_name() { char name[20]; FILE *fp; fp=fopen("supplier.dat","r"); if(fp==NULL) { printf("file can't open!!!!"); } system("cls"); box(); fp=fopen("supplier.dat","rb"); gotoxy(13,8); printf(" Enter Supplier Name to be searched : "); scanf("%s",&name); gotoxy(20,35); //textcolor(YELLOW); printf("Press Any key to Return Back Menu ...."); gotoxy(12,14); printf("ID. SUPPLIER NAME. CITY. PH.NO. EMAIL"); gotoxy(12,16); i=18; printf("=============================================================="); while(fscanf(fp,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.mob_no, temp1.city,temp1.email)!=EOF) { if(strcmp(temp1.supp_name,name)==0) { gotoxy(11,i); printf(" %d",temp1.supp_id); gotoxy(15,i); printf(" %s",temp1.supp_name); gotoxy(30,i); printf(" %s",temp1.city); gotoxy(40,i); printf(" %s",temp1.mob_no); gotoxy(53,i); printf(" %s",temp1.email); i++; break; } } if(strcmp(temp1.supp_name,name)!=0) { gotoxy(20,30); //textcolor(YELLOW); printf("Record not found!!!"); } fclose(ptr1); getche(); } //============supp update================= void sup_update() { int i; char ch; int sid; FILE *ft; system("cls"); box(); ptr1=fopen("supplier.dat","rb+"); if(ptr1==NULL ) { printf("\n\t Can not open file!! "); exit(0); } lbox(); gotoxy(30,8); printf(" Modifying Supplier "); gotoxy(12,13); printf("Enter supplier ID : "); // //flushall(); scanf("%d",&sid); gotoxy(12,15); ft=fopen("temp.dat","w"); if(ft==NULL) { printf(" Can not open file"); exit(1); } else { while(fscanf(ptr1,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.mob_no, temp1.city,temp1.email)!=EOF) { if(temp1.supp_id==sid) { gotoxy(18,17); printf(" Existing Record "); gotoxy(10,19); printf("%d\t %s \t%s \t%s \t%s",temp1.supp_id,temp1.supp_name,temp1.mob_no, temp1.city,temp1.email); gotoxy(12,22); printf("Enter New Name : "); //flushall(); ventry(temp1.supp_name,0); gotoxy(12,24); printf("Enter New mobile no : "); //flushall(); ventry(temp1.mob_no,1); gotoxy(12,26); printf("Enter New City : "); //flushall(); ventry(temp1.city,0); gotoxy(12,28); printf("Enter New email : "); //flushall(); ventry(temp1.email,2); gotoxy(20,32); //textcolor(RED+BLINK); printf("U"); gotoxy(21,32); //textcolor(WHITE); printf("pdate"); gotoxy(30,32); //textcolor(RED+BLINK); printf("C"); gotoxy(31,32); //textcolor(WHITE); printf("ancel"); gotoxy(18,36); printf("Press First charecter for the operation : "); ch=getch(); if(ch=='u' || ch=='U') { fprintf(ft,"%d %s %s %s %s\n",temp1.supp_id,temp1.supp_name,temp1.mob_no,temp1.city,temp1.email); //flushall(); gotoxy(20,38); printf("Supplier updated successfully..."); remove("supplier.dat"); rename("temp.dat","supplier.dat"); } } else { fprintf(ft,"%d %s %s %s %s\n",temp1.supp_id,temp1.supp_name,temp1.mob_no,temp1.city,temp1.email); fflush(stdin); } } fclose(ft); fclose(ptr1); } } //===============================END OF SUPPLIER FUNCTION=================== //========FOR CUSTOMER ENTRY================= void cust_entry() { char ch; int id; FILE *fp; system("cls"); fp=fopen("customer.dat","a"); if(fp==NULL) { printf("\n Can not open file!!"); exit(0); } system("cls"); ch='y'; while(ch=='y') { system("cls"); //textcolor(14); t(); box(); lbox(); gotoxy(30,8); printf(" CUSTOMER ENTRY "); gotoxy(8,13); //flushall(); temp_c.cust_id=getcust_id(); printf("CUSTOMER ID :%d",temp_c.cust_id); //ventry(temp_c.cust_id,1); //flushall(); gotoxy(39,13); printf("CUSTOMER NAME : "); gotoxy(8,18); printf("CITY : "); gotoxy(39,18); printf("CONTACT NO. : "); gotoxy(8,23); printf("EMAIL ID : "); gotoxy(55,13); //flushall(); ventry(temp_c.cust_name,0); gotoxy(22,18); ventry(temp_c.city,0); //flushall(); gotoxy(55,18); ventry(temp_c.mob_no,1); //flushall(); gotoxy(22,23); gets(temp_c.email); //flushall(); gotoxy(20,30); //textcolor(RED+BLINK); printf("S"); //textcolor(WHITE); gotoxy(21,30); printf("ave"); gotoxy(28,30); //textcolor(RED+BLINK); printf("C"); //textcolor(WHITE); gotoxy(29,30); printf("ancel"); gotoxy(18,36); printf("Press First charecter for the operation : "); ch=getch(); if(ch=='s' || ch=='S') { fprintf(fp,"%d %s %s %s %s\n",temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email); fprintf(fp,"\n"); fflush(stdin); system("cls"); gotoxy(20,20); printf("Customer Added Successfully!!!!!"); //textcolor(10); gotoxy(20,25); printf("More entries [y/n] "); ch=getche(); } } fclose(fp); } //=========FOR CUSTOMER DISPLAY LIST ========== void cust_list() { char ch; system("cls"); ptr1=fopen("customer.dat","r"); if(ptr1==NULL) { printf("\n\t Can not open File! "); exit(0); } system("cls"); box(); //textcolor(GREEN+BLINK); gotoxy(8,48); printf("Press Anykey to go to CUSTOMER MENU!!!"); //textcolor(GREEN); lbox(); gotoxy(30,8); printf(" CUSTOMER LIST "); //textcolor(WHITE); i=14; gotoxy(5,10); printf(" ID. CUSTOMER NAME. CITY. MOBILE.NO. EMAIL"); gotoxy(4,12); printf("=============================================================="); while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF) { gotoxy(4,i); printf(" %d",temp_c.cust_id); gotoxy(11,i); printf(" %s",temp_c.cust_name); gotoxy(28,i); printf(" %s",temp_c.city); gotoxy(40,i); printf(" %s",temp_c.mob_no); gotoxy(53,i); printf(" %s",temp_c.email); i=i+2; } getche(); } //======================search CUSTOMER================== void cust_search() { int ch; do { system("cls"); //textcolor(WHITE); gotoxy(17,10); printf(" Two options Available for searching "); gotoxy(15,15); printf("Search by"); gotoxy(25,15); //textcolor(RED+BLINK); printf("I"); //textcolor(WHITE); gotoxy(26,15); printf("D number"); gotoxy(15,18); printf("Search by"); gotoxy(25,18); //textcolor(RED+BLINK); printf("N"); //textcolor(WHITE); gotoxy(26,18); printf("ame"); gotoxy(15,21); //textcolor(RED+BLINK); printf("R"); //textcolor(WHITE); gotoxy(16,21); printf("eturn"); main_box(); gotoxy(17,24); printf("Press First charecter for the operation : "); ch=toupper(getche()); switch(ch) { case 'I': animation(); search_cid(); break; case 'N': animation(); search_cname(); break; case 'R': animation(); customer(); break; default: gotoxy(22,18); printf("You entered wrong choice!!!!!"); getch(); } }while(ch!='R'); getche(); } //===========================Search by CustomerId========================= void search_cid() { int id; system("cls"); box(); ptr1=fopen("customer.dat","rb"); gotoxy(13,8); printf("\xDB\xDB\xB2 Enter id to be searched:"); scanf("%d",&id); //textcolor(GREEN); //textcolor(WHITE); i=18; gotoxy(9,15); printf(" ID. CUSTOMER NAME. CITY. MOBILE.NO. EMAIL"); gotoxy(8,16); printf("=============================================================="); while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF) { if(temp_c.cust_id==id) { gotoxy(8,i); printf(" %d",temp_c.cust_id); gotoxy(15,i); printf(" %s",temp_c.cust_name); gotoxy(28,i); printf(" %s",temp_c.city); gotoxy(40,i); printf(" %s",temp_c.mob_no); gotoxy(54,i); printf(" %s",temp_c.email); gotoxy(20,35); //textcolor(YELLOW); printf("Press Any key to go to CUSTOMER MENU ..........."); break; } } if(temp_c.cust_id!=id) { gotoxy(20,30); printf("Record not found!"); } fclose(ptr1); getche(); } /*****************************search by CUSTOMERname******************************/ void search_cname() { char name[20]; system("cls"); box(); ptr1=fopen("customer.dat","rb"); gotoxy(12,8); printf("\xDB\xDB\xB2 Enter Customer Name to be searched:"); scanf("%s",&name); //textcolor(GREEN); //textcolor(WHITE); i=18; gotoxy(9,15); printf(" ID. CUSTOMER NAME. CITY. MOBILE.NO. EMAIL"); gotoxy(8,16); printf("=============================================================="); while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF) { if(strcmp(temp_c.cust_name,name)==0) { gotoxy(8,i); printf(" %d",temp_c.cust_id); gotoxy(15,i); printf(" %s",temp_c.cust_name); gotoxy(28,i); printf(" %s",temp_c.city); gotoxy(40,i); printf(" %s",temp_c.mob_no); gotoxy(54,i); printf(" %s",temp_c.email); gotoxy(20,35); //textcolor(YELLOW); printf("Press Any key to go to CUSTOMER MENU ..........."); break; } } if(strcmp(temp_c.cust_name,name)!=0) { gotoxy(5,10); //textcolor(YELLOW); printf("Record not found!"); } fclose(ptr1); getche(); } //============CUSTOMER update================= void cust_update() { int i; char ch; int cid; FILE *ft; system("cls"); box(); ptr1=fopen("customer.dat","rb+"); if(ptr1==NULL) { printf("\n\t Can not open file!! "); exit(0); } lbox(); gotoxy(30,8); printf(" Modifying customer "); gotoxy(12,13); printf("Enter the CUSTOMER ID : "); scanf("%d",&cid); gotoxy(12,15); ft=fopen("temp.txt","w"); if(ft==NULL) { printf("\n Can not open file"); exit(0); } else { while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF) { if(temp_c.cust_id==cid) { gotoxy(25,17); printf("*** Existing Record ***"); gotoxy(10,19); printf("%d\t %s \t%s \t%s \t%s",temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email); gotoxy(12,22); printf("Enter New Name : "); //flushall(); ventry(temp_c.cust_name,0); gotoxy(12,24); printf("Enter New mobile no : "); //flushall(); ventry(temp_c.mob_no,1); gotoxy(12,26); printf("Enter New City : "); //flushall(); ventry(temp_c.city,0); gotoxy(12,28); printf("Enter New email : "); //flushall(); scanf("%s",temp_c.email); gotoxy(20,32); //textcolor(RED+BLINK); printf("U"); gotoxy(21,32); //textcolor(WHITE); printf("pdate"); gotoxy(30,32); //textcolor(RED+BLINK); printf("C"); gotoxy(31,32); //textcolor(WHITE); printf("ancel"); gotoxy(18,35); printf("Press First charecter for the operation : "); ch=getche(); if(ch=='u' || ch=='U') { fprintf(ft,"%d %s %s %s %s\n",temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email); // fprintf(ft,"\n"); fflush(stdin); gotoxy(20,36); printf("Customer updated successfully..."); remove("customer.dat"); rename("temp.txt","customer.dat"); } } else { fprintf(ft,"%d %s %s %s %s\n",temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email); fflush(stdin); } } fclose(ft); fclose(ptr1); } } //============================ END OF CUSTOMER FUNCTION =================== //============================ FOR MEDICINE PURCHASE =================== void medi_entry() { char ch,id[6]; // struct date d; time_t t = time(0); // get time now struct tm * now = localtime( & t ); int f; FILE *fp; system("cls"); //getdate(&d); ptrp_r=fopen("purreport.dat","a"); ch='Y'; while(ch=='Y') { system("cls"); box(); //textcolor(14); // t(); // THIS FUN IS USED FOR DISPLAY DATE & TIME....... lbox(); gotoxy(30,8); ////textcolor(GREEN+BLINK); printf(" MEDICINE PURSHASE "); { //textcolor(WHITE); gotoxy(7,11); printf("MEDICINE ID : "); gotoxy(40,11); printf("MEDICINE NAME : "); gotoxy(7,14); printf("ENTER RACK NO : "); gotoxy(40,14); printf("CABNIT NO : "); gotoxy(7,18); printf("COMPANY NAME : "); gotoxy(40,18); printf("SUPPLIER NAME : "); gotoxy(7,21); printf("UNIT COST Rs.: "); gotoxy(40,21); printf("SALE COST Rs.: "); gotoxy(7,24); printf("QUANTITY : "); gotoxy(7,27); printf("MFG.DATE(dd-mm-yyyy): "); gotoxy(7,29); printf("EXP.DATE(dd-mm-yyyy): "); gotoxy(25,11); ventry(temp.id,1); strcpy(id,temp.id); fp=fopen("medical.dat","r"); while((fread(&temp,sizeof(temp),1,fp))==1) { if(strcmp(id,temp.id)==0) { f=1; break; } } fclose(fp); if(f==1) { gotoxy(20,31); printf("ID Allready Exists"); getche(); system("cls"); medi_entry(); } else { ptr=fopen("medical.dat","a+b"); strcpy(temp.id,id); strcpy(p_r.medi_id,temp.id); } //flushall(); gotoxy(58,11); ventry(temp.medi_name,0); strcpy(p_r.medir_name,temp.medi_name); //flushall(); gotoxy(25,14); ventry(a,1); temp.rack= atoi(a);//atoi() used for convert str to int. //flushall(); gotoxy(58,14); ventry(temp.cabnit,2); //flushall(); gotoxy(25,18); ventry(temp.comp_name,0); //flushall(); gotoxy(58,18); ventry(temp.supp_name,0); strcpy(p_r.supp_name,temp.supp_name); //flushall(); gotoxy(25,21); ventry(a,1); temp.unit= atof(a); //flushall(); p_r.rate=temp.unit; gotoxy(58,21); ventry(a,1); temp.sale= atof(a); //flushall(); gotoxy(25,24); ventry(a,1); temp.quantity= atoi(a); p_r.qty=temp.quantity; //flushall(); gotoxy(29,27); //flushall(); ventry(temp.manu_date,1); gotoxy(29,29); //flushall(); ventry(temp.exp_date,1); gotoxy(7,31); printf("=========================================================="); temp.total=temp.quantity*temp.sale; //textcolor(10); gotoxy(10,33); printf("TOTAL SALE COST = Rs. %.2f",temp.total); temp.cost=(temp.unit*temp.quantity); gotoxy(40,33); printf("TOTAL UNIT COST = Rs. %.2f",temp.cost); p_r.total=temp.cost; p_r.sDay=now->tm_mday; p_r.sMonth=now->tm_mon; p_r.sYear=now->tm_year; } gotoxy(20,35); //textcolor(RED+BLINK); printf("S"); //textcolor(WHITE); gotoxy(21,35); printf("ave"); gotoxy(28,35); //textcolor(RED+BLINK); printf("C"); //textcolor(WHITE); gotoxy(29,35); printf("ancel"); gotoxy(18,38); printf("Press First charecter for the operation : "); ch=toupper(getche()); if(ch=='S') { fwrite(&temp,sizeof(temp),1,ptr); fflush(stdin); //textcolor(10); fprintf(ptrp_r,"%s %s %s %d %.2f %.2f %d %d %d\n",p_r.medi_id,p_r.medir_name,p_r.supp_name,p_r.qty,p_r.rate,p_r.total,p_r.sDay,p_r.sMonth,p_r.sYear); system("cls"); gotoxy(20,20); printf("Medicine Added sucessfully!!!!!!"); gotoxy(20,25); printf("More entries [y/n]"); ch=toupper(getche()); } } fclose(ptr); fclose(ptrp_r); } //===========FOR MEDICINE SALE========================= void medi_sale() { struct bill bil; //struct date d; time_t t = time(0); // get time now struct tm * now = localtime( & t ); int j,n,i,a,billno; int d1,m,y; float b,total,rate; char tar[30],ch,mediname[30],c_name[30],cname[30]; FILE *fp,*fpc; int count=0; //getdate(&d); d1=now->tm_mday; m=now->tm_mon; y=now->tm_year; ch='y'; while(ch=='y') { fp = fopen("dbbill.dat","a"); ptr1 = fopen("customer.dat","r"); ptr = fopen("medical.dat","r"); ptrs_r=fopen("saleRpt.dat","a"); ptrpr_r=fopen("profitRpt.dat","a"); system("cls"); box(); for(i=3;i<=45;i++) //This 'FOR' loop will print asteriks 'I' { //vertically till the 3th row is reached. gotoxy(50,i); printf("%c",219); } i=9; gotoxy(52,7); printf("Cust_ID Cust_Name"); //flushall(); while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF) { gotoxy(53,i); printf("%d",temp_c.cust_id); gotoxy(64,i); printf("%s",temp_c.cust_name); i+=2; } gotoxy(9,7); printf("ENTER MEDICINE ID TO BE SOLD : "); ventry(tar,1); //scanf("%s",&tar); j=0; while((fread(&temp,sizeof(temp),1,ptr))==1) { if((strcmp(temp.id,tar)<0) || (strcmp(temp.id,tar)>0)) { x[j] = temp; j++; } else if((strcmp(temp.id,tar)==0)) { gotoxy(8,10); printf(" Medicine Name : %s",temp.medi_name); gotoxy(8,12); printf(" Quantity in stock : %d",temp.quantity); gotoxy(8,14); printf(" Sales price : %.2f",temp.sale); gotoxy(8,16); printf("Enter bill number : "); //flushall(); ventry(bil.billno,1); //scanf("%s",&bil.billno); gotoxy(8,18); printf("Enter customer Name : "); //flushall(); ventry(c_name,0); //scanf("%s",&c_name); gotoxy(8,20); printf("Quantity want to sale : "); //ventry(a,1); scanf("%d",&a); pr_r.profit=(temp.sale-temp.unit)*a; x[j]=temp; x[j].quantity=(x[j].quantity-a); x[j].total=(x[j].quantity*temp.sale); x[j].cost=(x[j].quantity*temp.unit); x[j].bye=(x[j].sale*a); b=x[j].bye; x[j].qty=a; j++; count++; strcpy(bil.cname,c_name); strcpy(s_r.cust_name,c_name); strcpy(bil.mediname,temp.medi_name); bil.medi_qty=a; bil.medi_rate=temp.sale; bil.total=temp.sale*a; bil.day=d1; bil.month=m; bil.year=y; fprintf(fp,"%s %s %s %d %.2f %.2f %d %d %d\n",bil.billno,bil.cname,bil.mediname,bil.medi_qty,bil.medi_rate,bil.total,bil.day,bil.month,bil.year); fflush(stdin); fclose(fp); s_r.sDay=d1; s_r.sMonth=m; s_r.sYear=y; strcpy(s_r.medi_id,tar); strcpy(s_r.medir_name,temp.medi_name); s_r.qty=a; s_r.rate=temp.sale; s_r.total=temp.sale*a; //sale report fprintf(ptrs_r,"%s %s %s %d %.2f %.2f %d %d %d\n",s_r.medi_id,s_r.medir_name,s_r.cust_name,s_r.qty,s_r.rate,s_r.total,s_r.sDay,s_r.sMonth,s_r.sYear); fflush(stdin); fclose(ptrs_r); //profit report pr_r.sDay=d1; pr_r.sMonth=m; pr_r.sYear=y; strcpy(pr_r.medi_id,tar); strcpy(pr_r.medir_name,temp.medi_name); pr_r.qty=a; pr_r.rate=temp.sale; pr_r.unit=temp.unit; fprintf(ptrpr_r,"%s %s %d %d %d %d %.2f %.2f %.2f\n",pr_r.medi_id,pr_r.medir_name,d1,pr_r.sMonth,pr_r.sYear,pr_r.qty,pr_r.unit,pr_r.rate,pr_r.profit); fflush(stdin); fclose(ptrpr_r); } } if (count==0) { system("cls"); gotoxy(33,10); printf("Not in stock!!!!!"); getch(); return; } fclose(ptr1); fclose(ptr); n = j; system("cls"); ptr=fopen("medical.dat","wb"); for(i=0; i<n; i++) fwrite(&x[i],sizeof(x[i]),1,ptr); fclose(ptr); system("cls"); box(); gotoxy(8,15); printf("* Price paid by customer = %.2f",b); gotoxy(8,17); printf("* Quantity sold = %d",a); getch(); gotoxy(10,20); printf("more enteries=(y/n) :"); ch=getche(); } } //===========================MEDICINE STOCK===================================== void stock() { char ch; int i,c; do { system("cls"); ptr1=fopen("medical.dat","r"); if(ptr1==NULL) { printf("\n\t Can not open File! "); exit(1); } system("cls"); box(); lbox(); //textcolor(GREEN); gotoxy(30,8); ////textcolor(GREEN+BLINK); printf(" STOCK OF MEDICINE "); //textcolor(WHITE); i=14; gotoxy(9,10); printf("ID. MEDICINE NAME. QTY Supplier Name Exp.Date"); gotoxy(9,12); printf("==================================================================\n"); while((fread(&temp,sizeof(temp),1,ptr1))==1) { gotoxy(9,i); printf(" %s",temp.id); gotoxy(15,i); printf(" %s",temp.medi_name); gotoxy(32,i); printf(" %d",temp.quantity); gotoxy(43,i); printf(" %s",temp.supp_name); gotoxy(60,i); printf(" %s",temp.exp_date); i++; } gotoxy(10,42); printf("Press [1] for Update Medicine Stock & [0] for main menu "); c = (getche()); switch (c) { case '0':animation(); main_menu(); break; case '1':update_stock(); break; } }while(c != '1'); getche(); } //=============================== FOR MEDICINE SEARCH ==================== void medi_search() { char mid[6]; int i,c; system("cls"); ptr1=fopen("medical.dat","r"); if(ptr1==NULL) { printf("\n\t Can not open File! "); exit(0); } system("cls"); box(); gotoxy(10,7); printf("Enter Medicine Id to be searched : "); scanf("%s",&mid); system("cls"); box(); lbox(); //textcolor(GREEN); gotoxy(30,8); //textcolor(GREEN+BLINK); printf(" MEDICINE "); //textcolor(WHITE); i=14; gotoxy(9,10); printf("ID. MEDICINE NAME. QTY Supplier Name Exp.Date"); gotoxy(9,12); printf("==================================================================\n"); while((fread(&temp,sizeof(temp),1,ptr1))==1) { if(strcmp(mid,temp.id)==0) { gotoxy(9,i); printf(" %s",temp.id); gotoxy(15,i); printf(" %s",temp.medi_name); gotoxy(32,i); printf(" %d",temp.quantity); gotoxy(43,i); printf(" %s",temp.supp_name); gotoxy(60,i); printf(" %s",temp.exp_date); i++; break; } } if(strcmp(mid,temp.id)!=0) { gotoxy(20,20); printf("Not in Stock....."); } getche(); } //============================ FOR MEDICINE UPDATE ===================== void update_stock() { char mid[6]; int j,a,count=0,n; system("cls"); ptr=fopen("medical.dat","rb"); if(ptr==NULL) { printf("\n\t Can not open File! "); exit(0); } system("cls"); box(); gotoxy(20,45); printf("Press Enter to go to MENU ..........."); //textcolor(GREEN); gotoxy(27,8); ////textcolor(GREEN+BLINK); printf(" UPDATE MEDICINE QUANTITY "); //textcolor(WHITE); gotoxy(9,10); printf("Enter medicine id to be update qty: "); scanf("%s",&mid); j=0; while((fread(&temp,sizeof(temp),1,ptr))==1) { if((strcmp(temp.id,mid)<0) || (strcmp(temp.id,mid)>0)) { x[j] = temp; j++; } else { gotoxy(8,12); printf("Medicine Name : %s",temp.medi_name); gotoxy(8,14); printf("Quantity in stock : %d",temp.quantity); gotoxy(8,16); printf("Quantity want to update : "); scanf("%d",&a); x[j]=temp; x[j].quantity=(x[j].quantity+a); x[j].total=(x[j].quantity*temp.sale); x[j].cost=(x[j].quantity*temp.unit); x[j].bye=(x[j].sale*a); x[j].qty=a; j++; count++; } } if (count==0) { system("cls"); gotoxy(33,10); printf("Not in stock!!!!!!"); getch(); return; } fclose(ptr); n = j; system("cls"); ptr=fopen("medical.dat","wb"); for(i=0; i<n; i++) fwrite(&x[i],sizeof(x[i]),1,ptr); fclose(ptr); } //===================== view report =============================/ void sale_rpt() { char ch; int j; system("cls"); ptrs_r=fopen("saleRpt.dat","r"); if(ptrs_r==NULL) { printf("\n\t Can not open File! "); exit(0); } system("cls"); box(); gotoxy(20,50); printf("Press any key to go to REPORT MENU ..........."); lbox(); //textcolor(GREEN); gotoxy(30,8); ////textcolor(GREEN+BLINK); printf("Sales Report"); //textcolor(WHITE); gotoxy(7,10); printf("ID. Medicine Name. Customer Name. Qty. Rate. Total. Date"); gotoxy(7,12); printf("==================================================================="); j=14; while(fscanf(ptrs_r,"%s %s %s %d %f %f %d %d %d\n",s_r.medi_id,s_r.medir_name,s_r.cust_name,&s_r.qty,&s_r.rate,&s_r.total,&s_r.sDay,&s_r.sMonth,&s_r.sYear)!=EOF) { gotoxy(6,j); printf("%s",s_r.medi_id); gotoxy(11,j); printf("%s",s_r.medir_name); gotoxy(28,j); printf("%s",s_r.cust_name); gotoxy(44,j); printf("%d",s_r.qty); gotoxy(50,j); printf("%.2f",s_r.rate); gotoxy(57,j); printf("%.2f",s_r.total); gotoxy(65,j); printf("%d-%d-%d",s_r.sDay,s_r.sMonth,s_r.sYear); j=j+2; } getche(); } //======================= VIEW PURCHASE REPORT =========================== void pur_rpt() { char ch; int j; system("cls"); t(); box(); ptrp_r=fopen("purreport.dat","r"); if(ptrp_r==NULL) { printf("\n\t Can not open File! "); exit(0); } gotoxy(20,50); printf("Press Enter to go to REPORT MENU ..........."); lbox(); //textcolor(GREEN); gotoxy(30,8); printf("Purchase Report"); //textcolor(WHITE); gotoxy(7,10); printf("ID. Medicine Name. Supplier Name. Qty. Rate. Total. Date"); gotoxy(7,12); printf("==================================================================="); j=14; while(fscanf(ptrp_r,"%s %s %s %d %f %f %d %d %d\n",p_r.medi_id,p_r.medir_name,p_r.supp_name,&p_r.qty,&p_r.rate,&p_r.total,&p_r.sDay,&p_r.sMonth,&p_r.sYear)!=EOF) { gotoxy(6,j); printf("%s",p_r.medi_id); gotoxy(11,j); printf("%s",p_r.medir_name); gotoxy(28,j); printf("%s",p_r.supp_name); gotoxy(44,j); printf("%d",p_r.qty); gotoxy(50,j); printf("%.2f",p_r.rate); gotoxy(57,j); printf("%.2f",p_r.total); gotoxy(65,j); printf("%d-%d-%d",p_r.sDay,p_r.sMonth,p_r.sYear); j+=2; } getche(); } //========================= report of profit =========================== void profit_rpt() { char ch; int j; system("cls"); t(); box(); ptrpr_r=fopen("profitRpt.dat","r"); if(ptrpr_r==NULL) { printf("\n\t Can not open File! "); // exit(0); } gotoxy(20,50); printf("Press Enter to go to REPORT MENU ..........."); lbox(); //textcolor(GREEN); gotoxy(30,8); printf("Profit Report"); //textcolor(WHITE); gotoxy(7,10); printf("ID. Medicine Name. Date Qty. Unit Price Sale Price. Profit. "); gotoxy(7,12); printf("==================================================================="); j=14; while(fscanf(ptrpr_r,"%s %s %d %d %d %d %f %f %f \n",pr_r.medi_id,pr_r.medir_name,&pr_r.sDay,&pr_r.sMonth,&pr_r.sYear,&pr_r.qty,&pr_r.unit,&pr_r.rate,&pr_r.profit)!=EOF) { gotoxy(6,j); printf("%s",pr_r.medi_id); gotoxy(11,j); printf("%s",pr_r.medir_name); gotoxy(28,j); printf("%d-%d-%d",pr_r.sDay,pr_r.sMonth,pr_r.sYear); gotoxy(40,j); printf("%d",pr_r.qty); gotoxy(48,j); printf("%.2f",pr_r.unit); gotoxy(60,j); printf("%.2f",pr_r.rate); gotoxy(70,j); printf("%.2f",pr_r.profit); gotoxy(10,j); printf("%c",124); j+=2; } getche(); } void sale_rpt_daily() { char ch; int j,d,m,y; float total=0.00; system("cls"); ptrs_r=fopen("saleRpt.dat","r"); if(ptrs_r==NULL) { printf("\n\t Can not open File! "); exit(0); } system("cls"); gotoxy(15,10); printf("Enter Date(dd-mm-yyyy): "); scanf("%d-%d-%d",&d,&m,&y); system("cls"); gotoxy(20,50); printf("Press any key to go to REPORT MENU ..........."); box(); lbox(); //textcolor(GREEN); gotoxy(30,8); ////textcolor(GREEN+BLINK); printf("Sales Report"); //textcolor(WHITE); gotoxy(7,10); printf("ID. Medicine Name. Customer Name. Qty. Rate. Total. Date"); gotoxy(7,12); printf("==================================================================="); j=14; while(fscanf(ptrs_r,"%s %s %s %d %f %f %d %d %d\n",s_r.medi_id,s_r.medir_name,s_r.cust_name,&s_r.qty,&s_r.rate,&s_r.total,&s_r.sDay,&s_r.sMonth,&s_r.sYear)!=EOF) { if(d==s_r.sDay &&m== s_r.sMonth && y==s_r.sYear) { gotoxy(6,j); printf("%s",s_r.medi_id); gotoxy(11,j); printf("%s",s_r.medir_name); gotoxy(28,j); printf("%s",s_r.cust_name); gotoxy(44,j); printf("%d",s_r.qty); gotoxy(50,j); printf("%.2f",s_r.rate); gotoxy(57,j); printf("%.2f",s_r.total); gotoxy(65,j); printf("%d-%d-%d",s_r.sDay,s_r.sMonth,s_r.sYear); j=j+2; total=total+s_r.total; } } gotoxy(7,42); printf("-------------------------------------------------------------------"); gotoxy(45,43); printf("Total: %.2f",total); getche(); } void pur_rpt_daily() { char ch; int j,d,m,y; float total=0.00; ptrp_r=fopen("purreport.dat","r"); if(ptrp_r==NULL) { printf("\n\t Can not open File! "); exit(0); } system("cls"); gotoxy(15,10); printf("Enter Date(dd-mm-yyyy): "); scanf("%d-%d-%d",&d,&m,&y); system("cls"); gotoxy(20,50); printf("Press Enter to go to REPORT MENU ..........."); t(); box(); lbox(); //textcolor(GREEN); gotoxy(30,8); printf("Purchase Report"); //textcolor(WHITE); gotoxy(7,10); printf("ID. Medicine Name. Supplier Name. Qty. Rate. Total. Date"); gotoxy(7,12); printf("==================================================================="); j=14; while(fscanf(ptrp_r,"%s %s %s %d %f %f %d %d %d\n",p_r.medi_id,p_r.medir_name,p_r.supp_name,&p_r.qty,&p_r.rate,&p_r.total,&p_r.sDay,&p_r.sMonth,&p_r.sYear)!=EOF) { if(d==p_r.sDay &&m== p_r.sMonth && y==p_r.sYear) { gotoxy(6,j); printf("%s",p_r.medi_id); gotoxy(11,j); printf("%s",p_r.medir_name); gotoxy(28,j); printf("%s",p_r.supp_name); gotoxy(44,j); printf("%d",p_r.qty); gotoxy(50,j); printf("%.2f",p_r.rate); gotoxy(57,j); printf("%.2f",p_r.total); gotoxy(65,j); printf("%d-%d-%d",p_r.sDay,p_r.sMonth,p_r.sYear); j+=2; total=total+p_r.total; } } gotoxy(7,42); printf("-------------------------------------------------------------------"); gotoxy(45,43); printf("Total: %.2f",total); getche(); } //=============================================:) THE END :) =================================
Steps to Run the Project
- Extract the Downloaded Zip file or copy the above source code.
- Open the file using C++ Compiler such as Dev C++ etc.
- paste the source code and save the file in any of the computer locations.
- Compile the project using compile option.
- There is no error in the source code, if found then correct it.
- Now run the project.
- The executable .exe file will be generated in the location you choose.
Summary:
In this way, we’ve created and executed the Medical Store Management System Project in C++. If you have any doubt then please feel free to contact us. We’ll solve your doubts as soon as possible.
Thanks and HAPPY CODING :)
Also Read:
- 50+ Interesting C Projects.
- 25+ C++ Projects.
- Railway Reservation System Project in C++.
- Bus Reservation System Project in C++.
- Airline Reservation System Project in C++.
- Gym Management System Project in C++