Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ Problem Write a program to keep track of business contacts. Specification Cr

ID: 3913329 • Letter: C

Question

C++ Problem

Write a program to keep track of business contacts.

Specification

Create a BusinessContact class (cpp and .h file) with the following fields:

firstName:String

lastName:String

phoneNumber:String

emailAddress:String

company:String

Store the records in memory in an array or vector.

Store the records on disk in the text file contacts.txt.

Create a menu that allows for the following operations:

Add a Contact

Delete a Contact

View a Contact

Display the Contact List

Automatically read the text file and store the records in an array when the program begins.

Automatically write the records to the file when the program ends.

Explanation / Answer

here is your files : --------->>>>>>>>

businesscontact.h : --------->>>>>

#ifndef BUSINESS_CONTACT
#define BUSINESS_CONTACT
#include<iostream>

using namespace std;

class BusinessContact{
private:
  string fname;
  string lname;
  string phNumber;
  string email;
public:
  BusinessContact();
  BusinessContact(const BusinessContact &oth);
  BusinessContact& operator=(const BusinessContact &oth);
  BusinessContact(string,string,string,string);
  
  void setFirstName(string);
  void setLastName(string);
  void setPhoneNumber(string);
  void setEmail(string);
  
  string getFirstName()const;
  string getLastName()const;
  string getPhoneNumber()const;
  string getEmail()const;
};

#endif

businesscontact.cpp : --------->>>>>>>>>>

#include "businesscontact.h"

BusinessContact::BusinessContact(){
setEmail("");
setFirstName("");
setLastName("");
setPhoneNumber("");
}
BusinessContact::BusinessContact(string fn,string ln,string ph,string em){
setEmail(em);
setFirstName(fn);
setLastName(ln);
setPhoneNumber(ph);
}

BusinessContact::BusinessContact(const BusinessContact &oth){
*this = oth;
}
BusinessContact& BusinessContact::operator=(const BusinessContact &oth){
if(this == &oth){
  return *this;
}
setEmail(oth.getEmail());
setFirstName(oth.getFirstName());
setLastName(oth.getLastName());
setPhoneNumber(oth.getPhoneNumber());

return *this;
}

void BusinessContact::setEmail(string em){
this->email = em;
}

void BusinessContact::setFirstName(string fn){
this->fname = fn;
}
void BusinessContact::setLastName(string ln){
this->lname = ln;
}
void BusinessContact::setPhoneNumber(string ph){
this->phNumber = ph;
}

string BusinessContact::getEmail()const{
return email;
}
string BusinessContact::getFirstName()const{
return this->fname;
}
string BusinessContact::getLastName()const{
return this->lname;
}
string BusinessContact::getPhoneNumber()const{
return this->phNumber;
}

businessMain.cpp : ------------>>>>>>>>

#include "businesscontact.cpp"
#include<fstream>
#include<vector>

void addContact(vector<BusinessContact> &contacts){
BusinessContact temp;
string line;
cout<<" Enter First Name : ";
cin>>line;
temp.setFirstName(line);
cout<<" Enter Last Name : ";
cin>>line;
temp.setLastName(line);
cout<<" Enter Phone Number : ";
cin>>line;
temp.setPhoneNumber(line);
cout<<" Enter e-mail : ";
cin>>line;
temp.setEmail(line);
contacts.push_back(temp);
}

void deleteContact(vector<BusinessContact> &contacts){
string fn,ln;
cout<<" Enter First Name : ";
cin>>fn;
cout<<" Enter Last Name : ";
cin>>ln;

for(auto it = contacts.begin();it != contacts.end();it++){
  if(fn == (*it).getFirstName() && ln == (*it).getLastName()){
   contacts.erase(it,it+1);
   return;
  }
}
}

void viewContact(BusinessContact contact){
printf(" %20s%20s%20s%20s",contact.getFirstName().c_str(),contact.getLastName().c_str(),contact.getPhoneNumber().c_str(),contact.getEmail().c_str());
}

void displayContactList(vector<BusinessContact> contacts){
printf(" %20s%20s%20s%20s","First Name","Last Name","Phone Number","E-mail");
for(int i = 0;i<contacts.size();i++){
  viewContact(contacts[i]);
}
}

void load(vector<BusinessContact> &contacts,ifstream &ifs){
contacts.clear();
if(!ifs.is_open()){
  return;
}
BusinessContact temp;
string line;
while(!ifs.eof()){
  ifs>>line;
  if(ifs.eof()){
   break;
  }
  temp.setFirstName(line);
  ifs>>line;
  temp.setLastName(line);
  ifs>>line;
  temp.setPhoneNumber(line);
  ifs>>line;
  temp.setEmail(line);
  contacts.push_back(temp);
}
}

void save(vector<BusinessContact> contacts,ofstream &ofs){
if(!ofs){
  return;
}
BusinessContact temp;
for(int i = 0;i<contacts.size();i++){
  temp = contacts[i];
  ofs<<" "<<temp.getFirstName()<<" "<<temp.getLastName()<<" "<<temp.getPhoneNumber()<<" "<<temp.getEmail();
  //cout<<" "<<temp.getFirstName()<<" "<<temp.getLastName()<<" "<<temp.getPhoneNumber()<<" "<<temp.getEmail();
}
}

void menu(){
system("cls");
cout<<" 1- Add A Contact";
cout<<" 2- Delete A Contact";
cout<<" 3- View A Contact";
cout<<" 4- Display Contact List";
cout<<" 5- Exit";
cout<<" Choose : ";
}

int main(){
ifstream ifs("contacts.txt");
vector<BusinessContact> contacts;
load(contacts,ifs);
int ch = -1;
while(ch != 5){
  menu();
  cin>>ch;
  switch(ch){
   case 1:addContact(contacts);break;
   case 2:deleteContact(contacts);break;
   case 3:
    {
     int n;
     cout<<" Choose Number Between(1-"<<(contacts.size())<<") : ";
     cin>>n;
     if(n > 0 && n < contacts.size()+1){
      viewContact(contacts[n-1]);
     }else{
      cout<<" Invalid Number Choosen";
     }
     break;
    }
   case 4:displayContactList(contacts);break;
   case 5:break;
   default:cout<<" Invalid Option";
  }
  cin.get();
  cin.ignore();
  cin.clear();
}
ifs.close();
ofstream ofs("contacts.txt");
save(contacts,ofs);
ofs.close();
return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote