Skip to content

C++ console application with three programs for restaurant menu creation, billing checkout, and daily sales statistics.

Notifications You must be signed in to change notification settings

gurung-sekai/Restaurant-Billing-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Restaurant Billing System (C++)

A three-part C++ application that manages a restaurant’s menu creation, customer billing,
and daily sales statistics. Each module is a separate console program designed to work together.

Developed as a project to demonstrate C++ programming, file I/O,
and modular software design.


Project Overview

Program Purpose
Menu Creation (menu.cpp) Head-office tool to build and maintain the restaurant menu.
Billing Checkout (billingcheckout.cpp) Point-of-sale program to take customer orders, calculate totals with VAT, and save each transaction.
Transaction Statistics (transactionstatsfile.cpp) End-of-day report generator summarising total sales and per-item order counts.

The complete design, UI mock-ups, test plans, and evaluation are described in
More on : Project Assignment.pdf


Features

1. Menu Creation

  • Add new menu items with item number, category, description, and price.
  • Display current menu in a clean table.
  • Save menu to menu.txt and load it back on demand.
  • Input stored as colon-delimited text for easy sharing across programs.

2. Billing Checkout

  • Reads menu from menu.txt.
  • Lets cashier select item numbers and quantities until order completion.
  • Calculates subtotal, 20 % VAT, and grand total with currency formatting.
  • Prints a detailed bill to the console and appends it to transactions.txt with a timestamp.

3. Daily Sales Statistics

  • Parses transactions.txt to:
    • Count total orders for each item number.
    • Compute the grand total takings.
  • Displays a concise daily report for management.

Build

Any C++17-compatible compiler (GCC/Clang/MSVC) works.

# Menu creation
g++ -std=c++17 -O2 -Wall -Wextra -o menu menu.cpp

# Billing checkout
g++ -std=c++17 -O2 -Wall -Wextra -o billing billingcheckout.cpp

# Daily statistics
g++ -std=c++17 -O2 -Wall -Wextra -o stats transactionstatsfile.cpp

This produces three executables: menu, billing, and stats.


Run

1 Create or Edit Menu

./menu

Follow prompts to add items or load/save from menu.txt.

2 Checkout Orders

./billing
  • Loads the menu.
  • Enter item numbers and quantities (0 to finish).
  • View printed bill and confirm that transactions.txt is updated.

3 View Daily Statistics

./stats
  • Reads all saved transactions.
  • Outputs number of orders per item and the grand total revenue.

Example Workflow

  1. Head office builds the menu with menu.
  2. Cashier runs billing throughout the day to record customer purchases.
  3. Manager runs stats at close to see total takings and per-item counts.

Repository Structure

├── menu.cpp                 # Program 1: Menu Creation
├── billingcheckout.cpp      # Program 2: Billing Checkout
├── transactionstatsfile.cpp # Program 3: Daily Sales Statistics
├── Project Assignment .pdf  # Full design, test plan, and evaluation
├── settings.json            
└── README.md

Skills Demonstrated

  • Modern C++ (C++17) – STL containers, streams, and string handling.
  • File I/O – persistent storage and parsing of menu and transaction data.
  • Modular Architecture – three independent yet cooperative programs.
  • Software Engineering – UI design, test planning, and evaluation documented in the PDF.

Future Improvements

  • Stronger input validation and error handling (e.g., disallow negative prices or quantities).
  • Richer output formatting with aligned columns and color.
  • Merge into a single application with subcommands or GUI front-end.
  • Database (SQLite) backend for scalability and concurrent access.

Developed by Pritam Gurung

About

C++ console application with three programs for restaurant menu creation, billing checkout, and daily sales statistics.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages