Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Галкин / Лабораторная работа N9
.docxМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА
Факультет электроники и системотехники.
Лабораторная работа № 9
по программированию на языке высшего уровня С
Тема: «Структуры»
Выполнил студент: Галкин И.В. ВТ-11
Проверил: Ларионов Н.В.
Москва 2011
1. Описать структуру с именем PRICE, содержащую следующие поля:
• название товара;
• название магазина, в котором продается товар;
• стоимость товара в руб.
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа
PRICE; записи должны быть размещены в алфавитном порядке по названиям
магазинов;
• вывод на экран информации о товарах, продающихся в магазине, название
которого введено с клавиатуры;
• если такого магазина нет, выдать на дисплей соответствующее сообщение.
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<dos.h>
#include<stdlib.h>
struct PRICE
{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(PRICE *a)
{int i,j,f;
char list[8][100];
struct PRICE 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<<"Tovar ь "<<i<<"\n";
cout<<"Vvedite nazvanie tovara: ";
cin>>spisok[i].tovar;
cout<<"Nazvanie magazina, v kotorom tovar prodaetsya: ";
cin>>spisok[i].mag;
cout<<"Stoimost tovara: ";
cin>>spisok[i].stoim;
cout<<"\n";};
clrscr() ;
sortirovka(spisok);
for(i=0;i<8;i++)
cout<<"Tovar "<<i<<" : "<<spisok[i].tovar<<"\n";
cout<<"\n";
getchar() ;
char *str;
cout<<"Vvedite nazvanie tovara, informaciyu o kotorom vi hotit uznat: ";
cin>>str;
int k=0;
for (i=0;i<8;i++)
{if (stricmp(str,spisok[i].tovar)==0)
{cout<<"Magazin: "<<spisok[i].mag<<"\n";
cout<<"Stoimost: "<<spisok[i].stoim<<"\n";
k++;};
}
if (k==0) cout<<"Takogo tovara net";
getchar() ;
}