100% found this document useful (1 vote)
1K views

C++ Project On Supermarket

This document contains the code for a C++ program that implements a supermarket billing system. It includes classes for products with methods to create, display, and retrieve product details. There are functions to write products to a file, display all products or a specific product, modify and delete products. Additional functions implement an administrator menu to manage products, a customer menu to place orders and generate bills. The main function provides a menu to select the administrator or customer role.

Uploaded by

s sundararajan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
1K views

C++ Project On Supermarket

This document contains the code for a C++ program that implements a supermarket billing system. It includes classes for products with methods to create, display, and retrieve product details. There are functions to write products to a file, display all products or a specific product, modify and delete products. Additional functions implement an administrator menu to manage products, a customer menu to place orders and generate bills. The main function provides a menu to select the administrator or customer role.

Uploaded by

s sundararajan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

//***************************************************************

// HEADER FILE USED IN PROJECT


//****************************************************************

#include<conio.h>
#include<stdio.h>
#include<process.h>
#include<fstream.h>

//***************************************************************
// CLASS USED IN PROJECT
//****************************************************************

class product
{
int pno;
char name[50];
float price, qty, tax, dis;
public:
void create_product()
{
cout << "\nPlease Enter The Product No. of The Product ";
cin >> pno;
cout << "\n\nPlease Enter The Name of The Product ";
gets(name);
cout << "\nPlease Enter The Price of The Product ";
cin >> price;
cout << "\nPlease Enter The Discount (%) ";
cin >> dis;
}

void show_product()
{
cout << "\nThe Product No. of The Product : " << pno;
cout << "\nThe Name of The Product : ";
puts(name);
cout << "\nThe Price of The Product : " << price;
cout << "\nDiscount : " << dis;
}

int retpno()
{
return pno;
}

float retprice()
{
return price;
}

char * retname()
{
return name;
}
int retdis()
{
return dis;
}

}; //class ends here

//***************************************************************
// global declaration for stream object, object
//****************************************************************

fstream fp;
product pr;
//***************************************************************
// function to write in file
//****************************************************************

void write_product()
{
fp.open("Shop.dat", ios::out | ios::app);
pr.create_product();
fp.write((char * ) & pr, sizeof(product));
fp.close();
cout << "\n\nThe Product Has Been Created ";
getch();
}
//***************************************************************
// function to read all records from file
//****************************************************************
void display_all()
{
clrscr();
cout << "\n\n\n\t\tDISPLAY ALL RECORD !!!\n\n";
fp.open("Shop.dat", ios:: in );
while (fp.read((char * ) & pr, sizeof(product)))
{
pr.show_product();
cout << "\n\n====================================\n";
getch();
}
fp.close();
getch();
}
//***************************************************************
// function to read specific record from file
//****************************************************************
void display_sp(int n)
{
int flag = 0;
fp.open("Shop.dat", ios:: in );
while (fp.read((char * ) & pr, sizeof(product)))
{
if (pr.retpno() == n)
{
clrscr();
pr.show_product();
flag = 1;
}
}
fp.close();
if (flag == 0)
cout << "\n\nrecord not exist";
getch();
}
//***************************************************************
// function to modify record of file
//****************************************************************
void modify_product()
{
int no, found = 0;
clrscr();
cout << "\n\n\tTo Modify ";
cout << "\n\n\tPlease Enter The Product No. of The Product";
cin >> no;
fp.open("Shop.dat", ios:: in | ios::out);
while (fp.read((char * ) & pr, sizeof(product)) && found == 0)
{
if (pr.retpno() == no)
{
pr.show_product();
cout << "\nPlease Enter The New Details of Product" << endl;
pr.create_product();
int pos = -1 * sizeof(pr);
fp.seekp(pos, ios::cur);
fp.write((char * ) & pr, sizeof(product));
cout << "\n\n\t Record Updated";
found = 1;
}
}
fp.close();
if (found == 0)
cout << "\n\n Record Not Found ";
getch();
}
//***************************************************************
// function to delete record of file
//****************************************************************
void delete_product()
{
int no;
clrscr();
cout << "\n\n\n\tDelete Record";
cout << "\n\nPlease Enter The product no. of The Product You Want To Delete";
cin >> no;
fp.open("Shop.dat", ios:: in | ios::out);
fstream fp2;
fp2.open("Temp.dat", ios::out);
fp.seekg(0, ios::beg);
while (fp.read((char * ) & pr, sizeof(product)))
{
if (pr.retpno() != no)
{
fp2.write((char * ) & pr, sizeof(product));
}
}
fp2.close();
fp.close();
remove("Shop.dat");
rename("Temp.dat", "Shop.dat");
cout << "\n\n\tRecord Deleted ..";
getch();
}
//***************************************************************
// function to display all products price list
//****************************************************************

void menu()
{
clrscr();
fp.open("Shop.dat", ios:: in );
if (!fp)
{
cout << "ERROR!!! FILE COULD NOT BE OPEN\n\n\n Go To Admin Menu to create
File ";
cout << "\n\n\n Program is closing ....";
getch();
exit(0);
}

cout << "\n\n\t\tProduct MENU\n\n";


cout << "====================================================\n";
cout << "P.NO.\t\tNAME\t\tPRICE\n";
cout << "====================================================\n";

while (fp.read((char * ) & pr, sizeof(product)))


{
cout << pr.retpno() << "\t\t" << pr.retname() << "\t\t" << pr.retprice() <<
endl;
}
fp.close();
}

//***************************************************************
// function to place order and generating bill for Products
//****************************************************************

void place_order()
{
int order_arr[50], quan[50], c = 0;
float amt, damt, total = 0;
char ch = 'Y';
menu();
cout << "\n============================";
cout << "\n PLACE YOUR ORDER";
cout << "\n============================\n";
do
{
cout << "\n\nEnter The Product No. Of The Product : ";
cin >> order_arr[c];
cout << "\nQuantity in number : ";
cin >> quan[c];
c++;
cout << "\nDo You Want To Order Another Product ? (y/n)";
cin >> ch;
} while (ch == 'y' || ch == 'Y');
cout << "\n\nThank You For Placing The Order";
getch();
clrscr();
cout << "\n\n******************************** INVOICE
************************\n";
cout << "\nPr No.\tPr Name\tQuantity \tPrice \tAmount \tAmount after
discount\ n ";
for (int x = 0; x <= c; x++)
{
fp.open("Shop.dat", ios:: in );
fp.read((char * ) & pr, sizeof(product));
while (!fp.eof())
{
if (pr.retpno() == order_arr[x])
{
amt = pr.retprice() * quan[x];
damt = amt - (amt * pr.retdis() / 100);
cout << "\n" << order_arr[x] << "\t" << pr.retname() <<
"\t" << quan[x] << "\t\t" << pr.retprice() << "\t" << amt <<
"\t\t" << damt;
total += damt;
}
fp.read((char * ) & pr, sizeof(product));
}

fp.close();
}
cout << "\n\n\t\t\t\t\tTOTAL = " << total;
getch();
}

//***************************************************************
// INTRODUCTION FUNCTION
//****************************************************************

void intro()
{
clrscr();
gotoxy(31, 11);
cout << "SUPER MARKET";
gotoxy(35, 14);
cout << "BILLING";
gotoxy(35, 17);
cout << "PROJECT";
cout << "\n\nMADE BY : ANUJ KUMAR";
cout << "\n\nSCHOOL : RYAN INTERNATIONAL SCHOOL";
getch();

//***************************************************************
// ADMINSTRATOR MENU FUNCTION
//****************************************************************
void admin_menu()
{
clrscr();
char ch2;
cout << "\n\n\n\tADMIN MENU";
cout << "\n\n\t1.CREATE PRODUCT";
cout << "\n\n\t2.DISPLAY ALL PRODUCTS";
cout << "\n\n\t3.QUERY ";
cout << "\n\n\t4.MODIFY PRODUCT";
cout << "\n\n\t5.DELETE PRODUCT";
cout << "\n\n\t6.VIEW PRODUCT MENU";
cout << "\n\n\t7.BACK TO MAIN MENU";
cout << "\n\n\tPlease Enter Your Choice (1-7) ";
ch2 = getche();
switch (ch2)
{
case '1':
clrscr();
write_product();
break;
case '2':
display_all();
break;
case '3':
int num;
clrscr();
cout << "\n\n\tPlease Enter The Product No. ";
cin >> num;
display_sp(num);
break;
case '4':
modify_product();
break;
case '5':
delete_product();
break;
case '6':
menu();
getch();
case '7':
break;
default:
cout << "\a";
admin_menu();
}
}
//***************************************************************
// THE MAIN FUNCTION OF PROGRAM
//****************************************************************
void main()
{
char ch;
intro();
do
{
clrscr();
cout << "\n\n\n\tMAIN MENU";
cout << "\n\n\t01. CUSTOMER";
cout << "\n\n\t02. ADMINISTRATOR";
cout << "\n\n\t03. EXIT";
cout << "\n\n\tPlease Select Your Option (1-3) ";
ch = getche();
switch (ch)
{
case '1':
clrscr();
place_order();
getch();
break;
case '2':
admin_menu();
break;
case '3':
exit(0);
default:
cout << "\a";
}
} while (ch != '3');
}

1. #include<fstream>
2. #include<conio.h>
3. #include<string.h>
4. #include<iomanip>
5. #include<iostream>
6.
7.
8. using namespace std;
9.
10. class product
11. {
12. int product_number;
13. char product_name[50];
14. float
product_price,product_quantity,tax,product_discount;
15.
16. public:
17.
18. void create_product()
19. {
20. cout<<endl<<"Please Enter The Product
Number: ";
21. cin>>product_number;
22. cout<<endl<<"Please Enter The Name of
The Product: ";
23. cin.ignore();
24. cin.getline(product_name ,50);
25. cout<<endl<<"Please Enter The Price of
The Product: ";
26. cin>>product_price;
27. cout<<endl<<"Please Enter The Discount
(%): ";
28. cin>>product_discount;
29. }
30.
31. void show_product()
32. {
33. cout<<endl<<"Product #:
"<<product_number;
34. cout<<endl<<"Product Name:
"<<product_name;
35. cout<<endl<<"Product Price:
"<<product_price;
36. cout<<endl<<"Discount :
"<<product_discount;
37. }
38.
39. int getProduct()
40. {
41. return product_number;
42. }
43.
44. float getPrice()
45. {
46. return product_price;
47. }
48.
49. char* getName()
50. {
51. return product_name;
52. }
53.
54. float getDiscount()
55. {
56. return product_discount;
57. }
58. };
59.
60.
61.
62. fstream fp;
63. product produc;
64.
65.
66. void save_product()
67. {
68. fp.open("database.dat",ios::out|ios::app);
69. produc.create_product();
70. fp.write((char*)&produc,sizeof(product));
71. fp.close();
72. cout<<endl<<endl<<"The Product Has Been
Sucessfully Created...";
73. getchar();
74. }
75.
76.
77. void show_all_product()
78. {
79. system("cls");
80. cout<<endl<<"\t\t@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@";
81. cout<<endl<<"\t\tRECORDS.";
82. cout<<endl<<"\t\t@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@\n";
83. fp.open("database.dat",ios::in);
84. while(fp.read((char*)&produc,sizeof(product)
))
85. {
86. produc.show_product();
87.
cout<<endl<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@\n"<<endl;
88. getchar();
89. }
90. fp.close();
91. }
92.
93.
94. void display_record(int num)
95. {
96. bool found=false;
97. fp.open("database.dat",ios::in);
98. while(fp.read((char*)&produc,sizeof(product)
))
99. {
100. if(produc.getProduct()==num)
101. {
102. system("cls");
103. produc.show_product();
104. found=true;
105. }
106. }
107.
108. fp.close();
109. if(found == true)
110. cout<<"\n\nNo record found";
111. getchar();
112. }
113.
114.
115.
116. void edit_product()
117. {
118. int num;
119. bool found=false;
120. system("cls");
121. cout<<endl<<endl<<"\tPlease Enter The
Product #: ";
122. cin>>num;
123.
124. fp.open("database.dat",ios::in|ios::out);
125. while(fp.read((char*)&produc,sizeof(product)
) && found==false)
126. {
127. if(produc.getProduct()==num)
128. {
129. produc.show_product();
130. cout<<"\nPlease Enter The New
Details of Product: "<<endl;
131. produc.create_product();
132. int pos=-1*sizeof(produc);
133. fp.seekp(pos,ios::cur);
134.
fp.write((char*)&produc,sizeof(product));
135. cout<<endl<<endl<<"\t Record
Successfully Updated...";
136. found=true;
137. }
138. }
139. fp.close();
140. if(found==false)
141. cout<<endl<<endl<<"Record Not
Found...";
142. getchar();
143. }
144.
145.
146. void delete_product()
147. {
148. int num;
149. system("cls");
150. cout<<endl<<endl<<"Please Enter The product
#: ";
151. cin>>num;
152. fp.open("database.dat",ios::in|ios::out);
153. fstream fp2;
154. fp2.open("Temp.dat",ios::out);
155. fp.seekg(0,ios::beg);
156. while(fp.read((char*)&produc,sizeof(product)
))
157. {
158. if(produc.getProduct()!=num)
159. {
160.
fp2.write((char*)&produc,sizeof(product));
161. }
162. }
163. fp2.close();
164. fp.close();
165. remove("database.dat");
166. rename("Temp.dat","database.dat");
167. cout<<endl<<endl<<"\tRecord Deleted...";
168. getchar();
169. }
170.
171.
172. void product_menu()
173. {
174. system("cls");
175. fp.open("database.dat",ios::in);
176.
177. cout<<endl<<endl<<"\t\tProduct MENU\n\n";
178. cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@\n";
179. cout<<"P.NO.\t\tNAME\t\tPRICE\n";
180. cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@\n";
181. while(fp.read((char*)&produc,sizeof(product)
))
182. {
183.
cout<<produc.getProduct()<<"\t\t"<<produc.getNam
e()<<"\t\t"<<produc.getPrice()<<endl;
184. }
185. fp.close();
186. }
187.
188.
189.
190. void place_order()
191. {
192. int order_arr[50],quan[50],c=0;
193. float amt,damt,total=0;
194. char ch='Y';
195. product_menu();
196. cout<<"\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@";
197. cout<<"\n PLACE YOUR ORDER";
198. cout<<"\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@\n";
199. do{
200. cout<<"\n\nEnter The Product #: ";
201. cin>>order_arr[c];
202. cout<<"\nQuantity: ";
203. cin>>quan[c];
204. c++;
205. cout<<"\nDo You Want To Order Another
Product ? (y/n)";
206. cin>>ch;
207. }while(ch=='y' ||ch=='Y');
208. cout<<"\n\nThank You...";
209. getchar();
210. system("cls");
211. cout<<"\n\n********************************I
NVOICE************************\n";
212. cout<<"\nPr No.\tPr Name\tQuantity \tPrice
\tAmount \tAmount after discount\n";
213. for(int x=0;x<=c;x++)
214. {
215. fp.open("database.dat",ios::in);
216.
fp.read((char*)&produc,sizeof(product));
217. while(!fp.eof())
218. {
219.
if(produc.getProduct()==order_arr[x])
220. {
221. amt=produc.getPrice()*quan[x];
222. damt=amt-
(amt*produc.getDiscount()/100);
223.
cout<<"\n"<<order_arr[x]<<"\t"<<produc.getName()
<<"\t"<<quan[x]<<"\t\t"<<produc.getPrice()<<"\t"<<amt
<<"\t\t"<<damt;
224. total+=damt;
225. }
226.
fp.read((char*)&produc,sizeof(product));
227. }
228. fp.close();
229. }
230. cout<<"\n\n\t\t\t\t\tTOTAL = "<<total;
231. getchar();
232. }
233.
234.
235.
236. void admin_menu()
237. {
238. system("cls");
239. int option;
240. cout<<"\t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@";
241. cout<<"\n\tPress 1 to CREATE PRODUCT";
242. cout<<"\n\tPress 2 to DISPLAY ALL PRODUCTS";
243. cout<<"\n\tPress 3 to QUERY ";
244. cout<<"\n\tPress 4 to MODIFY PRODUCT";
245. cout<<"\n\tPress 5 to DELETE PRODUCT";
246. cout<<"\n\tPress 6 to GO BACK TO MAIN MENU";
247. cout<<"\n\t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@";
248.
249. cout<<"\n\n\tOption: ";
250. cin>>option;
251. switch(option)
252. {
253. case 1: system("cls");
254. save_product();
255. break;
256.
257. case 2: show_all_product();
258. break;
259.
260. case 3:
261. int num;
262. system("cls");
263. cout<<"\n\n\tPlease Enter The
Product Number: ";
264. cin>>num;
265. display_record(num);
266. break;
267.
268. case 4: edit_product();
269. break;
270.
271. case 5: delete_product();
272. break;
273.
274. case 6: system("cls");
275. break;
276.
277. default:admin_menu();
278. }
279. }
280.
281.
282. int main(int argc, char *argv[])
283. {
284. system("cls");
285. system("color 05");
286. cout<<"\t\t\t\t*\t*";
287. cout<<"\t\t\t\t**\t**";
288. cout<<"\t\t\t\t***\t***";
289. cout<<"\t\t\t\t****\t****";
290. cout<<"\t\t\t\t*****\t*****";
291. cout<<"\t\t\t\t******\t******";
292. cout<<"\t\t\t\t*******\t*******";
293. cout<<"\t\t\t\t*******\t*******";
294. cout<<"\t\t\t\t******\t******";
295. cout<<"\t\t\t\t*****\t*****";
296. cout<<"\t\t\t\t****\t****";
297. cout<<"\t\t\t\t***\t***";
298. cout<<"\t\t\t\t**\t**";
299. cout<<"\t\t\t\t*\t*";
300. int option;
301.
302. for(;;)
303. {
304.
305.
cout<<"\n\t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@";
306. cout<<"\n\t1. CUSTOMER";
307. cout<<"\n\t2. ADMINISTRATOR";
308. cout<<"\n\t3. EXIT";
309.
cout<<"\n\t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@";
310.
311. cout<<"\n\tOption: ";
312. cin>>option;
313.
314. switch(option)
315. {
316. case 1: system("cls");
317. place_order();
318. getchar();
319. break;
320.
321. case 2: admin_menu();
322. break;
323.
324. case 3:
325.
cout<<"\n\t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@";
326. cout<<"\n\tGood Bye!";
327.
cout<<"\n\t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@\n";
328. exit(0);
329.
330. default :cout<<"Invalid
Input...\n";
331. }
332.
333. }
334. }

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy