Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. КУРСОВА РОБОТА.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
903.1 Кб
Скачать
  1. Опис завдання

Завдання № 13

Створити типований файл записів, який містить дані про наявність

ліків в аптеці. Поля запису – назва препарату, призначення (від якої хвороби),

вид (пігулки, ампули, гель, мазь, тощо), країна-виробник, ціна.

Довідки для пошуку:

  • усіх ліків від певної хвороби вітчизняного виробника;

  • препаратів певної назви певного виробника;

  • пігулок від певної хвороби, ціна яких не перевищує задану.

  1. Постановказадачі

У завданні потрібно створити інформаційно-пошукову систему за допомогою мови програмування С з виконанням усіх поставлених вимог, щодо системи. Для досягнення результатів у цього завданні необхідно використати такі інструменти програмування мовою С, як:

  • умови;

  • масиви;

  • рядки;

  • функції;

  • структуриі т. д.

Результатом виконання поставленого завдання мають бути таблиці з стовбцями, заголовки яких:

  • Назва ліків;

  • Призначення ліків;

  • Країна(виробник);

  • Вид ліків.

  • Ціна ліків.

Також необхідно створити файл з внесеною в нього необхідною інформацією щодо ліків(назва , призначення, країна, вид та ціна).

  1. Код програми на мові с

#include<windows.h>

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<string.h>

#include<stdbool.h>

#include<locale.h>

#include<math.h>

FILE *f1;

typedef struct

{

char nazva[30];

char priznach[30];

char craina[20];

char vid[15];

float cina;

} RBook;

RBook book[80];

char name[20];

int kst=0;

int menu();

void crwf();

void vf();

void vz();

void dov1();

void dov2();

void dov3();

int main()

{

setlocale(LC_ALL, "rus");

setlocale(LC_ALL, "Russsian");

while (true)

{

switch (menu())

{

case 1: crwf(); break;

case 2: vf(); break;

case 3: vz(); break;

case 4: dov1(); break;

case 5: dov2(); break;

case 6: dov3(); break;

case 7: return 0;

default: "Введенно не вiрно!";

}

puts("Pressanykeytocontinue");

getch(); system("cls");

}

}

int menu()

{

puts("\n\n\n\t\t\t Iнформацiйно пошукова система");

puts("\n\t1. Створiть та заповнiть файл");

puts("\t2. Вiдкрити файл");

puts("\t3. Вивести всi запити");

puts("\t4. Вивести всi препарати вiд певноi хвороби вiтчизняного виробника");

puts("\t5. Вивести всi пiгулки вiд певноi хвороби, цiна яких не бiльша заданоi");

puts("\t6. Вивести всi препарати певноi назви певного виробника");

puts("\t7. Вихiд");

printf("\n\t Пункт: ");

int i;

scanf("%d",&i);

return i;

}

void crwf()

{

system("cls");

fflush(stdin);

printf("Введiть iмя файлу: ");

gets(name);

if((f1 = fopen(name,"wb"))==NULL)

{

puts("Помилка пiд час створення");

exit(1);

}

puts("OK");

if((f1 = fopen(name,"rb+"))==NULL)

{

puts("Помилка пiд час створення");

exit(1);

}

printf("Введiть кiлкiсть записiв: ");

scanf("%d",&kst);

int i;

for(i=0; i<kst; i++)

{

fflush(stdin);

printf("Введiть назву лiкiв: ");

gets(book[i].nazva);

fflush(stdin);

printf("Введiть призначення: ");

gets(book[i].priznach);

fflush(stdin);

printf("Введiть назву краiни(Ukr, Ang, Rus...): ");

gets(book[i].craina);

fflush(stdin);

printf("Введiть вид препарату(Pig, Amp, Gel, Maz...): ");

gets(book[i].vid);

fflush(stdin);

printf("Введiть цiну: ");

scanf("%f",&book[i].cina);

fwrite( &book[i], sizeof(RBook), 1, f1 );

}

fclose(f1);

}

void vf()

{

system("cls");

fflush(stdin);

puts("Введiть iмя файлу(по замовчуванню - rfile)");

gets(name);

}

void vz()

{

system("cls");

if((f1 = fopen(name,"rb"))==NULL)

{

puts("Помилка пiд час створення");

exit(1);

}

kst=0; RBook std;

printf("\t\t\t<<<<<<<<<Всi записи у файлi>>>>>>>>>\n");

printf(" ------------------------------------------------------------------------------ ");

printf("| Назва | Призначення | Краiна | Вид | Цiна |");

printf("|------------------------------------------------------------------------------|");

while(true)

{

int nwrt = fread( &std, sizeof(RBook), 1, f1 );

if(nwrt!=1) break;

book[kst]=std;

printf("|%-13s|%-13s|%-13s|%-13s|%-22.1f|",book[kst].nazva,book[kst].priznach,book[kst].craina,book[kst].vid,book[kst].cina);

kst++;

}

printf(" ------------------------------------------------------------------------------ ");

fclose(f1);

}

void dov1()

{

system("cls");

char priznach1[15];

printf("Введiть призначення: ");

scanf("%s",&priznach1);

printf(" <<<<<<<<<Пiгулки від перноi хвороби вiдчизняного виробика>>>>>>>>> \n");

printf(" ------------------------------------------------------------------------------ ");

printf("| Назва | Призначення | Краiна | Вид | Цiна |");

printf("|------------------------------------------------------------------------------|");

int i;

for(i=0; i<kst; i++)

{

if(!strcmp(book[i].priznach,priznach1)&& !strcmp(book[i].craina,"Ukr") && !strcmp(book[i].vid,"Pig" ))

{

printf("|%-13s|%-13s|%-13s|%-13s|%-22.1f|",book[i].nazva,book[i].priznach,book[i].craina,book[i].vid,book[i].cina);

}

}

printf(" ------------------------------------------------------------------------------ ");

}

void dov2()

{

system("cls");

char priznach[15];

float cina;

fflush(stdin);

printf("Введiть призначення: ");

scanf("%s",&priznach);

printf("Введiть цiну: ");

scanf("%f",&cina);

printf(" <<<<<<<<<Лiки вiд певноi хвороби ,цiна яких менша за заддану>>>>>>>>>\n");

printf(" ------------------------------------------------------------------------------ ");

printf("| Назва | Призначення | Краiна | Вид | Цiна |");

printf("|------------------------------------------------------------------------------|");

int i;

for(i=0; i<kst; i++)

{

if(!strcmp(book[i].priznach,priznach)&&book[i].cina<=cina)

{

printf("|%-13s|%-13s|%-13s|%-13s|%-22.1f|",book[i].nazva,book[i].priznach,book[i].craina,book[i].vid,book[i].cina);

}

}

printf(" ------------------------------------------------------------------------------ ");

}

void dov3()

{

system("cls");

char nazva[30];

printf("Введiть назву препарату: ");

scanf("%s",&nazva);

char craina[30];

printf("Введiть виробника: ");

scanf("%s",&craina);

printf(" <<<<<<<<<Препорат певноi назви та певного виробника>>>>>>>>>\n");

printf(" ------------------------------------------------------------------------------ ");

printf("| Назва | Призначення | Краiна | Вид | Цiна |");

printf("|------------------------------------------------------------------------------|");

int i;

for(i=0; i<kst; i++)

{

if(!strcmp(book[i].nazva,nazva) && !strcmp(book[i].craina,craina))

{

printf("|%-13s|%-13s|%-13s|%-13s|%-22.1f|",book[i].nazva,book[i].priznach,book[i].craina,book[i].vid,book[i].cina);

}

}

printf(" ------------------------------------------------------------------------------ ");

}