Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2010, 22:55   #1
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию Структуры

Описать структуру с именем STUDENT, содержащую следующие поля:
• фамилию и инициалы;
• номер группы;
• успеваемость (массив из пяти элементов).
2. Написать программу, которая выполняет следующие действия:
• ввод с клавиатуры данных в массив, состоящий из десяти структур типа
STUDENT; записи должны быть упорядочены по возрастанию номера группы;
• вывод на дисплей фамилии и номеров групп для всех студентов, включенных
в массив, если средний балл студента больше 4,0;
• если таких студентов нет, вывести соответствующее сообщение.
3.Зделать задания для второй задачи с использованием указателей.
Вот програмка
Код:
#include<iostream.h>


struct Student {
     char name[80];
     int  hrypa;
     double sered;
     int ocinku[5];
 };

main() {

  Student styd[3];
  int k=0;
  for (int i=0;i<3;i++) {
        cout<<"Vvedity familiju "<<i<<": ";
        cin>>styd[i].name;
        cout<<"Vvedity nomer hrypu : ";
        cin>>styd[i].hrypa;
        cout<<"Vvedit 5 ocinok studenta : \n";
        int s=0;
        for(int n=0;n<5;n++) {
             cout<<n<<") ";
             cin>>styd[i].ocinku[n];
             s+=styd[i].ocinku[n];
        }
        styd[i].sered= s / 5;
 }

  for (int i = 0; i<2; ++i){
        int imin = i;
        for (int j=(i+1); j<3; ++j)
            if ( styd[j].hrypa < styd[imin].hrypa ) imin=j; {
              Student a = styd[i];
              styd[i] = styd[imin];
              styd[imin] =   a;
                }
    }

 cout<<endl<<endl;
 for (int i=0;i<3;i++) {
      if ( styd[i].sered > 4 )
           cout<<" Name student: "<< styd[i].name<< " Hrypa: " << styd[i].hrypa ;

      else
          k++;
  }
  if (k == 3)  cout<<"***** Takux studentiv ne maje *****\n";

 system("Pause");
}

Как зделать програмку через указатели??
ВасяСВВ вне форума Ответить с цитированием
Старый 11.12.2010, 18:07   #2
X-Zef
 
Аватар для X-Zef
 
Регистрация: 29.11.2010
Сообщений: 7
По умолчанию

Student *styd[3];

for( int i=0; i<3; i++ )
{
styd[i] = new Student;
}





















online movies
X-Zef вне форума Ответить с цитированием
Старый 11.12.2010, 18:27   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Сделать задания для второй задачи с использованием указателей.
Ну это скорее всего динамический список! Но если точно не сказано, то обьявите указатель на массив струтур, и им пользуйтесь!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 14.12.2010, 17:33   #4
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Как переделать это по покажчику???
Я думал что можно так:

styd->name; или (*styd).name;
Оно работает но выводит данные некорректно. Я думаю причина в сортировке.
Возможно нужно использовать какую то другую сортировку??
Или передавать структуру не так???
Спасибо.


Код:
#include<iostream.h>
#include<fstream.h>
#include<conio.h>

struct Student {
char name[80];
int  hrypa;
int ocinku[5];

} ;

void init_struct (  Student* styd, int const n) {

  for (int i=0;i<n;i++) {
        cout<<"Vvedity familiju "<<i<<": ";
        cin>>styd[i].name;
        cout<<"Vvedity nomer hrypu : ";
        cin>>styd[i].hrypa;
        cout<<"Vvedit 5 ocinok studenta : \n";
        for(int d=0;d<5;d++) {
             cout<<d<<") ";
             cin>>styd[i].ocinku[d];
        }
  }

}

void sotr_struct ( Student* styd, int const n) {

   for (int i = 0; i<n-1; ++i){
        int imin = i;
        for (int j=(i+1); j<n; ++j)
            if ( styd[j].hrypa > styd[imin].hrypa ) imin=j; {
              Student a = styd[i];
              styd[i] = styd[imin];
              styd[imin] =   a;
            }
    }
}

void vvid_struct  ( Student* styd, int const n ) {

     ofstream file_1 ("C:\\Documents and Settings\\User\\Рабочий стол\\Новая папка\\text.txt" );   // Відкриття файлу для запису
     if (file_1.fail()) {                   // перевірка наявності файла
     cout<<"Osubka vidkruttya file \n"; system("Pause"); exit(1);
       }

     for (int i=0;i<n;i++) {               // вводить дані у файл
         file_1<<"Name: "<<styd[i].name<<" Hrypa: "<<styd[i].hrypa;
         file_1<<" Ocinku: ";
         for (int j=0; j<5; j++)
             file_1<<styd[i].ocinku[j]<<" ";
         file_1<<endl;
    }

  file_1.close();

  }

void vuvid_struct () {

  char line[64];

  ifstream file_2("C:\\Documents and Settings\\User\\Рабочий стол\\Новая папка\\text.txt" );     // Відкриття файлу для виводу
     if (file_2.fail()) {                   // перевірка наявності файла
     cout<<"Osubka vidkruttya file \n"; system("Pause"); exit(1);
       }

  while ( !file_2.eof() ) {
     file_2.getline(line, sizeof(line));
     cout << line << endl;
  }
 file_2.close();
}

main () {
  int n;
  cout<<"Vvedit kilkist stydentiv \n"; cin>>n;
  Student  *styd =   new Student [n];  // Виділення памяті для массива сетуд.
  init_struct  ( styd, n);    //Заповнення массива структур
  sotr_struct  ( styd, n);    //Сортування по групах
  vvid_struct  ( styd, n);    //Ввід даних у файд
  clrscr();
  vuvid_struct ( );           //Вивід даних із файла
  delete []styd;
  system("Pause");

}
ВасяСВВ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры masha.dongyz Помощь студентам 2 19.12.2011 20:29
С++ структуры nurik_6 Помощь студентам 3 15.06.2010 19:53
Структуры JulLy Общие вопросы C/C++ 12 01.02.2010 09:23
Структуры JulLy Общие вопросы C/C++ 2 31.01.2010 17:04
Структуры С++ atenon Общие вопросы C/C++ 2 23.12.2009 14:59