×

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 :

Consumer billing system in c

The customer section :

Consumer billing system in c

The exit :

Consumer billing system in c

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.


Related Topics

Attributes in C

Attributes are one of modern C++ key features. It is the process by which initiator can add more information to the language instead of introducing new keywords for every attribute....

4 minutes read.

Else If Ladder in C

What is Else If Ladder: When there are multiple options and a user has to decide from the options, we use Else If Ladder. Basically, it is an extension of if...

3 minutes read.

Program to Find Mode of an Array in C

Mode is the highest occurring value or number in a given set of data elements. In a group of data values, a value that occurs most frequently is considered to...

3 minutes read.

Loop Statement in C

Loop statement is used to execute one or more statement repeatedly multiple times. There are three types of loops in C language. Why use loop? We can use loop because it executes a...

2 minutes read.

Character Set in C

Introduction Every language has some basic elements which are used to represent information. The English language includes alphabets which together shape a sentence, after which the sentences are used to shape...

3 minutes read.

Why does sizeof(x++) not Increment x in C

Sizeof() is a much-involved operator in C or C++. It is an incorporated time unary administrator which can be utilized to figure the size of its operand. The consequence of...

5 minutes read.

Use of free() function in C

Introduction The free() function uses in C programming language. The free() function in the C programming language uses to release or deallocate the memory blocks; these blocks are previously allocated by calloc(), malloc() or realloc()...

3 minutes read.

Displaying Array in C

Reference a collection of variables of similar data type in an array using a single element. The parts are stored next to each other. When declaring an array, you must specify...

4 minutes read.

#undef in C

#undef in C In the C programming language, the #undef directive is used to undefine the macro or any constant, which will be defined by the preprocessor directive #define. The #undef...

3 minutes read.

How to use floor() function in C

Introduction: The floor() used as a function in the C programming language. This function uses to return the largest or most significant integer value. The integer value is smaller than...

3 minutes read.

Addition of Matrix in C

The mathematical operation of includingor greater matrices is called the addition of matrices. A matrix is a square series of numbers, symbols, words, letters, and different things. In this article,...

3 minutes read.

Int in C

The keyword int in C programming stands for integer and it is a data type which is used for variable declarations or declaration of functions of different types. Similar to...

4 minutes read.

GCD program of two numbers in C

GCD stands for Greatest Common Divisor, which is also known as Highest Common Factor, which can be abbreviated as HCF. Mathematically it can be defined as any two positive integers...

3 minutes read.

Selection sort in C

In the C standard, the selection sorting technique exists where the smallest among the unsorted elements of the array is selected at each time and is then inserted into its...

3 minutes read.

Strcpy() in C

In C language many operations can be performed on a string. Characters in a sequence are known as string. Note:   To use this function we must include the #include<string.h> header file...

4 minutes read.

Header files in C

Header files in C In the C programming language, header files are present, which have an extension of ‘.h’, and it consists of macro definitions, declarations, and so on that are...

4 minutes read.

Entry Control Loop in C

Initially, an entry control loop verifies the termination condition at the entry point. After that, its control passes to the main body of the while or for loop if the...

3 minutes read.

How to delete a file in C

A file is a group of data kept on a secondary device, such as a hard disc. It is typically utilized as a real-world application with a lot of data. These...

3 minutes read.

Decimal to Hexadecimal in C

Decimal to Hexadecimal in C Let us first understand the definitions of decimal and hexadecimal. In algebra, a decimal number is defined as a number whose whole number part and a...

3 minutes read.

Decimal to Binary in C

What is a decimal number? A decimal number is a number represented in the decimal number system. This system of binary conversion uses base 10 to represent numbers, i.e. the digits...

3 minutes read.