#include <iostream> using namespace std; int main() { int i = 11, j = 22, k = 33; int* iPtr = &i; nt* jPtr = &j; int* kPtr = &k; cout << "\nAt address " << iPtr << ", the value " << *iPtr << " is stored.\n" << "\nAt address " << jPtr << ", the value " << *jPtr << " is stored.\n" << "\nAt address " << kPtr << ", the value " << *kPtr << " is stored.\n"; } ------ Sample run: At address 0x0053AD78, the value 11 is stored. At address 0x0053AD7C, the value 22 is stored. At address 0x0053AD80, the value 33 is stored. |
#ifndef LINKEDLIST #define LINKEDLIST template <typename DataType> class LinkedList { private: /*** Node class ***/ class Node { public: // Node’s operations // Node’s instance variables DataType data; Node * next; }; typedef Node* NodePointer; public: // LinkedList’s methods . . . private: // LinkedList’s instance variables . . . }; . . . #endif |
#include <cassert>//assert #include <string>//string #include <iostream>//cin,cout,>>,<< #include <iomanip>//setw() #include <fstream>//ifstream,is_open() #include <list>//list<T> #include <algorithm>//find using namespace std; //---------------Begin class AddressItem ------------------------- class AddressCounter { public: void read(istream &in){in >>address;count =1;} void print(ostream &out)const {out <<setw(15)<<left <<address <<"\ t occurs "<<count <<"times \n";} void tally(){count++;} friend bool operator==(const AddressCounter&addr1, const AddressCounter&addr2); private: string address; int count; }; inline bool operator==(const AddressCounter&addr1, const AddressCounter&addr2) {return addr1.address ==addr2.address;} //-----------------End class AddressCounter -------------------- typedef list<AddressCounter>TCP_IP_List; int main() { string fileName; //file of TCP/IP addresses TCP_IP_List addrCntList; //list of addresses ifstream inStream; //open file of addresses cout <<"Enter name of file containing TCP/IP addresses:"; cin >>fileName; inStream.open(fileName.data()); assert(inStream.is_open()); AddressCounter item; //one address &its count for (;;)//input loop: { item.read(inStream); //read an address if (inStream.eof())break; //if eof,quit TCP_IP_List::iterator it = //is item in list? find(addrCntList.begin(),addrCntList.end(),item); if (it !=addrCntList.end()) //if so: (*it).tally(); //++its count else //otherwise addrCntList.push_back(item); //add it to the list }//end loop cout <<"\nAddresses and Counts:\n \n"; //output the list for (TCP_IP_List::iterator it =addrCntList.begin(); it !=addrCntList.end();it++) (*it).print(cout); } -------------------------- Listing of file ipAddresses.dat used in sample run: 128.159.4.20 123.111.222.333 100.1.4.31 34.56.78.90 120.120.120.120 128.159.4.20 123.111.222.333 123.111.222.333 77.66.55.44 100.1.4.31 123.111.222.333 128.159.4.20 -------------------------- Sample run: Enter name of file containing TCP/IP addresses:ipAddresses.dat Addresses and Counts: 128.159.4.20 occurs 2 times 123.111.222.333 occurs 3 times 100.1.4.31 occurs 1 times 34.56.78.90 occurs 0 times 120.120.120.120 occurs 0 times 77.66.55.44 occurs 0 times |
#include <iostream> using namespace std; int main(int argc,char*argv []) { cout <<"\nThere are "<<argc <<"strings on the command line:\n"; for (int i =0;i <argc;i++) cout <<'\t'<<"argv ["<<i <<"] contains:" <<argv [i ] <<endl; } -------------------- Sample Run If we execute commandline by entering the command $commandLine I want an argument then the output will be There are 5 strings on the command line: argv [0 ]contains:commandLine argv [1 ]contains:I argv [2 ]contains:want argv [3 ]contains:an argv [4 ]contains:argument |
#include <iostream>//cin,cout,<<,>> #include <cmath>//sqrt() #include <cstdlib>//strtod() using namespace std; int main(int argc,char*argv []) { if (argc <2) { cout <<"\n***Usage:sroot List-of-Positive-Numbers \n \n"; return 1; } double inValue; //double equivalent of an argument for (int i =1;i <argc;i++) { inValue =strtod(argv [i ],0); if (inValue >=0) cout <<"\n-->The square root of "<<inValue <<"is "<<sqrt(inValue)<<endl; else cout <<"\n***"<<argv [i ] <<"is not a valid data item;" <<"\n***must be numeric and positive.\n" <<endl; } } ---------------------------- Sample runs: $sroot ***Usage:sroot List-of-Positive-Numbers $sroot 4 -->The square root of 4 is 2 $sroot 4 ABC 7 9 -->The square root of 4 is 2 ***ABC is not a valid data item; ***must be numeric and positive. -->The square root of 7 is 2.64575 -->The square root of 9 is 3 |
#ifndef BIRD #define BIRD #include <string> using namespace std; class Bird { public: Bird(const string&kind); string getKind()const; virtual string getMovement()const =0; virtual string getCall()const =0; private: string myKind; }; inline Bird::Bird(const string&kind){myKind =ind;} inline string Bird::getKind()const {return myKind;} #endif |
#ifndef FLYING_BIRD #define FLYING_BIRD #include "Bird.h" class FlyingBird :public Bird { public: FlyingBird(const string&kind); virtual string getMovement()const; }; inline FlyingBird::FlyingBird(const string&ind):Bird(ind){} inline string FlyingBird::getMovement()const {return "flew";} #endif |
#ifndef WALKING_BIRD #define WALKING_BIRD #include "Bird.h" class WalkingBird :public Bird { public: WalkingBird(const string&kind); virtual string getMovement()const; }; inline WalkingBird::WalkingBird(const string&ind):Bird(kind){} inline string WalkingBird::getMovement()const {return "walked";} #endif |
#ifndef HAWK #define HAWK #include "FlyingBird.h" class Hawk :public FlyingBird { public: Hawk(); virtual string getCall()const; }; inline Hawk::Hawk():FlyingBird("hawk"){} inline string Hawk::getCall()const {return "ir-reeeee";} #endif |
#ifndef CHICKEN #define CHICKEN #include "WalkingBird.h" class Chicken :public WalkingBird { public: Chicken(); virtual string getCall()const; }; inline Chicken::Chicken():WalkingBird("chic en"){} inline string Chicken::getCall()const {return "cluc -cluck";} #endif |
#ifndef DUCK #define DUCK #include "FlyingBird.h" class Duck :public FlyingBird { public: Duck(); virtual string getCall()const; }; inline Duck::Duck():FlyingBird("duck"){} inline string Duck::getCall()const {return "quac -quac ";} inline string Duck::getMovement()const { RandomInt coin(0,1); return (coin ==0)?FlyingBird::getMovement():string("waddled"); } #endif |
#include "Chicken.h" #include "Duck.h" #include "GreenParrot.h" #include "Hawk.h" #include "Jabberwock.h" #include "Peacock.h" #include "RedParrot.h" #include "RandomInt.h" #include <iostream> #include <vector> using namespace std; int main() { const int NUMBER_OF_BIRDS =7; vector<Bird*>birdVec(NUMBER_OF_BIRDS); birdVec [0 ] =new Chicken(); birdVec [1 ] =new Duck() birdVec [2 ] =new GreenParrot(); birdVec [3 ] =new Hawk(); birdVec [4 ] =new Jabberwock(); birdVec [5 ] =new Peacock(); birdVec [6 ] =new RedParrot(); cout <<"\nWelcome to the Bird Aviary!\n" <<"\nTo remain in the aviary,keep pressing 'Enter';\n" <<"enter any other character to leave:\n \n"; int i; Bird*aBird; char response; RandomInt d7(0,NUMBER_OF_BIRDS-1); for (;;) { cin.get(response); if (response !='\n')break; i =d7.generate(); aBird =birdVec [i ]; cout <<"A "<<aBird->getKind() <<"just "<<aBird->getMovement() <<"by,calling \""<<aBird->getCall() <<"\"...\n"<<endl; } for (i =0;i <NUMBER_OF_BIRDS;i++) delete birdVec [i ]; cout <<"\nGood-bye,and come again!"<<endl; } |
Sample Run: Figure 14.12 |
Welcome to the Bird Aviary! To remain in the aviary,keep pressing 'Enter'; enter any other character to leave: . A jabberwock just whiffled by,calling "burble-burble"... . A hawk just flew by,calling "kir-reeeee"... . A red parrot just flew by,calling "squawwwwwwww "... . A duck just waddled by,calling "quack-quac "... . A chicken just walked by,calling "cluck-cluc "... . A duck just flew by,calling "quack-quack"... q . Goodbye,and come again! |