Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Музалев / Лабораторная работа №9
.docМосковский Государственный Университет Леса
ФЭСТ ВТ-11
Лабораторная работа №9.
Программирование на языках высокого уровня
Тема: “ Структуры ”
Выполнил: студент Музалёв Д.В.
Проверил : Ларионов Н.В.
Москва 2012.
Вариант 12
1. Описать структуру с именем NOTE, содержащую следующие поля:
• фамилия, имя;
• номер телефона;
• день рождения (массив из трех чисел).
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа
NOTE; записи должны быть упорядочены но датам дней рождения;
• вывод на экран информации о человеке, номер телефона которого введен с
клавиатуры;
• если такого нет, выдать на дисплей соответствующее сообщение.
Листинг программы:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<dos.h>
#include<stdlib.h>
struct NOTE
{char fi[20];
char nt;
int dr[3];
}
spisok[8];
sort_function(const void *a,const void *b)
{return(strcmp((char *)a,(char *)b));
}
void sortirovka(NOTE *a)
{int i,j,f;
char list[8][100];
struct NOTE tmp[8];
for(i=0;i<4;i++)
strcpy(list[i],a[i].fi);
qsort((void *)list,4,sizeof(list[0]),sort_function);
for(i=0;i<8;i++)
for(j=0;j<8;j++)
if(stricmp(list[i],a[j].fi)==0)
{tmp[i]=a[j];
break;}
for(i=0;i<8;i++)
a[i]=tmp[i];
return;}
void main(void)
{clrscr;
for (int i=0;i<8;i++)
{clrscr();
cout<<"fi "<<i<<"\n";
cout<<"Vvedite familiy i imia: ";
cin>>spisok[i].fi;
cout<<"Vvedite nomer telefona: ";
cin>>spisok[i].nt;
cout<<"Vvedite datu rogdenia: ";
cin>>spisok[i].dr;
cout<<"\n";};
clrscr() ;
sortirovka(spisok);
for(i=0;i<8;i++)
cout<<"dr "<<i<<" : "<<spisok[i].dr<<"\n";
cout<<"\n";
getchar() ;
char *str;
cout<<"Vvedite nomer telefona abonenta : ";
cin>>str;
int k=0;
for (i=0;i<8;i++)
{if (stricmp(str,spisok[i].nt)==0)
{cout<<"Familia i imai: "<<spisok[i].fi<<"\n";
cout<<"data rogdenia: "<<spisok[i].dr<<"\n";
k++;};
}
if (k==0) cout<<"Takogo abonenta net";
getchar() ;
}