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

Не работает перечень - C++

Восстановить пароль Регистрация
 
alicespoon
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 4
17.12.2013, 21:44     Не работает перечень #1
Добрый вечер! При создании 2-х классов и дружественной функции не работает созданный перечень:

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
class STUDENT2;
class STUDENT           //класс динамический массив структур
{private:
  stud *px, *px1;
  int n;
 public:
  STUDENT(): n(0), px(NULL){}                //Конструктор
  STUDENT(STUDENT &z);                       //Конструктор копирования
  ~STUDENT(){if (px!=NULL) delete [] px;}    //Деструктор
  void inputStudentFile();                    //Ввод БД из txt файла
  void saveStudentFile();                   //Сохранение текущей БД в txt файл
  void saveStudentFileBin();                 //Сохранение текущей БД в bin файл
  void inputStudentFileBin();                 //Ввод БД из bin файла
  void addStudent();                        //Добавление новой строки с данными в БД
  void deletStudent();                      //Удаление строки из БД
  void modifyStudent();                         //редактирование выбранной строки в БД
  void outputStudent();                      //Вывод текущей БД на экран
  void sortStudentFIO();                     //Алфавитная сортировка БД по Ф.И.О.
  void sortStudentGrFIO();             //Алфавитная сортировка БД по факультету, а при совпадении по Ф.И.О.
  void sortStudentYear();           //Числовая сортировка БД по году поступления               
  void findYear();               //Поиск по году обучения
  void findFakGrup();                 //Поиск факультету и группе
  void findFioDate();                 //Поиск по ФИО и дате рождения
  friend ifstream &operator >>(ifstream &in, STUDENT &z);       //Перегрузка операции чтения из txt файла
  friend ofstream &operator <<(ofstream &fout, STUDENT &z);     //Перегрузка операции записи в txt файл
  friend void perechFIO(STUDENT&V1,STUDENT2&V2);
  };
  
class STUDENT2 
{private:
  perFIO *py, *y;
  int k;
 public:
  STUDENT2(): k(0), py(NULL){}                //Конструктор
  STUDENT2(STUDENT2 &z);                       //Конструктор копирования
  ~STUDENT2(){if (py!=NULL) delete [] py;}    //Деструктор  
   void sortPerechFIO();                     //Сортировка перечня ФИО с указанием группы
  void outputPerechFIO();                   //Вывод перечня ФИО с указанием группы
  void savePerechFIO();                     //Сохранение перечня ФИО с указанием группы
  friend void perechFIO(STUDENT&V1,STUDENT2&V2);
};
 
void perechFIO(STUDENT&V1,STUDENT2&V2)   //Перечень ФИО с указанием группы
{int i,j,n,k;
 char ch;
 n=V1.n;
 k=0;
  for(i=0;i<n;i++)
  { 
     for(j=0;j<k;j++)
             
                {    strcpy(V1.px[i].f.fam,V2.py[k].f.fam);
                     strcpy(V2.py[k].f.iniz,V1.px[i].f.iniz);
                             strcpy(V2.py[k].grup,V1.px[i].grup); k++; 
                }
         }
}
Ошибка не выходит, только пустая таблица. Подскажите, как исправить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 21:44     Не работает перечень
Посмотрите здесь:

C++ c++ Имеется перечень файлов, каждый из которых задан своими атрибутами: имя, размер в байтах, скрытый, только для чтения, архивный. Вывести на экран в
Синтаксис и семантика С++ , перечень. C++
Посоветуйте перечень учебников по C++ C++
C++ Напишите, скомпилируйте и выполните программу, которая выводит перечень аргументов командной строки в обратном порядке
C++ Вывести фамилии студентов, которые не получают стипендию и их перечень дисциплин (переделать под объединение и перечисление)
C++ setprecision() не работает, или работает не так как нужно
C++ Перечень команд на с++ с их описанием

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Black_Thorn
17 / 17 / 1
Регистрация: 06.12.2012
Сообщений: 46
17.12.2013, 21:55     Не работает перечень #2
C++
1
2
3
4
5
6
7
8
9
10
k=0; // k = 0;
  for(i=0;i<n;i++)
  { 
     for(j=0;j<k;j++) // мне кажется сюда программа не попадет 0<0
             
                {    strcpy(V1.px[i].f.fam,V2.py[k].f.fam);
                     strcpy(V2.py[k].f.iniz,V1.px[i].f.iniz);
                             strcpy(V2.py[k].grup,V1.px[i].grup); k++; 
                }
         }
alicespoon
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 4
17.12.2013, 22:18  [ТС]     Не работает перечень #3
Цитата Сообщение от Black_Thorn Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
k=0; // k = 0;
  for(i=0;i<n;i++)
  { 
     for(j=0;j<k;j++) // мне кажется сюда программа не попадет 0<0
             
                {    strcpy(V1.px[i].f.fam,V2.py[k].f.fam);
                     strcpy(V2.py[k].f.iniz,V1.px[i].f.iniz);
                             strcpy(V2.py[k].grup,V1.px[i].grup); k++; 
                }
         }
И без нее - тоже самое. Проблема в том, что все это работает в одном классе прекрасно, когда задаешь два и дружественную функцию - ничего не происходит. + к тому программа ругается если не задаешь переменные в int - n и k.

Вот так выглядит перечень с одним классом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void STUDENT::perechFIO()   //Перечень ФИО с указанием группы
{int i,j,fl;
 char ch;
 perFIO *y;
 k=0;
 y = new perFIO[n];
 if (y==NULL) {cout<<"Нет памяти!\n"; return NULL;}
 for(i=0;i<n;i++)
  {    strcpy(y[k].f.fam,px[i].f.fam);
    strcpy(y[k].f.iniz,px[i].f.iniz);
        strcpy(y[k].grup,px[i].grup); k++; 
  
 }
 py = new perFIO[k];
if (py==NULL) {cout<<"Нет памяти!\n"; delete []y; k=0; return NULL;}
 for(j=0;j<k;j++)
 py[j]=y[j];
 delete []y; 
 cout<<"Перечень:\n\n";
 sortPerechFIO();
 outputPerechFIO();
Yandex
Объявления
17.12.2013, 22:18     Не работает перечень
Ответ Создать тему
Опции темы

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