1
+ #include < iostream>
2
+ using namespace std ;
3
+
4
+ class student
5
+ {
6
+ private:
7
+ int rollno;
8
+ char name[20 ];
9
+ public:
10
+ void read ()
11
+ {
12
+ cout<<" \n Enter Rollno and Name:\n " ;
13
+ cin>>rollno>>name;
14
+ }
15
+ void show ()
16
+ {
17
+ cout<<" \n Rollno = " <<rollno;
18
+ cout<<" \n Name = " <<name;
19
+ }
20
+ };
21
+
22
+ class exam_internal : public student
23
+ {
24
+ protected:
25
+ int sub1_marks;
26
+ int sub2_marks;
27
+ public:
28
+ void read_marks ()
29
+ {
30
+ cout<<" \n Enter Internal Marks of Subject 1 (MAX:40) :\n " ;
31
+ cin>>sub1_marks;
32
+ cout<<" \n Enter Internal Marks of Subject 2 (MAX:40) :\n " ;
33
+ cin>>sub2_marks;
34
+ }
35
+ void display_marks ()
36
+ {
37
+ cout<<" \n Internal Marks of Sub 1 = " <<sub1_marks;
38
+ cout<<" \n Internal Marks of Sub 2 = " <<sub2_marks;
39
+ }
40
+ };
41
+
42
+ class exam_external : public student
43
+ {
44
+ protected:
45
+ int sub1_ext_marks;
46
+ int sub2_ext_marks;
47
+ public:
48
+ void read_marks ()
49
+ {
50
+ cout<<" \n Enter Internal Marks of Subject 1 (MAX:40) :\n " ;
51
+ cin>>sub1_ext_marks;
52
+ cout<<" \n Enter Internal Marks of Subject 2 (MAX:40) :\n " ;
53
+ cin>>sub2_ext_marks;
54
+ }
55
+ void display_marks ()
56
+ {
57
+ cout<<" \n External Marks of Sub 1 = " <<sub1_ext_marks;
58
+ cout<<" \n External Marks of Sub 2 = " <<sub2_ext_marks;
59
+ }
60
+ };
61
+
62
+ class result :public exam_internal , public exam_external
63
+ {
64
+ private:
65
+ int total_marks;
66
+ public:
67
+ void cal_result ()
68
+ {
69
+ total_marks = sub1_ext_marks+sub2_ext_marks+sub1_marks+sub2_marks;
70
+ cout<<" Total Marks Obtained = " <<total_marks;
71
+ }
72
+ };
73
+
74
+ int main ()
75
+ {
76
+ result r1;
77
+ cout<<" Enter student information :\n " ;
78
+ r1.exam_internal ::read ();// call read() of student class
79
+ cout<<" Enter marks of Internal Examination:\n " ;
80
+ r1.exam_internal ::read_marks (); // To resolve ambiguty
81
+ cout<<" Enter marks of External Examination:\n " ;
82
+ r1.exam_external ::read_marks (); // To resolve ambiguty
83
+ cout<<" \n Displaying Student Details\n " ;
84
+ r1.exam_internal ::show (); // Calls show of student class
85
+ r1.exam_internal ::display_marks (); // To resolve ambiguty
86
+ r1.exam_external ::display_marks (); // To resolve ambiguty
87
+ cout<<" \n Calculating and displaying result\n " ;
88
+ r1.cal_result ();
89
+
90
+ return 0 ;
91
+ }
0 commit comments