Archive
C++ Program to implement Virtual Class by using Multipath Inheritance – Q23
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
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
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
C++ Program to implement Hierarchical Inheritance (Part 1) – Q20
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