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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 16.11.2013
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Завдання

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

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

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

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

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

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

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

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

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

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

Тема. Поле містить інформацію про тематику книги. До цього поля вносяться дані символьного типу С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.
3. Приклад тестування та результату роботи програми
В ході випробувань програми була перевірена правильність її роботи при вводі, виводі на друк, додаванні, видаленні, пошуку, редагуванні окремих елементів бази даних по окремим значенням полів.
Натискуючи 1, ми переходимо к меню, що реалізує процедуру вводу даних до нашої бази: першим ми бачимо повідомлення та запит про кількість введених даних до таблиці. Потім ми послідовно заповнюємо всі поля, читаючи вказівники бази даних.
Коли натискаємо 2-ку, то можемо переглянути введені дані у вигляді таблички із відповідними полями. Цю процедуру необхідно викликати кожен раз після виконання процедур, які розроблені далі.
Третьому пункту нашого меню відповідає процедура додавання інформації до бази даних. Після натискання слідує запрошення ввести наступні записи, починаючи с кожної наступної відносно введеної з самого початку. В кінці введення виводиться повідомлення про те, що дані були успішно додані до файлу FILE.txt.
Покажемо, що дані були додані в таблицю. Після того, як ми ввели дані, виходимо в меню і натискуємо знову 2. На екрані виводиться таблиця.
Далі слідує процедура, яка відповідає за видалення запису із бази по шуканому параметру, а саме, як вказано в завданні по назві. На екрані з'являється повідомлення про те, що необхідно ввести шукану назву. Після введення з'являється повідомлення про те, що дані були успішно видалені.
Далі в процедурі, яка викликає видалення, відбувається порівняння введених даних з тими, що були попередньо занесені до буфера, робиться висновок - якщо є збіжність, то в файлі відбувається видалення, в іншому випадку перехід на початок програми( в меню ) або вихід з програми.
Далі слідує меню, яка відповідає за вивід інформації в файл на диск по введеній с клавіатури темі книги. Інформація виводиться до файлу FILE1.txt. Продивитися інформацію можна в файлі на диску.
Наступний пункт головного меню викликає процедуру зміни даних у базі(зміна кількості книг по введеній назві). Спочатку з клавіатури вводиться назва, яка знаходиться в базі, далі слідує повідомлення про те, що необхідно ввести нову кількість книг. Після перевірки правильності умови відбувається заміна.
В тому, що дані були змінені, можна переконатися з таблиці. Порівняв дані з попередньої таблиці, ми бачимо, що кількість книг с назвою polimer було 67, а зараз вона змінена на 3456.
4. Код програми

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#define N 100 //opredelaem razmer massiva vvodimoj informazii v file;

//init procedur;

//sozdanie fajla s informaziej o studentah;

void create(); // Vvod dannich

void print(); //Vyvod na ekran sodergimogo fajla;

void add(); //dobavlenie informaziji v file;

void del(); //udalenie zapisi po nazvaniu;

void vyvod(); //vyvod v file po teme literaturu;

void izm(); //izmenit' kolichestvo knig po nazvaniu;

//init sozdanija faylov;

FILE *p,*p1;

int fclose(FILE *p );

int fclose(FILE *p1);

//opisanie structury;

struct biblioteka

{

char tema[20];

char avtor[15];

char nazvanie[30];

int godizdania;

char izdatelstvo[10];

int kolichestvo;

}

x,buf[N];

int i,n,k;

char y[10];

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

void main()

{

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

//init peremennyh;

int variant;//osnovnoj switch - vybor varianta dejstvija;

do {

clrscr();

puts("|----------------------------------------------------------------|");

puts("| *** KURSOVA ROBOTA Z PROGRAMUVANNYAA *** |");

puts("| *** Studenta grupu IN-92 *** |");

puts("| *** Radchenka Artema *** |");

puts("| MENY |");

puts("|----------------------------------------------------------------|");

puts("| Vvedit nomer dlay vukonannya diy: |");

puts("|----------------------------------------------------------------|");

puts("| 1 - Stvorutu fayl z informachiey pro literaturu; |");

puts("|----------------------------------------------------------------|");

puts("| 2 - Vuvestu na druk zmist faylu; |");

puts("|----------------------------------------------------------------|");

puts("| 3 - dodatu informachiy do faylu; |");

puts("|----------------------------------------------------------------|");

puts("| 4 - Vudalutu zapus po nazvi; |");

puts("|----------------------------------------------------------------|");

puts("| 5 - vuvestu informaciy pro literaturu do faylu po temi; |");

puts("|----------------------------------------------------------------|");

puts("| 6 - zminutu kil'kist' knug po nazvi; |");

puts("|----------------------------------------------------------------|");

puts("| 7 - Vuxid z prodramu; |");

puts("|----------------------------------------------------------------|");

scanf("%i",&variant); //vybor varianta;

switch (variant) //vvod;

{

case 1: create(); clrscr(); break;

case 2: print (); break;

case 3: add (); clrscr(); break;

case 4: del (); break;

case 5: vyvod (); break;

case 6: izm (); clrscr(); break;

}

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

//exit(0);

}

while (variant!=7);

}

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

//procedure zanesenija pervonach. dannyh v file;

void create()

{

p=fopen("C:\FILE.txt", "w" ); //otkryvaem file;

fclose(p); //zakrytie fajla dlja obnulenija informazii v baze;

clrscr();

puts("|----------------------------------------------------------------|");

puts("| Vvedit' kil'kist' zapusiv yaki vu xochute dodatu? |");

puts("|----------------------------------------------------------------|");

scanf("%i",&n);

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

{

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

}

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

};

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

//procedure vyvoda dannyh na ekran;

void print()

{

p=fopen("C:\FILE.txt", "r" );

clrscr();

puts("Tema\t Avtor\t nazvanie\t god izdania\t izdatelstvo\t kolichestvo");

puts("------------------------------------------------------------------------ ");

while (!feof(p))

{

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

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

&x.izdatelstvo,&x.kolichestvo);

printf("%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);

}

fclose(p);

puts("************************************************************************\n");

puts("*** Dani yspishno vuvedeni pered vamu na ekrani");

puts("Natusnit bud-yaku klavishu dlya prodovzhennya...");

getch();

//main();

}

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

//procedure dobavlenija zapisey v basy;

void add()

{

p=fopen("C:\FILE.txt", "a+" );

clrscr();

puts("|----------------------------------------------------------------|");

puts("| Zaraz vu mozhete dodatu zapusu |");

puts("|----------------------------------------------------------------|");

puts("| Vvedit' neobxidni dani: |");

puts("|----------------------------------------------------------------|");

printf("| Zapus nomer %i |\n",i+1);

puts("|-----------------|");

//i++;

puts("**** Tema:");

fflush(stdin);

scanf("%s",&x.tema);

puts("*** Avtor:");

fflush(stdin);

scanf("%s",&x.avtor);

puts("*** nazva:");

fflush(stdin);

scanf("%s",&x.nazvanie);

puts("*** rik vudannya:");

fflush(stdin);

scanf("%i",&x.godizdania);

puts("*** vudavnuctvo:");

scanf("%s",&x.izdatelstvo);

puts("*** kil'kist':");

scanf("%i",&x.kolichestvo);

//vyvod dannyh v file;

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);

fclose(p);

puts(" Dani uspishno dodani v file FILE.txt");

puts("natusnit' bud'-yaku klavishu dlya prodovzhennya ");

getch();

//main();

}

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

//procedure udalenija po nazvaniu;

void del()

{

int j;

char nazv[30];

p=fopen("C:\FILE.txt", "r" ); //otkryvaem file;

clrscr();

puts(" Vvedit' neobxidnu nazvu\n");

scanf("%s",&nazv);

i=0;

while (!feof(p))

{

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

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

&x.izdatelstvo,&x.kolichestvo);

buf[i]=x;

i++;

}

n=i-1;

printf("%i",n);

fclose(p);

p=fopen("C:\FILE.txt", "w+" );

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

{

if (strcmp(buf[i].nazvanie,nazv)!=0)

fprintf(p,"%s %s %s %i %s %i\n",

buf[i].tema,

buf[i].avtor,buf[i].nazvanie,buf[i].godizdania,

buf[i].izdatelstvo,buf[i].kolichestvo);

}

fclose(p); //zakryvaem file;

puts("*** Dani uspishno vudaleni iz fajlu FILE.txt");

puts("Natusnit bud-yaku klavishu dlya prodovzhennya");

getch();

//main();

}

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

//vyvod informazii po teme

void vyvod()

{

char tem[30];

clrscr();

p=fopen("C:\FILE.txt","r+");

p1=fopen("C:\FILE1.txt", "w+" ); //otkryvaem neobxodimyj file;

puts("|----------------------------------------------------------------|");

puts("| Vvedit' temy |");

puts("|----------------------------------------------------------------|");

scanf("%s",&tem); //vvodim temy;

i=0;

while (!feof(p))

{

fscanf(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;

if ((strcmp(x.tema,tem)==0))

{

//pechataem v file;

fprintf(p1," Zapus nomer %i\n",i+1);

i++;

fprintf(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"

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

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

}

if (i==0) {puts("**************************************************************");

puts("--> Po vashomy zaputy nichogo ne znajdeno!!!");}

else

{puts("****************************************************************");

puts("*** Vash zaput opracevan! ****\n");

puts("Dani yspishno dodani v file FILE1.txt!!!");}

puts("Natusnit bud-yaku klavishu dlya prodovzhennya");

getch();

fclose(p);

fclose(p1); //zakryvaem file;

}

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

//izmenenie kolichestva knig po nazvaniu;

void izm()

{

char nazv[30];

int kol;

char kolich[10],giz[10];

int j;

p=fopen("C:\FILE.txt", "r" ); //otkryvaem file s dannymi;

clrscr();

puts("|----------------------------------------------------------------|");

puts("| Vvedit' nazvu |");

puts("|----------------------------------------------------------------|");

fflush(stdin);

scanf("%s",&nazv);

puts("|----------------------------------------------------------------|");

puts("| Vvedit' novy kil'kist' knug |");

puts("|----------------------------------------------------------------|");

fflush(stdin);

scanf("%i",&kol);

i=0;

while(!feof(p))

{

//schityvaem dannye v bufer;

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

&x.izdatelstvo,&x.kolichestvo);

buf[i]=x;

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

i++;

}

n=i;

fclose(p);

p=fopen("C:\FILE.txt", "w+" );

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

{ //esli sravnivaemoe znac nazvania iz bufera ravno vvedennomu;

if (strcmp(buf[i].nazvanie,nazv)==0)

fprintf(p,"%s %s %s %i %s %i\n",

buf[i].tema,

buf[i].avtor,buf[i].nazvanie,buf[i].godizdania,

buf[i].izdatelstvo,kol);

else fprintf(p,"%s %s %s %i %s %i\n",

buf[i].tema,

buf[i].avtor,buf[i].nazvanie,buf[i].godizdania,

buf[i].izdatelstvo,buf[i].kolichestvo);}

fclose(p);

puts(" Vash zaput obroblen \n");

puts("Dani uspishno zmineni!");puts("Natusnit bud-yaku klavishu dlya prodovzhennya");

getch();}

Висновок

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

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

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

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

Размещено на Allbest.ru


Подобные документы

  • Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.

    курсовая работа [1,0 M], добавлен 28.06.2012

  • Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".

    курсовая работа [4,0 M], добавлен 02.12.2014

  • Аналіз об'єктів дослідження, проектування баз даних. Розробка програмного забезпечення для роботи зі спроектованою базою даних. Реалізація індексів, опис метаданих в середовищі MySQL. Специфікація DDL для MySQL, протокол тестування DDL-сценарії.

    контрольная работа [389,9 K], добавлен 05.01.2014

  • Розробка системи управління базою даних відділу кадрів, що базується на створенні та нормалізації таблиць даних про людей та їх персональні відомості, в середовищі FoxPro. Програмна оболонка роботи пошукового процесу та слідкування за станом кадрів.

    курсовая работа [2,3 M], добавлен 04.12.2009

  • Відомості про програму С++ Builder. Програмний код обох складових створюваної бібліотеки користувача: заголовного файлу та файлу реалізації. Програмний код для елементів керування головної форми. Етапи створення та доручення до проекту додаткових форм.

    курсовая работа [222,1 K], добавлен 24.10.2012

  • Використання технології SSI для автоматичного додавання на web-сторінку вмісту файлу, виведення значень змінних оточення, вбудовування результату виконання CGI-програм. Характеристика директив технології. Застосування до web-додатків даної технології.

    реферат [22,3 K], добавлен 04.04.2015

  • Створення програми для роботи з файловою системою. Ступінь деталізації файлу. Структура файлової системи. Таблиця розміщення файлів. Розподіл пам'яті в FAT для типового диска MS DOS. Відповідність між FAT й областю файлів даних. Корневий каталог.

    дипломная работа [32,6 K], добавлен 24.03.2009

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

    дипломная работа [2,8 M], добавлен 22.06.2011

  • Створення баз даних для автоматизування роботи торгового представника в середовищі програмування Delрhі. Опис вхідної та результуючої інформації, формалізований опис задачі. Розробка технічного та робочого проекту, опис та обґрунтування вибору структури.

    курсовая работа [135,8 K], добавлен 11.10.2010

  • Створення мобільного додатку зі зручним та простим у використанні інтерфейсом, який би міг редагувати та використовувати XML-файли та за даними з файлу відтворювати інформацію. Головні функціональні вимоги до нього та аналіз структури програмного коду.

    курсовая работа [107,7 K], добавлен 03.12.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.