You are on page 1of 5

ТЕХНИЧЕСКИ УНИВЕРСИТЕТ - СОФИЯ

ФИЛИАЛ ПЛОВДИВ

ФАКУЛТЕТ ПО ЕЛЕКТРОНИКА И АВТОМАТИКА


КАТЕДРА “КОМПЮТЪРНИ СИСТЕМИ”

Курсова работа №1
Вариант №8

Изработила:Илияна Франгова
Група: 42а
Фак.номер: 375191
Специалност: КСТ

Дата: Проверил:
Условие на задачата :

Вариант.8.-Да се декларира структура, описваща стая в хотел: брой легла,


флаг за заета, цена за 1 нощувка. Да се декларира структура, описваща гост
на хотела: име на гост, , № стая (индекса на елемента от масива), брой
нощувки, стойност на услугата (да се изчислява). Да се напише програма, в
която има масив от стаи (хотел) и масив от гости. Да се напишат функции:
настанява гост в хотела (добавя гост към масива от гости); извежда
информация за гост по въведен № на стая; пълна информация за всички гости.
Да се оформи подходящо меню с възможност за въвеждане на данни, справка и
изход.

Сорс-код на задачата:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

struct gostOtHotela
{
char purvoIme[20];
char familiq[20];
};
struct staq
{
int broilegla;
int flagzaeta;
float ceniZaEdnaNoshtuvka;
};

struct gost
{
struct gostOtHotela ime;
int NomerNaStaq;
int broiNoshtuvki;
float stoinostNaUslugata;
int hora;
};

void input(struct gost* hotel)


{
printf("Vavedi ime: ");
scanf_s("%s", hotel->ime.purvoIme, 20);
printf("Vavedi familiq: ");
scanf_s("%s", hotel->ime.familiq, 20);
printf("Kolko choveka ste: ");
scanf_s("%d", &hotel->hora);
printf("Vavedi nomer na staq: ");
scanf_s("%d", &hotel->NomerNaStaq);
printf("Vavedi broi noshtuvki: ");
scanf_s("%d", &hotel->broiNoshtuvki);
printf("\n");
}

void obrabotkanastaq(struct staq* stai, struct gost* hotel)


{
hotel->stoinostNaUslugata = stai->ceniZaEdnaNoshtuvka * hotel-
>broiNoshtuvki;
stai->flagzaeta = 1;
}

void outputnastaq(struct gost* hotel, int nomernastaq, int n)


{
for (int i = 0; i < n; i++)
{
if (hotel[i].NomerNaStaq == nomernastaq)
{
printf("Imeto na klienta: %s %s\n", hotel[i].ime.purvoIme,
hotel[i].ime.familiq);
printf("Broi noshtuvki: %d\n", hotel[i].broiNoshtuvki);
printf("Obshta suma za poseshtenieto: %.2f\n",
hotel[i].stoinostNaUslugata);
}
}
printf("\n");
}

void outputnavsichki(struct gost* hotel)


{
printf("Imeto na klienta: %s %s\n", hotel->ime.purvoIme, hotel->ime.familiq);
printf("Broi noshtuvki: %d\n", hotel->broiNoshtuvki);
printf("Obshta suma za poseshtenieto: %.2f\n", hotel->stoinostNaUslugata);
printf("\n");
}

int main()
{
struct staq stai[6];
struct gost chakashti[10];
stai[0].broilegla = 2;
stai[0].ceniZaEdnaNoshtuvka = 15;
stai[0].flagzaeta = 0;
stai[1].broilegla = 1;
stai[1].ceniZaEdnaNoshtuvka = 10;
stai[1].flagzaeta = 0;
stai[2].broilegla = 3;
stai[2].ceniZaEdnaNoshtuvka = 25;
stai[2].flagzaeta = 0;
stai[3].broilegla = 2;
stai[3].ceniZaEdnaNoshtuvka = 30;
stai[3].flagzaeta = 0;
stai[4].broilegla = 2;
stai[4].ceniZaEdnaNoshtuvka = 15;
stai[4].flagzaeta = 0;
stai[5].broilegla = 4;
stai[5].ceniZaEdnaNoshtuvka = 50;
stai[5].flagzaeta = 0;
int n;
printf("Kolko na broi chakashti: ");
scanf_s("%d", &n);
for (int i = 0; i < n; i++)
{
input(&chakashti[i]);
if (stai[chakashti[i].NomerNaStaq].flagzaeta == 0)
{
if (chakashti[i].hora <=
stai[chakashti[i].NomerNaStaq].broilegla)
{
obrabotkanastaq(&stai[chakashti[i].NomerNaStaq],
&chakashti[i]);
}
else
{
printf("Ne stigat leglata ");
do
{
printf(" novata staq e : ");
scanf_s("%d", &chakashti[i].NomerNaStaq);
} while (chakashti[i].hora >
stai[chakashti[i].NomerNaStaq].broilegla);
obrabotkanastaq(&stai[chakashti[i].NomerNaStaq],
&chakashti[i]);
}
}
else
{
do
{
printf("novata staq brat e: ");
scanf_s("%d", &chakashti[i].NomerNaStaq);
} while (stai[chakashti[i].NomerNaStaq].flagzaeta != 0);
obrabotkanastaq(&stai[chakashti[i].NomerNaStaq],
&chakashti[i]);
}
}
int vhodotpotrebitel;
printf("Izberete opciq\n");
printf("1.Informaciq za opredelen gost po staq\n");
printf("2.Izvejdane na informaciq za vsichki gosti\n");
printf("3.Izlizane ot programata\n");
scanf_s("%d", &vhodotpotrebitel);
while (vhodotpotrebitel != 3)
{
switch (vhodotpotrebitel)
{
case 1:
{
int nomnastaq;
printf("Za koq staq iskate: ");
scanf_s("%d", &nomnastaq);
outputnastaq(chakashti, nomnastaq, n);
break;
}
case 2:
{
for (int j = 0; j < n; j++)
{
outputnavsichki(&chakashti[j]);
}
break;
}
}
printf("1.Informaciq za opredelen gost po staq\n");
printf("2.Izvejdane na informaciq za vsichki gosti\n");
printf("3.Izlizane ot programata\n");
scanf_s("%d", &vhodotpotrebitel);
}
}

You might also like