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

из С в С++ - C++

Восстановить пароль Регистрация
 
takewa
 Аватар для takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
20.12.2011, 22:31     из С в С++ #1
Добрый вечер всем. Нужно переделать задачу из С в С++.Помогите плиз)
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
#include "string.h"
#include "stdio.h"
#include "locale.h"
#include "iostream"
using namespace std;
 
 struct AEROFLOT
        {
                char *namereice;
                int №somoleta;
                char *tipsomoleta;
        };
 ostream& operator<<(ostream& out,AEROFLOT &J)
 { 
         out<<"\n пункт назначения"<<J.namereice;
     out<< "\n номер рейса"<<J.№somoleta;
         return out;
 }
 
int main()
{
    setlocale (LC_ALL, "Russian");
 
    AEROFLOT k[7], n, t; 
 
char buf[255];
 
    int i;
    
    for (i=0; i<7; i++)
        {
           printf ("введите пункт назначения\t");
       k[i].namereice=new char[strlen(buf)+1];
           scanf_s("%s", &k[i].namereice);
            strcpy(k[i].namereice,buf);
 
           printf ("введите пункт назначения\t");
           scanf_s("%d",&k[i].№somoleta);
       
           printf ("введите тип самолета\t");
           k[i].tipsomoleta = new char[strlen(buf)+1];
           scanf_s ("%s", &k[i].tipsomoleta);
           printf("\n");
         strcpy(k[i].tipsomoleta,buf);
   }
 
 
    for (i=0; i<7; i++)
            if (strcmp(k[i].namereice, k[i+1].namereice)>0)
            {
                    strcpy (n.namereice, k[i+1].namereice);
            strcpy (k[i+1].namereice,k[i].namereice);
            strcpy (k[i].namereice, n.namereice);
            }  
         printf ("%s","список фамилий отсортирован по алфавиту: ");
         printf ("\n");
     for (i=0; i<7; i++)
     puts(k[i].namereice);
         
         printf("тип самолета введите\t");
                 scanf_s("%s", &t.tipsomoleta);
                         t.tipsomoleta=new char [strlen(buf)+1];
         for (i=0; i<7; i++)
                 {
                 if (k[i].tipsomoleta==t.tipsomoleta)
                cout<< (k[i]);
                 else printf("таких рейсов нет\t");
                 }
 
    delete k[i].namereice;
        delete k[i].tipsomoleta;
        return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
takewa
 Аватар для takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
22.12.2011, 00:41  [ТС]     из С в С++ #2
Поможет кто??
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
22.12.2011, 00:43     из С в С++ #3
открою секрет, что она и так на с++
silent_1991
22.12.2011, 00:54
  #4

Не по теме:

Цитата Сообщение от takewa Посмотреть сообщение
int №somoleta;

Почему не stray symbol?

takewa
 Аватар для takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
22.12.2011, 01:18  [ТС]     из С в С++ #5
измените не уточнил сразу
C++
1
2
scanf_s ("%s", &k[i].tipsomoleta);
           printf("\n")
без использования их.
Vega251
288 / 91 / 3
Регистрация: 07.09.2011
Сообщений: 473
Записей в блоге: 2
22.12.2011, 01:58     из С в С++ #6
Убрать из кода printf, scanf. Заменить их соотетсвенно cout и cin. Кроме того, сразу же бросается в глаза структура. Ее непременно нужно переделать в класс:
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
class CAeroflot {
private: // этот модификатор можно не писать, но для демонстрации преподу он нужен
char *nomereice;
int numbersamoleta;
  char *tipsomoleta;
 public:
//оставим конструктор по-умолчанию, хотя это вызвоет шквал негодования сторонников приплюснутого С
void setNumberOfReise (char n);
char* getNumberOf Reise ();
void setNumberSamolet (short n);
int getNumSam ();
void setTypeSam (char* nazv);
char* getTypeSam ();
};
 
//Теперь реализуем акссессоры get и set для демонстрации инкапсуляции
//Сеттер свойства
void CAeroflot::setNumberSamolet (short n)
{
   numbersamoleta=n;
}
//геттер свойства
int CAeroflot::getNumSam ()
{
   return numbersamoleta;}
 
//Так проходимся по остальным методам. Кроме того, char* я бы лучше заменил на тип string, так как экземпляры класса уже будут объектами
 Комментарий модератора 
Используйте теги форматирования кода!
Yandex
Объявления
22.12.2011, 01:58     из С в С++
Ответ Создать тему
Опции темы

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