Q1.
CODE:
#include <iostream>
#include <string>
using namespace std;
class BankAccount {
private:
string depositorName;
string accountNumber;
string accountType;
double balance;
public:
// Constructor to initialize account details
BankAccount(string name, string accNumber, string accType, double initialBalance)
: depositorName(name), accountNumber(accNumber), accountType(accType),
balance(initialBalance) {}
// Method to deposit an amount into the account
void deposit(double amount) {
if (amount > 0) {
balance += amount;
cout << "Deposited: $" << amount << endl;
} else {
cout << "Deposit amount must be positive." << endl;
// Method to withdraw an amount from the account after checking balance
void withdraw(double amount) {
if (amount > 0 && amount <= balance) {
balance -= amount;
cout << "Withdrew: $" << amount << endl;
} else if (amount > balance) {
cout << "Insufficient funds." << endl;
} else {
cout << "Withdrawal amount must be positive." << endl;
// Method to display the name and balance of the account
void display() const {
cout << "Depositor Name: " << depositorName << endl;
cout << "Account Number: " << accountNumber << endl;
cout << "Account Type: " << accountType << endl;
cout << "Balance: $" << balance << endl;
};
int main() {
// Create a BankAccount object with initial values
BankAccount myAccount("John Doe", "123456789", "Savings", 1000.00);
// Display account details
myAccount.display();
// Deposit some money
myAccount.deposit(500.00);
// Withdraw some money
myAccount.withdraw(200.00);
// Attempt to withdraw more than the balance
myAccount.withdraw(2000.00);
// Display updated account details
myAccount.display();
return 0;
OUTPUT:
Q2.
CODE:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void playGame() {
// Generate a random number between 1 and 1000
int numberToGuess = rand() % 1000 + 1;
int userGuess = 0;
bool guessedCorrectly = false;
cout << "I have a number between 1 and 1000." << endl;
cout << "Can you guess my number?" << endl;
while (!guessedCorrectly) {
cout << "Please type your guess: ";
cin >> userGuess;
if (userGuess > numberToGuess) {
cout << "Too high. Try again." << endl;
} else if (userGuess < numberToGuess) {
cout << "Too low. Try again." << endl;
} else {
cout << "Excellent! You guessed the number!" << endl;
guessedCorrectly = true;
int main() {
// Seed the random number generator
srand(static_cast<unsigned int>(time(0)));
char playAgain = 'y';
while (playAgain == 'y' || playAgain == 'Y') {
playGame();
cout << "Would you like to play again (y or n)? ";
cin >> playAgain;
cout << "Thank you for playing!" << endl;
return 0;
OUTPUT:
Q3.
CODE:
#include <iostream>
#include <string>
using namespace std;
class Account {
protected:
string customerName;
string accountNumber;
string accountType;
double balance;
public:
// Method to initialize account details
void initialize(string name, string accNumber, string accType, double initialBalance) {
customerName = name;
accountNumber = accNumber;
accountType = accType;
balance = initialBalance;
// Method to deposit an amount
void deposit(double amount) {
if (amount > 0) {
balance += amount;
cout << "Deposited: $" << amount << endl;
} else {
cout << "Deposit amount must be positive." << endl;
// Method to display the balance
void displayBalance() const {
cout << "Account Number: " << accountNumber << endl;
cout << "Account Type: " << accountType << endl;
cout << "Balance: $" << balance << endl;
// Method to withdraw an amount
virtual void withdraw(double amount) {
if (amount > 0 && amount <= balance) {
balance -= amount;
cout << "Withdrew: $" << amount << endl;
} else if (amount > balance) {
cout << "Insufficient funds." << endl;
} else {
cout << "Withdrawal amount must be positive." << endl;
// Method to compute interest, specific to Savings Account
virtual void computeAndDepositInterest() {
// Default implementation (no interest for base class)
cout << "Interest computation not applicable for this account type." << endl;
// Method to check minimum balance, specific to Current Account
virtual void checkMinimumBalance() {
// Default implementation (no minimum balance for base class)
cout << "Minimum balance check not applicable for this account type." << endl;
};
// Class for Current Account
class CurrAcct : public Account {
private:
double minBalance;
double serviceCharge;
public:
// Initialize current account with minimum balance and service charge
void initialize(string name, string accNumber, double initialBalance, double minBal, double charge)
{
Account::initialize(name, accNumber, "Current", initialBalance);
minBalance = minBal;
serviceCharge = charge;
// Withdraw with minimum balance check
void withdraw(double amount) override {
if (amount > 0 && (balance - amount) >= minBalance) {
balance -= amount;
cout << "Withdrew: $" << amount << endl;
} else if (amount > balance) {
cout << "Insufficient funds." << endl;
} else {
cout << "Withdrawal would result in balance below minimum required." << endl;
// Check and impose service charge if below minimum balance
void checkMinimumBalance() override {
if (balance < minBalance) {
balance -= serviceCharge;
cout << "Minimum balance not maintained. Service charge imposed: $" << serviceCharge <<
endl;
};
// Class for Savings Account
class SavAcct : public Account {
private:
double interestRate;
public:
// Initialize savings account with interest rate
void initialize(string name, string accNumber, double initialBalance, double rate) {
Account::initialize(name, accNumber, "Savings", initialBalance);
interestRate = rate;
// Compute and deposit interest
void computeAndDepositInterest() override {
double interest = balance * interestRate / 100;
balance += interest;
cout << "Interest computed and added: $" << interest << endl;
};
int main() {
// Create and initialize Current Account
CurrAcct currentAccount;
currentAccount.initialize("Alice Smith", "CA123456", 500.00, 100.00, 5.00);
// Create and initialize Savings Account
SavAcct savingsAccount;
savingsAccount.initialize("Bob Johnson", "SA987654", 1000.00, 2.5);
// Display initial balances
cout << "Current Account Details:" << endl;
currentAccount.displayBalance();
cout << "\nSavings Account Details:" << endl;
savingsAccount.displayBalance();
// Perform transactions
cout << "\nPerforming transactions on Current Account:" << endl;
currentAccount.deposit(200.00);
currentAccount.withdraw(150.00);
currentAccount.checkMinimumBalance(); // Check and impose service charge if necessary
currentAccount.displayBalance();
cout << "\nPerforming transactions on Savings Account:" << endl;
savingsAccount.deposit(300.00);
savingsAccount.withdraw(100.00); // Withdraw is allowed in Savings Account (default
implementation)
savingsAccount.computeAndDepositInterest(); // Compute and deposit interest
savingsAccount.displayBalance();
return 0;
OUTPUT:
Q4.
CODE:
#include <iostream>
#include <vector>
using namespace std;
int main() {
const int NUM_CANDIDATES = 5; // Number of candidates
vector<int> voteCounts(NUM_CANDIDATES, 0); // Vector to store vote counts for each candidate
int spoiltBallots = 0; // Counter for spoilt ballots
cout << "Enter votes for the candidates (1 to 5). Enter 0 to end voting." << endl;
while (true) {
int vote;
cout << "Enter vote: ";
cin >> vote;
if (vote == 0) {
// End voting process
break;
} else if (vote >= 1 && vote <= NUM_CANDIDATES) {
// Valid vote for a candidate
voteCounts[vote - 1]++;
} else {
// Invalid vote (spoilt ballot)
spoiltBallots++;
// Display the results
cout << "\nElection Results:" << endl;
for (int i = 0; i < NUM_CANDIDATES; i++) {
cout << "Candidate " << (i + 1) << ": " << voteCounts[i] << " votes" << endl;
cout << "Spoilt ballots: " << spoiltBallots << endl;
return 0;
OUTPUT: