Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Шишкин / 9
.docxМосковский государственный университет леса
ФЕСТ
Вт – 11
Лабораторная работа №9
По теме:
«Структуры»
Преподаватель: Ларионов Н. В.
Студент: Шишкин Д. В.
Москва 2012
1. Описать структуру с именем ZNAK, содержащую следующие поля:
• фамилия, имя;
• знак Зодиака;
• день рождения (массив из трех чисел).
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов тина
ZNAK; записи должны быть упорядочены по знакам Зодиака;
• вывод на экран информации о людях, родившихся в месяц, значение которого
введено с клавиатуры;
• если таких нет, выдать на дисплей соответствующее сообщение.
Листинг программы:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<dos.h>
#include<stdlib.h>
struct ZNAK
{char tovar[20];
char mag[20];
int stoim;
}
spisok[8];
sort_function(const void *a,const void *b)
{return(strcmp((char *)a,(char *)b));
}
void sortirovka(ZNAK *a)
{int i,j,f;
char list[8][100];
struct ZNAK tmp[8];
for(i=0;i<4;i++)
strcpy(list[i],a[i].tovar);
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].tovar)==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<<"Name "<<i<<"\n";
cout<<"Vvedite name: ";
cin>>spisok[i].name;
cout<<"Znak zodiaka: ";
cin>>spisok[i].mag;
cout<<"Den Rozdeniya: ";
cin>>spisok[i].stoim;
cout<<"\n";};
clrscr() ;
sortirovka(spisok);
for(i=0;i<8;i++)
cout<<"Name "<<i<<" : "<<spisok[i].name<<"\n";
cout<<"\n";
getchar() ;
char *str;
cout<<"Vvedite name, informaciyu o kotorom vi hotit uznat: ";
cin>>str;
int k=0;
for (i=0;i<8;i++)
{if (stricmp(str,spisok[i].nam)==0)
{cout<<"Znak: "<<spisok[i].zn<<"\n";
cout<<"Mesyac: "<<spisok[i].mes<<"\n";
cout<<"Stoimost: "<<spisok[i].stoim<<"\n";