ООП - МК №1 - Листинги программ
.doc1-
#include <iostream.h>
class SchoolClass {
int *ClassData;
int ClassDataIndex;
public:
SchoolClass(int NumberStudents);
~SchoolClass(void);
void AddScore(int Score);
int GetScore(int Index);
float AverageScore(void);
};
SchoolClass::SchoolClass(int NumberStudents)
{
ClassData = new int[NumberStudents];
ClassDataIndex=0;
}
SchoolClass::~SchoolClass(void)
{
delete ClassData;
}
void SchoolClass::AddScore(int Score)
{
ClassData[ClassDataIndex++]=Score;
}
int SchoolClass::GetScore(int Index)
{
if (Index<ClassDataIndex) {
return ClassData[Index];
} else {
return -1;
}
}
float SchoolClass::AverageScore(void)
{
float Sum=0;
if (ClassDataIndex==0) {
return -1;
} else {
for (int loop_index=0; loop_index<ClassDataIndex; loop_index++) {
Sum += (float) ClassData[loop_index];
}
return Sum / (float) ClassDataIndex;
}
}
void main() {
SchoolClass HistoryClass(9);
SchoolClass EnglishClass(10);
HistoryClass.AddScore(80);
HistoryClass.AddScore(81);
HistoryClass.AddScore(82);
HistoryClass.AddScore(83);
HistoryClass.AddScore(84);
HistoryClass.AddScore(85);
HistoryClass.AddScore(86);
HistoryClass.AddScore(87);
HistoryClass.AddScore(88);
EnglishClass.AddScore(91);
EnglishClass.AddScore(92);
EnglishClass.AddScore(93);
EnglishClass.AddScore(94);
EnglishClass.AddScore(95);
EnglishClass.AddScore(96);
EnglishClass.AddScore(97);
EnglishClass.AddScore(98);
EnglishClass.AddScore(99);
EnglishClass.AddScore(100);
cout << "Average score for History class: " << HistoryClass.AverageScore() << "\n";
cout << "Average score for English class: " << EnglishClass.AverageScore() << "\n";
}
2-
#include <iostream>
using namespace std;
struct point {
int x,y;
void set_pixel (int,int);
void get_pixel (int*,int*);
};
void point :: set_pixel(int x_set, int y_set)
{
x=x_set;
y=y_set;
};
void point :: get_pixel(int* xr, int* yr)
{
*xr=x;
*yr=y;
};
int main(void) {
int a,b;
point my_point,*pointer_to_point;
pointer_to_point = &my_point ;
my_point.set_pixel(50, 100);
pointer_to_point->get_pixel(&a,&b);
cout <<"a="<<a<<" b="<<b<<endl;
return 0;
}
3—
#include <iostream.h>
#include <string.h>
class string {
char str[50];
public:
void set_string(char*);
void display_string(void);
char* return_string(void);
};
void string :: set_string(char *s)
{ strcpy(str,s);}
void string :: display_string(void)
{ cout << str << endl; }
char* string :: return_string(void)
{ return str; }
void main (void) {
string str1;
str1.set_string("East Ukranian State University");
str1.display_string();
cout << str1.return_string() << endl;
}
4—
#include <iostream.h>
class my_class {
int x,y;
public:
void set(int X, int Y) {x=X; y=Y;}
my_class f(my_class);
my_class* ff(void) {x=y=100; return this; }
void display() { cout << x << '\t' << y << endl; }
};
my_class my_class :: f(my_class M) {
x+=M.x;
y+=M.y;
return *this;
}
void main(void) {
my_class A,B;
A.set(10,20);
B.ff()->display();
A.display();
A.f(B).display();
}
5—
#include <iostream.h>
#include <string.h>
class string {
char str[50];
public:
void set_string(char* s) { strcpy (str,s); }
void display_string(void) const{ cout << str << endl;}
char* return_string(void) { return str; }
};
void main() {
string str1;
const string str2;
str1.set_string("East Ukraine National University");
str1.display_string();
str2.display_string();
str2.set_string("University of Minsk");
}
6—
#include <iostream.h>
class my_class {
int x,y;
public:
void read(int& X,int& Y) const { X=x; Y=y; }
void write(int X,int Y) { x=X; y=Y; }
void display() const;
// void i(void) const { x++;}
void e(void) const { ((my_class*)this)->x++; }
};
void my_class::display() const {
cout << x << '\t' << y << endl;
}
void main(void) {
int x,y;
my_class A;
A.write(25,36);
A.display();
A.e();
A.read(x,y);
cout << x << '\t' << y << endl;
const my_class B;
B=A;
B.write(125,136);
}
7—
#include <iostream.h>
class my_class {
int x,y;
public:
my_class(int X,int Y) {x=X;y=Y;}
my_class() {x=y=0;}
my_class f(my_class);
my_class* ff(void) {x=y=100; return this; }
void display() { cout << x << '\t' << y << endl; }
};
my_class my_class :: f(my_class M) {
x+=M.x;
y+=M.y;
return *this;
}
void main(void) {
my_class A(10,20),B;
A.set(10,20);
B.ff()->display();
A.display();
A.f(B).display();
}
8—
#include <iostream.h>
class my_class {
int x,y,z;
public:
my_class() {x=y=0;}
float add_mul(int a=0,int b=0,int c=0,char ch='+');
void display() { cout << x <<'\t' << y << endl; }
};
float my_class::add_mul(int a,int b,int c,char ch) {
if (ch=='+') return x=a+b+c;
if (ch=='*') return y=a*b*c;
cout <<"wrong message\n"; return NULL;
}
void main(void) {
my_class A;
cout << A.add_mul(5, 10) << endl;
cout << A.add_mul(2, 5, 10) << endl;
cout << A.add_mul(2, 5, 10,'*') << endl;
A.display();
}
9—
#include <iostream.h>
class my_class {
int x,y,z;
public:
my_class() {x=y=0;}
float add_mul(int a=0,int b=0,int c=0,char ch='+');
void display() { cout << x <<'\t' << y << endl; }
};
float my_class::add_mul(int a,int b,int c,char ch) {
if (ch=='+') return x=a+b+c;
if (ch=='*') return y=a*b*c;
cout <<"wrong message\n"; return NULL;
}
void main(void) {
my_class A;
cout << A.add_mul(5, 10) << endl;
cout << A.add_mul(2, 5, 10) << endl;
cout << A.add_mul(2, 5, 10,'*') << endl;
A.display();
}
10—
#include <iostream.h>
class my_class {
int x,y;
public:
my_class(int X,int Y) {x=X; y=Y;}
my_class(int X) { x=y=X;}
my_class() { x=y=0;}
void display_word() { cout << "Hello\n"; }
void display() { cout << x << '\t' << y << endl; }
};
void f(my_class& M, void (my_class::*p)()=my_class::display) {
M.display();
(M.*p)();
}
void main(void) {
my_class A(10,20);
f(A);
f(A,my_class::display_word);
}
11
#include <iostream.h>
struct my_class {
int a,b;
char* s;
my_class(int A,int B,char *S) : a(A),b(B),s(S) {};
};
void fun(my_class& M) {
cout << M.a << M.b << M.s;
}
void main(void) {
my_class ms = my_class(19,95," How are you? \n");
fun(ms);
fun(my_class(19,96," Fine!!! \n"));
}
12—
include <iostream.h>
class my_class {
public:
int a,b, *e;
my_class(int A) : a(A),b(a),e(&A) {};
};
void fun(my_class& M){
cout << M.a << '\t' << M.b << '\t' << M.e << endl;
}
void main(void) {
my_class ms = my_class(100);
my_class MC = 200;
fun(ms);
fun(MC);
}
13—
#include <iostream.h>
#include <string.h>
class my_class {
char* str;
unsigned size;
public:
my_class(char* s,unsigned SIZE=100);
~my_class();
void display() { cout << str << endl; }
};
my_class::my_class(char* s,unsigned SIZE) {
str = new char[size=SIZE];
cout << "I аm created: size = " << size << endl;
strcpy(str,s);
}
my_class::~my_class() {
cout <<"I аm destroyed: size = " << size << endl;
delete[] str;
}
void main(void) {
my_class A("Regards");
char ss[] = "Computer Department of SNU";
my_class *P = new my_class(ss,sizeof(ss));
P->display();
delete P;
A.display();
}
14—
#include <iostream.h>
class my_class2;
class my_class1 {
int a;
friend void fun(my_class1&,my_class2&);
public:
my_class1(int A) : a(A) {};
};
class my_class2
{ int a;
friend void fun(my_class1&,my_class2&);
public:
my_class2(int A) : a(A) {};
};
void fun(my_class1 &M1,my_class2 &M2) {
if (M1.a==M2.a) cout << "equal\n";
else cout << "non equal\n";
}
void main(void) {
my_class1 mc1 = 100,mc3 =200;
my_class2 mc2 = 100;
fun(mc1,mc2);
mc1 = mc3;
fun(mc1,mc2);
}
15—
#include <iostream.h>
class X;
class Y {
int a;
public:
Y(int A) : a(A) {};
void display(X* pX);
};
class X {
int a;
public:
X(int A) : a(A) {};
friend void Y::display(X*);
};
void Y::display(X* pX) {
cout << pX->a << '\t' << a << endl;
}
void main(void) {
X my_X(100);
Y my_Y(200);
my_Y.display(&my_X);
}
16—
#include <iostream.h>
class X;
class Y {
int a;
public:
Y(int A) : a(A) {};
void display(X* pX);
};
class X {
int a;
public:
X(int A) : a(A) {};
friend class Y;
};
void Y::display(X* pX) {
cout << pX->a << '\t' <<this->a << endl;
}
void main(void) {
X my_X(100);
Y my_Y(200);
my_Y.display(&my_X);
}
17—
#include <iostream.h>
void display() {
cout << "\nwhere am I?\t";
}
class my_class {
char* S;
public:
my_class(char* S) {
my_class::S=S;
};
void display() {
::display();
cout << "1 am in " << S;
}
};
void main(void) {
my_class("a class\n").display();
display();
}
18—
#include <iostream.h>
class ext {
int a,b;
class nest1 {
int c,d;
public:
nest1(int C,int D) {c=C; d=D;} // конструктор
void dis();
public:
ext(int A,int B) : a(A), b(B) {}
nest1* set_n1() { return &nest1(100+a,200+b); }
// void disp_n1() { set_n1()->dis(); }
void disp_n1() { set_n1()->dis(); }
class nest2 { char cc;
public:
nest2(char CC) : cc(CC) {}
void dis() { cout << cc << endl; }
void d_str(char*);
};
};
void ext::nest1::dis()
{ //cout << " exmpl "<< this->c << '\t' << this->d << endl;
cout << c << '\t' << d << endl; }
void ext::nest2::d_str(char* str)
{ cout << str << cc << endl; }
void main(void) {
ext my_ext(1,2);
my_ext.disp_n1();
ext::nest2 my_n2('W');
my_n2.dis();
my_n2.d_str("Character = ");
}