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;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.