Розробка додатків для роботи с інформацією с середовищі С

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    641,07 Кб
  • Опубликовано:
    2013-11-16
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка додатків для роботи с інформацією с середовищі С

Завдання

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

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

2.      Вивести на друк зміст файлу у вигляді таблиці.

.        Додати до файлу записи. Видалити з файлу записи по назві.

.        Видати інформацію про існуючу літературу по назві.

.        Змінити кількість книг по назві.

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

В даній програмі необхідно розробити меню, що містить такі пункти як, створення файлу, що містить відомості про учбову та науково-технічну літературу зі структурою запису тема, автор, назва, рік видання, видавництво, кількість шт., виведення на друк змісту файлу у вигляді таблиці, додавання до файлу записів, видалення з файлу записів по назві, виведення інформації про існуючу літературу по назві та змінення кількості книг по назві. Створити два документа(файла), один с яких буде містити основну інформацію, а інший - інформацію, що буде виводитись в результаті обробки по запиту. Необхідно організувати доступ до цих файлів для читання та внесення змін безпосередньо через програму.

Опис структури даних та вимог до них

Структура містить наступні поля даних:

·   Тема. Поле містить інформацію про тематику книги. До цього поля вносяться дані символьного типу СHAR. Максимальний розмір поля - 20 символів.

·   Автор. Дане поле містить дані про автора літератури(прізвище) До цього поля вносяться дані типу СHAR. Максимальний розмір поля - 15символів.

·   Назва книги. Дане поле зберігає назву книги. Дані мають тип СHAR. Максимальний розмір поля - 30символів.

·   Рік видання. Дане поле містить дані про рік видання книги. Дані заносяться цілочисельного типу INT.

·   Видавництво. Поле містить назву видавництва, де була видана книга. До поля заносяться дані символьного типу СHAR. Максимальний розмір поля - 10.

·   Кількість. Поле містить інформацію про кількість шт. даних книг, що є у наявності. Дані мають цілочисельний тип INT.

Вхідні дані можуть вводитись через програму фізично з клавіатури, або безпосередньо до файлу FILE.txt

Вихідними даними в програмі є інформація в базі даних, яка записується до файлу з ім’ям FILE.txt по завершенню роботи програми, та інформація, що виводиться по запиту до файлу FILE1.txt.

Опис файлів та їх призначення

Для роботи програми створюється два файла в стандартному редакторі БЛОКНОТ. Перший має назву FILE.txt. Він необхідний для збереження основних вхідних даних. Містить базу даних про учбову на науково-технічну літературу зі структурою запису тема, автор, назва, рік видання, видавництво, кількість шт.. Другий файл - FILE1.txt, зберігає інформацію виведену в нього в результаті запиту. В даній програмі це інформація про книги по конкретній темі.

файл запит програма

Пояснювальна записка

Основна структура програми реалізована використанням оператора переривання SWITCH, так як нам необхідно обирати один з варіантів дій, що задаються нашим завданням, чи то ввід даних, чи додавання, видалення, зміна даних в основному меню програми.

SWITCH (номер_варіанта);

Звернення до вибору варіанта відбувається в тілі програми. Самі ж процедури, які виконують дії над файлами, операції над даними в програмі реалізовані за допомогою процедур, де описані всі зміні і дії над даними. Процедури мають вигляд:

·        Case 1: create(); - від основних даних до бази та створення файлу з записами цих полів.

·        Case 2: print(); -після компіляції процедура виводить основні поля введених даних на екран у вигляді таблиці.

·        Case 3: add(); - процедура додавання даних до бази.

·        Сase 4: del(); - процедура видалення запису по шуканому параметру(по назві книги)

·        Сase 5: vyvod(); - процедура вивода інформації про книги до файлу FILE1.txt по темі книги.

·        Case 6: izm(); - процедура змінення даних в базі по введеній назві книги(зміна кількості).

·        Case 7: exit(1); - процедура, яка викликає вихід із програми.

В подальшому ми викликаємо послідовно всі процедури в тілі програми.

1. Опис стандартних процедур та функцій, що використовувалися у програмі

В програмі використовувались такі стандартні функції:

·   textattr(YELLOW|LIGHTBLUE<<4|BLINK) - функція, яка задає колір символів та фону в програмі. YELLOW- задання кольору символів, LIGHTBLUE - колір фону. Параметр BLINK відповідає за блимання курсору.

·        p=fopen("С:\FILE.txt", "w" ) - функція відкриття файлу. Параметри функції є вказівниками на символьні рядки. С:\FILE.txt - ім’я файлу, "w" - режим обміну даними(режим призначений для запису)

·        fclose(р) - функція для закриття потоків. р - вказівник на потік, який треба закрити.

·        getch() - функція затримання екрану.

·        fprintf(p,"%s\t%s\t%s\t\t%i\t\t%s\t%i\n",x.tema,x.avtor,x.nazvanie,x.godizdania,x.izdatelstvo,x.kolichestvo) - функція для форматного виведення в файл.

·        fscanf(p,"%s%s%s%i%s%i",&x.tema,&x.avtor,&x.nazvanie,&x.godizdania,&x.izdatelstvo,&x.kolichestvo) - файлове введення даних згідно зі заданим списком форматних специфікацій. Параметр p вказує на текстовий потік введення, обов’язковий параметр "%s%s%s%i%s%i",&x.tema,&x.avtor,&x.nazvanie,&x.godizdania,&x.izdatelstvo,&x.kolichestvo - задає символьний рядок з послідовністю специфікацій форматних перетворень. Наступні параметри задають адреси змінних, куди будуть записуватись введені значення (їх кількість і типи визначаються специфікаціями) .

·        strcmp(x.tema,tem)==0 - функція призначена для порівняння двох рядків:Функція strcmp () порівнює рядки x.tema і tem і повертає значення 0, якщо рядки рівні, тобто містять одне й те ж число однакових символів.

2. Інструкція для роботи з програмою: системному програмісту, користувачу

Для запуску програми необхідно запустити файл kursova.exe . Після запуску файлу з’являється меню. В меню вибираємо необхідний пункт за допомогою введення відповідного номера і натискаємо enter.

. Приклад тестування та результату роботи програми

В ході випробувань програми була перевірена правильність її роботи при вводі, виводі на друк, додаванні, видаленні, пошуку, редагуванні окремих елементів бази даних по окремим значенням полів.

Натискуючи 1, ми переходимо к меню, що реалізує процедуру вводу даних до нашої бази: першим ми бачимо повідомлення та запит про кількість введених даних до таблиці. Потім ми послідовно заповнюємо всі поля, читаючи вказівники бази даних.



Коли натискаємо 2-ку, то можемо переглянути введені дані у вигляді таблички із відповідними полями. Цю процедуру необхідно викликати кожен раз після виконання процедур, які розроблені далі.


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


Покажемо, що дані були додані в таблицю. Після того, як ми ввели дані, виходимо в меню і натискуємо знову 2. На екрані виводиться таблиця.


Далі слідує процедура, яка відповідає за видалення запису із бази по шуканому параметру, а саме, як вказано в завданні по назві. На екрані з’являється повідомлення про те, що необхідно ввести шукану назву. Після введення з’являється повідомлення про те, що дані були успішно видалені.


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

Далі слідує меню, яка відповідає за вивід інформації в файл на диск по введеній с клавіатури темі книги. Інформація виводиться до файлу FILE1.txt. Продивитися інформацію можна в файлі на диску.


Наступний пункт головного меню викликає процедуру зміни даних у базі(зміна кількості книг по введеній назві). Спочатку з клавіатури вводиться назва, яка знаходиться в базі, далі слідує повідомлення про те, що необхідно ввести нову кількість книг. Після перевірки правильності умови відбувається заміна.


В тому, що дані були змінені, можна переконатися з таблиці. Порівняв дані з попередньої таблиці, ми бачимо, що кількість книг с назвою polimer було 67, а зараз вона змінена на 3456.


4. Код програми

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<conio.h>

//init procedur;

//sozdanie fajla s informaziej o studentah;create(); // Vvod dannichprint(); //Vyvod na ekran sodergimogo fajla;add(); //dobavlenie informaziji v file;del(); //udalenie zapisi po nazvaniu;vyvod(); //vyvod v file po teme literaturu;izm(); //izmenit' kolichestvo knig po nazvaniu;

//init sozdanija faylov;*p,*p1;fclose(FILE *p );fclose(FILE *p1);

//opisanie structury;biblioteka

{tema[20];

char avtor[15];

char nazvanie[30];godizdania;izdatelstvo[10];kolichestvo;

},buf[N];i,n,k;y[10];

//-----------------------------------------------------------------------main()

{(YELLOW|LIGHTBLUE<<4|BLINK);

//init peremennyh;variant;//osnovnoj switch - vybor varianta dejstvija;{();("|----------------------------------------------------------------|");("| *** KURSOVA ROBOTA Z PROGRAMUVANNYAA *** |");("|  *** Studenta grupu IN-92 *** |");("|  *** Radchenka Artema *** |");("|   MENY   |");("|----------------------------------------------------------------|");("| Vvedit nomer dlay vukonannya diy:  |");("|----------------------------------------------------------------|");("| 1 - Stvorutu fayl z informachiey pro literaturu; |");("|----------------------------------------------------------------|");("| 2 - Vuvestu na druk zmist faylu;  |");("|----------------------------------------------------------------|");("| 3 - dodatu informachiy do faylu;  |");("|----------------------------------------------------------------|");("| 4 - Vudalutu zapus po nazvi;   |");("|----------------------------------------------------------------|");("| 5 - vuvestu informaciy pro literaturu do faylu po temi; |");("|----------------------------------------------------------------|");("| 6 - zminutu kil'kist' knug po nazvi;  |");("|----------------------------------------------------------------|");("| 7 - Vuxid z prodramu;   |");("|----------------------------------------------------------------|");("%i",&variant); //vybor varianta;(variant) //vvod;

{1: create(); clrscr(); break;2: print (); break;3: add (); clrscr(); break;4: del (); break;5: vyvod (); break;6: izm (); clrscr(); break;

}

//deafult:{puts("**** Thank's you!!! ****"); //text po umolchaniju;

//exit(0);

}(variant!=7);

}

//-----------------------------------------------------------------------

//procedure zanesenija pervonach. dannyh v file;create()

{=fopen("C:\FILE.txt", "w" ); //otkryvaem file;(p); //zakrytie fajla dlja obnulenija informazii v baze;();("|----------------------------------------------------------------|");("| Vvedit' kil'kist' zapusiv yaki vu xochute dodatu? |");("|----------------------------------------------------------------|");("%i",&n);(i=0;i<n;i++)

{(); //perehod na proceduru dobavlenija informazii;

}

//main(); //vozvrat k menu programmy;

};

//---------------------------------------------------------------------------

//procedure vyvoda dannyh na ekran;print()

{=fopen("C:\FILE.txt", "r" );();("Tema\t Avtor\t nazvanie\t god izdania\t izdatelstvo\t kolichestvo");("------------------------------------------------------------------------ ");(!feof(p))

{(p,"%s %s %s %i %s %i ",&x.tema, //schityvaem dannye s fajla;

&x.avtor,&x.nazvanie,&x.godizdania,

&x.izdatelstvo,&x.kolichestvo);("%s\t %s\t %s\t\t %i\t\t %s\t %i\n",x.tema,.avtor,x.nazvanie,x.godizdania,.izdatelstvo,x.kolichestvo);

}(p);("************************************************************************\n");("*** Dani yspishno vuvedeni pered vamu na ekrani");("Natusnit bud-yaku klavishu dlya prodovzhennya...");();

//main();

}

//---------------------------------------------------------------------------

//procedure dobavlenija zapisey v basy;add()

{=fopen("C:\FILE.txt", "a+" );();("|----------------------------------------------------------------|");("| Zaraz vu mozhete dodatu zapusu  |");("|----------------------------------------------------------------|");("| Vvedit' neobxidni dani: |");("|----------------------------------------------------------------|");("| Zapus nomer %i |\n",i+1);("|-----------------|");

//i++;("**** Tema:");(stdin);("%s",&x.tema);("*** Avtor:");(stdin);("%s",&x.avtor);("*** nazva:");(stdin);("%s",&x.nazvanie);("*** rik vudannya:");(stdin);("%i",&x.godizdania);("*** vudavnuctvo:");("%s",&x.izdatelstvo);("*** kil'kist':");("%i",&x.kolichestvo);

//vyvod dannyh v file;(p,"%s\t %s\t %s\t\t %i\t\t %s\t %i\n",.tema,x.avtor,x.nazvanie,x.godizdania,x.izdatelstvo,.kolichestvo);(p);(" Dani uspishno dodani v file FILE.txt");("natusnit' bud'-yaku klavishu dlya prodovzhennya ");();

//main();

}

//-----------------------------------------------------------------------

//procedure udalenija po nazvaniu;del()

{j;nazv[30];=fopen("C:\FILE.txt", "r" ); //otkryvaem file;();(" Vvedit' neobxidnu nazvu\n");("%s",&nazv);=0;(!feof(p))

{(p,"%s%s%s%i%s%i",&x.tema,

&x.avtor,&x.nazvanie,&x.godizdania,

&x.izdatelstvo,&x.kolichestvo);[i]=x;++;

}=i-1;("%i",n);(p);=fopen("C:\FILE.txt", "w+" );(i=0;i<n;i++)

{(strcmp(buf[i].nazvanie,nazv)!=0)(p,"%s %s %s %i %s %i\n",[i].tema,[i].avtor,buf[i].nazvanie,buf[i].godizdania,[i].izdatelstvo,buf[i].kolichestvo);

}(p); //zakryvaem file;("*** Dani uspishno vudaleni iz fajlu FILE.txt");("Natusnit bud-yaku klavishu dlya prodovzhennya");();

//main();

}

//---------------------------------------------------------------------------

//vyvod informazii po temevyvod()

{tem[30];();=fopen("C:\FILE.txt","r+");=fopen("C:\FILE1.txt", "w+" ); //otkryvaem neobxodimyj file;("|----------------------------------------------------------------|");("| Vvedit' temy    |");("|----------------------------------------------------------------|");("%s",&tem); //vvodim temy;=0;(!feof(p))

{(p,"%s %s %s %i %s %i ",&x.tema, &x.avtor,&x.nazvanie,&x.godizdania,

&x.izdatelstvo,&x.kolichestvo);

//proveraem dannye na uclovie shodimosti s vvedemmymi znachenijami;((strcmp(x.tema,tem)==0))

{

//pechataem v file;(p1," Zapus nomer %i\n",i+1);++;(p1,"|----------------------------------------------|\n"

"| tema =%s  |\n"

"|-------------------------------|\n"

"| avtor =%s  |\n"

"|-------------------------------|\n"

"| nazva =%s  |\n"

"|-------------------------------|\n"

"| rik vudannya =%i |\n"

"|-------------------------------|\n"

"| vudavnuctvo =%s |\n"

"|-------------------------------|\n"

"| kil'kist' =%i |\n"

,x.tema,x.avtor,x.nazvanie,x.godizdania,x. izdatelstvo,x.kolichestvo);}

}(i==0) {puts("**************************************************************");("--> Po vashomy zaputy nichogo ne znajdeno!!!");}

{puts("****************************************************************");("*** Vash zaput opracevan! ****\n");("Dani yspishno dodani v file FILE1.txt!!!");}("Natusnit bud-yaku klavishu dlya prodovzhennya");();(p);(p1); //zakryvaem file;

}

//---------------------------------------------------------------------------

//izmenenie kolichestva knig po nazvaniu;izm()

{nazv[30];kol;kolich[10],giz[10];j;=fopen("C:\FILE.txt", "r" ); //otkryvaem file s dannymi;();("|----------------------------------------------------------------|");("| Vvedit' nazvu    |");("|----------------------------------------------------------------|");(stdin);("%s",&nazv);("|----------------------------------------------------------------|");("| Vvedit' novy kil'kist' knug   |");("|----------------------------------------------------------------|");(stdin);("%i",&kol);=0;(!feof(p))

{

//schityvaem dannye v bufer;(p,"%s %s %s %i %s %i ",&x.tema, &x.avtor,&x.nazvanie,&x.godizdania,

&x.izdatelstvo,&x.kolichestvo);[i]=x;

// printf("%s",buf[i].tema);++;

}=i;(p);=fopen("C:\FILE.txt", "w+" );(i=0;i<n;i++)

{ //esli sravnivaemoe znac nazvania iz bufera ravno vvedennomu;(strcmp(buf[i].nazvanie,nazv)==0)(p,"%s %s %s %i %s %i\n",[i].tema,[i].avtor,buf[i].nazvanie,buf[i].godizdania,[i].izdatelstvo,kol);fprintf(p,"%s %s %s %i %s %i\n",[i].tema,[i].avtor,buf[i].nazvanie,buf[i].godizdania,[i].izdatelstvo,buf[i].kolichestvo);}(p);(" Vash zaput obroblen \n");("Dani uspishno zmineni!");puts("Natusnit bud-yaku klavishu dlya prodovzhennya");();}

Висновок

В процесі роботи був розроблений алгоритм розв’язку задачі та структура програми. Були закріплені базові знання по окремим розділам мови С, а саме - структури, оператор переривання SWITCH та деякі операції, які були розглянуті нами раніше. Провівши тестування зроблено висновок, що програма працює коректно і може бути використана для роботи.

Список використаної літератури

1.   Конспект лекцій по програмуванню мовою С.

2.      Шпак. Програмування мовою С.

Похожие работы на - Розробка додатків для роботи с інформацією с середовищі С

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!