Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП - МК №1 - Листинги программ

.doc
Скачиваний:
51
Добавлен:
25.03.2015
Размер:
67.58 Кб
Скачать

1-

#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 = ");

}