Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет Семестровая.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
204.29 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Кемеровский государственный университет» (КемГУ)

Математический факультет

Кафедра вычислительной математики

ОТЧЕТ О ВЫПОЛНЕНИИ СЕМЕСТРОВОЙ РАБОТЫ

«Основы Объектно-ориентированного программирования»

студента 2 курса, группы M-113

Костромин Дмитрий Александрович

Направление 010400 – «Прикладная математика и информатика»

Руководитель:

Бондарева Л.В.

Работа защищена

«____________________»

“____” _____________20__г.

Кемерово 2013

Содержание

1. Постановка задачи 11

2. Описание предметной области 11

3. Описание работы 11

3.1 Спецификации 11

3.1.1 Описание классов 11

3.1.2 Описание методов классов 12

class Crockery 12

Crockery();-конструктор 12

virtual float Get_Price()=0;-виртуальный метод получения цены 12

virtual Crockery *Copy()=0;-виртуальный метод копирования 12

virtual ~Crockery();-виртуальный деструктор 12

class Cup 12

Cup(int,double,char,int&);//конструктор 12

Cup(double,char,int&);//конструктор 12

Cup(Cup*,int&);//конструктор копирования 12

~Cup(){printf("DESTRUCTOR CUP WORKED WELL\n"); delete colvo; delete rad; delete colCH;}//деструктор 12

virtual float Get_Price();//виртуальный метод получения цены 12

Crockery *Copy();//виртуальный метод копирования объекта 12

void Cup_Set(int,double,char);//изменение значений полей 12

void Cup_Get(int&,double&,char&);// получение значений полей 12

double Cup_Vol();//получение объема 12

char Cup_Color(){return (*colCH);}//получение цвета чашки 12

class Mug 12

Mug(int,float,char,int&);//конструктор 12

Mug(float,int&);//конструктор 12

Mug(Mug*,int&);//конструктор копирования 12

~Mug(){printf("DESTRUCTOR MUG WORKED WELL\n"); delete colvo; delete vol; delete colKR;}//деструктор 12

Virtual float Get_Price();//виртуальный метод получения цены 12

Crockery *Copy();//виртуальный метод копирования объекта 12

void Mug_Get(int&,float&,char&);//получение значений полей 13

void Mug_Set(int,float,char);//изменение значений полей 13

float Mug_FPrice();//получение первой цены 13

double M_and_C_VOL(Cup*);//получение обема чашки и кружки когда они вместе 13

class Spoon 13

Spoon(Crockery* ,float,char,double,int&);//конструктор 13

~Spoon(){printf("DESTRUCTOR Spoon WORKED WELL\n");delete f; delete Len; delete colLJ; delete OC;}//деструктор 13

float Spoon_GetPrice(){return f->Get_Price()*((*Len)+(*OC));}//получение полной цены одной ложки 13

float Spoon_Plosh(){return (*Len)*(*OC);}//площадь ложки, для находения объема ложки с узором 13

13

class D_Spoon 13

D_Spoon(float,Crockery *,float,char,double,int &);//конструктор 13

~D_Spoon(){printf("DESTRUCTOR D_SPOON WORKED WELL\n");delete V;}//деструктор 13

float Finish_Price(Spoon* T){return T->Spoon_GetPrice()+Vol_Design(T);}//цена ложки с узором 13

float Vol_Design(Spoon* T){return T->Spoon_Plosh()+(*V);}//объем ложки с узором 13

3.2 Схема иерархии классов 13

14

3.3 Листинг программы 14

main.cpp 14

1.CPP 17

#include <stdlib.h> 17

#include <stdio.h> 18

#include "1.h" 18

int main() 18

{ 18

int err,colvo,colvo2,flag; 18

char colKR,colCH; 18

double rad; 18

float k,vol; 18

int key=1; 18

Crockery * M; 18

while(key!=0) 18

{ 18

printf("\n Please select the number \n"); 18

printf("_________________________________________________ \n"); 18

printf("| 1) MUG and SPOON |\n"); 18

printf("| |\n"); 18

printf("| 2) CUP and SPOON |\n"); 18

printf("| |\n"); 18

printf("| 3) CUP and SPOON and D_SPOON |\n"); 18

printf("| |\n"); 18

printf("| 4) MUG and SPOON and D_SPOON |\n"); 18

printf("| |\n"); 18

printf("| 5) COMMON VOLUME FOR MUG AND CUP |\n"); 18

printf("| |\n"); 18

printf("| 6) KONSTRUCTOR NUMBER 3 FOR CUP AND MUG |\n"); 18

printf("| |\n"); 18

printf("| 0 - EXIT |\n"); 18

printf("|________________________________________________|\n"); 18

printf("\n"); 18

scanf("%d",&flag); 18

printf("\n"); 18

///MUG and SPOON 18

if(flag==1) 18

{ 18

M=new Mug(10,0.5,'Q',err); 18

k=M->Get_Price(); 18

Spoon *L=new Spoon(M,10.0,'Y',7.5,err); 19

if(!err) 19

{ 19

printf(" ________________________________________ \n"); 19

printf(" | |\n"); 19

printf(" | SPOON PRICE=%12f |\n",L->Spoon_GetPrice()); 19

printf(" |________________________________________|\n\n"); 19

delete L; 19

L=NULL; 19

} 19

Mug *F = new Mug(9,10.01,'R',err); 19

F->Mug_Set(5,4.6,'B'); 19

F->Mug_Get(colvo,vol,colKR); 19

float a=F->Mug_FPrice(); 19

printf(" ________________________________\n"); 19

printf("| |\n"); 19

printf("| FIRST_PRICE=%12f |\n",a); 19

printf("| COLVO=%12d |\n",colvo); 19

printf("| VOL= %12f |\n",vol); 19

printf("| COLOR=%12c |\n",colKR); 19

printf("|________________________________|\n\n"); 19

printf(" _________________\n"); 19

printf("| |\n"); 19

printf("| %f |\n",k); 19

printf("|_________________|\n\n"); 19

delete F; 19

delete M; 19

F=NULL; 19

M=NULL; 19

} 19

///COMMON VOLUME FOR MUG AND CUP 19

else if(flag == 5 ) 19

{ 19

Mug *K=new Mug(5.5,err); 19

Cup *P=new Cup(10.01,'Y',err); 19

printf(" _______________________________\n"); 19

printf("| |\n"); 20

printf("| COMMON VOLUME=%12f |\n",K->M_and_C_VOL(P)); 20

printf("| |\n"); 20

printf("| COLOR OF THE CUP: %12c|\n",P->Cup_Color()); 20

printf("|_______________________________|\n\n"); 20

delete P; 20

delete K; 20

} 20

///CUP and SPOON 20

else if(flag == 2 ) 20

{ 20

M=new Cup(10,5.5,'K',err); 20

k=M->Get_Price(); 20

Spoon *L=new Spoon(M,10.0,'Y',7.5,err); 20

if(!err) 20

{ 20

printf(" _______________________________________ \n"); 20

printf(" | |\n"); 20

printf(" | SPOON PRICE=%12f |\n",L->Spoon_GetPrice()); 20

printf(" |_______________________________________|\n\n"); 20

delete L; 20

L=NULL; 20

} 20

Cup *P=new Cup(10,1.5,'T',err); 20

P->Cup_Set(2,17.2,'N'); 20

P->Cup_Get(colvo2,rad,colCH); 20

float a=P->Cup_Vol(); 20

printf(" _______________________________\n"); 20

printf("| |\n"); 20

printf("| VOLUME OF CUP=%12f |\n",a); 20

printf("| COLVO=%12d |\n",colvo2); 20

printf("| VOL= %12f |\n",rad); 20

printf("| COLOR=%12c |\n",colCH); 20

printf("|_______________________________|\n\n"); 20

printf(" ___________________\n"); 20

printf("| |\n"); 20

printf("| %12f |\n",k); 21

printf("|___________________|\n\n"); 21

delete P; 21

delete M; 21

P=NULL; 21

M=NULL; 21

} 21

///MUG and SPOON and D_SPOON 21

if(flag==3) 21

{ 21

M=new Cup(10,5.5,'K',err); 21

Spoon *L=new Spoon(M,10.0,'Y',7.5,err); 21

D_Spoon *Q=new D_Spoon(12.4,M,3.2,'B',8.3,err); 21

printf(" __________________________________________\n"); 21

printf("| |\n"); 21

printf("| RECEIVING AREA SPOONS: %12f |\n",Q->Spoon_Plosh()); 21

printf("| |\n"); 21

printf("| VOLUME DESIGN: %12f |\n",Q->Vol_Design(Q)); 21

printf("| |\n"); 21

printf("| SPOON GET PRICE: %12f |\n",Q->Spoon_GetPrice()); 21

printf("| |\n"); 21

printf("| FINISH PRICE SPOONS: %12f |\n",Q->Finish_Price(Q)); 21

printf("|__________________________________________|\n\n"); 21

delete Q; 21

delete L; 21

delete M; 21

Q=NULL; 21

L=NULL; 21

M=NULL; 21

} 21

if(flag==4) 21

{ 21

M=new Mug(10,5.5,'B',err); 21

Spoon *L=new Spoon(M,10.0,'Y',7.5,err); 21

D_Spoon *Q=new D_Spoon(7.4,M,2.8,'B',5.6,err); 21

printf(" _________________________________________\n"); 21

printf("| |\n"); 22

printf("| RECEIVING AREA SPOONS: %12f |\n",Q->Spoon_Plosh()); 22

printf("| |\n"); 22

printf("| VOLUME DESIGN: %12f |\n",Q->Vol_Design(Q)); 22

printf("| |\n"); 22

printf("| SPOON GET PRICE: %12f |\n",Q->Spoon_GetPrice()); 22

printf("| |\n"); 22

printf("| FINISH PRICE SPOONS: %12f |\n",Q->Finish_Price(Q)); 22

printf("|_________________________________________|\n\n"); 22

delete Q; 22

delete L; 22

delete M; 22

Q=NULL; 22

L=NULL; 22

M=NULL; 22

} 22

///KONSTRUCTOR NUMBER 3 FOR CUP AND MUG 22

if(flag==6) 22

{ 22

Cup *X; 22

X=new Cup(27,1.1,'R',err); 22

Cup *Tab=new Cup(X,err); 22

X->Cup_Get(colvo2,rad,colCH); 22

printf(" _______________________________\n"); 22

printf("| |\n"); 22

printf("| COLVO=%12d |\n",colvo2); 22

printf("| VOL= %12f |\n",rad); 22

printf("| COLOR=%12c |\n",colCH); 22

printf("|_______________________________|\n\n"); 22

delete Tab; 22

Tab=NULL; 22

delete X; 22

X=NULL; 22

Mug *E=new Mug(15,40.56,'B',err); 22

Mug *Z=new Mug(E,err); 22

E->Mug_Get(colvo,vol,colKR); 23

printf(" ________________________________\n"); 23

printf("| |\n"); 23

printf("| COLVO=%12d |\n",colvo); 23

printf("| VOL= %12f |\n",vol); 23

printf("| COLOR=%12c |\n",colKR); 23

printf("|________________________________|\n\n"); 23

//delete Z; 23

//Z=NULL; 23

delete E; 23

E=NULL; 23

} 23

///EXIT 23

if(flag==0) 23

{ 23

key=0; 23

} 23

} 23

printf("KOSTROMIN D.A GROUP NUMBER M-113\n"); 23

return 0; 23

} 23

1.h 23

#include <stdio.h> 23

class Crockery//посуда 23

{ 23

public: 23

Crockery(); 23

virtual float Get_Price()=0; 23

virtual Crockery *Copy()=0; 23

virtual ~Crockery(); 23

}; 23

class Cup:public Crockery//чашка 23

{ 23

private: 23

int* colvo;//количество 23

double *rad;//радиус 23

char *colCH;//цвет 24

public: 24

Cup(int,double,char,int&);///+ 24

Cup(double,char,int&); 24

//Cup(){printf("EMPY CONSTRUCTOR CUP WORKED WELL\n");} 24

Cup(Cup*,int&); 24

~Cup(){printf("DESTRUCTOR CUP WORKED WELL\n"); delete colvo; delete rad; delete colCH;} 24

virtual float Get_Price();//цена за товар///+ 24

Crockery *Copy();///+ 24

void Cup_Set(int,double,char);///+ 24

void Cup_Get(int&,double&,char&);///+ 24

double Cup_Vol();//получение объема 24

char Cup_Color(){return (*colCH);}//получение цвета чашки 24

}; 24

class Mug:public Crockery//кружка 24

{ 24

public: 24

Mug(int,float,char,int&);///+ 24

Mug(float,int&); 24

//Mug(){printf("EMPY KONSTRUCTOR MUG WORKED WELL\n");} 24

Mug(Mug*,int&); 24

~Mug(){printf("DESTRUCTOR MUG WORKED WELL\n"); delete colvo; delete vol; delete colKR;} 24

virtual float Get_Price();///+ 24

Crockery *Copy();///+ 24

void Mug_Get(int&,float&,char&);///+ 24

void Mug_Set(int,float,char);///+ 24

float Mug_FPrice();//получение первой цены 24

double M_and_C_VOL(Cup*);//получение обема чашки и кружки когда они вместе 24

private: 24

Cup *J; 24

int *colvo; 24

float *vol; 24

char *colKR; 24

}; 24

class Spoon//ложка 24

{ 24

public: 25

Spoon(Crockery* ,float,char,double,int&); 25

~Spoon(){printf("DESTRUCTOR Spoon WORKED WELL\n");delete f; delete Len; delete colLJ; delete OC;} 25

float Spoon_GetPrice(){return f->Get_Price()*((*Len)+(*OC));}//получение полной цены одной ложки 25

float Spoon_Plosh(){return (*Len)*(*OC);}//площадь ложки, для находения объема ложки с узором 25

private: 25

Crockery *f; 25

float *Len;//длина рукояди 25

char *colLJ;//цвет ложки 25

double *OC;// основная часть 25

}; 25

class D_Spoon:public Spoon//узор ложки 25

{ 25

public: 25

D_Spoon(float Vl,Crockery *fl,float Lenl,char colLJl,double OCl,int &err):Spoon(fl,Lenl,colLJl,OCl,err) 25

{ 25

printf("D_SPOON::D_SPOON\n"); 25

if(Vl>0 and Lenl>0 and OCl>0) 25

{ 25

V=new float; 25

*V=Vl; 25

err=0; 25

} 25

else 25

{ 25

delete this; 25

err=1; 25

} 25

} 25

~D_Spoon(){printf("DESTRUCTOR D_SPOON WORKED WELL\n");delete V;} 25

float Finish_Price(Spoon* T){return T->Spoon_GetPrice()+Vol_Design(T);}//цена ложки с узором 25

float Vol_Design(Spoon* T){return T->Spoon_Plosh()+(*V);}//объем ложки с узором 25

private: 25

Spoon* T; 25

float *V;//объем узора 25

}; 25

3.4 Результаты 26