
- •Національний університет державної податкової служби україни
- •Календарний план
- •Опис завдання
- •Постановказадачі
- •Код програми на мові с
- •Результати дослідження у вигляді копій відповідних екранних вікон програмного середовища
- •Оцінка результатів виконання програми
- •Висновок
- •Список використаноїЛітературИ
Опис завдання
Завдання № 13
Створити типований файл записів, який містить дані про наявність
ліків в аптеці. Поля запису – назва препарату, призначення (від якої хвороби),
вид (пігулки, ампули, гель, мазь, тощо), країна-виробник, ціна.
Довідки для пошуку:
усіх ліків від певної хвороби вітчизняного виробника;
препаратів певної назви певного виробника;
пігулок від певної хвороби, ціна яких не перевищує задану.
Постановказадачі
У завданні потрібно створити інформаційно-пошукову систему за допомогою мови програмування С з виконанням усіх поставлених вимог, щодо системи. Для досягнення результатів у цього завданні необхідно використати такі інструменти програмування мовою С, як:
умови;
масиви;
рядки;
функції;
структуриі т. д.
Результатом виконання поставленого завдання мають бути таблиці з стовбцями, заголовки яких:
Назва ліків;
Призначення ліків;
Країна(виробник);
Вид ліків.
Ціна ліків.
Також необхідно створити файл з внесеною в нього необхідною інформацією щодо ліків(назва , призначення, країна, вид та ціна).
Код програми на мові с
#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(" ------------------------------------------------------------------------------ ");
}