Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- class tochka {
- public:
- string name;
- double A_x;
- double A_y;
- tochka() {
- name = "Точка";
- A_x =rand()%(100+100+1)+(-100);
- A_y =rand() % (100 + 100 + 1)+(-100);
- }
- virtual void print() {
- cout « "Точка\n" « "Координаты: (" « A_x « ";" « A_y « ")\n\n";
- }
- };
- class otrezok : public tochka {
- public:
- double B_x;
- double B_y;
- otrezok() : tochka() {
- name = "Отрезок";
- B_x = A_x + (rand() % (100 + 100 + 1)+ (- 100));
- B_y = A_y;
- }
- virtual void print() {
- cout « "Отрезок\n" « "Координаты: (" « A_x « ";" « A_y « "),(" « B_x « ";" « B_y « ")\n\n";
- }
- };
- class square : public otrezok {
- public:
- double C_x;
- double C_y;
- double D_x;
- double D_y;
- square() : otrezok() {
- name = "Квадрат";
- C_x = B_x;
- C_y = B_y + (B_x - A_x);
- D_x = A_x;
- D_y = A_y + (B_x - A_x);
- }
- virtual void print() {
- cout « "Квадрат\n" « "Координаты: (" « A_x « ";" « A_y « "),(" « B_x « ";" « B_y « "),(" « C_x « ";" « C_y « "),(" « D_x « ";" « D_y « ")\n\n";
- }
- };
- class circle : public tochka{
- public:
- double r;
- circle() : tochka(){
- name = "Окружность";
- r = rand() % (50 + 50 + 1)+ (- 50);
- }
- virtual void print() {
- cout « "Окружность\n" « "Координаты центра: (" « A_x « ";" « A_y « ")\n" « "Радиус: " « r « "\n\n";
- }
- };
- void create(vector < tochka* > &vec) {
- for (int i = 0; i < 8; i++) {
- tochka* a = new tochka;
- otrezok* b = new otrezok;
- square* c = new square;
- circle* d = new circle;
- int j = rand() % (4 - 1 + 1) + 1;
- switch (j)
- {
- case 1:
- vec.push_back(a);
- break;
- case 2:
- vec.push_back(b);
- break;
- case 3:
- vec.push_back(c);
- break;
- case 4:
- vec.push_back(d);
- break;
- default:
- break;
- }
- }
- }
- void out(vector < tochka* > &vec) {
- for (size_t i = 0; i < vec.size(); i++) {
- vec[i]->print();
- }
- }
- int main()
- {
- setlocale(LC_ALL, "ru");
- vector < tochka* > vec;
- create(vec);
- out(vec);
- vec.clear();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement