CSI 250L Lab 7 Solution, Spring 2012
American University of Science and Technology · Programming II Lab · 9 pages · Dr. Saeed Raheel · with solution
More CSI 250L files
- Lab 1 Solution · Spring 2012Lab · with solutionView
- Lab 1 · Spring 2012LabView
- Lab 10 Solution · Spring 2012Lab · with solutionView
- Lab 10 · Spring 2012LabView
- Lab 11 Solution · Spring 2012Lab · with solutionView
- Lab 11 · Spring 2012LabView
- Lab 12 Solution · Spring 2012Lab · with solutionView
- Lab 12 · Spring 2012LabView
Show the text of this lab
#include "Address.h"
#include <string>
#include <iostream>
using namespace std;
Address::~Address()
{
delete [] city;
delete [] street;
}
Address::Address()
{
city = NULL;
street = NULL;
}
Address::Address(char *city, char *street)
{
setCity(city);
setStreet(street);
}
void Address::setCity(char *c)
{
//delete [] city;
city = new char [ strlen(c) + 1 ];
strcpy(city, c);
}
void Address::setStreet(char *s)
{
//delete [] street;
street = new char [ strlen(s) + 1 ];
strcpy(street, s);
}
char *Address::getCity()
{
return city;
}
char *Address::getStreet()
{
return street;
}
void Address::print()
{
cout << "City=" << city << " street=" << street << endl;
}
#ifndef __ADDRESS__
#define __ADDRESS__
class Address
{
private:
char *city;
char *street;
public:
Address();
~Address();
Address(char *, char *);
void setCity(char *);
void setStreet(char *);
char *getCity();
char *getStreet();
void print();
};
#endif
#include "Manager.h"
#include <string>
#include <iostream>
using namespace std;
Manager::Manager(int i, char *f, char *l)
{
setFname(f);
setLname(l);
setId(i);
}
Manager::Manager()
{
//setFname("");
//setLname("");
setId(0);
}
char *Manager::getFname()
{
return fname;
}
char *Manager::getLname()
{
return lname;
}
void Manager::setFname(char *f)
{
//delete [] fname;
fname = new char [ strlen(f) + 1 ];
strcpy(fname, f);
}
void Manager::setLname(char *l)
{
//delete [] lname;
lname = new char [ strlen(l) + 1 ];
strcpy(lname, l);
}
void Manager::setId(int i)
{
id = i;
}
int Manager::getId()
{
return id;
}
#ifndef __MANAGER__
#define __MANAGER__
class Manager
{
private:
int id;
char *fname, *lname;
public:
Manager(int, char *, char *);
Manager();
char *getFname();
char *getLname();
int getId();
void setFname(char *);
void setLname(char *);
void setId(int);
};
#endif
#include "Store.h"
#include <cstring>
#include <iostream>
using namespace std;
int Store::count = 0;
char *Store::getName()
{
return name;
}
void Store::setNum(int num)
{
number = num;
}
void Store::setName(char *n)
{
//delete [] name;
name = new char [ strlen(n) + 1 ];
strcpy(name, n);
}
Store::Store()
{
count++;
}
void Store::print()
{
cout << name << "-" << number << " has an address " << ad.getCity() << ",
" << ad.getStreet() << endl;
cout << "Manager: " << mn.getFname() << " " << mn.getLname() << endl;
}
Store::Store(int num, char *n, char *city, char *street):ad(city, street)
{
count++;
setName(n);
setNum(num);
}
Store::Store(int num, char *n, Address a)
{
count++;
setName(n);
setNum(num);
ad = a;
}
void Store::setAddress(char *c1, char *sl)
{
ad.setCity(c1);
ad.setStreet(sl);
}
void Store::setManager(int id, char *f, char *l)
{
mn.setId(id);
mn.setFname(f);
mn.setLname(l);
}
char *Store::getManFname()
{
return mn.getFname();
}
char *Store::getManLname()
{
return mn.getLname();
}
int Store::getManId()
{
return mn.getId();
}
char *Store::getCity()
{
return ad.getCity();
}
char *Store::getStreet()
{
return ad.getStreet();
}
#include "Store.h"
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
int n, i;
cout << "How many stores. to create?";
cin >> n;
Store *st = new Store[n];
for (i=0;i<n;i++)
{
char strname[100];
cout << "Enter store name:";
cin >> strname;
int strnum;
cout << "Enter store number:";
cin >> strnum;
st[i].setNum(strnum);
st[i].setName(strname);
cout << "Enter street name:";
char str[100];
cin >> str;
cout << "Enter city:";
char c[100];
cin >> c;
st[i].setAddress(c, str);
cout << "Enter manager name, lname, id:";
char mnname[100], mnlname[100];
int mnid;
cin >> mnname >> mnlname >> mnid;
st[i].setManager(mnid, mnname, mnlname);
}
int choice;
do
{
cout << "1.
List all store' addresses.\n" << "2.
List the manager info
for a specific store.\n" << "3.
Change a specific store address\n" << "4.
Exit\n";
cin >> choice;
if (choice == 1)
{
for (i=0;i<n;i++)
{
cout << "Store #" << i << " - City:" << st[i].getCity() << " Street:" <<
st[i].getStreet() << endl;
}
}
else if (choice == 2)
{
char strname[100];
cout << "What store to find its manager? Enter the store. name:";
cin >> strname;
for (i=0;i<n;i++)
{
if (strcmp(st[i].getName(), strname))
{
cout << "The manager's name: " << st[i].getManFname() << " " <<
st[i].getManLname()<<endl;
}
}
}
else if (choice == 3)
{
string strname;
cout << "What store to change its address? Enter the store. name:";
cin >> strname;
for (i=0;i<n;i++)
{
// did we find this store?
if (st[i].getName() == strname)
{
// take new address information
cout << "Enter city name:";
char c[100];
cin >> c;
cout << "Enter street:";
char str[100];
cin >> str;
st[i].setAddress(c, str);
}
}
}
} while(choice != 4);
//delete [] st;
return 0;
}