0% found this document useful (2 votes)
3K views

C++ Project On Video Library Management

This document contains C++ code for a video library management system with the following key features: 1. It defines several classes like main_menu, shape, cassettes, balance, account, and other to manage different aspects of the video library such as the menu, cassette/CD data, transactions, expenses etc. 2. The main_menu class contains functions for displaying the main menu, taking user input, and calling other class functions for various operations like adding new cassettes, viewing sales reports, entering expenses etc. 3. The cassettes, balance and account classes manage the cassette/CD data, balances and transaction data respectively with data members and functions for operations on the corresponding data

Uploaded by

Suman Karar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (2 votes)
3K views

C++ Project On Video Library Management

This document contains C++ code for a video library management system with the following key features: 1. It defines several classes like main_menu, shape, cassettes, balance, account, and other to manage different aspects of the video library such as the menu, cassette/CD data, transactions, expenses etc. 2. The main_menu class contains functions for displaying the main menu, taking user input, and calling other class functions for various operations like adding new cassettes, viewing sales reports, entering expenses etc. 3. The cassettes, balance and account classes manage the cassette/CD data, balances and transaction data respectively with data members and functions for operations on the corresponding data

Uploaded by

Suman Karar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 40

//Video Library Management System // Declaration of header files #include <iostream.h> #include <fstream.h> #include <process.h> #include <string.

h> #include <stdio.h> #include <ctype.h> #include <conio.h> #include <dos.h> #include <stdlib.h> #include <iomanip.h> #include <graphics.h> typedef char option[15]; const int ROW = 10, COL = 10; int scan; int ascii; // To hold the special characters for moving the prompt in menu

// To display the main menu options option a[]= { "NewCassPur", "ListOfPurchase", "DailyCassSales", "SalesReport", "AddOtherExp", "OtherExpRep", "ClosingStock", "MonthlyProfit", "Exit" }; // Function used to do screening class main_menu { int i,done; public: void void void char void void }; /* Class member functions for drawing boxes */ class shape { public: void line_hor(int, int, int, char); void line_ver(int, int, int, char); void box(int, int, int, int, char); }; // Class contains the cassettes/CDs deposit of customers class cassettes normalvideo(int x,int y,char *str); reversevideo(int x,int y,char *str); box(int x1,int y1,int x2,int y2); menu(); control_menu(); help(void);

{ public: void new_cassettes(void); // Function to add new cassettes /CDs in music shop // For cassettes/CDs entry into the cassettes.dat data file void add_to_file(int, char t_Cass_name[30], char t_Comp_name[30] , int, int, int, int, float); void display_list(void); // Displaying the cassettes/CDs list void delete_cassette(int); // Deletes the temporary cassette rec ord int last_cas_code(void); // if the file is exist or not char *return_name(int); // Function for validation entry of name char *return_address(int); // Function for validation entry of a ddress int recordno(int); void display(int); // To display the cassette/CD information acc ount private: // Data Members of cassette.dat data file int cas_code; // cassette/CD code - film, nonfilm, religious char Cass_name[30]; // Title of the cassette/CD char Comp_name[30]; // cassette/CD company int tot_cassette; // Total cassette/CD purchased int dd, mm, yy; // Date of purchase float price; // Price per cassette/CD }; class balance { public: void add_to_file(int, int, int, int, int, float); // Add r ecord for balance cassette/CD void balance_cassette(void); // Function to display the balan ce cassette/CD void delete_balance(int); // Deleting the balance from Tba l.dat int give_balance(int); // returns the current balance of a part icular // cassette/CD c ode void Update_balance(int, int, int , int , int, float); // Functi on to update balance after cassette/CD sale float return_price(int); // Return the cassette/CD price void monthly_profit(void); ansaction private: // Data members of int cas_code; // int cas_bal; // int dd; // Balance int mm; int yy; float price; // }; Tbal.dat data file cassette/CD code to be balance Total number of cassettes/CDs in balance date Unit price of cassettes/CDs on code wise // Monthly profit after every tr

// Class contains the customers daily cassette/CD transaction entry class account { public: void new_account(void); // Function to sale cassettes/CDs void close_account(void); // Function to close the cassett e/CD purchase void clear(int, int); // Function to perform a clear screen func tion void Display_sales(void); // Displaying the sales report o f cassettes/CDs int last_cas_code(void); // if the file is exist or not float sales_status(int m1, int y1, float cod1, float cod2, float cod3); private: void add_to_file(int, char tP_name[30], char tP_address[30],int, int, int, int); // Function to add transaction records void delete_account(int); // Function to delete a transaction re cord // Data members of person.dat data file int cas_code; // cassette/CD code - film, nonfilm, rel igious char P_name[30]; // Person Name char P_address[30]; // Person Address int No_cass; // Number of cassette/CD int dd, mm, yy; // To store the system date/ purchase da te }; class other { public : // Function to display other expense screen like salary, // electricity bill, telephone and miscellaneous expences void Expense_other(void); // Add the data to Other.dat data file void add_to_file(int, char tNat_Expen[30], int, int, int, float) ; void display_expense(void); // Display the expenses float other_status(int m1, int y1); private : // Data members of other.dat data file int O_code; // Other expence code /* The other expence code as : 1 Salary to workers, 2 Electricity bill 3 Telephone bills 4 Miscellaneous expenses */ char Nat_Expen[30]; // Nature of expense description int dd, mm, yy; // Expense date float amount; // Expense amount }; // Function to displays all the menu prompt messages // from the pointer array of option a[]

void main_menu::normalvideo(int x,int y,char *str) { gotoxy(x,y); cprintf("%s",str); } // Function to move the cursor on the menu prompt // with a reverse video color void main_menu::reversevideo(int x,int y,char *str) { textcolor(5+143); textbackground(WHITE); gotoxy(x,y); cprintf("%s",str); textcolor(GREEN); textbackground(BLACK); } void main_menu::box(int x1,int y1,int x2,int y2) { for(int col=x1;col<x2;col++) { gotoxy(col,y1); cprintf("%c",196); gotoxy(col,y2); cprintf("%c",196); } for(int row=y1;row<y2;row++) { gotoxy(x1,row); cprintf("%c",179); gotoxy(x2,row); cprintf("%c",179); } gotoxy(x1,y1); cprintf("%c",218); gotoxy(x1,y2); cprintf("%c",192); gotoxy(x2,y1); cprintf("%c",191); gotoxy(x2,y2); cprintf("%c",217); } // Displaying the main menu of music system char main_menu::menu() { clrscr(); textcolor(22); box(20, 6, 65, 20); box(18, 4, 67, 22); textcolor(5+143); gotoxy(36, 5); textbackground(BLUE); cprintf("M U S I C"); textbackground(BLACK); textcolor(22); for(i = 1; i < 9; i++)

normalvideo(32, i+10, a[i]); reversevideo(32, 10, a[0]); i = done = 0; _setcursortype(_NOCURSOR); do { int key = getch(); switch (key) { case 00: key = getch(); switch (key) { case 72: normalvideo(32, i+10, a[i]); i--; if (i == -1) i = 8; reversevideo(32,i+10, a[i]); break; case 80: normalvideo(32, i+10, a[i]); i++; if (i == 9) i = 0; reversevideo(32, i+10, a[i]); break; } break; case 13: done = 1; } } while (!done); _setcursortype(_NOCURSOR); return(i+49); } /* The function main_menu() is used to display the main menu system */ void main_menu::control_menu() { char choice; cassettes cas; account a; balance bal; other oth; do { choice = menu(); clrscr(); switch (choice) { case '1': _setcursortype(_NORMALCURSOR); box(3, 1, 75, 24);

box(5, 2, 73, 23); cas.new_cassettes(); // New cassette/CD entry fu nction break; case '2': box(3, 1, 75, 24); box(5, 2, 73, 23); cassettes ini; ini.display_list(); // Glogal list of cassettes/ CDs function break; case '3': box(3, 1, 75, 24); box(5, 2, 73, 23); _setcursortype(_NORMALCURSOR); a.new_account(); // Enter the personwise sale ca ssette/CD break; case '4': box(3, 1, 75, 24); box(5, 2, 73, 23); account a; _setcursortype(_NORMALCURSOR); a.Display_sales(); // Displays the sales cassett es/CDs break; case '5': box(3, 1, 75, 24); box(5, 2, 73, 23); _setcursortype(_NORMALCURSOR); oth.Expense_other(); // Entry of other expenses break; case '6': box(3, 1, 75, 24); box(5, 2, 73, 23); gotoxy(10,10); oth.display_expense(); // Displays the expenses break; case '7': box(3, 1, 75, 24); box(5, 2, 73, 23); gotoxy(10,10); bal.balance_cassette(); // Function to display t he balance cassettes/CDs in shop break; case '8' : box(3, 1, 75, 24); box(5, 2, 73, 23); gotoxy(10,10); // Monthly profit after every transaction bal.monthly_profit(); break; case '9' :exit(0); } } while (choice != 8);

} /* Function to draw horizontal line for menu*/ void shape::line_hor(int column1, int column2, int row, char c) { for (column1; column1 <= column2; column1++) { gotoxy(column1, row); cout << c; } } /* Function to draw vertical line for menu */ void shape::line_ver(int row1, int row2, int column, char c) { for (row1; row1 <= row2; row1++) { gotoxy(column, row1); cout << c; } } /* Function for drawing boxes for menu */ void shape::box(int column1, int row1, int column2, int row2, char c) { char ch = 218; char c1, c2, c3, c4; char l1 = 196, l2 = 179; if (c == ch) { c1 = 218; c2 = 191; c3 = 217; c4 = 217; l1 = 196; l2 = 179; } else { c1 = c; c2 = c; c3 = c; c4 = c; l1 = c; c2 = c; } gotoxy(column1, row1); cout << c1; gotoxy(column2, row1); cout << c2; gotoxy(column1, row2); cout << c3; gotoxy(column2, row2); cout << c4; column1++; column2--; line_hor(column1, column2, row1, l1); //Horizontal line line_hor(column1, column2, row2, l1); column1--;

column2++; row1++; row2--; line_ver(row1, row2, column1, l2); // Vertical line line_ver(row1, row2, column2, l2); } /* Function to display help about this project */ void main_menu::help(void) { clrscr(); setbkcolor(7); settextstyle(7,HORIZ_DIR,5); outtextxy(70,20,"Welcome to Video Shop"); settextstyle(2,HORIZ_DIR,5); outtextxy(60,100, "This project your can keep record of daily music cass ettes/CDs "); delay(2); outtextxy(60,130, "transaction. This program is capable of holding any n o. of cassettes/CDs."); delay(2); outtextxy(60,160, "-In first option you can enter new cassette/CD inform ation"); delay(2); outtextxy(60,190, "-In second option you can see the list of all the cas settes/CDs"); delay(2); outtextxy(60,220,"-In third option you can sales the cassettes/CDs accor ding to demand"); delay(2); outtextxy(60,250, "-Through fourth optiion you can see the sales status" ); delay(2); outtextxy(60,280, "In the fifth option enter your daily other expenses") ; delay(2); outtextxy(60,310, "-In fifth option you can take monthWise individual ac count report"); delay(2); outtextxy(60,340,"-In sixth option you can take reports of other expense s"); delay(2); outtextxy(60,370, "Note-: Enter only valid data while you maintain this package"); delay(2); outtextxy(60,400, "-And last option is Quit (Exit From Music Window)"); delay(2); settextstyle(7,HORIZ_DIR,4); outtextxy(80,420,"Press any key to continue..."); getch(); } /* Function for displaying a cassette/CD information when required */ void cassettes::display(int t_cas_code) { fstream file; file.open("cassettes.dat", ios::in);

file.seekg(0, ios::beg); // Displays the record contents matching // with t_cas_code from cassettes.dat data file while (file.read((char *)this, sizeof(cassettes))) { if (t_cas_code == cas_code) { gotoxy(8, 5); cout << "Account no. " << cas_code; gotoxy(10, 8); cout << "Name : "; puts(Cass_name); gotoxy(10, 9); cout << "Comany Name : "; puts(Comp_name); gotoxy(10, 10); cout << "Price : " << setw(15) // setwidth << setprecision(2) // set pos ition of decimal point << setiosflags(ios::left) et left justified output << setiosflags(ios::showpoint) // always show decimal point << setiosflags(ios::fixed) set fixed notation for display << price; break; } } file.close(); } /* Function to find is their records in cassette.dat file or not */ int cassettes::last_cas_code(void) { fstream file; file.open("cassettes.dat", ios::in); file.seekg(0, ios::beg); int tcount = 0; int count = 0; // Founds the last account no. while (file.read((char *)this, sizeof(cassettes))) { tcount = cas_code; count = count + tcount; } file.close(); return count; } /* Function to find is their records in file person.dat or not */ int account::last_cas_code(void) { // // s

fstream file; file.open("Person.dat", ios::in); file.seekg(0, ios::beg); int tcount = 0; int count = 0; // Founds the last account no. while (file.read((char *)this, sizeof(account))) { tcount = cas_code; count = count + tcount; } file.close(); return count; } /* Function for returning balance cassette/CD. This function returns the balance cassette/CD on code wise to know the current balance from "Tbal.dat" data file. */ int balance::give_balance(int t_cas_code) { fstream file; file.open("Tbal.dat", ios::in); file.seekg(0, ios::beg); int t_balance = 0; // Gives the last balance of an individual account while (file.read((char *)this, sizeof(balance))) { if (file.eof()) break; if (cas_code == t_cas_code) { t_balance = cas_bal; break; } } file.close(); return t_balance; } // Function to return the cassette/CD price float balance::return_price(int t_cas_code) { float t_price = 0.0; fstream file; file.open("Tbal.dat", ios::in); file.seekg(0, ios::beg); // Gives the last balance of an individual account while (file.read((char *)this, sizeof(balance))) { if (file.eof()) break; if (cas_code == t_cas_code) { t_price = price;

break; } } file.close(); return t_price; } /* This function add_to_file() is used to create new/fresh record in the data file */ void cassettes::add_to_file(int t_cas_code, char t_Cass_name[30], char t_Comp_name[30], int t_cas, int tdd, int tmm, int tyy, float t_price) { cas_code = t_cas_code; strcpy(Cass_name, t_Cass_name); strcpy(Comp_name, t_Comp_name); tot_cassette = t_cas; dd = tdd; mm = tmm; yy = tyy; price = t_price; fstream file; // Appends new account record with the price into cassettes.dat data fil e file.open("cassettes.dat", ios::out ios::app); file.write((char *)this, sizeof(cassettes)); file.close(); } /* This function add_to_file() is used to create new/fresh record in the data file */ void balance::add_to_file(int t_cas_code, int t_cas, int tdd, int tmm, int tyy, float t_price) { int bal = give_balance(t_cas_code); if (bal > 0) { fstream file; file.open("Tbal.dat", ios::in); fstream temp; temp.open("TEMP.dat", ios::out); file.seekg(0,ios::beg); // Uses a copy method to delete the cassette/CD // from cassette.dat data file while (!file.eof()) { file.read((char *)this, sizeof(balance)); if (file.eof()) break; if (cas_code != t_cas_code) temp.write((char *)this, sizeof(balance)); else { cas_code = t_cas_code; cas_bal = t_cas + bal;

dd = tdd; mm = tmm; yy = tyy; price = t_price; temp.write((char *)this, sizeof(balance)); } } file.close(); temp.close(); file.open("Tbal.dat", ios::out); temp.open("TEMP.dat", ios::in); temp.seekg(0, ios::beg); // Copy the TEMP.dat contents into cassette.dat data file while (!temp.eof()) { temp.read((char *)this, sizeof(balance)); if (temp.eof()) break; file.write((char *)this, sizeof(balance)); } file.close(); temp.close(); } else { cas_code = t_cas_code; cas_bal = t_cas; dd = tdd; mm = tmm; yy = tyy; price = t_price; fstream file; // Appends new account record with the // price into cassettes.dat data file file.open("Tbal.dat", ios::out ios::app); file.write((char *)this, sizeof(balance)); file.close(); } } // Function for deleting a account from cassettes.dat file void cassettes::delete_cassette(int t_cas_code) { fstream file; file.open("cassettes.dat", ios::in); fstream temp; temp.open("TEMP.dat", ios::out); file.seekg(0,ios::beg); // Uses a copy method to delete the account // from cassette.dat data file while (!file.eof()) { file.read((char *)this, sizeof(cassettes)); if (file.eof()) break; if (cas_code != t_cas_code)

temp.write((char *)this, sizeof(cassettes)); } file.close(); temp.close(); file.open("cassettes.dat", ios::out); temp.open("TEMP.dat", ios::in); temp.seekg(0, ios::beg); // Copy the TEMP.dat contents into cassette.dat data file while (!temp.eof()) { temp.read((char *)this, sizeof(cassettes)); if (temp.eof()) break; if (cas_code != t_cas_code) file.write((char *)this, sizeof(cassettes)); } file.close(); temp.close(); } // Function for deleting a balance from Tbal.dat file void balance::delete_balance(int t_cas_code) { fstream file; file.open("Tbal.dat", ios::in); fstream temp; temp.open("TEMP.dat", ios::out); file.seekg(0,ios::beg); // Uses a copy method to delete the account from Tbal.dat data file while (!file.eof()) { file.read((char *)this, sizeof(balance)); if (file.eof()) break; if (cas_code != t_cas_code) temp.write((char *)this, sizeof(balance)); } file.close(); temp.close(); file.open("Tbal.dat", ios::out); temp.open("TEMP.dat", ios::in); temp.seekg(0, ios::beg); // Copy the TEMP.dat contents into Tbal.dat data file while (!temp.eof()) { temp.read((char *)this, sizeof(balance)); if (temp.eof()) break; if (cas_code != t_cas_code) file.write((char *)this, sizeof(balance)); } file.close(); temp.close(); }

/* Function for add an account details of daily tranaction into person.dat file. */ void account::add_to_file(int t_cas_code, char tP_name[30], char tP_address[30],int tNo_cass, int d1, int m1, int y1) { cas_code = t_cas_code; strcpy(P_name, tP_name); strcpy(P_address, tP_address); No_cass = tNo_cass; dd = d1; mm = m1; yy = y1; fstream file; // Appends the transaction record into person.dat data file file.open("person.dat", ios::out ios::app); file.write((char *)this, sizeof(account)); file.close(); } /* Function for deleting an account from person.dat file. */ void account::delete_account(int t_cas_code) { fstream file; file.open("person.dat", ios::in); // Open to read records fstream temp; temp.open("TEMP.dat", ios::out); // Open to write records file.seekg(0, ios::beg); // Positioned from begining of the file // Uses the copy method for deleting the // transaction record from person.dat data file while (!file.eof()) { file.read((char *)this, sizeof(account)); if (file.eof()) break; if (cas_code != t_cas_code) temp.write((char *)this, sizeof(account)); } file.close(); temp.close(); file.open("person.dat", ios::out); temp.open("TEMP.dat", ios::in); temp.seekg(0, ios::beg); // Uses copy method to transfer the record // from TEMP.dat file to person.dat data file while (!temp.eof()) { temp.read((char *)this, sizeof(account)); if (temp.eof()) break; if (cas_code != t_cas_code) file.write((char *)this, sizeof(account)); }

file.close(); temp.close(); } // Function for add an other expenses details in other.dat data file void other::add_to_file(int tO_code, char tNat_Expen[30], int d1, int m1, int y1, float tamount) { O_code = tO_code; strcpy(Nat_Expen, tNat_Expen); dd = d1; mm = m1; yy = y1; amount = tamount; fstream file; // Appends the transaction record into other.dat data file file.open("other.dat", ios::out ios::app); file.write((char *)this, sizeof(other)); file.close(); } /* Function for displaying an account from "cassettes.dat". */ void cassettes::display_list(void) { clrscr(); int flag; float tot_price = 0.0, tot_balance = 0.0; fstream file; gotoxy(25,2); cout << "List of cassettes/CDs in Music Shop"; gotoxy(25, 3); cout << "==============================="; int d1, m1, y1; struct date d; // For extracting system date getdate(&d); d1 = d.da_day; m1 = d.da_mon; y1 = d.da_year; gotoxy(62, 3); cout << "Date: " << d1 << "/" << m1 << "/" << y1; gotoxy(1, 4); for (int j = 1; j <= 79; j++) cout << "="; gotoxy(1, 5); cout << "Code #"; gotoxy(9, 5); cout << "Cassette/CD Name"; gotoxy(34, 5); cout << "Company Name"; gotoxy(55, 5); cout << "Qty"; gotoxy(61, 5); cout << "Price"; gotoxy(72, 5); cout << "Total";

gotoxy(1, 6); for (j = 1; j <= 79; j++) cout << "="; file.open("cassettes.dat", ios::in); file.seekg(0,ios::beg); int row = 7; // Reads all the records to display on the screen while (file.read((char *)this, sizeof(cassettes))) { tot_price = 0.0; flag = 0; delay(2); gotoxy(3, row); cout << cas_code; gotoxy(9, row); puts(Cass_name); gotoxy(34, row); puts(Comp_name); gotoxy(55, row); cout << tot_cassette; gotoxy(61, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << price; tot_price = tot_cassette * price; gotoxy(72, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << tot_price; tot_balance = tot_balance + tot_price; row++; if (row > 23) { flag = 1; row = 6; gotoxy(4, 24); cout << "Press any key to continue.... "; getch(); clrscr(); } } gotoxy(1, row); for (j = 1; j <= 79; j++) cout << "="; row++; gotoxy(3, row);

cout << "Total price of cassettes/CDs is : "; gotoxy(72, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << tot_balance; file.close(); if (!flag) { gotoxy(4, 24); cout << "Press any key to continue..."; getch(); } getch(); } /* Function for displaying an cassette/CD sales on day wise */ void account::Display_sales(void) { clrscr(); int flag; fstream file; int tcas_code; int xdd, xmm, xyy; clrscr(); gotoxy(10, 8); cout << "Enter the cassette/CD Code "; gotoxy(10, 9); cout <<"As 1 or 2 or 3 "; gotoxy(10, 11); cout << "Enter the date " ; gotoxy(30, 9); cin >> tcas_code; gotoxy(30, 11); cin >> xdd; gotoxy(32, 11); cout << "-"; gotoxy(33, 11); cin >> xmm; gotoxy(35, 11); cout << "-"; gotoxy(36, 11); cin >> xyy; if (tcas_code < 1) { gotoxy(5, 23); cout << "Your entry is not valid"; getch(); return; } else if (tcas_code > 3) { gotoxy(5, 23); cout << "Your entry is not valid";

getch(); return; } clrscr(); gotoxy(25, 2); cout << "Sales Report in Music Shop"; gotoxy(25, 3); cout << "=========================="; int d1, m1, y1; struct date d; // For extracting system date getdate(&d); d1 = d.da_day; m1 = d.da_mon; y1 = d.da_year; gotoxy(62, 3); cout << "Date: " << d1 << "/" << m1 << "/" << y1; gotoxy(1, 5); for (int j = 1; j <= 79; j++) cout << "="; gotoxy(1, 6); cout << "Code #"; gotoxy(9, 6); cout << "Name"; gotoxy(34, 6); cout << "Address"; gotoxy(55, 6); cout << "Qty"; gotoxy(61, 6); cout << "Date"; gotoxy(1, 7); for (j = 1; j <= 79; j++) cout << "="; file.open("Person.dat", ios::in); file.seekg(0,ios::beg); int row = 8; // Reads all the records to display on the screen while (file.read((char *)this, sizeof(account))) { if ((tcas_code == cas_code) && (xmm == mm) && (xyy == yy)) { flag = 0; delay(2); gotoxy(3, row); cout << cas_code; gotoxy(9, row); puts(P_name); gotoxy(34, row); puts(P_address); gotoxy(55, row); cout << No_cass; gotoxy(61, row); cout << dd << "-" << mm << "-" << yy; ++row; if (row > 23) {

flag = 1; row = 6; gotoxy(4, 24); cout << "Press any key to continue.... "; getch(); clrscr(); } } } ++row; gotoxy(1, row); for (j = 1; j <= 79; j++) cout << "="; row++; file.close(); if (!flag) { gotoxy(4, 24); cout << "Press any key to continue..."; getch(); } getch(); } /* Function for displaying other expenses in shop */ void other::display_expense(void) { clrscr(); int flag; fstream file; /* The other expence code as : 1 Salary to workers, 2 Electricity bill 3 Telephone bills 4 Miscellaneous expenses */ int tO_code; int xdd, xmm, xyy; clrscr(); gotoxy(10, 8); cout << "Enter the Expense Code "; gotoxy(10, 9); cout <<"1 Salary to Worker "; gotoxy(10, 10); cout <<"2 Electricity bill "; gotoxy(10, 11); cout <<"3 Telephone bill "; gotoxy(10, 12); cout <<"4 Miscellaneous "; gotoxy(10, 13); cout <<"Enter your Choice"; gotoxy(10, 14); cout << "Enter the date " ;

gotoxy(30, 13); cin >> tO_code; gotoxy(30, 14); cin >> xdd; gotoxy(32, 14); cout << "-"; gotoxy(33, 14); cin >> xmm; gotoxy(35, 14); cout << "-"; gotoxy(36, 14); cin >> xyy; if (tO_code < 1) { gotoxy(5, 23); cout << "Your entry is not valid"; getch(); return; } else if (tO_code > 4) { gotoxy(5, 23); cout << "Your entry is not valid"; getch(); return; } clrscr(); gotoxy(25, 2); cout << "Other Expenses in Music Shop"; gotoxy(25, 3); cout << "============================"; int d1, m1, y1; struct date d; // For extracting system date getdate(&d); d1 = d.da_day; m1 = d.da_mon; y1 = d.da_year; gotoxy(62, 3); cout << "Date: " << d1 << "/" << m1 << "/" << y1; gotoxy(1, 5); for (int j = 1; j <= 79; j++) cout << "="; gotoxy(1, 6); cout << "Code #"; gotoxy(9, 6); cout << "Nature Expense"; gotoxy(34, 6); cout << "Date"; gotoxy(55, 6); cout << "Amount"; gotoxy(1, 7); for (j = 1; j <= 79; j++) cout << "=";

file.open("other.dat", ios::in); file.seekg(0,ios::beg); int row = 8; // Reads all the records to display on the screen while (file.read((char *)this, sizeof(other))) { if ((tO_code == O_code) && (xmm == mm) && (xyy == yy)) { flag = 0; delay(2); gotoxy(3, row); cout << O_code; gotoxy(9, row); puts(Nat_Expen); gotoxy(34, row); cout << dd << "-" << mm << "-" << yy; gotoxy(55, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << amount; ++row; if (row > 23) { flag = 1; row = 6; gotoxy(4, 24); cout << "Press any key to continue.... "; getch(); clrscr(); } } } ++row; gotoxy(1, row); for (j = 1; j <= 79; j++) cout << "="; row++; file.close(); if (!flag) { gotoxy(4, 24); cout << "Press any key to continue..."; getch(); } getch(); } /* Function for clearing specified row and column. */ void account::clear(int col, int row)

{ for (int j = col; j <= 79; j++) { gotoxy(j, row); cout << " "; } } /* Function for return name of the account holder from cassettes.dat. */ char *cassettes::return_name(int t_cas_code) { fstream file; file.open("cassettes.dat", ios::in); file.seekg(0, ios::beg); char t_Cass_name[30]; // Return the name to display at report screen if found while (file.read((char *)this, sizeof(cassettes))) { if (cas_code == t_cas_code) { strcpy(t_Cass_name, Cass_name); break; } } file.close(); return t_Cass_name; } /* Function for return Comp_name of the account holder from cassettes.dat. */ char *cassettes::return_address(int t_cas_code) { fstream file; file.open("cassettes.dat", ios::in); file.seekg(0, ios::beg); char t_Comp_name[30]; // Return the Comp_name to display at report screen if found while (file.read((char *)this, sizeof(cassettes))) { if (cas_code == t_cas_code) { strcpy(t_Comp_name, Comp_name); break; } } file.close(); return t_Comp_name; } void balance::monthly_profit() { clrscr(); int flag; fstream file; gotoxy(25,1); cout << "Monthly Profit Statement";

gotoxy(25, 2); cout << "========================"; int d1, m1, y1; struct date d; getdate(&d); d1 = d.da_day; m1 = d.da_mon; y1 = d.da_year; float T_bal = 0.0; float G_bal = 0.0; gotoxy(55, 3); cout << "As on Date: " << d1 << "/" << m1 << "/" << y1; gotoxy(1, 4); for (int j = 1; j <= 79; j++) cout << "="; gotoxy(1, 5); cout << "Code #"; gotoxy(15, 5); cout << "Total Balance"; gotoxy(40, 5); cout << "Date"; gotoxy(50, 5); cout << "Unit Price"; gotoxy(65, 5); cout << "Total Amount"; gotoxy(1, 6); for (j = 1; j <= 79; j++) cout << "="; file.open("Tbal.dat", ios::in); file.seekg(0,ios::beg); int row = 7; float cod1=0.0; float cod2=0.0; float cod3=0.0; // Reads all the records to display on the screen while (file.read((char *)this, sizeof(balance))) { flag = 0; if (cas_code == 1) cod1 = price; else if (cas_code == 2) cod2 = price; else cod3 = price; T_bal = cas_bal * price; delay(2); gotoxy(3, row); cout << cas_code; gotoxy(20, row); // For extracting system date

cout << cas_bal; gotoxy(40, row); cout << dd <<"-"<< mm << "-" << yy; gotoxy(53, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << price; G_bal = G_bal + T_bal; gotoxy(68, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << T_bal; T_bal = 0.0; row++; if (row > 23) { flag = 1; row = 6; gotoxy(4, 24); cout << "Press any key to continue.... "; getch(); clrscr(); } } gotoxy(1, row); for (j = 1; j <= 79; j++) cout << "="; row++; gotoxy(50, row); cout << "Grand Total"; gotoxy(68, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << G_bal; file.close(); row++; float saltotal = 0.0; account a; saltotal = a.sales_status(m1, y1, cod1, cod2, cod3); the sales status row++; gotoxy(1, row); for (j = 1; j <= 79; j++) cout << "="; row++; gotoxy(5, row); cout << "This month's Sales Amount";

// Will display

gotoxy(50, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << saltotal; float gother = 0.0; other oth; gother = oth.other_status(m1, y1); row = row + 2; gotoxy(5, row); cout << "Other expenses "; gotoxy(50, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << gother; row++; gotoxy(1, row); for (j = 1; j <= 79; j++) cout << "="; row++; gotoxy(5, row); cout << "Net Profit"; float net_bal = 0.0; net_bal = (G_bal + saltotal) - gother; gotoxy(50, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << net_bal; if (!flag) { gotoxy(4, 24); cout << "Press any key to continue..."; getch(); } getch(); } // Function to find the sales total value float account::sales_status(int m1, int y1, float cod1, float cod2, float cod3) { fstream file; file.open("Person.dat", ios::in); file.seekg(0,ios::beg); // Reads all the records to display on the screen float ts = 0.0; float gts = 0.0;

while (file.read((char *)this, sizeof(account))) { if ((m1 == mm) && (y1 == yy)) { if (cas_code == 1) ts = No_cass * cod1; else if (cas_code == 2) ts = No_cass * cod2; else ts = No_cass * cod3; gts = gts + ts; ts = 0; } } file.close(); return gts; } // Function to find the other status float other::other_status(int m1, int y1) { fstream file; file.open("other.dat", ios::in); file.seekg(0,ios::beg); // Reads all the records to display on the screen float goth = 0.0; while (file.read((char *)this, sizeof(other))) { if ((m1 == mm) && (y1 == yy)) { goth = goth + amount; } } file.close(); return goth; } // Function to display the balance cassette/CD in music shop void balance::balance_cassette(void) { clrscr(); int flag; fstream file; gotoxy(25,1); cout << "List of Balance cassettes/CDs"; gotoxy(25, 2); cout << "========================="; int d1, m1, y1; struct date d; // For extracting system date getdate(&d); d1 = d.da_day; m1 = d.da_mon; y1 = d.da_year; float T_bal = 0.0; float G_bal = 0.0;

gotoxy(55, 3); cout << "As on Date: " << d1 << "/" << m1 << "/" << y1; gotoxy(1, 4); for (int j = 1; j <= 79; j++) cout << "="; gotoxy(1, 5); cout << "Code #"; gotoxy(15, 5); cout << "Total Balance"; gotoxy(40, 5); cout << "Date"; gotoxy(50, 5); cout << "Unit Price"; gotoxy(65, 5); cout << "Total Amount"; gotoxy(1, 6); for (j = 1; j <= 79; j++) cout << "="; file.open("Tbal.dat", ios::in); file.seekg(0,ios::beg); int row = 7; // Reads all the records to display on the screen while (file.read((char *)this, sizeof(balance))) { flag = 0; T_bal = cas_bal * price; delay(2); gotoxy(3, row); cout << cas_code; gotoxy(20, row); cout << cas_bal; gotoxy(40, row); cout << dd <<"-"<< mm << "-" << yy; gotoxy(53, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << price; G_bal = G_bal + T_bal; gotoxy(68, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << T_bal; T_bal = 0.0; row++; if (row > 23) {

flag = 1; row = 6; gotoxy(4, 24); cout << "Press any key to continue.... "; getch(); clrscr(); } } gotoxy(1, row); for (j = 1; j <= 79; j++) cout << "="; row++; gotoxy(50, row); cout << "Grand Total"; gotoxy(68, row); cout << setw(15) << setprecision(2) << setiosflags(ios::left) << setiosflags(ios::showpoint) << setiosflags(ios::fixed) << G_bal; file.close(); if (!flag) { gotoxy(4, 24); cout << "Press any key to continue..."; getch(); } getch(); } /* Function for recording the new cassettes/CDs in shop */ void cassettes::new_cassettes(void) { char ch; int i, valid; clrscr(); // Declaring the class objects for different operations with // member functions account a; balance bal; cassettes ini; shape s; s.box(2, 1, 79, 25, 218); s.box(25, 2, 54, 4, 219); gotoxy(65, 2); cout << "<0>=Exit"; gotoxy(3,3); for (i = 1; i<= 76; i++) cprintf(" "); textbackground(BLACK); textcolor(BLACK+BLINK); textbackground(WHITE);

gotoxy(30, 3); cprintf("Add New cassette/CD"); textcolor(LIGHTGRAY); textbackground(BLACK); int d1, m1, y1; // Declare the variable for purchase date of cas sette/CD struct date d; // For extracting system date getdate(&d); d1 = d.da_day; m1 = d.da_mon; y1 = d.da_year; // Extract the system.date

// Declaring the temporary variables for cassette/CD entry char c_code[10]; int t_cas_code; char t_Cass_name[30]; char t_Comp_name[30]; int t_cas; int tdd, tmm, tyy; float t_price; t_cas_code = ini.last_cas_code(); // Appends and deletes a false record // to create primary position in data files if (t_cas_code == 0) { ini.add_to_file(t_cas_code, "abc", "xyz", 1, 1, 1, 1, 1.1); ini.delete_cassette(t_cas_code); bal.add_to_file(t_cas_code, 0, 0, 0, 0, 0.0); bal.delete_balance(t_cas_code); } gotoxy(4, 6); cout << "Date: " << d1 << '/' << m1 << '/' << y1; gotoxy(5, 8); cout << "Cassette/CD Code # "; gotoxy(5, 10); cout << "Cassette/CD Name : "; gotoxy(5, 12); cout << "Company Name : "; gotoxy(5, 14); cout << "Total cassettes/CDs: "; gotoxy(5, 16); cout << "Individual Cassette/CD price : "; gotoxy(5, 18); cout << "Enter the Date "; // Steps to enter the Cassette/CD code either 1 - 2 - 3. do { a.clear(22, 8); a.clear(5, 23); // Clears the buttom message gotoxy(5, 23); cout << "Enter cassettes/CDs Code either 1/2/3 "; valid = 1;

gotoxy(22, 8); gets(c_code); t_cas_code = atoi(c_code); if (t_cas_code <= 0) { valid = 0; a.clear(5, 23); gotoxy(5, 23); cprintf("\7Should not other than 1, 2, 3"); getch(); gotoxy(5, 23); cout << "Enter cassettes/CDs Code either 1/2/3 "; } } while (!valid); a.clear(5, 23); // Steps to enter the Cassette/CD name do { a.clear(22, 10); a.clear(5, 23); gotoxy(5, 23); cout << "Enter Name of the Cassette/CD"; valid = 1; gotoxy(22, 10); gets(t_Cass_name); strupr(t_Cass_name); if (t_Cass_name[0] == '0') return; if (strlen(t_Cass_name) == 0 strlen(t_Cass_name) > 25) { valid = 0; gotoxy(5, 23); cprintf("\7Cassette/CD Name should not greater than 25") ; getch(); } }while (!valid); a.clear(5, 23); // Steps to enter company name do { a.clear(22, 12); a.clear(5, 23); gotoxy(5, 23); cout << "Enter Company Name "; valid = 1; gotoxy(22, 12); gets(t_Comp_name); strupr(t_Comp_name); if (t_Comp_name[0] == '0') return; if (strlen(t_Comp_name) == 0 strlen(t_Comp_name) > 25) { valid = 0; gotoxy(5, 23); cprintf("\7Company Name should not greater than 25");

getch(); } }while (!valid); a.clear(5, 23); // Steps to enter the total cassettes/CDs purchased do { a.clear(22, 14); a.clear(5, 23); gotoxy(5, 23); cout << "Enter Total number of cassettes/CDs purchased"; valid = 1; gotoxy(22, 14); gets(c_code); t_cas = atoi(c_code); if (t_cas == 0) { valid = 0; a.clear(5, 23); gotoxy(5, 23); cprintf("\7Enter valid Cassette/CD number"); getch(); gotoxy(5, 23); cout << "Enter Total number of cassettes/CDs purchased"; } }while (!valid); a.clear(5, 23); // Steps to enter the Cassette/CD/price do { a.clear(35, 16); a.clear(5, 23); gotoxy(5, 23); cout << "Enter individual Cassette/CD price"; valid = 1; gotoxy(35, 16); gets(c_code); t_price = atof(c_code); if (t_price <= 0) { valid = 0; gotoxy(5, 23); cprintf("\7Enter valid price for Cassette/CD"); getch(); } }while (!valid); a.clear(5, 23); // Steps to enter the purchase date a.clear(22, 18); a.clear(5, 23); gotoxy(5, 23); cout << "Enter date on which the Cassette/CD is purchase"; valid = 1; gotoxy(22, 18); cin >> tdd; gotoxy(25, 18);

cout << "-"; gotoxy(26, 18); cin >> tmm; gotoxy(28, 18); cout << "-"; gotoxy(29, 18); cin >> tyy; a.clear(5, 23); do { a.clear(5, 20); valid = 1; gotoxy(5, 20); cout << "Do you want to save the record <Y/N>: "; ch = getche(); if (ch == '0') return; ch = toupper(ch); }while (ch != 'N' && ch != 'Y'); if (ch == 'N') return; // Appends the records contents into // both cassettes.dat and person.dat data files ini.add_to_file(t_cas_code, t_Cass_name, t_Comp_name, t_cas, tdd, tmm, tyy, t_price); bal.add_to_file(t_cas_code, t_cas, tdd, tmm, tyy, t_price); } /* This function update_balance() is used to update the balance Cassette/CD in Tbal.dat data file */ void balance::Update_balance(int t_cas_code, int t_cas, int tdd, int tmm, int tyy, float t_price) { int bal = give_balance(t_cas_code); if (bal > 0) { fstream file; file.open("Tbal.dat", ios::in); fstream temp; temp.open("TEMP.dat", ios::out); file.seekg(0,ios::beg); // Uses a copy method to delete the account from Tbal.dat data f ile while (!file.eof()) { file.read((char *)this, sizeof(balance)); if (file.eof()) break; if (cas_code != t_cas_code) temp.write((char *)this, sizeof(balance)); else { cas_code = t_cas_code;

cas_bal = bal - t_cas; dd = tdd; mm = tmm; yy = tyy; price = t_price; temp.write((char *)this, sizeof(balance)); } } file.close(); temp.close(); file.open("Tbal.dat", ios::out); temp.open("TEMP.dat", ios::in); temp.seekg(0, ios::beg); // Copy the TEMP.dat contents into Tbal.dat data file while (!temp.eof()) { temp.read((char *)this, sizeof(balance)); if (temp.eof()) break; file.write((char *)this, sizeof(balance)); } file.close(); temp.close(); } else { cas_code = t_cas_code; cas_bal = t_cas; dd = tdd; mm = tmm; yy = tyy; price = t_price; fstream file; // Appends new account record with the price // into cassettes.dat data file file.open("Tbal.dat", ios::out ios::app); file.write((char *)this, sizeof(balance)); file.close(); } } /* Function for creating new account for new customer. */ void account::new_account(void) { char ch; int i, valid; clrscr(); balance bal; shape s; s.box(2, 1, 79, 25, 218); s.box(25, 2, 54, 4, 219); gotoxy(65, 2);

cout << "<0>=Exit"; gotoxy(3,3); for (i = 1; i<= 76; i++) cprintf(" "); textbackground(BLACK); textcolor(BLACK+BLINK); textbackground(WHITE); gotoxy(30, 3); cprintf("Sales of cassettes/CDs"); textcolor(LIGHTGRAY); textbackground(BLACK); int d1, m1, y1; struct date d; // For extracting system date getdate(&d); d1 = d.da_day; m1 = d.da_mon; y1 = d.da_year; int t_cas_code; int C_bal = 0; float t_price; char c_code[2]; char tP_name[30]; // Person Name char tP_address[30]; // Person Address int tNo_cass; // Number of Cassette/CD t_cas_code = last_cas_code(); // Appends and deletes a false record to create // primary position in data files if (t_cas_code == 0) { add_to_file(t_cas_code, "xxxx", "xxxxx", 1, 1, 1, 1); delete_account(t_cas_code); } gotoxy(5, 6); cout << "Date: " << d1 << '/' << m1 << '/' << y1; gotoxy(5, 8); cout << "Cassette/CD Code "; gotoxy(5, 10); cout << "Name of Person : "; gotoxy(5, 12); cout << "Address : "; gotoxy(5, 14); cout << "Total Cassette/CD : "; // Steps to enter the Cassette/CD code either 1 - 2 - 3. do { clear(22, 8); clear(5, 23); // Clears the buttom message gotoxy(5, 23); cout << "Enter cassettes/CDs Code either 1/2/3 "; valid = 1; gotoxy(22, 8); gets(c_code); t_cas_code = atoi(c_code);

if (t_cas_code <= 0) { valid = 0; clear(5, 23); gotoxy(5, 23); cprintf("\7Should not other than 1, 2, 3"); getch(); gotoxy(5, 23); cout << "Enter cassettes/CDs Code either 1/2/3 "; } else { C_bal = bal.give_balance(t_cas_code); t_price = bal.return_price(t_cas_code); if (C_bal > 0) { gotoxy(40, 8); cout << "Total cassettes/CDs in Shop : " << C_ba l; break; } else { cout << "There is no Cassette/CD in shop"; return; } } } while (!valid); clear(5, 23); // Steps to enter the name of the purchase person do { clear(22, 10); clear(5, 23); gotoxy(5, 23); cout << "Enter Name of the Person"; valid = 1; gotoxy(22, 10); gets(tP_name); strupr(tP_name); if (tP_name[0] == '0') return; if (strlen(tP_name) == 0 strlen(tP_name) > 25) { valid = 0; gotoxy(5, 23); cprintf("\7Name should not greater than 25"); getch(); clear(5, 23); } }while (!valid); clear(5, 23); // Steps to enter the address of the purchase person do { clear(22, 12);

clear(5, 23); gotoxy(5, 23); cout << "Enter Name of the Person"; valid = 1; gotoxy(22, 12); gets(tP_address); strupr(tP_address); if (tP_address[0] == '0') return; if (strlen(tP_address) == 0 strlen(tP_address) > 25) { valid = 0; gotoxy(5, 23); cprintf("\7Address should not greater than 25"); getch(); clear(5, 23); } }while (!valid); clear(5, 23); do { clear(22, 14); clear(5, 23); gotoxy(5, 23); cout << "No. of Cassette/CD "; valid = 1; gotoxy(22, 14); cin >> tNo_cass; if (tNo_cass > C_bal) { valid = 0; gotoxy(5, 23); cprintf("\7The availability of Cassette/CD is not suffic ient"); getch(); } }while (!valid); clear(5, 23); do { clear(5, 17); valid = 1; gotoxy(5, 17); cout << "Do you want to save the record <Y/N>: "; ch = getche(); if (ch == '0') return; ch = toupper(ch); }while (ch != 'N' && ch != 'Y'); if (ch == 'N') return; // Updates the new balance after deducting the current sales // Appends the records contents into both person.dat data files add_to_file(t_cas_code, tP_name, tP_address, tNo_cass, d1, m1, y1);

bal.Update_balance(t_cas_code, tNo_cass, d1, m1, y1, t_price); } /* Function for enter the other expences in other.dat data file. */ void other::Expense_other(void) { char ch; int i, valid; clrscr(); account a; shape s; s.box(2, 1, 79, 25, 218); s.box(25, 2, 54, 4, 219); gotoxy(65, 2); cout << "<0>=Exit"; gotoxy(3,3); for (i = 1; i<= 76; i++) cprintf(" "); textbackground(BLACK); textcolor(BLACK+BLINK); textbackground(WHITE); gotoxy(30, 3); cprintf("Other Expence in Shop"); textcolor(LIGHTGRAY); textbackground(BLACK); int d1, m1, y1; struct date d; // For extracting system date getdate(&d); d1 = d.da_day; m1 = d.da_mon; y1 = d.da_year; char c_code[2]; int tO_code; // Other expence code char tNat_Expen[30]; // Nature of expense description float tamount; // Expense amount gotoxy(5, 6); cout << "Date: " << d1 << '/' << m1 << '/' << y1; gotoxy(5, 8); cout << "Expense Code "; gotoxy(5, 10); cout << "Nature of Expense : "; gotoxy(5, 12); cout << "Amount : "; // Steps to enter the other expense code do { a.clear(22, 8); a.clear(5, 23); // Clears the buttom message gotoxy(5, 23); cout << "Enter Expense code Code either 1/2/3/4 "; valid = 1; gotoxy(22, 8); gets(c_code); tO_code = atoi(c_code);

if (tO_code <= 0) { valid = 0; a.clear(5, 23); gotoxy(5, 23); cprintf("\7Expence code should not other than 1/2/3/4"); getch(); gotoxy(5, 23); cout << "Enter other expense Codes either 1/2/3/4 "; } } while (!valid); a.clear(5, 23); // Steps to enter the nature of expense do { a.clear(22, 10); a.clear(5, 23); gotoxy(5, 23); cout << "Enter the Nature of expense"; valid = 1; gotoxy(22, 10); gets(tNat_Expen); strupr(tNat_Expen); if (tNat_Expen[0] == '0') return; if (strlen(tNat_Expen) == 0 strlen(tNat_Expen) > 25) { valid = 0; gotoxy(5, 23); cprintf("\7Nature of expense not greater than 25"); getch(); a.clear(5, 23); } }while (!valid); a.clear(5, 23); gotoxy(22, 12); cin >> tamount; do { a.clear(5, 17); valid = 1; gotoxy(5, 17); cout << "Do you want to save the record <Y/N>: "; ch = getche(); if (ch == '0') return; ch = toupper(ch); }while (ch != 'N' && ch != 'Y'); if (ch == 'N') return; // Appends the records contents into both person.dat data files if (tamount > 0) add_to_file(tO_code, tNat_Expen, d1, m1, y1, tamount);

} /* Function for returning the record no. for updating price */ int cassettes::recordno(int t_cas_code) { fstream file; file.open("cassettes.dat", ios::in); file.seekg(0, ios::beg); int count = 0; // Finds the record position in cassettes.dat data file while (file.read((char *)this, sizeof(cassettes))) { count++; if (t_cas_code == cas_code) break; } file.close(); return count; } /* Function for closing any account after inputing account number. */ void account::close_account(void) { clrscr(); char t_acc[10]; int t, t_cas_code; gotoxy(71, 1); cout << "<0>=Exit"; gotoxy(5, 5); cout << "Enter the account no. "; gets(t_acc); t = atoi(t_acc); t_cas_code = t; if (t_cas_code == 0) return; clrscr(); cassettes ini; balance bal; if (!bal.give_balance(t_cas_code)) { gotoxy(5, 5); cout << "\7Account not found "; getch(); return; } gotoxy(71, 1); cout << "<0>=Exit"; gotoxy(3, 3); textbackground(WHITE); for (int i = 1; i <= 76; i++) cprintf(" "); textbackground(BLACK); textcolor(BLACK+BLINK); textbackground(WHITE); gotoxy(30, 3); cprintf("Close account screen"); textcolor(LIGHTGRAY); textbackground(BLACK);

int d1, m1, y1; struct date d; getdate(&d); d1 = d.da_day; m1 = d.da_mon; y1 = d.da_year; gotoxy(5, 6); cout << "Date: " << d1 << "/" << m1 << "/" << y1; char ch; ini. display(t_cas_code); do { clear(5, 15); gotoxy(5, 15); cout << "Close this account <y/n?? "; ch = getche(); if (ch == '0') return; ch = toupper(ch); }while (ch != 'N' && ch != 'Y'); if (ch == 'N') return; // Function calls to delete the existing account no. ini.delete_cassette(t_cas_code); delete_account(t_cas_code); gotoxy(5, 20); cout << "\7Account Deleted"; gotoxy(5, 23); cout << "Press any key to continue..."; getch(); }

You might also like