Object Oriented Design Contest
I have code here that explains my object oriented design model. I've
been reading about other design models from what is documented on
wikipedia about the key book on the subject: http://en.wikipedia.org/wiki/Design_patterns
All of the models look fun and interesting but they are very
specialized. I find myself writing bloated C++ code anyway, and not
finding a way to use the basic design models. So I've invented my
own. I call it recursive container design. The idea is to use a
container like a vector, or in my example a map, and do all of the
work within your container inside of the class. This keeps your code
very neat. It may seem redundant at first, but it keeps all of your
code organized in an easy to read and understand classes. This code
really reduced the size of my main function and created a neat little
class that directly relates to what I'm doing.
The only problem is that the code runs into problems after it is
compiled. The search_Name function in my program fails to lookup the
key pair for the data entered into the database. This is probably
because I've never worked with object oriented design before, and
haven't done anything with this particular container before either.
So if anyone is willing to fix up my code, I'll send you a free i-
pod! No one wanted to play my last contest, and I think this one is
more educational and far easier.
#include <utility>
#include <iostream>
#include <string>
#include <map>
using namespace std;
class Bookz : public map<string, string>
{
public:
Bookz() {
cout << "Welcome to the database. Enter information, and type 'end'
to stop."<< endl;
cout << "Name: ";
}
void add(string name, string number){
typedef pair <string, string> b_Pair;
insert( b_Pair(name, number) );
}
~Bookz(){}
void search_Name(string lookup_Num){
map <string, string> :: const_iterator b_Name;
b_Name = find(lookup_Num);
cout << b_Name -> second << "." << endl;
}
};
int main( void ) {
Bookz keeper;
string s="";
string n="";
while (s!="end" || n!="end"){
cin >> s;
if(s=="end"){cout <<"Finished inputing data."<<endl<<endl;
break;}
cout<<"Number: ";
cin >> n;
if(n=="end"){cout <<"Finished inputing data."<<endl<<endl;
break;}
keeper.add(s,n);
cout <<"Name: ";
}
cout << "To search the database enter a name or number. 'quit'
exists."<<endl;
while (s != "quit"){
cout<<"$ ";
cin >> s;
keeper.search_Name(s);
}
if (s == "quit")
cout<<"Goodbye."<<endl;;
}