Archive

Archive for the ‘Others’ Category

C++ Program to implement Hierarchical Inheritance (Part 1) – Q20

January 20, 2010 Leave a comment

Q20. Program to implement Hierarchical Inheritance (Part 1):

Imagine a publishing company that markets books as well as audicassette. Create a class publication that stores the title and price. From this class derive two classes as follows:
– Book, which adds a Pagecount, AuthurName, Edition
– Tape, which adds Playnigtime in minutes, SpeakerName, Date of Recording
Each of these classes should have a getdata( ) and putdat()
Functions to read and to display the data reapectively.

… from College notes (BCA/MCA assignments):

#include <iostream.h>
#include <conio.h>

class CPubs{
	protected:
		char title[20];
		float price;
	};

class CBooks : public CPubs{
	private:
		char aname[20];
		int pcount, edition;
	public:
		void getdata(){
			cout<<"\n Enter Title of Book: ";
			cin>>title;
			cout<<"\n Enter Price: ";
			cin>>price;
			cout<<"\n Enter Author Name: ";
			cin>>aname;
			cout<<"\n Enter Page Count: ";
			cin>>pcount;
			cout<<"\n Enter Edition: ";
			cin>>edition;
			}
		void showdata(){
			cout<<"\n\t Book Title: "<<title;
			cout<<"\n\t Price: "<<price;
			cout<<"\n\t Author Name: "<<aname;
			cout<<"\n\t Page Count: "<<pcount;
			cout<<"\n\t Edition no.: "<<edition;
			}
	};

class CTapes : public CPubs{
	private:
		char sname[20];
		int ptime;
		int dd, mm, yy;
	public:
		void getdata(){
			cout<<"\n Enter Title of Cassette: ";
			cin>>title;
			cout<<"\n Enter Price: ";
			cin>>price;
			cout<<"\n Enter Speaker Name: ";
			cin>>sname;
			cout<<"\n Enter Play Time: ";
			cin>>ptime;
			cout<<"\n Enter Date of Recording (dd mm yy): ";
			cin>>dd>>mm>>yy;
			}
		void showdata(){
			cout<<"\n\t Cassette Title: "<<title;
			cout<<"\n\t Price: "<<price;
			cout<<"\n\t Speaker Name: "<<sname;
			cout<<"\n\t Play Time: "<<ptime;
			cout<<"\n\t Date of Recording: " 
    <<dd<<":"<<mm<<":"<<yy;
			}
	};

void main(){

	CBooks Obook;
	CTapes Otape;

	clrscr();

	cout<<"\n Publishing Company";
	cout<<"\n ~~~~~~~~~~~~~~~~~~";

	cout<<"\n Enter the Information of BOOKS:-"<<endl;
	Obook.getdata();
	cout<<"\n Enter the Information of TAPES:-"<<endl;
	Otape.getdata();

	clrscr();

	cout<<"\n Information of BOOKS & TAPES : -";
	cout<<"\n\n BOOKS : -"<<endl;
	Obook.showdata();
	cout<<"\n\n TAPES : -"<<endl;
	Otape.showdata();

	getch();

	}

 

Output:

Publishing Company

Enter the Information of BOOKS:-

Enter Title of Book: cplusplus

Enter Price: 250

Enter Author Name: stroustrup

Enter Page Count: 700

Enter Edition: 4

Enter the Information of TAPES:-

Enter Title of Cassette: bacardiblast

Enter Price: 125

Enter Speaker Name: ricky

Enter Play Time: 90

Enter Date of Recording (dd mm yy): 10 03 2000

 

Information of BOOKS & TAPES : –

BOOKS : –
Book Title: cplusplus
Price: 250
Author Name: stroustrup
Page Count: 700
Edition no.: 4

TAPES : –
Cassette Title: bacardiblast
Price: 125
Speaker Name: ricky
Play Time: 90
Date of Recording: 10:3:2000


C++ Program to implement Operator Overloading (>>, <<) – Q19

January 19, 2010 Leave a comment

Q19. Program to implement Operator Overloading (>>, <<):

Write a class which contains a string as private data member. Add a member function IsPalindrome that returns TRUE/FALSE depending upon whether the str is palindrome or not. Overload the <> operator to insert the string and print the string respectively along with appropriate message.

… from College notes (BCA/MCA assignments):

#include <iostream.h>
#include <string.h>
#include <conio.h>

enum bool {false, true};

class Cpal{
	private:
		char *str;
	public:
		Cpal(){}

		bool IsPalindrome();

		friend ostream& operator<<(ostream &, const Cpal &);

		friend istream& operator>>(istream &, const Cpal &);
	};

bool Cpal :: IsPalindrome(){
	int len, i, j;
	bool valid;

	len = strlen(str);

	for(i=0, j=len-1; i<len/2; i++, j--){
		if(str[i] == str[j])
			valid = true;
		else{
			valid = false;
			break;
			}
		}
	return valid;
	}

istream& operator>>(istream &istr, const Cpal &Opal){
	return istr.get(Opal.str, 80);
	}

ostream& operator<<(ostream &ostr, const Cpal &Opal){
	return ostr<<Opal.str;
	}

void main(){
	Cpal Opal;
	clrscr();

	cout<<"\n Enter a String: ";
	cin>>Opal;

	cout<<"\n The String: ";
	cout<<Opal;

	if(Opal.IsPalindrome())
		cout<<"\n\t is a Palindrome.";
	else
		cout<<"\n\t is not a Palindrome.";

	getch();
	}

 

Output:

Enter a String: able was i i saw elba

The String: able was i i saw elba
is a Palindrome.

 

Enter a String: my name is Manoj

The String: my name is Manoj
is not a Palindrome.


Categories: Cpp Tags: ,

C++ Program to implement Operator Overloading for String Comparison with relational op (+, , ==) – Q18

January 18, 2010 Leave a comment

Q18. Program to implement Operator Overloading for String Comparison with relational op (+, , ==):

Implement the operator overloading for following relational operators for two different strings
– Concatenate two strings using +
– Compare two strings with following overloaded operator >, <, ==

… from College notes (BCA/MCA assignments):

#include <iostream.h>
#include <conio.h>
#include <string.h>

class CStrings{
	private:
		char str[20];
	public:
		void getdata();
		friend CStrings operator+(CStrings&, CStrings&);
		friend int operator<(CStrings&, CStrings&);
		friend int operator>(CStrings&, CStrings&);
		friend int operator==(CStrings&, CStrings&);
	};

void CStrings :: getdata(){
	cout<<"\n Enter a String: ";
	cin>>str;
	}

CStrings operator+(CStrings &s1, CStrings &s2){
	CStrings Os;
	strcpy(Os.str, s1.str);
	strcat(Os.str, s2.str);
	cout<<"\n Concatenation of Str1 & str2: "<<Os.str;
	return Os;
	}

int operator<(CStrings &s1, CStrings &s2){
	if(strcmp(s1.str, s2.str) < 0)
		return 1;
	else
		return 0;
	}

int operator>(CStrings &s1, CStrings &s2){
	if(strcmp(s1.str, s2.str) > 0)
		return 1;
	else
		return 0;
	}


int operator==(CStrings &s1, CStrings &s2){
	if(strcmp(s1.str, s2.str) == 0)
		return 1;
	else
		return 0;
	}

void main(){
	clrscr();
	CStrings Ostr, Ostr1, Ostr2;

	cout<<"\n Enter the Information:-"<<endl;
	Ostr1.getdata();
	Ostr2.getdata();

	cout<<"\n String Concatenation:-"<<endl;
	Ostr = Ostr1 + Ostr2;

	cout<<"\n String Comparison:-"<<endl;
	if(Ostr1 < Ostr2)
		cout<<endl<<"\t str1 is less than str2";
	else if(Ostr1 > Ostr2)
		cout<<endl<<"\t str1 is greater than str2";
	else if(Ostr1 == Ostr2)
		cout<<endl<<"\t str1 and str2 are equal.";

	getch();
	}

 

Output:

Enter the Information:-

Enter a String: manoj

Enter a String: pandey

String Concatenation:-

Concatenation of Str1 & str2: manojpandey

String Comparison:-

str1 is less than str2


Categories: Cpp Tags: ,

C++ Program to implement Operator Overloading with binary arithmetic op (*,+,-) – Q17

January 17, 2010 Leave a comment

Q17. Program to implement Operator Overloading -with binary arithmetic op (*,+,-):

Define a class complex with two data members real & imag.
Perform the following operations:
– Find the sum of two complex numbers
– Find the difference of two complex numbers
– Find the Product of two complex numbers
– Find the Product of a complex number with a constant

… from College notes (BCA/MCA assignments):

#include <iostream.h>
#include <conio.h>

class Ccomplex{
	private:
		double real, img;
	public:
		Ccomplex(){}
		Ccomplex(double r, double i){
			real = r;
			img = i;
			}
		friend Ccomplex operator+(Ccomplex &, Ccomplex &);
		friend Ccomplex operator-(Ccomplex &, Ccomplex &);
		friend Ccomplex operator*(Ccomplex &, Ccomplex &);
		friend Ccomplex operator*(Ccomplex &, double);
		friend ostream& operator<<(ostream &, Ccomplex &);
		friend istream& operator>>(istream &, Ccomplex &);
	};

Ccomplex operator+(Ccomplex &c1, Ccomplex &c2){
	return Ccomplex(c1.real + c2.real, c1.img + c2.img);
	}

Ccomplex operator-(Ccomplex &c1, Ccomplex &c2){
	return Ccomplex(c1.real - c2.real, c1.img - c2.img);
	}

Ccomplex operator*(Ccomplex &c1, Ccomplex &c2){
	return Ccomplex(c1.real * c2.real, c1.img * c2.img);
	}

Ccomplex operator*(Ccomplex &c1, double num){
	return Ccomplex(c1.real * num, c1.img * num);
	}

ostream& operator<<(ostream &Mout, Ccomplex &Oc){
	return Mout<<"\n Real: "<<Oc.real<<"\n Img: "<<Oc.img;
	}
 
void main(){

	Ccomplex Oc;
	Ccomplex Oc1(3.1, 4.1);
	Ccomplex Oc2(4.2, 5.7);

	double num= 10;

	clrscr();

	cout<<"\n Sum of two Complex No's:- ";
	Oc = Oc1 + Oc2;
	cout<<Oc;

	cout<<"\n\n Difference of two Complex No's:- ";
	Oc = Oc1 - Oc2;
	cout<<Oc;

	cout<<"\n\n Product of two Complex No's:- ";
	Oc = Oc1 * Oc2;
	cout<<Oc;

	cout<<"\n\n Product of Complex No with Constant:-";
	Oc = Oc1 * num;
	cout<<Oc;

	getch();
	}

 

Output:

Sum of two Complex No’s:-
Real: 7.3
Img: 9.8

Difference of two Complex No’s:-
Real: -1.1
Img: -1.6

Product of two Complex No’s:-
Real: 13.02
Img: 23.37

Product of Complex No with Constant:-
Real: 31
Img: 41


Categories: Cpp Tags: ,

C++ Program to implement Operator Overloading with Unary Operators (++, –) – Q16

January 16, 2010 Leave a comment

Q16. Program to implement Operator Overloading with Unary Operators (++, –):

Define a DATE class with month, day & year as the private data member.
Implement Operator Overloading for finding the next day of given date.

… from College notes (BCA/MCA assignments):

#include <iostream.h>
#include <conio.h>

class CDATE{
	private:
		int dd, mm, yy;
		int _days;
		static int months[12];
	public:
		void Init(){
			cout<<"\n Enter a Date (dd mm yyyy): ";
			cin>>dd>>mm>>yy;
			}
		void operator++(){
			_days = DaysThisMonth(mm, yy);
			if(dd >=_days){
				if(mm >= 12){
					yy += 1;
					mm = 1;
					}
				else
					mm += 1;
				dd = 1;
				}
			else
				dd += 1;
			cout<<"\n Next Date: "<<dd<<":"<<mm<<":"<<yy;
			}
		int DaysThisMonth(int, int);
	};

int CDATE :: months[12] = { 31, 29, 31, 30, 31, 30,
					 31, 31, 30, 31, 30, 31 };

int CDATE :: DaysThisMonth(int mm, int yy){
	if (mm != 2)
		return months[mm-1];

	if (yy % 4)       // Not leap year
		return 28;
	if (yy % 100)     // It is leap year
		return 29;
	if (yy % 400)     // Not leap year
		return 28;
	return 29;          // It is leap year
	}
void main(){
	CDATE dt;
	clrscr();
	dt.Init();
	char ch;
	while(ch != 'y'){
		++dt;
		cout<<"\t\t\t Quit (y/n) ?: ";
		cin>>ch;
		}
	cout<<"\n\n Press Any Key to Exit ...";
	getch();
	}

 

Output:

Enter a Date (dd mm yyyy): 26 12 2003

Next Date: 27:12:2003 Quit (y/n) ?: n

Next Date: 28:12:2003 Quit (y/n) ?: n

Next Date: 29:12:2003 Quit (y/n) ?: n

Next Date: 30:12:2003 Quit (y/n) ?: n

Next Date: 31:12:2003 Quit (y/n) ?: n

Next Date: 1:1:2004 Quit (y/n) ?: n

Next Date: 2:1:2004 Quit (y/n) ?: n

Next Date: 3:1:2004 Quit (y/n) ?: n

Next Date: 4:1:2004 Quit (y/n) ?: n

Next Date: 5:1:2004 Quit (y/n) ?: y

Press Any Key to Exit …