Форум программистов, компьютерный форум CyberForum.ru

Проверить код - C++

Войти
Регистрация
Восстановить пароль
 
magasin
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 42
29.04.2013, 20:22     Проверить код #1
Пытаюсь переделать программу из С# в C++.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  {
    protected int x;
    protected int y;
    public virtual void Show () / / віртуальний метод
    {
      Console.WriteLine ("точка на площині: ({0}, {1})", x, y);
    }
    public DemoPoint (int x, int y)
    {
      this.x = x; this.y = y;
    }
  }
  class DemoShape: DemoPoint / / похідний клас
  {
    protected int z;
    public override void Show () / / перевантаження віртуального методу
    {
      Console.WriteLine ("точка в просторі: ({0}, {1}, {2})", x, y, z);
    }
 
    public DemoShape (int x, int y, int z): base (x, y) / / конструктор похідного класу
    {
      this.z = z;
    }
 
  }
  class DemoLine: DemoPoint / / похідний клас
  {
    protected int x2;
    protected int y2;
    public override void Show () / / перевантаження віртуального методу
    {
      Console.WriteLine ("відрізок на площині: ({0}, {1}) - ({2}, {3})", x, y, x2, y2);
    }
    public DemoLine (int x1, int y1, int x2, int y2): base (x1, y1)
    {
      this.x2 = x2; this.y2 = y2;}}
  class Program
  {
    static void Main ()
    {
      DemoPoint point1 = new DemoPoint (0,1);
      point1.Show ();
      DemoShape pointShape = new DemoShape (2,3,4);
      pointShape.Show ();
      DemoLine line = new DemoLine (0,0, 10, 10);
      line.Show ();
      Console.WriteLine ();
      // Використання посилання базового класу на об'єкти похідних класів
      DemoPoint point2 = pointShape;
      point2.Show ();
      point2 = line;
      point2.Show ();
    }
  }
и вот, что получается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "stdafx.h"
#include <iostream>
using namespace std;
class DemoPoint // базовий клас
    {
    protected:
    int x, y;
public:
    virtual void Show () {
      cout << "точка на площині: " << x <<  y;
    }
    DemoPoint (int tx, int ty) : x(tx), y(ty) { }
  };
 class DemoShape: public DemoPoint { // похідний клас
protected:
  int z;
public:
    void Show () { // перевантаження віртуального методу
      cout << x << y << z;
    }
 
    DemoShape (int tx, int ty, int tz): base (x, y), z(tz) { } // конструктор похідного класу
  };
    class DemoLine :public DemoPoint // похідний клас
    {
    public: int x;
            int yEnd;
            void Show()
        {
            cout<<"({"<<x<<"}, {"<<y<<"}) - ({"<<xEnd<<"}, {"<<yEnd<<"})"<<endl;
        }
    };
 class DemoLine: public DemoPoint // похідний клас
  {
  protected :int x2;
    int y2;
  public :override void Show () // перевантаження віртуального методу
    {
      cout<<"відрізок на площині: ({0}, {1}) - ({2}, {3})"<< x<< y<< x2<< y2;
    }
    public DemoLine (int x1, int y1, int x2, int y2): base (x1, y1)
    {
      this.x2 = x2; this.y2 = y2;}}
 
int _tmain(int argc, _TCHAR* argv[])
{
    DemoPoint point1 = new DemoPoint (0,1);
      point1.Show ();
      DemoShape pointShape = new DemoShape (2,3,4);
      pointShape.Show ();
      DemoLine line = new DemoLine (0,0, 10, 10);
      line.Show ();
      Console.WriteLine ();
      // Використання посилання базового класу на об'єкти похідних класів
      DemoPoint point2 = pointShape;
      point2.Show ();
      point2 = line;
      point2.Show ();
    return 0;
}
Проверте код и подскажите что менять в tmain
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int _tmain(int argc, _TCHAR* argv[])
{
    DemoPoint point1 = new DemoPoint (0,1);
      point1.Show ();
      DemoShape pointShape = new DemoShape (2,3,4);
      pointShape.Show ();
      DemoLine line = new DemoLine (0,0, 10, 10);
      line.Show ();
      Console.WriteLine ();
      // Використання посилання базового класу на об'єкти похідних класів
      DemoPoint point2 = pointShape;
      point2.Show ();
      point2 = line;
      point2.Show ();
    return 0;
Заранее спасибо.

Добавлено через 2 минуты
И, если не трудно, написать правильный код на С++.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2013, 20:22     Проверить код
Посмотрите здесь:

C++ Проверить код на корректность
C++ Проверить код
Чем можно проверить код С++? C++
Проверить код на правильность C++
C++ Проверить код
C++ Проверить код
C++ проверить код на с++
Deadlock и racecondition проверить код C++
Проверить скомпилируется ли код C++
Проверить код C++
Проверить код на правильность C++
C++ Проверить код на наличие ошибок

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
naymkazp
20 / 20 / 1
Регистрация: 14.11.2010
Сообщений: 52
29.04.2013, 20:34     Проверить код #2
Переделать программу из C# в C++
magasin
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 42
29.04.2013, 21:20  [ТС]     Проверить код #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "stdafx.h"
#include <iostream>
using namespace std;
class DemoPoint // базовий клас
    {
    protected:
    int x, y;
public:
    virtual void Show () {
      cout << "точка на площині: " << x <<  y;
    }
    DemoPoint (int tx, int ty) : x(tx), y(ty) { }
  };
 class DemoShape: public DemoPoint { // похідний клас
protected:
  int z;
public:
    void Show () { // перевантаження віртуального методу
      cout << x << y << z;
    }
 
    DemoShape (int tx, int ty, int tz): base (x, y), z(tz) { } // конструктор похідного класу
  };
    class DemoLine :public DemoPoint // похідний клас
    {
    public: int xEnd;
            int yEnd;
            void Show()
        {
            cout<<"({"<<x<<"}, {"<<y<<"}) - ({"<<xEnd<<"}, {"<<yEnd<<"})"<<endl;
        }
    };
 class DemoLine: public DemoPoint // похідний клас
  {
  protected :int x2;
    int y2;
  public :override void Show () // перевантаження віртуального методу
    {
      cout<<"відрізок на площині: ({0}, {1}) - ({2}, {3})"<< x<< y<< x2<< y2;
    }
    public DemoLine (int x1, int y1, int x2, int y2): base (x1, y1)
    {
      this.x2 = x2; this.y2 = y2;}}
 
int _tmain(int argc, _TCHAR* argv[])
{
    DemoPoint *point1 = new DemoPoint (0,1);
      point1.Show ();
      DemoShape *pointShape = new DemoShape (2,3,4);
      pointShape.Show ();
      DemoLine *line = new DemoLine (0,0, 10, 10);
      line.Show ();
      // Використання посилання базового класу на об'єкти похідних класів
      DemoPoint *point2 = pointShape;
      point2.Show ();
      point2 = line;
      point2.Show ();
    return 0;
}
Помогите исправить ошибки
naymkazp
20 / 20 / 1
Регистрация: 14.11.2010
Сообщений: 52
29.04.2013, 21:43     Проверить код #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "stdafx.h"
#include <iostream>
#include <locale>
using namespace std;
class DemoPoint // базовий клас
    {
    protected: 
        int x, y;
    public:
        virtual void Show () {
            cout << "точка на площині: x=" << x <<"  y="<<  y<<endl;
        }
        DemoPoint (int tx, int ty) {
        x=tx;
        y=ty; 
        }
        DemoPoint() { x=0; y=0;} 
  };
 
class DemoShape: public DemoPoint { // похідний клас
protected:
  int z;
public:
    void Show () { // перевантаження віртуального методу
      cout << "x="<<x <<"  y="<< y <<"  z="<< z<<endl;
    }
 
    DemoShape (int tx, int ty, int tz) {       // конструктор похідного класу
        x=tx;
        y=ty;
        z=tz;
    }    
  };
 
 
class DemoLine: public DemoPoint // похідний клас
  {
  protected :int x2;
            int y2;
  public : void Show () // перевантаження віртуального методу
    {
        cout<<"відрізок на площині: ({"<<x<<"}, {"<<y<<"}) - ({"<<x2<<"}, {"<<y2<<"})"<<endl;
    }
    DemoLine (int x1, int y1, int x3, int y3)
    {
     x=x1;
     y=y1;
     x2=x3;
     y2=y3;
    }
 };
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    DemoPoint point1 = DemoPoint (0,1);
      point1.Show ();
      DemoShape pointShape = DemoShape (2,3,4);
      pointShape.Show ();
      DemoLine line = DemoLine (0,0, 10, 10);
      line.Show ();
      // Використання посилання базового класу на об'єкти похідних класів
      DemoPoint point2 = pointShape;
      point2.Show ();
      point2 = line;
      point2.Show ();
 
      system("pause");
    return 0;
}
magasin
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 42
29.04.2013, 22:12  [ТС]     Проверить код #5
Если не сложно то помогите переделать такую програму
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
abstract class Demo / / абстрактний клас
  {
    abstract public void Show () ;/ / абстрактний метод
    abstract public double Dlina () ;/ / абстрактний метод
  }
 
  class DemoPoint: public Demo / / похідний клас від абстрактного
  {
    protected int x;
    protected int y;
    public DemoPoint (int x, int y)
    {
      this.x = x; this.y = y;
    }
    public override void Show () / / перевизначення абстрактного методу
    {
      Console.WriteLine ("точка на площині: ({0}, {1})", x, y);
    }
    public override double Dlina () / / перевизначення абстрактного методу
    {
      return Math.Sqrt (x * x + y * y);
    }
  }
 
  class DemoShape: public DemoPoint / / похідний клас
  {
    protected int z;
    public DemoShape (int x, int y, int z): base (x, y)
    {
      this.z = z;
    }
    public override void Show () / / перевизначення абстрактного методу
    {
      Console.WriteLine ("точка в просторі: ({0}, {1}, {2})", x, y, z);
    }
    public override double Dlina () / / перевизначення абстрактного методу
    {
      return Math.Sqrt (x * x + y * y + z * z);
    }
  }
 
  class DemoLine: public  DemoPoint / / похідний клас
  {
    protected int x2;
    protected int y2;
    public DemoLine (int x1, int y1, int x2, int y2): base (x1, y1)
    {
      this.x2 = x2; this.y2 = y2;
    }
    public override void Show () / / перевизначення абстрактного методу
    {
      Console.WriteLine ("відрізок на площині: ({0}, {1}) - ({2}, {3})", x, y, x2,  y2);
    }
    public override double Dlina () / / перевизначення абстрактного методу
    {
      return Math.Sqrt ((x-x2) * (x-x2) + (y-y2) * (y-y2));
    }
  }
  
  class Program
  {
    static void Main ()
    {
      Demo [] Ob = new Demo [5]; / / масив посилань
      / / Заповнення масиву посиланнями на об'єкти похідних класів
      Ob [0] = new DemoPoint (1,1);
      Ob [1] = new DemoShape (1,1,1);
      Ob [2] = new DemoLine (0,3,4,0);
      Ob [3] = new DemoLine (2,1,2,10);
      Ob [4] = new DemoPoint (0,100);
      foreach (Demo a in Ob) / / перегляд масиву
      {
        a.Show ();
        Console.WriteLine ("Dlina: {0: f2} \ n", a.Dlina ());
      } } }
Yandex
Объявления
29.04.2013, 22:12     Проверить код
Ответ Создать тему
Опции темы

Текущее время: 22:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru