Перейти к содержимому


- - - - -

Не могу разобраться со структурой


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 Feel Max

Feel Max
  • Новичок

  • Новичок
  • 2 сообщений
  • Пол:Мужчина
  • Город:Выкса

Отправлено 02.12.2009 - 15:16

Задание.
Описать структуру с именем Kafedra, содержащую следующие поля: nazv-название кафедры, data- дата образования, sotr-сотрудники кафедры (массив из 14 строк). Написать программу, выполняющую ввод с клавиатуры данных в массив Insitut, состоящий из 5 элементов типа Kafedra. Записи должны быть упорядочены по названию кафедры. Вывести на экран информацию о сотрудниках кафедры, введенной с клавиатуры. Если такой кафедры нет, то вывести соответствующее сообщение.






#include <iostream> // библиотека для процедур ввода/вывода
#include <string.h> // библиотека для операций со строками

using namespace std;

int main(int argc, char *argv[]) // основная функция программы
{
    int flag=0; // объявление флажкa
    char Nazvanie_K[20]; // объявление строки поиска
    struct Kafedra{ // объявление структуры
      char nazv[20]; // поле "название кафедры"
      unsigned int data; // поле "дата"
      char sotr[14]; // поле "сотрудник"
      }
      Institut[5],Buf;// объявление массива обменной переменной типа Institut
      for(int I=0; I<5; I++)
      {
      cout << "Vvedite nazvanie kafedri " << I+1 <<">"; // приглашение к вводу поля "название кафедры"
      cin >> Institut[I].nazv; // ввод поля "название кафедры"
      cout << "Vvedite datu " << I+1 << ">"; // приглашение к вводу поля "дата образования"
      cin >> Institut[I].data; // ввод поля "дата образования"
      for(int I=0; I<14; I++)
      {
      cout << "Vvedite imya sotrudnika" << I+1 << ">"; // приглашение к вводу поля "сотрудник"
      cin >> Institut[I].sotr; // ввод поля "сотрудник"
      }
      }
    for(int I=0; I<5; I++) // вложенный цикл сортировки номера по возрастанию
      for(int J=0; J<5-I; J++)
        if(Institut[J].nazv>Institut[J+1].nazv){
          Buf=Institut[J];
          Institut[J]=Institut[J+1];
          Institut[J+1]=Buf;
          };
for(int I=0; I<5; I++){ // вывод отсортированного списка
      cout.width(6);
      cout << "Kafedra=" << Institut[I].nazv;
      cout.width(11);
      cout << " Data obrazovaniya=" << Institut[I].data;
      cout.width(21);
      for(int I=0; I<14; I++)
      {
      cout << " Sotrudnik=" << Institut[I].sotr;
      cout << "\n";
      cout.width(40);
      }
      };
          cout << "\n";
    cout << "Vvedite nazvanie kafedri >";
    cin >> Nazvanie_K; //ввод строки поиска
    for (int I=0; I<5; I++) // цикл поиска и вывода искомой строки
      if (!(strcmp(Institut[I].nazv,Nazvanie_K))){
        cout.width(6);
        cout << "Kafedra=" << Institut[I].nazv;
        cout.width(11);
        cout << " Data obrazovaniya=" << Institut[I].data;
        cout.width(21);
        for(int I=0; I<14; I++)
      {
        cout << " Sotrudnik=" << Institut[I].sotr;
        cout << "\n";
        }
        flag=1;
        }
    if(flag==0) cout << "Takoi kafedri ne sushestvuet!\n";                                                
    system("PAUSE");
    return EXIT_SUCCESS;
}



При выполнении данной программы у меня выдаются имена сотрудников только 5-ой кафедры :blush:  ;) Что мне сделать,чтоб всё было чётко???)
И ещё 1 вопрос.Как по алфавиту упорядочить названия Кафедр(Kafedra)??? ;)
Заранее спасибо. :)  :yahoo:  :mda:  ;)

Сообщение отредактировал Feel Max: 02.12.2009 - 15:32





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей