×

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

Do-While Loop in C

Both 'While' and 'Do-While' loops in C mostly have a similar concept, and the code of both loops runs for mainly similar purposes in the same manner. But, there is...

3 minutes read.

C String Manipulation programs without using Library Functions

C string manipulation programs without using Library Functions The string is the character list, and typically we operate with library functions to read and print the entire string, but here you...

6 minutes read.

Bank Account System in C using File Handling

This tells about the creation of bank account system using the C language and handling of files in C. Approach Let us see the approaches and the functions how they are covering...

5 minutes read.

One Dimensional Array in C

One Dimensional Array in C: In the C programming language, an array is defined as a collection of one or more values of the same type. Every value present in...

4 minutes read.

Merge Sort in C

The merge sort follows the principle of the divide and conquers algorithm. Firstly it divides the input of an array into two halves and then calls itself for the two...

4 minutes read.

Segmentation Fault in C

Segmentation Fault in C In the C programming language, segmentation fault or segmentation violation or core dump is a condition that the hardware component raises to protect the memory by indicating...

4 minutes read.

strcat() Function in C

Strings in c: A string is defined as the set of characters that are enclosed within the double quotations (" "). The String always ends with the null character ("\0"). The...

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.

Escape Sequence in C

An escape sequence is a sequence of character that used inside the string literal or character.  All the escape sequence is used with the backslash (\) symbol. The list of an...

1 minute read.

Array Of Structures in C

The C programming language allows us to store multiple elements of the same type in arrays. We can use strings to store multiple elements of a character data type. Still,...

4 minutes read.

Range of int in C

In this session we know about the rage of the int in C language with the suitable examples and the programs. Firstly, we can learn the range of int: The int is...

3 minutes read.

Limitations of Inline Function in C

The compiler is unable to conduct inlining in two instances. It just accepts the inline definitions and produces space for the function in the same way it does for a...

3 minutes read.

While Loop Syntax in C

What is Loop? The statements in the sequence are repeatedly executed via looping statements in C until the condition is met. The body of a loop and a control statement make...

4 minutes read.

C Program to Find Largest Number Using Dynamic Memory Allocation

This tutorial will teach us how to locate the highest number a user has ever input into a dynamically allocated memory. C Program: #include <stdio.h> #include <stdlib.h> int main ()  {   int no;   double *data_n;   printf...

1 minute read.

OpenGL in C

OpenGL stands for Open Graphics Library. It is a low-level, widely supported modeling and rendering software package that is widely available across all the platforms. It is an API used...

4 minutes read.

How to measure time taken by a function in C?

Measuring the time taken by a function is quite a complex task, because numerous methods are frequently not transferable to other platforms, measuring the execution time of a C programs...

5 minutes read.

LCM of two numbers in C

LCM is a mathematical term which stands for Least Common Multiple. LCM of any two numbers is the smallest positive value(number) which is evenly divisible by the two given numbers. Consider...

4 minutes read.

Kruskal algorithm in C

Given a weighted graph, Kruskal's algorithm generates a spanning tree with the lowest possible weights. Start by creating an edge list for the given graph, including the weights. Sort the...

3 minutes read.

Run Time Polymorphism in C

What is polymorphism? Polymorphism refers to the existence of various forms. Polymorphism can be simply defined as a message's capacity to be presented in multiple forms. An individual who can have...

4 minutes read.

fork() in C

Introduction To create a new function in the system, there is a need for a system call, i.e. fork system call. It is also known as the child process. These child...

2 minutes read.