лаба 3
.docУчреждение образования
Белорусский государственный университет информатики и радиоэлектроники
Контрольная работа
По предмету: Конструирование программ и языки программирования.
Тема: Структуры
Выполнил: Емельяненко М.А
Проверил:
Минск 2010
14. На междугородной АТС информация о разговорах содержит:
-
дату разговора;
-
название города;
-
время разговора;
-
тариф.
Вывести по каждому городу общее время разговора с ним и сумму.
#include <iostream>
#include <string>
using namespace std;
struct Peregovory //cоздаем структуру
{
string Date; //элемент типа строка(дата)
string City; //элемент типа строка(город)
int time; //элумент типа целых(время разговора)
double Tarif; //элемент типа повышеной точности с плавающей точкой
};
Peregovory str[4]; //инициализация структуры
void input(Peregovory * str) // ввод данных в структуру
{
printf("Vedite dannie o razgovore\n");
for(int i=0; i<4; i++) //Цикл заполения структуры
{
cout<<"Date: ";
cin>>str[i].Date;
cout<<"City: ";
cin>>str[i].City;
cout<<"Time: ";
cin>>str[i].time;
cout<<"Tarif:";
cin>>str[i].Tarif;
cin.get(); //убирает последний ввод
}
}
void output(Peregovory * str)//отображение задания на экран
{
double summ; //сумма разговора
double ObshTime;
int znak=0;
for(int a = 0; a<4; a++) //цикл вывода на экран названия города и стоимость всех разговоров с ним
{
ObshTime=str[a].time;
summ=str[a].Tarif*str[a].time; //расчет стоимости
for(int b=a+1; b<4; b++) //цикл поиска одинаковых городов
{
if(str[a].City == str[b].City) //если такой город есть, то прибовляем стоимость
{
summ+=str[b].Tarif*str[b].time;
ObshTime+=str[b].time;
}
}
for (int c=0; c<a; c++) //цикл проверки пройденых городов(чтобы повторно не выводитьна экран)
{
if(str[a].City == str[c].City) //если таковые есть, то znak=1
znak=1;
}
if(znak==0) //усли нет, то выводим на экран
cout<<str[a].City<<" "<<summ<<"\n";
znak=0; //возвращение знака в исходное состояние
}
}
void main()
{
input(str); //вызов функции заполнения структуры
output(str); //функция отображения по заданию
cin.get();
}