Consumer billing system in C
Introduction :
Billing has always been taught to do perfectly, we know today's world is full of products, and We all are using multiple products. We are buying and selling various products. The sellers have to maintain the perfect calculation of each and every transaction. So this application is to help them.
This customer billing system is a simple console application used for demonstration or practical demonstration of the programming language C. This application can be used in any departmental store, medicine store and cafe, etc . we can also keep the records of the user such as name, address, paid amount, payment date and mobile number, etc. if any new customer has arrived then we can add them very easily in our system then we can keep their information as well. Then we can proceed further with their payment records, such as making payments and all about their dues.
Let's have a look at our consumer billing application.
C code for consumer billing system
C code for consumer billing system
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<conio.h>
struct item
{
int productno;
char productname[10];
int quantity;
int price;
}
items;
struct customer
{
int productno;
char productname[10];
int quantity;
int price;
int amount;
}
cst[100];
struct temporary
{
int productno;
char productname[10];
int quantity;
int price;
int amount;
}
cstr[100];
int t=0;
int n=0;
int k=0;
int ba=0;
int ti=0;
void create()
{
int i=0;
FILE *fp;
fp=fopen(" Record.txt "," w ");
if( fp == NULL)
{
printf(" opps Error!! we cannot create the file for storing information \n ");
}
printf(" \t ");
printf(" hello please Enter the Number of Records that are avialable : ");
//printf(" hello please Enter the Number of Records that are avialable : ");
//printf(" hello please Enter the Number of Records that are avialable : ");
//printf(" hello please Enter the Number of Records that are avialable : ");
scanf(" %d ", &n);
printf(" \n ");
FILE *fpq;
fpq=fopen(" Quantitys.txt "," w ");
fprintf(fp," please find the productno\t,ProductName\t, Quantity\n, Price\t ");
fprintf(fpq,"%d",n);
fclose(fpq);
while(i<n)
{
printf(" \t ");
printf(" Enter Product Code: ");
scanf(" %d ", &items.productno);
printf("\t");
printf(" Enter Product Name:");
scanf(" %s",items.productname);
printf(" \t ");
printf(" Enter Quantity:");
scanf(" %d ",&items.quantity);
printf(" \t ");
printf(" Enter Price:");
scanf(" %d ",&items.price);
printf(" \n ");
i++;
fprintf(fp," %d \t %s \t%d \t %d \t", items.productno, items.productname, items.quantity,
items.price);
}
fclose(fp);
printf("\t");
printf("Records are Created");
printf("\n");
printf("\n");
}
void bill()
{
int na=0; //used for product number in scanf function
int a=0; /**/
int cont=0;
int k=0;
int r=0;
int w=0;
int ch=0;
int l=0; /**/
int bi=0;
int ln=0;
printf("\t");
l3 : printf("Enter the Product Number:");
scanf("%d",&na);
printf("\n");
FILE *fp;
fp=fopen("Record.txt","w");
FILE *fptr;
fptr=fopen("temp.txt","w");
while(!(feof(fp)))
{
l++;
fscanf(fp," %d ", &items.productno);
fscanf(fp," %s ", items.productname);
fscanf(fp," %d ", &items.quantity);
fscanf(fp," %d ", &items.price);
if(items.productno == na)
{
ln++;
if(ln==2)
break;
printf("Enter the Quantity:");
scanf("%d",&a);
if(a <= items.quantity)
{
cst[ti].productno=items.productno;
strcpy( cst[ti].productname, items.productname);
cst[ti].quantity=a;
cst[ti].price=items.price;
items.quantity=items.quantity-a;
ti++;
//goto l1;
}
else
{
printf(" Sorry Out of Stock \n ");
bi++;
//goto l1;
// fprintf(fptr," %d\t ",items.productno);
// fprintf(fptr," %s\t ", items.productname);
// fprintf(fptr," %d\t ", items.quantity);
// fprintf(fptr," %d\t ", items.price);
// continue;
}
}
else
{
cont++;
fprintf(fptr," %d\t ",items.productno);
fprintf(fptr," %s\t ",items.productname);
fprintf(fptr," %d\t ",items.quantity);
fprintf(fptr," %d\t ",items.price);
continue;
}
fprintf(fptr," %d \t ", items.productno);
fprintf(fptr," %s \t ", items.productname);
fprintf(fptr," %d \t ", items.quantity);
fprintf(fptr," %d \t ", items.price);
}
if(l==cont)
printf(" Error:Choose Properly \n ");
fclose( fptr );
fclose( fp );
remove(" Records.txt ");
rename( " temp.txt "," Records.txt ");
ln=0;
printf(" Do you Want to Shop More:\nPress 1 for More \n Press 2 to Exit ");
scanf(" %d ", &k);
if(k==1)
goto l3;
}
void display()
{
int nk=0;
FILE *fp;
fp=fopen(" Record.txt "," r ");
if(feof(fp))
{
printf(" Error in Opening Files\n ");
}
printf(" \t ");
printf("==============================================================\n");
printf(" \t ");
printf(" | Product Number \t | Product Name \t |Quantity \t |Price \t \n ");
printf(" \t ");
printf("=== === ======= ===== ====== ==== ====== === ======== =========== ======
\n" );
while(nk!=n)
{
nk++;
fscanf(fp," %d ", &items.productno);
if(items.productno==0)
{
printf("\t");
printf(" There are no items in Cart ");
printf(" \n ");
break;
}
fscanf(fp," %s ", items.productname);
fscanf(fp," %d ", &items.quantity);
fscanf(fp," %d ",&items.price);
printf("\n\t %14d |\t%8s |\t%8d| \t%d| \n", items.productno, items.productname, items.quantity,
items.price);
//printf("\n");
}
fclose(fp);
}
void edit()
{
FILE *fp;
FILE *fptr;
FILE *fpk;
int h;
int found=0;
int ka=0;
int p;
fp=fopen(" Record.txt ","r");
fptr=fopen(" temp1.txt ","w");
fpk=fopen(" temp2.txt ","w");
printf(" \t ");
printf(" Enter the Product Number to Delete: ");
scanf(" %d ",&h);
printf(" \n");
p=n;
while(!(ka==p))
{
ka++;
fscanf(fp," %d ",&items.productno);
if(items.productno==h)
{
found=1;
fscanf(fp," %s ", items.productname);
fscanf(fp," %d ", &items.quantity);
fscanf(fp," %d ", &items.price);
n--;
printf(" \t ");
printf(" Product has been Successfully Deleted \n ");
}
else
{
fscanf(fp," %s ",items.productname);
fscanf(fp," %d ",&items.quantity);
fscanf(fp," %d d",&items.price);
fprintf(fptr,"%d\t%s\t%d\t%d\t",items.productno,items.productname,items.quantity,items.price);
}
}
fprintf(fpk,"%d",n);
fclose(fpk);
fclose(fptr);
fclose(fp);
if(found==0)
{
printf("\t");
printf("Product no Found");
printf("\n");
printf("\n");
}
remove("Quantitys.txt");
rename("temp2.txt","Quantitys.txt");
remove("Record.txt");
rename("temp1.txt","Record.txt");
}
void invoice()
{
int j;
int o;
float gt=0;
if(ti==0)
{
printf("There are No Products in your Cart");
printf("\n");
}
printf("\n\n");
printf("****************************INVOICE**************************");
printf("\n\n");
printf("product number\t| product name\t| price\t| quantity\t| amount\t|\n");
printf("*************************************************************\n");
for(o=0;o<ti;o++)
{
cst[o].amount=0;
cst[o].amount=((cst[o].price)*(cst[o].quantity));
gt=gt+cst[o].amount;
}
for(j=0;j<ti;j++)
{
printf("%6d\t |%9s \t | %3d\t|%3d\t | %3d\n",cst[j].productno,cst[j].productname,cst[j].price,cst[j].quantity,cst[j].amount);
}
printf(" \n Amount Payable:%f ",gt);
printf(" \n ");
printf(" Thank you for Shopping ");
printf(" \n ");
printf(" Visit Again ");
printf(" \n ");
}
void mdelete()
{
int i=0;
int j=0;
int f=0;
int g=0;
int ag=0;
int aj=0;
char ab[100];
FILE *fw;
FILE *fq;
printf(" \t ");
printf(" Enter the Product Number to be Deleted: ");
scanf("%d",&f);
printf(" \n ");
for(i=0;i<ti;i++)
{
if(cst[ti].productno==f)
{
aj=cst[i].quantity;
printf(" \t ");
printf(" Product Deleted Successfully ");
printf(" \n " );
}
continue;
cstr[g].productno=cst[i].productno;
strcpy(cstr[g].productname,cst[i].productname);
cstr[g].quantity=cst[i].quantity;
cstr[g].price=cst[i].price;
g++;
}
for(j=0;j<g;j++)
{
cst[j].productno=cstr[j].productno;
strcpy(cst[j].productname,cstr[j].productname);
cst[j].quantity=cstr[j].quantity;
cst[j].price=cstr[j].price;
}
ti=g;
printf(" \n%d ", aj);
fq=fopen(" shop.txt ", " r ");
fw=fopen(" temp4.txt "," w ");
for(j=0;j<n;j++)
{
fscanf(fq," %d ",&items.productno);
fscanf(fq," %s ",items.productname);
fscanf(fq," %d ",&items.quantity);
fscanf(fq," %d ",&items.price);
if(items.productno==f)
{
ag=aj+items.quantity;
fprintf(fw," %d \t %s\t %d \t %d \t", items.productno, items.productname, ag,items.price);
}
else
{
fprintf(fw," %d \t %s\t%d\t %d \t", items.productno, items.productname, items.quantity,
items.price);
}
}
fclose(fq);
fclose(fw);
remove("Records.txt");
rename("temp4.txt","Records.txt");
}
//printf(" option number one is only for ADMINISTRATOR ");
// printf("\n\t");
// printf(" 02.option number two is for CUSTOMER ");
// printf("\n\t");
// printf(" 03. option number three is for EXIT ");
// printf(" \n ");
// printf(" \ n \ t ");
// printf(" hello,Please Enter an Option to proceed further : ");
// scanf(" %d ", &s );
void mdisplay()
{
int i;
int j;
int o;
printf("#== ====#=======================#=================================#==================#\n");
printf("product number of the product is \t|product's name is \t|quantity\t|price is \t\n");
printf( " #=== =====#=========== ==============#======== =====================#====== === ==== === =#\n ");
for(o=0;o<ti;o++)
{
printf(" %14d \t|%12s \t|%6d \t|%6d \n ", cst[o].productno, cst[o].productname,cst[o].quantity, cst[o].price);
}
}
//printf("option number one is only for ADMINISTRATOR");
// printf("\n\t");
// printf("02.option number two is for CUSTOMER");
// printf("\n\t");
// printf("03. option number three is for EXIT");
// printf("\n");
// printf("\n\t");
// printf("hello,Please Enter an Option to proceed further : ");
// scanf("%d",&s);
int main()
{
char ch,password[10],q[10]="admin";
int s=0;
int y=0;
int w=1;
int i;
FILE *fpe;
fpe=fopen(" Quantity.txt "," r ");
fscanf(fpe," %d ",&n);
fclose( fpe );
printf(" \n ");
q: printf(" \n\t ");
printf(" *** **** * *** ** *** *** *** **** ** " );
printf(" \n ");
printf(" \t ");
printf(" Please Select an Option: ");
printf("\n");
printf("\t");
printf( " ** ******* ***** **** *** **** *** ");
printf(" \n ");
printf(" \t ");
printf(" option number one is only for ADMINISTRATOR ");
printf(" \n \t ");
printf(" 02.option number two is for CUSTOMER ");
printf(" \n \t ");
printf(" 03. option number three is for EXIT ");
printf(" \n ");
printf(" \n\t ");
printf(" hello,Please Enter an Option to proceed further : ");
scanf("%d",&s);
//printf(" option number one is only for ADMINISTRATOR ");
// printf(" \n \t ");
// printf(" 02.option number two is for CUSTOMER ");
// printf(" \n \t ");
// printf(" 03. option number three is for EXIT ");
// printf(" \n ");
// printf(" \n\t ");
// printf(" hello,Please Enter an Option to proceed further : " );
// scanf("%d",&s);
switch(s)
{
case 1: printf("\tplease Enter your Password, so that we can autheticate you :\t");
for(i=0;i<5;i++)
{
ch = getch();
password[i] = ch;
ch = '*' ;
printf(" %c ", ch);
}
password[i]='\0';
if( strcmp( password,q))
{
printf(" \n\t ");
printf(" t h i s is the Wrong Password Please Try Again, we cannot authenticate you ");
printf(" \n\n ");
goto q;
}
else
goto l3;
l3: printf(" \n\t ");
printf(" congo!!! Access Granted to your dashboard \n ");
printf(" \n \n ");
printf(" \t ");
printf(" *******************#********* ");
printf(" \n ");
printf(" \t ");
printf(" helllo,Please Select an Option to proceed further : ");
printf(" \n ");
printf(" \t ");
printf("****************************");
printf(" \n ");
printf(" \t01.press 1 to CREATE ");
printf(" \n\t ");
printf(" 02.press 2 to DELETE/MODIFY ");
printf(" \n\t ");
printf(" 03.press 3 to DISPLAY ");
printf(" \n\t ");
printf(" 04.press 4 to go to MAIN MENU ");
printf(" \n ");
printf(" \n ");
printf(" \t ");
printf(" Please Enter an Option,so we can proceed further : ");
scanf(" %d ", &y);
//printf(" option number one is only for ADMINISTRATOR ");
// printf(" \n\t ");
// printf(" 02.option number two is for CUSTOMER ");
// printf(" \n\t ");
// printf(" 03. option number three is for EXIT ");
// printf(" \n ");
// printf(" \n\t ");
// printf(" hello,Please Enter an Option to proceed further : ");
// scanf(" %d",&s);
switch(y)
{
case 1:create();
goto q;
case 2:edit();
goto q;
case 3:display();
goto q;
case 4: goto q;
default : printf(" error\n ");
goto q;
}
break;
case 2: printf("\n ");
printf(" \t");
printf(" * * * * * * * * * * # * * * * * * * * * * # * * * * * * * * ");
printf(" \n ");
printf(" \t ");
printf(" Please Select an Option, to proceed further : ");
printf(" \n ");
printf(" \t ");
printf(" **#***********#************#*** ");
printf(" \n ");
printf(" \t " );
// printf(" \n\t ");
// printf(" 02.option number two is for CUSTOMER ");
// printf(" \n\t ");
// printf(" 03. option number three is for EXIT ");
// printf(" \n ");
// printf(" \n\t ");
// printf(" hello,Please Enter an Option to proceed further : ");
// scanf(" %d",&s);
printf(" 01.press 1 for BILL ");
printf(" \n\t ");
printf(" 02. press 2 to get INVOICE ");
printf(" \n\t ");
printf(" 03.press 3 for DISPLAY ");
printf("\n\t");
printf(" 04.press 4 for opening MYCART ");
printf("\n\t");
printf(" 05.press 5 to go to MAIN MENU ");
printf(" \n\t ");
printf(" 06. press 6 to DELETE ITEMS IN CART\n");
printf("\n\t");
printf(" Please Enter an Option,so we can proceed futher : ");
scanf(" %d",&y);
printf("\n");
// printf(" \n\t ");
// printf(" 02.option number two is for CUSTOMER ");
// printf(" \n\t ");
// printf(" 03. option number three is for EXIT ");
// printf(" \n ");
// printf(" \n\t ");
// printf(" hello,Please Enter an Option to proceed further : ");
// scanf(" %d",&s);
switch(y)
{
case 1 : bill();
goto q;
case 2 : invoice();
goto q;
case 3 : display();
goto q;
case 4 : mdisplay();
goto q;
case 5 : goto q;
case 6 : mdelete();
goto q;
default : printf(" Error\n");
goto q;
}
break;
case 3: printf("\ tso now we are Exiting from the application...\n");
break;
default : printf(" opps some errors caught ! try again \n");
break;
}
}
Output :
The administrator section :

The customer section :

The exit :

Explanation :
Administrator (option 1 )
Firstly we have developed the administration section, where if you press1, you will be forwarded to the administration panel. Still, there is a problem that if somebody gets into the administration panel just by pressing 1 so, it develops security issues. Anybody can see what is inside the administration panel, so security precautions such as a password should be taken. So we have made our administration section password protected, so only the authentic administrator would know the password and get inside the administrator panel. Then, he can see all the consumer data and product details and manipulate them.
Consumer(option 2)
The second option is for consumers. If the user presses 2, he will move forward to the consumer section where he can purchase any product, see the product details and get the invoice of all his transactions, including all the products purchased.
Exit(option 3)
The last option is to exit. If the user does not want to proceed further with the application so if he presses 3, he will be able to exit.
This was the brief introduction of the consumer billing system project in c.