Помощь - Поиск - Пользователи - Календарь
Полная версия: прога на TC > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
Equal
Задача такая:
Дан файл, содержащий сведения о сотрудниках отдела учреждения.
Структура записи файла: фамилия, имя, отчество сотрудника, год рождения, должность, домашний телефон, домашний адрес. Записи в файле не упорядочены.
Написать программу которая:
- упорядочивает записи в алфавитном порядке, используя список, и записывает их в новый файл;
- печатает список сотрудников (в алфавитном порядке), у которых есть домашний телефон, выводить только ф.и.о. и номер телефона.

Программу написать на turbo c++

Подскажите пожалуйста как создать массив структур или же более простой способ для сортировки файла? заранее спасибо
граф Монте-Кристо
И когда же у нас нормально начнут информатике/программированию учить?..
Сформулируйте вопрос конкретнее. Вы не знаете, как создать вообще массив, или именно массив структур?

UPD: Перечитал пост и понял, что выглядит двусмысленно. Это камень не в Ваш огород, Equal, а в огород института/факультета/преподавателей.
Equal
Как создать массив структур я знаю, непонятно как его в функции использовать.

Пока что написал так:
#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 ссылаться на массив таким образом
граф Монте-Кристо
Нет, конечно нельзя. Массив лучше передавать по указателю.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.