Archive

Archive for the ‘Others’ Category

C++ Program to implement Generic Classes for user defined maths library – Q25

January 25, 2010 Leave a comment

Q25. Program to implement Generic Classes for user defined maths library:

Create a user defined maths class for implementing following functions using the concept of generic classes – SUM, N_ROOT, PRODUCT, POWER

… from College notes (BCA/MCA assignments):

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

template <class T>
class Cmath{
	private:
		T n1, n2, n3;
	public:
		void getData();
		void Sum();
		void nRoot();
		void Product();
		void Power();
	};

template <class T>
void Cmath<T> :: getData(){
	cout<<"\n Enter 1st Number : ";
	cin>>n1;
	cout<<"\n Enter 2nd Number : ";
	cin>>n2;
	}

template <class T>
void Cmath<T> :: Sum(){
	n3 = n1 + n2;
	cout<<"\n Sum = "<<n3;
	}

template <class T>
void Cmath<T> :: nRoot(){
	n3 = sqrt(n1);
	cout<<"\n Sq Root of "<<n1<<" = "<<n3;
	n3 = sqrt(n2);
	cout<<"\n Sq Root of "<<n2<<" = "<<n3;
	}

template <class T>
void Cmath<T> :: Product(){
	n3  = n1 * n2;
	cout<<"\n Product = "<<n3;
	}

template <class T>
void Cmath<T> :: Power(){
	n3 = pow(n1, n2);
	cout<<"\n Power = "<<n3;
	}

void main(){
	int ch;
	Cmath<int> Obj_i;
	Cmath<float> Obj_f;
	while(1){
		clrscr();
		cout<<"\n Generic Classes";
		cout<<"\n ~~~~~~~~~~~~~~~\n";
		cout<<"\n 1 -> Sum.";
		cout<<"\n 2 -> Root.";
		cout<<"\n 3 -> Product.";
		cout<<"\n 4 -> Power.";
		cout<<"\n 5 -> Exit.";
		cout<<"\n\n Enter your choice: ";
		cin>>ch;
		switch(ch){
			case 1:	// Sum.
				cout<<"\n Integer:- ";
				Obj_i.getData();
				Obj_i.Sum();
				cout<<"\n Floating:- ";
				Obj_f.getData();
				Obj_f.Sum();
				break;
			case 2:	// Root.
				cout<<"\n Integer:- ";
				Obj_i.getData();
				Obj_i.nRoot();
				cout<<"\n Floating:- ";
				Obj_f.getData();
				Obj_f.nRoot();
				break;
			case 3:	// Root.
				cout<<"\n Integer:- ";
				Obj_i.getData();
				Obj_i.Product();
				cout<<"\n Floating:-";
				Obj_f.getData();
				Obj_f.Product();
				break;
			case 4:	// Power.
				cout<<"\n Integer:- ";
				Obj_i.getData();
				Obj_i.Power();
				cout<<"\n Floating:-";
				Obj_f.getData();
				Obj_f.Power();
				break;
			case 5:	// Exit.
				exit(1);
			} // end of switch.
		getch();
		} // end of while.
	} // end of main.

 

Output:

Generic Classes

1 -> Sum.
2 -> Root.
3 -> Product.
4 -> Power.
5 -> Exit.

Enter your choice: 1

Integer:-
Enter 1st Number : 23
Enter 2nd Number : 32

Sum = 55

Floating:-
Enter 1st Number : 23.22
Enter 2nd Number : 32.45

Sum = 55.669998

Generic Classes

1 -> Sum.
2 -> Root.
3 -> Product.
4 -> Power.
5 -> Exit.

Enter your choice: 4

Integer:-
Enter 1st Number : 2
Enter 2nd Number : 5

Power = 32

Floating:-
Enter 1st Number : 23.44
Enter 2nd Number : 4.5

Power = 1461535.25


Categories: Cpp Tags: , ,

C++ Program to implement Virtual Functions – Q24

January 24, 2010 Leave a comment

Q24. Program to implement Virtual Functions:

Draw the various geometrical figures using the concept of virtual functions along with following class hierarchy:
The base class shapes should contain a virtual function draw().
All the derived classes should contain the function to calculate and display the area of the respective figure.

… from College notes (BCA/MCA assignments):

#include <iostream.h>
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

class Cshapes{
	protected:
		int x1, y1;
	public:
		Cshapes(){}
		virtual void Draw() = 0;
		virtual void Area() = 0;
	};

class Cline : public Cshapes{
	private:
		int x2, y2;
	public:
		Cline(){}
		Cline(int _x1, int _y1, int _x2, int _y2){
			x1 = _x1;
			y1 = _y1;
			x2 = _x2;
			y2 = _y2;
			}
		void Draw(){
			line(x1, y1, x2, y2);
			}
		void Area(){
			cout<<"\n No Area, its a Line.";
			}
	};

class Ctrng : public Cshapes{
	private:
		int x2, y2, x3, y3;
	public:
		Ctrng(){}
		Ctrng(int _x1, int _y1, int _x2, int _y2, int _x3, int 
 _y3){
			x1 = _x1;
			y1 = _y1;
			x2 = _x2;
			y2 = _y2;
			x3 = _x3;
			y3 = _y3;
			}
		void Draw(){
			line(x1, y1, x2, y2);
			line(x2, y2, x3, y3);
			line(x3, y3, x1, y1);
			}
		void Area(){
			unsigned int s1, s2, s3;
			float s, ar;
			s1 = sqrt( pow((x2-x1), 2) + pow((y2-y1), 2) );
			s2 = sqrt( pow((x3-x2), 2) + pow((y3-y2), 2) );
			s3 = sqrt( pow((x3-x1), 2) + pow((y3-y1), 2) );
			s = (s1+s2+s3)/2;
			ar = sqrt(s * (s-s1) * (s-s2) * (s-s3));
			gotoxy(1, 24);
			cout<<" Area of Triangle: "<<ar;
			}
	};

class Crect : public Cshapes{
	private:
		int x2, y2;
	public:
		Crect(){}
		Crect(int _x1, int _y1, int _x2, int _y2){
			x1 = _x1;
			y1 = _y1;
			x2 = _x2;
			y2 = _y2;
			}
		void Draw(){
			line(x1, y1, x1, y2);
			line(x1, y2, x2, y2);
			line(x2, y2, x2, y1);
			line(x2, y1, x1, y1);
			}
		void Area(){
			int ln, bd;
			unsigned long ar;
			ln = abs(x2 - x1);
			bd = abs(y2 - y1);
			ar = ln * bd;
			gotoxy(1, 24);
			cout<<" Area of Rectangle: "<<ar;
			}
	};


void main(){
	int ch, _x1, _y1, _x2, _y2, _x3, _y3;
	int gd=DETECT, gm;
	initgraph(&gd, &gm, "\\tc");

	Cline Oline;
	Ctrng Otrng;
	Crect Orect;
	while(1){
		clrscr();
		cleardevice();
		cout<<"\n 1 -> LINE";
		cout<<"\n 2 -> TRIANGLE";
		cout<<"\n 3 -> RECTANGLE";
		cout<<"\n 4 -> EXIT";
		cout<<"\n Enter your choice: ";
		cin>>ch;
		switch(ch){
			case 1: // LINE.
				cout<<"\n Enter 1st Cordinates: ";
				cin>>_x1>>_y1;
				cout<<"\n Enter 2nd Cordinates: ";
				cin>>_x2>>_y2;
				Cline  Oline(_x1, _y1, _x2, _y2);
				clrscr();
				cleardevice();
				Oline.Draw();
				Oline.Area();
				break;
			case 2: // TRIANGLE.
				cout<<"\n Enter 1st Cordinates: ";
				cin>>_x1>>_y1;
				cout<<"\n Enter 2nd Cordinates: ";
				cin>>_x2>>_y2;
				cout<<"\n Enter 3rd Cordinates: ";
				cin>>_x3>>_y3;
				clrscr();
				cleardevice();
				Ctrng  Otrng(_x1, _y1, _x2, _y2, _x3, _y3);
				Otrng.Draw();
				Otrng.Area();
				break;
			case 3:	// RECTANGLE.
				cout<<"\n Enter 1st Cordinates: ";
				cin>>_x1>>_y1;
				cout<<"\n Enter 2nd Cordinates: ";
				cin>>_x2>>_y2;
				clrscr();
				cleardevice();
				Crect  Orect(_x1, _y1, _x2, _y2);
				Orect.Draw();
				Orect.Area();
				break;
			case 4:	// EXIT
				closegraph();
				exit(1);
			default:
				cout<<"\n Enter Appropriate Choice.";
			} // end of switch.
		getch();
		} // end of while.
	} // end of main.

 

Output:

DRAW – MAIN MENU

1 -> LINE
2 -> TRIANGLE
3 -> RECTANGLE
4 -> EXIT

Enter your choice: 1

Enter 1st Cordinate: 100 100
Enter 2nd Cordinate: 300 400

No Area, its a Line.


Categories: Cpp Tags: ,

C++ Program to implement Virtual Class by using Multipath Inheritance – Q23

January 23, 2010 Leave a comment

Q23. Program to implement Virtual Class by using Multipath Inheritance:

Issue the books to various members of library.
– Member-Membername, Age, Address
– Faculty (derived from member classs)- Department and integer type array for issuing books with upperlimit 10.
– Student (derived from member class)- Class, Rollno and integer type array for issuing books with upperlimit 4.
Daily Transaction (derived from Faculty and Student classes)- date of issue, date of return (calculated from date of issue as 15 days for students and 45 days for a faculty).

… from College notes (BCA/MCA assignments):

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

class CDATE{
	private:
		int dd;
		int mm;
		int yy;
	public:
		struct date d;
		CDATE(){
			getdate(&d);
			dd = d.da_day;
			mm = d.da_mon;
			yy = d.da_year;
			}
		CDATE(int d, int m, int y){
			dd = d;
			mm = m;
			yy = y;
			}
	};

class CMember{
	protected:
		char m_name[20], m_add[30];
		int m_age;
	public:
		CMember(){}
		CMember(char *Mnam, char *Madd, int Mage){
			strcpy(m_name, Mnam);
			strcpy(m_add, Madd);
			m_age = Mage;
			}
	};

class CFaculty : public virtual CMember{
	protected:
		char f_dept[20];
		int f_bk_issue;
	public:
		CFaculty(){}
		CFaculty(char *Fdept, int Fiss){
			strcpy(f_dept, Fdept);
			f_bk_issue = Fiss;
			}
	};

class CStudent : public virtual CMember{
	protected:
		char s_clas[10];
		int s_roll, s_bk_issue;
	public:
		CStudent(){}
		CStudent(char *Sclas, int Sroll, int Siss){
			strcpy(s_clas, Sclas);
			s_roll = Sroll;
			s_bk_issue = Siss;
			}
	};

class CTrans: public CFaculty , public CStudent{
	private:
		CDATE dt;
		int dayStu;
		int dayFac;
		char bk_name[20];
	public:
		CTrans(){
			dayStu = 15;
			dayFac = 45;
			}
		CTrans(char *Tnam, char *Tadd, int Tage, char *Tdept,
			  int Tiss, char *Tbk_nam, CDATE Tdoi)
		: CMember(Tnam, Tadd, Tage), CFaculty(Tdept, Tiss){
			strcpy(bk_name, Tbk_nam);
			dt = Tdoi;
			}
		CTrans(char *Tnam, char *Tadd, int Tage, char *Tclas,
			  int Troll, int Tiss, char *Tbk_nam, CDATE Tdoi)
		: CMember(Tnam, Tadd, Tage), CStudent(Tclas, Troll, 
Tiss){
			strcpy(bk_name, Tbk_nam);
			dt = Tdoi;
			}
		void Fac_Show(){
			cout<<"\n Faculty Details";
			cout<<"\n Name: "<<m_name;
			cout<<"\n Address: "<<m_add;
			cout<<"\n Age: "<<m_age;
			cout<<"\n Department: "<<f_dept;
			cout<<"\n Total Books to Issue: "<<f_bk_issue;
			cout<<"\n Book name: "<<bk_name;
			}
		void Stu_Show(){
			cout<<"\n Student Details";
			cout<<"\n Name: "<<m_name;
			cout<<"\n Address: "<<m_add;
			cout<<"\n Age: "<<m_age;
			cout<<"\n Class: "<<s_clas;
			cout<<"\n Total Books to Issue: "<<s_bk_issue;
			cout<<"\n Book name: "<<bk_name;
			}
	};

void main(){
	int ch;
	char book_name[20];
	CTrans ObjLib;
	while(1){
		clrscr();
		cout<<"\n LIBRARY MANAGEMANT";
		cout<<"\n ~~~~~~~~~~~~~~~~~~";
		cout<<"\n 1 -> Issue Books to Faculty.";
		cout<<"\n 2 -> Issue Books to Student.";
		cout<<"\n 3 -> Show Details of Faculty.";
		cout<<"\n 4 -> Show Details of Student.";
		cout<<"\n 5 -> EXIT.";
		cout<<"\n Enter your choice: ";
		cin>>ch;
		switch(ch){
			case 1:
				cout<<"\n Enter Book Name: ";
				cin>>book_name;
				CDATE dt1(5, 10, 2004);
				CTrans Olib1("Manoj", "Dwarka", 23, 
"Computer", 15, book_name, dt1);
				break;
			case 2:
				cout<<"\n Enter Book Name: ";
				cin>>book_name;
				CDATE dt2(5, 10,2004);
				CTrans Olib2("Nitin", "Dwarka", 24, "MCA", 
   214, 5, book_name, dt2);
				break;

			case 3:
				ObjLib.Fac_Show();
				break;
			case 4:
				ObjLib.Stu_Show();
				break;
			default:
				exit(1);
			} // end of switch.
		getch();
		} // end of while.
	} // end of main.

 

Output:

LIBRARY MANAGEMANT: –
~~~~~~~~~~~~~~~
1 -> Issue Books to Faculty.
2 -> Issue Books to Student.
3 -> Show Details of Faculty.
4 -> Show Details of Student.
5 -> EXIT.
Enter your choice: 2

Name: Manoj
Address: Dwarka
Age: 23
Course: MCA
Enter Book Name: c plus plus

 

LIBRARY MANAGEMANT: –
~~~~~~~~~~~~~~~
1 -> Issue Books to Faculty.
2 -> Issue Books to Student.
3 -> Show Details of Faculty.
4 -> Show Details of Student.
5 -> EXIT.
Enter your choice: 4

Student Details: –
Name: Manoj
Address: Dwarka
Age: 23
Course: MCA
Total Books to Issue: 4
Book name: CPP


C++ Program to implement Multiple Inheritance – Q22

January 22, 2010 Leave a comment

Q22. Program to implement Multiple Inheritance:

Display the digital clock using multiple inheritance. Using a time and date class, for deriving the class digiclock. Use appropriate functions to increment date and time.

… from College notes (BCA/MCA assignments):

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

class CDate{
	protected:
		int dd, mm, yy;
		struct date d;
	public:
		void initDate(){
			getdate(&d);
			dd = d.da_day;
			mm = d.da_mon;
			yy = d.da_year;
			}
		void showDate(){
			initDate();
			cout<<dd<<" / "<<mm<<" / "<<yy;
			}
	};

class CTime{
	protected:
		int hrs, min, sec;
		struct time t;
	public:
		void initTime(){
			gettime(&t);
			hrs = t.ti_hour;
			min = t.ti_min;
			sec = t.ti_sec;
			}
		void showTime(){
			initTime();
			cout<<hrs<<" : "<<min<<" : "<<sec;
			}
	};

class CDigiClock : public CDate, public CTime{
	public:
		CDigiClock(){
			showDate();
			cout<<"\t";
			showTime();
			}
	};

void main(){
	clrscr();
	cout<<" Current Date and Time is : - \n";
	while(!kbhit()){
		gotoxy(5, 5);
		CDigiClock();
		}
	}

 

Output:

Current Date and Time is : –

18 / 11 / 2004 21 : 55 : 51


C++ Program to implement Hierarchical Inheritance (Part 2) – Q21

January 21, 2010 Leave a comment

Q21. Program to implement Hierarchical Inheritance (Part 2):

A university is associated with three different kinds of students Undergraduate , Post-Graduate and Doctoral.
– Undergraduate students have grades awarded to the for individual subjects.
– Postgraduate students sit for 8 papers and deliver a seminar. They are awarded grades for these.
– Doctoral students sit for 4 papers and write a thesis. They are awarded grades for the papers but for the thesis the evaluation is only whether the thesis is accepted or not.

… from College notes (BCA/MCA assignments):

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

enum boolean {false, true};

class Cstud{
	protected:
		char name[20];
	};

class Cunderg : public Cstud{
	private:
		int papers[5];
		char grade;
	public:
		int tot, avg;
		void getdata(){
			cout<<"\n Enter Name: ";
			cin>>name;
			cout<<"\n Enter Marks in 5 Subjects: -"<<endl;
			tot = 0;
			for(int i=0; i<5; i++){
				cin>>papers[i];
				tot += papers[i];
				}
			avg = tot / 5;
			if(avg >= 80 && avg < 100) grade = 'A';
			else if(avg > 60 && avg < 80) grade = 'B';
			else if(avg > 40 && avg < 60) grade = 'C';
			else grade = 'D';
			}
		void showdata(){
			cout<<"\n Name: "<<name;
			cout<<"\n Total Marks: "<<tot;
			cout<<"\n Grade: "<<grade;
			}
	};

class Cpostg : public Cstud{
	private:
		int papers[8], sem;
		char grade;
	public:
		int tot;
		void getdata(){
			cout<<"\n Enter Name: ";
			cin>>name;
			cout<<"\n Enter Marks in 8 Subjects: -"<<endl;
			tot = 0;
			for(int i=0; i<8; i++){
				cin>>papers[i];
				tot += papers[i];
				}
			cout<<"\n Enter Marks of Seminar: ";
			cin>>sem;
			if(sem >= 80 && sem < 100) grade = 'A';
			else if(sem > 60 && sem < 80) grade = 'B';
			else if(sem > 40 && sem < 60) grade = 'C';
			else grade = 'D';
			}
		void showdata(){
			cout<<"\n Name: "<<name;
			cout<<"\n Total Marks in 8 Papers: "<<tot;
			cout<<"\n Seminar Score: "<<sem;
			cout<<"\n Grade: "<<grade;
			}
	};

class Cdoctor : virtual public Cstud{
	private:
		int papers[4];
		boolean thesis;
		char grade;
	public:
		int tot, avg;
		char ch;
		void getdata(){
			cout<<"\n Enter Name: ";
			cin>>name;
			cout<<"\n Enter Marks in 4 Subjects: -"<<endl;
			tot = 0;
			for(int i=0; i<4; i++){
				cin>>papers[i];
				tot += papers[i];
				}
			avg = tot / 4;
			if(avg >= 80 && avg < 100) grade = 'A';
			else if(avg > 60 && avg < 80) grade = 'B';
			else if(avg > 40 && avg < 60) grade = 'C';
			else grade = 'D';
			cout<<"\n Is the Thesis Accepted (y/n): ";
			cin>>ch;
			if(ch == 'y') thesis = true;
			else thesis = false;
			}
		void showdata(){
			cout<<"\n Name: "<<name;
			cout<<"\n Total Marks: "<<tot;
			cout<<"\n Grade: "<<grade;
			cout<<"\n Thesis: ";
			if(thesis) cout<<"Accepted";
			else cout<<"Not Accepted";
			}

	};

void main(){
	int ch;
	while(1){
		clrscr();
		cout<<"\n UNIVERSITY";
		cout<<"\n ~~~~~~~~~~";
		cout<<"\n 1 -> Under Graduates.";
		cout<<"\n 2 -> Post Graduates.";
		cout<<"\n 3 -> Doctoral.";
		cout<<"\n 4 -> Exit.";
		cout<<"\n Enter your choice: ";
		cin>>ch;
		switch(ch){
			case 1:		// Under-Graduates.
				Cunderg Oug;
				Oug.getdata();
				Oug.showdata();
				break;
			case 2:		// Post-Graduates.
				Cpostg Opg;
				Opg.getdata();
				Opg.showdata();
				break;
			case 3:		// Doctoral.
				Cdoctor Od;
				Od.getdata();
				Od.showdata();
				break;
			default:
				exit(1);
			} // end of switch.
		getch();
		} // end of while.
	} // end of main.

 

Output:

UNIVERSITY
1 -> Under Graduates.
2 -> Post Graduates.
3 -> Doctoral.
4 -> Exit.
Enter your choice: 1

Enter Name: Nitin

Enter Marks in 5 Subjects: –
200
300
400
350
150

Name: Nitin
Total Marks: 1400
Grade: D

UNIVERSITY
1 -> Under Graduates.
2 -> Post Graduates.
3 -> Doctoral.
4 -> Exit.
Enter your choice: 2

Enter Name: Manoj

Enter Marks in 8 Subjects: –
200
300
250
350
150
400
200
100

Enter Marks of Seminar: 400

Name: Manoj
Total Marks in 8 Papers: 1950
Seminar Score: 400
Grade: D