![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Equal |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 4 Регистрация: 29.10.2012 Город: Дзержинск ![]() |
Задача такая:
Дан файл, содержащий сведения о сотрудниках отдела учреждения. Структура записи файла: фамилия, имя, отчество сотрудника, год рождения, должность, домашний телефон, домашний адрес. Записи в файле не упорядочены. Написать программу которая: - упорядочивает записи в алфавитном порядке, используя список, и записывает их в новый файл; - печатает список сотрудников (в алфавитном порядке), у которых есть домашний телефон, выводить только ф.и.о. и номер телефона. Программу написать на turbo c++ Подскажите пожалуйста как создать массив структур или же более простой способ для сортировки файла? заранее спасибо |
![]() ![]() |
граф Монте-Кристо |
![]()
Сообщение
#2
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое ![]() |
И когда же у нас нормально начнут информатике/программированию учить?..
Сформулируйте вопрос конкретнее. Вы не знаете, как создать вообще массив, или именно массив структур? UPD: Перечитал пост и понял, что выглядит двусмысленно. Это камень не в Ваш огород, Equal, а в огород института/факультета/преподавателей. |
Equal |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Продвинутые Сообщений: 4 Регистрация: 29.10.2012 Город: Дзержинск ![]() |
Как создать массив структур я знаю, непонятно как его в функции использовать.
Пока что написал так: #include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> #include <conio.h> #define DL_FIO 20 #define DL_GR 5 #define DL_DOLGNOST 20 #define DL_DOMADR 12 #define DL_DOMTEL 8 #define NMAX 100 struct SVEDENIYA { char fio[DL_FIO]; char gr[DL_GR]; char dolgnost[DL_DOLGNOST]; char domadr[DL_DOMADR]; char domtel[DL_DOMTEL]; }; struct EL_MAS { char fio[DL_FIO]; char dolgnost[DL_DOLGNOST]; char domadr[DL_DOMADR]; char domtel[DL_DOMTEL]; }; void Uporyad(FILE *f); void Zapis(FILE *fin); void Pechat(FILE *f); int main() { FILE *f ; string ms[NMAX]; int n; clrscr(); f=fopen(“spisok.txt”, ”r”); if(f==NULL) { printf(“Fail spisok.txt ne naiden”); getch(); return 1; } do printf(“\n===========================================”); printf(“\nViberite nomer punkta menu:”); printf(“\n1-uporyadochivanie spiska sotrudnikov po alfavitu”); printf(“\n2-pechat spiska sotrudnikov, u kotorih est’ domashniy telefon”); printf(“\n3-vyhod”); printf(“\n----------------------------------------------------------------------\n”); n=getche(); switch(n) { case ‘1’: Uporyad(f); break; case ‘2’: Pechat(f); break; case ‘3’: break; default: printf(“\n nuzhno vvodit’ cifru ot 1 do 3”); } if(n!=’3’) { printf(“\n Dlya prodolzheniya nazhmite lubuyu klavishu”); getch(); } } while(n!=’3’); fclose(f); return 0; } void Uporyad(FILE *f) { int k,i; struct SVEDENIYA s; for(k=n-1; k>0; k--) for(i=0; i<k; i++) if(strcmp(ms[i].fio,ms[i+1].fio)>0) { s=ms[i]; ms[i]=ms[i+1]; ms[i+1]=s; } Не уверен только, можно ли в функции Uporyad ссылаться на массив таким образом |
граф Монте-Кристо |
![]()
Сообщение
#4
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое ![]() |
Нет, конечно нельзя. Массив лучше передавать по указателю.
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 14:17 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru