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


- - - - -

Помогите со структурой!


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

#1 Feel Max

Feel Max
  • Новичок

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

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

Задание.
Описать структуру с именем 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-ой кафедры   Что мне сделать,чтоб всё было чётко???) ;)  ;)
И ещё 1 вопрос.Как по алфавиту упорядочить названия Кафедр(Kafedra)???   ;)  :blush:
Заранее спасибо.     :)  :yahoo:  :mda:




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

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