Run Your C++ Project Online

Launch your Zap Tech C++ project directly in the browser. The embedded compiler below uses a trusted online service, so you can edit, build, and run your code without installing anything locally. Use the quick links to open a full tab if you want extra workspace or need to save your session.

Interactive Compiler

If you are not staying signed in: most browsers block third‑party cookies for iframes. Use “Open Here (Login mode)” to open OnlineGDB in this tab and sign in, or “Open Fullscreen” to use a new tab. This ensures your login session persists. If an organization policy blocks this, add an exception to allow cookies for onlinegdb.com.

Quick Start

Personal Budget Tracker

Use this starter if you only need a quick test harness before pasting the rest of your project files.






#include <iostream>       // bakar det bo cin w cout
#include <fstream>        // bakar det bo save load data
#include <vector>         // wak array bakare daynen bas tomatica nak manual
#include <string>        // bo nasandni nawakan wak iitme name w ...

using namespace std;

vector<string> itemName;
vector<long long> itemAmount;
long long balance = 0;

// hamw fanctionakan
void loadData();
void saveData();
void addMoney();
void addExpense();
void showAll();
void removeItem();

// bakar det bo penasakrdni rangakan
#define GREEN   "\033[1;32m"
#define RED     "\033[1;31m"
#define YELLOW  "\033[1;33m"
#define CYAN    "\033[1;36m"
#define RESET   "\033[0m"

int main() {
    long long choice;
    loadData();            // awa agar data habw e kon saveman krdbw baw shewaza bange dakatawa

    // loia while bakar denen agar user zhmara 6 nuse awkat desan daway le dakainawa zhmara daxl bkat
    while (true) {
        cout << CYAN << "\n==============================\n";
        cout << "     Personal Budget Tracker    \n";
        cout << "         MADE BY ARYAN    \n";
        cout << "==============================\n" << RESET;
        cout << "1. Add Money\n";
        cout << "2. Spend Money\n";
        cout << "3. Remove Item\n";
        cout << "4. Show All\n";
        cout << "5. Save and Exit\n";
        cout << "Choose option: ";
        cin >> choice;

        switch (choice) {
            case 1: addMoney(); break;
            case 2: addExpense(); break;
            case 3: removeItem(); break;
            case 4: showAll(); break;
            case 5:
                saveData();
                cout << GREEN << "Data saved. Goodbye!\n" << RESET;
                return 0;
            default:
                cout << RED << "Invalid option.\n" << RESET;
        }
    }
}

//  aw function bakar det bo bang krdnaway aw shtanay save krawa lanaw file budget,txt
void loadData() {
    ifstream file("budget.txt");
    if (!file.is_open()) return;

    itemName.clear();
    itemAmount.clear();
    balance = 0.0;

    string name;
    long long amount;
    while (file >> name >> amount) {
        itemName.push_back(name);
        itemAmount.push_back(amount);
        balance += amount;
    }
    file.close();
}

// aw function bakar det bo save krdne balac w item w spendakan
void saveData() {
    ofstream file("budget.txt");
    for (size_t i = 0; i < itemName.size(); i++) {
        file << itemName[i] << " " << itemAmount[i] << endl;
    }
    file.close();
}

// aw function bakar det bo zyad krdne paray hatu
void addMoney() {
    string name;
    long long amount;
    cout << CYAN << "Enter source name (1 word): " << RESET;
    cin >> name;
    cout << CYAN << "Enter amount (IQD): " << RESET;
    cin >> amount;

    // pushback bakar det bo zyadkrdne sht la naw array vector , ema vector bakar denen lla jyat array
    if (amount > 0) {
        itemName.push_back(name + "_income");
        itemAmount.push_back(amount);
        balance += amount;
        saveData();
        cout << GREEN << "Added " << amount << " IQD from " << name << ".\n" << RESET;
    } else {
        cout << RED << "Invalid input.\n" << RESET;
    }
}

// aw function bakar det bo sarfkrdne para
void addExpense() {
    string name;
    long long amount;
    cout << CYAN << "Enter expense name (1 word): " << RESET;
    cin >> name;
    cout << CYAN << "Enter amount (IQD): " << RESET;
    cin >> amount;

    // lera ema -= bakar henawa bo away agar shtekt daxl krd balance beta xware
    if (amount > 0 && amount <= balance) {
        itemName.push_back(name + "_expense");
        itemAmount.push_back(-amount);
        balance -= amount;
        saveData();
        cout << RED << "Spent " << amount << " IQD for " << name << ".\n" << RESET;
    } else {
        cout << RED << "Invalid or insufficient funds.\n" << RESET;
    }
}

// aw function bakar det bo rashkrdnaway aw bra para w item daxlman krdya wak sarf krdn
void removeItem() {
    showAll();
    if (itemName.empty()) return;

    int index;
    cout << CYAN << "Enter item number to remove: " << RESET;
    cin >> index;

    if (index < 1 || index > (int)itemName.size()) {
        cout << RED << "Invalid index.\n" << RESET;
        return;
    }

    // lera erase haya bakar det wak rashkrdnawa lanaw vector
    index--;
    long long removed = itemAmount[index];
    balance -= removed;
    itemName.erase(itemName.begin() + index);
    itemAmount.erase(itemAmount.begin() + index);
    saveData();
    cout << GREEN << "Item removed. Balance updated by " << -removed << " IQD.\n" << RESET;
}

// aw function bakar det bo peshandane aw shtanay hamana la naw filaka save krawa
void showAll() {
    cout << CYAN << "\n=== Budget History ===\n" << RESET;
    if (itemName.empty()) {
        cout << YELLOW << "No records yet.\n" << RESET;
        return;
    }

    for (size_t i = 0; i < itemName.size(); i++) {
        string color = itemAmount[i] >= 0 ? GREEN : RED;
        cout << color << i + 1 << ". " << itemName[i]
             << " : " << itemAmount[i] << " IQD" << RESET << endl;
    }
    cout << YELLOW << "\nCurrent Balance: " << balance << " IQD\n" << RESET;
}

Electricity Bill Estimator

Calculate your electricity bill based on usage. Supports calculation from Ampere/hours/days or direct kWh input.

#include <iostream>
#include <string>

using namespace std;

//double bakar dayninn chunka zhamarakan zor u point dardachi ,
//functionaka dansenin ba nawi billcal , yani psula hisabkrdn
// lanaw functionaka paremetari total danasenin
//pashan functinaki dika ba nawwi priceperKW danasenin lo dyari krdni nrxaka lo har kw tek .
// pashan ifakan dwayy return anjamaky daka lawe yasakay danusin
double psulacal(double totalKW) {
    double pricePerKW;

    if (totalKW <= 400)
        pricePerKW = 72;
    else if (totalKW <= 800)
        pricePerKW = 108;
    else if (totalKW <= 1200)
        pricePerKW = 175;
    else if (totalKW <= 1600)
        pricePerKW = 256;
    else
        pricePerKW = 350;

    return totalKW * pricePerKW;
}

/* int choice danesin lo way ka datawe halbzheri
 const lo shtak nagor bi yan bardawam , waku yasa bakar de katak compitar runi daka la barnamaka awa hargiz nagoret
dwatr rangakan danasenin
 pashan loopi do while bakar daynin , jwankari u rangakan la cout danusim kamma rangman bwe lo kam string
dway la axir cin daxl dakain lasare int choice man nasand la cin choice danusin
pashan har la naw (do) , (switch ) dakainawa 3 case danusin lagal default
la case 1 amper u rozh u katzhmer danasenin pashan dawa l auser daka option bkat
pashan har yakaw yasay xoy danusin
pashan la case 2 ba user darey totalakat awandaya u bangi function aka dakayawa
case 3 exit la programaka u default lo away loopaka 3 chioce */
int main() {
    int choice;
    const double voltage = 220;

    string reset = "\033[0m";
    string red = "\033[1;31m";
    string green = "\033[1;32m";
    string yellow = "\033[1;33m";
    string cyan = "\033[1;36m";
    string magenta = "\033[1;35m";
    string blue = "\033[1;34m";

    do {
        cout << cyan << "\n=========================================\n";
        cout << magenta << "        ELECTRICITY BILL ESTIMATOR \n";
        cout << yellow << "\n         Created by Ronya Hemn \n";
        cout << cyan << "=========================================\n" << reset;

        cout << yellow << "1. " << reset << "Calculate bill using Ampere, hours, and days\n";
        cout << yellow << "2. " << reset << "Calculate bill using known kWh\n";
        cout << yellow << "3. " << reset << "Exit\n";
        cout << blue << "Choose an option (1-3): " << reset;
        cin >> choice;

        switch (choice) {
            case 1: {
                int days, hours;
                double ampere;
                cout << green << "\nEnter number of days in the month: " << reset;
                cin >> days;

                cout << green << "Enter how many hours per day you use electricity: " << reset;
                cin >> hours;

                cout << green << "Enter your average Ampere usage: " << reset;
                cin >> ampere;

                double wattPerDay = ampere * voltage * hours;
                double totalKW = (wattPerDay * days) / 1000;
                double bill = psulacal(totalKW);

                cout << cyan << "\n-------------------------------------\n" << reset;
                cout << blue << "Usage per day: " << reset << ampere << "A for " << hours << "h\n";
                cout << blue << "Total Monthly Usage: " << reset << totalKW << " kWh\n";
                cout << blue << "Electricity Bill: " << reset << yellow << bill << " IQD\n";
                cout << cyan << "-------------------------------------\n" << reset;
                break;
            }

            case 2: {
                double knownKW;
                cout << green << "\nEnter your total monthly usage in kWh: " << reset;
                cin >> knownKW;

                double bill = psulacal(knownKW);

                cout << cyan << "\n-------------------------------------\n" << reset;
                cout << blue << "Electricity Bill for " << knownKW
                     << " kWh = " << yellow << bill << " IQD\n";
                cout << cyan << "-------------------------------------\n" << reset;
                break;
            }
            case 3:
                cout << red << "\nExiting program...\n" << reset;
                break;

            default:
                cout << red << "\nInvalid choice! Please try again.\n" << reset;
        }

    } while (choice != 3);

    return 0;
}