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.
| 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
- Add new menu items with item number, category, description, and price.
- Display current menu in a clean table.
- Save menu to
menu.txtand load it back on demand. - Input stored as colon-delimited text for easy sharing across programs.
- 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.txtwith a timestamp.
- Parses
transactions.txtto:- Count total orders for each item number.
- Compute the grand total takings.
- Displays a concise daily report for management.
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.cppThis produces three executables: menu, billing, and stats.
./menuFollow prompts to add items or load/save from menu.txt.
./billing- Loads the menu.
- Enter item numbers and quantities (0 to finish).
- View printed bill and confirm that
transactions.txtis updated.
./stats- Reads all saved transactions.
- Outputs number of orders per item and the grand total revenue.
- Head office builds the menu with
menu. - Cashier runs
billingthroughout the day to record customer purchases. - Manager runs
statsat close to see total takings and per-item counts.
├── 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
- 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.
- 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