0% found this document useful (0 votes)
28 views8 pages

Homework 2 C++

This document contains code for a C++ banking program that allows users to make accounts, deposit and withdraw money, and view all account information. It includes function definitions in a bank.h header file to display a menu, make new accounts, deposit/withdraw funds, and get account details. The main.cpp file calls these functions in a loop-based menu. The bank.cpp file implements the function bodies defined in bank.h to manage an array of account objects.

Uploaded by

peka10peka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views8 pages

Homework 2 C++

This document contains code for a C++ banking program that allows users to make accounts, deposit and withdraw money, and view all account information. It includes function definitions in a bank.h header file to display a menu, make new accounts, deposit/withdraw funds, and get account details. The main.cpp file calls these functions in a loop-based menu. The bank.cpp file implements the function bodies defined in bank.h to manage an array of account objects.

Uploaded by

peka10peka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Object Oriented Programming[202302-

IGS2130-001]

C++ programming language

Name: Akhrorbek
ID: 12214752

LAB 4
Homework 2

2023/09/26
Question1
#include <iostream>
using namespace std;

// Function prototypes
void sort3(double& a, double& b, double& c, bool (*compare)(double&, double&));
void print3(const double& a, const double& b, const double& c);
void swap2(double& a, double& b);
bool ascending(double& a, double& b);
bool descending(double& a, double& b);

int main() {
// Initializes variables
double na1 = 10.3, na2 = -2.1, na3 = 8.0;
double nd1 = 10.3, nd2 = -2.1, nd3 = 8.0;

// Displays original values


cout << "Before sort: ";
print3(na1, na2, na3);

// Sorts in ascending order


sort3(na1, na2, na3, ascending);

// Sorts in descending order


sort3(nd1, nd2, nd3, descending);

// Displays sorted values


cout << "After sort(ascending): ";
print3(na1, na2, na3);

cout << "After sort(descending): ";


print3(nd1, nd2, nd3);

return 0;
}

// Function to sort three numbers using a comparison function


void sort3(double& a, double& b, double& c, bool (*compare)(double&, double&)) {
if (compare(a, b)) swap2(a, b); // Compare and swap a and b if necessary
if (compare(b, c)) swap2(b, c); // Compare and swap b and c if necessary
if (compare(a, b)) swap2(a, b); // Compare and swap a and b if necessary
}

// Function to print three numbers


void print3(const double& a, const double& b, const double& c) {
cout << a << " " << b << " " << c << endl;
}

// Function to swap two numbers


void swap2(double& a, double& b) {
double temp = a;
a = b;
b = temp;
}

// Comparison function for ascending order


bool ascending(double& a, double& b) {
return a > b;
}

// Comparison function for descending order


bool descending(double& a, double& b) {
return a < b;
}

Question 2

Main:

#include <iostream>
#include "bank.h"
using namespace std;
int main(void) {
int choice;

while (1) {
ShowMenu();
cout << "Select menu: ";
cin >> choice;
cout << endl;

switch (bank(choice)) {
case bank::MAKE:
MakeAccount();
break;
case bank::DEPOSIT:
DepositMoney();
break;
case bank::WITHDRAW:
WithdrawMoney();
break;
case bank::INQUIRE:
ShowAllAccInfo();
break;
case bank::EXIT:
return 0;
default:
cout << "Illegal selection.." << endl;
}
}
return 0;
}

Bank.h:

#include <iostream>
#include "bank.h"
using namespace std;

Account accArr[MAX_ACC_NUM]; // Account array


int accNum = 0; // # of accounts

// Function to display the main menu


void ShowMenu(void) {
cout << "-----Menu------" << endl;
cout << "1. Make Account" << endl;
cout << "2. Deposit" << endl;
cout << "3. Withdrawal" << endl;
cout << "4. Display all" << endl;
cout << "5. Exit program" << endl;
}

// Function to make a new account


void MakeAccount(void) {
int id;
char name[NAME_LEN];
int balance;

if (accNum >= MAX_ACC_NUM) {


cout << "Sorry! Cannot make an account anymore." << endl;
return;
}

cout << "[Make Account]" << endl;


cout << "Account ID: ";
cin >> id;
cout << "Customer Name: ";
cin.ignore(); // Clear the newline character from the previous input
cin.getline(name, NAME_LEN);
cout << "Initial balance: ";
cin >> balance;
cout << endl;

if (GetAccIdx(id) != -1) {
cout << "Error: Existing account ID" << endl;
return;
}

accArr[accNum].accID = id;
accArr[accNum].balance = balance;
strncpy(accArr[accNum].cusName, name, NAME_LEN - 1);
accArr[accNum].cusName[NAME_LEN - 1] = '\0';
accNum++;
cout << "Account created successfully." << endl;
}

// Function to deposit money into an account


void DepositMoney(void) {
int money;
int id;
cout << "[Deposit]" << endl;
cout << "Account ID: ";
cin >> id;
cout << "Deposit amount: ";
cin >> money;

for (int i = 0; i < accNum; i++) {


if (accArr[i].accID == id) {
accArr[i].balance += money;
cout << "Deposit completed" << endl << endl;
return;
}
}
cout << "This ID is not valid." << endl << endl;
}

// Function to withdraw money from an account


void WithdrawMoney(void) {
int money;
int id;
cout << "[Withdrawal]" << endl;
cout << "Account ID: ";
cin >> id;
cout << "Withdrawal amount: ";
cin >> money;

for (int i = 0; i < accNum; i++) {


if (accArr[i].accID == id) {
if (accArr[i].balance < money) {
cout << "Not enough balance" << endl << endl;
return;
}

accArr[i].balance -= money;
cout << "Withdrawal completed" << endl << endl;
return;
}
}
cout << "This ID is not valid." << endl << endl;
}

// Function to display information of all accounts


void ShowAllAccInfo(void) {
cout << "-----All Accounts------" << endl;
for (int i = 0; i < accNum; i++) {
cout << "Account ID: " << accArr[i].accID << endl;
cout << "Name: " << accArr[i].cusName << endl;
cout << "Balance: " << accArr[i].balance << endl << endl;
}
}

// Function to get the index of an account by its ID


int GetAccIdx(int id) {
for (int i = 0; i < accNum; i++) {
if (accArr[i].accID == id) {
return i;
}
}
return -1;
}

Bank.cpp:

#include <iostream>
#include "bank.h"
using namespace std;

Account accArr[MAX_ACC_NUM]; // Account array


int accNum = 0; // # of accounts

void ShowMenu(void) {
cout << "-----Menu------" << endl;
cout << "1. Make Account" << endl;
cout << "2. Deposit" << endl;
cout << "3. Withdrawal" << endl;
cout << "4. Display all" << endl;
cout << "5. Exit program" << endl;
}

void MakeAccount(void) {
// Implementation of MakeAccount function
}

void DepositMoney(void) {
// Implementation of DepositMoney function
}
void WithdrawMoney(void) {
// Implementation of WithdrawMoney function
}

void ShowAllAccInfo(void) {
// Implementation of ShowAllAccInfo function
}

int GetAccIdx(int id) {


// Implementation of GetAccIdx function
}

You might also like