Робота з файлами. Структури
Опис структури даних та вимоги до них. Характеристика файлів та їх призначення. Процедури та функції користувача. Опис стандартних процедур та функцій, що використовувались у програмі. Інструкція для роботи з програмою: програмісту, користувачу.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 21.01.2012 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
КУРСОВА РОБОТА
на тему:
«Робота з файлами. Структури»
Постановка задачі
Мета курсової роботи розробити програму на мові С. Програма повинна створювати файл, зчитувати дані з файлу, додавати інформацію до файлу, виводити таку інформацію: прізвища складальників та кількість деталей, за вказаними у завданні показниками, прізвище складальника, який зібрав найбільше деталей за вказаними у завданні показниками.
Опис структури даних та вимог до них
програма користувач файл процедура
Дані, які є вхідними для розв'язання задачі і вводяться за допомогою клавіатури - це вибір режиму роботи із представлених можливих:
0 - Створення файлу і додавання інформації про працівників (підрахунок кількості деталей);
1 - Загальна кількість деталей (використовуючи інформацію з завчасно створеного файлу);
2 - Кількість деталей за тиждень на конкретній дільниці;
3 - Вихід з програми.
(змінна v, типу int, діапазон можливих значень від 1 до 3);
Номер дільниці (змінні n, d типу int, діапазон можливих значень від 1 до 10);
Вибір файлу для зчитування (змінна h, типу int, діапазон можливих значень від 1 до 2);
Опис файлів та їх призначення
Файл, що необхідний для роботи програми і містить вхідні данні має ім'я «baza.txt». Він містить дані про прізвища складальників, кількість деталей вироблених кожним із них за кожен із робочих днів і необхідні для роботи програми.
З цього файлу будуть зчитані дані у форматі char та int, що необхідні для роботи програми.
Файл складається з восьми записів, які мають наступну структуру:
· прізвище складальника;
· номер ділянки;
· кількість виробів зібраним ним за понеділок;
· кількість виробів зібраним ним за вівторок;
· кількість виробів зібраним ним за середу;
· кількість виробів зібраним ним за четвер;
· кількість виробів зібраним ним за п'ятницю;
· кількість виробів зібраним ним за суботу;
Рисунок 1.Файл «baza.txt»
Файл, що містить код програми на мові С має ім'я «detali.cpp».
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
typedef struct data
{
char surname[16];
int dil;
int pon;
int vtor;
int sred;
int chetv;
int patn;
int syb;
} DATA;
void s();
void summa_det();
void kol_det();
int i;
int n, v, h, d;
int arifmsum[3];
int max=0;
DATA x[3];
void main()
{
clrscr();
puts («\t\t\t Kyrsovaj rabota\n\t\t\t studentki gryppu IN-03\n\t\t\t Slipneva Jana\n\n»);
b:;
puts («\t\t\tVuberite nugnuj variant\n\t 0-Sozdanie faila s informaciej o rabochix (podschet kolichestva detalej)\n\t 1-Obschee kolichestvo detalej (ispolzya info iz zaranee sozdanogo faila)\n\t 2 - Kolichestvo detalej za nedely na konkretnom ychastke\n\t 3 - vuxod iz programmu\n»);
scanf («%i»,&v);
switch(v)
{
case 0:
s();
case 1:
summa_det();
getch();
goto b;
break;
case 2:
kol_det();
getch();
goto b;
break;
case 3:
break;
}
}
void s()
{
puts («vvedite bazy»);
FILE *f;
f=fopen («G:\\baz.txt», «a+»);
for (i=0; i<3; i++)
{
scanf («%s % i % i % i % i % i % i % i»,&x[i].surname,&x[i].dil,&x[i].pon,&x[i].vtor,&x[i].sred,&x[i].chetv,&x[i].patn,&x[i].syb);
fprintf (f, «%s % i % i % i % i % i % i % i\n», x[i].surname, x[i].dil, x[i].pon, x[i].vtor, x[i].sred, x[i].chetv, x[i].patn, x[i].syb);
}
fclose(f);
}
void summa_det()
{
if (v==1)
{
FILE *fix;
fix=fopen («G:\\baza.txt», «r»);
for (i=0; i<3; i++)
{
fscanf (fix, «%s % i % i % i % i % i % i % i»,&x[i].surname,&x[i].dil,&x[i].pon,&x[i].vtor,&x[i].sred,&x[i].chetv,&x[i].patn,&x[i].syb);
printf («%s % i % i % i % i % i % i % i\n», x[i].surname, x[i].dil, x[i].pon, x[i].vtor, x[i].sred, x[i].chetv, x[i].patn, x[i].syb);
}
fclose(fix);
}
else
{
FILE *f;
f=fopen («G:\\baz.txt», «r»);
for (i=0; i<3; i++)
{
fscanf (f, «%s % i % i % i % i % i % i % i»,&x[i].surname,&x[i].dil,&x[i].pon,&x[i].vtor,&x[i].sred,&x[i].chetv,&x[i].patn,&x[i].syb);
}
fclose(f);
}
for (i=0; i<3; i++)
{
arifmsum[i]=(x[i].pon+x[i].vtor+x[i].sred+x[i].chetv+x[i].patn+x[i].syb);
printf («Obshee kol detalej za ned =%i\n», arifmsum[i]);
}
printf («Vvedite ychastok\n»);
scanf («%i»,&n);
printf («na ychstke %i sobrano detalej:\n», n);
for (i=0; i<3; i++)
{
if (x[i].dil==n)
{
printf («%s % i\n», x[i].surname, arifmsum[i]);
}
}
}
void kol_det()
{
puts («Vuberite fail \n 1 - fail kotoruj bul yge sozdan\n 2-novuj fail\n»);
scanf («%i»,&h);
if (h==1)
{
FILE*fout;
fout=fopen («G:\\baza.txt», «r»);
for (i=0; i<3; i++)
{
fscanf (fout, «%s % i % i % i % i % i % i % i»,&x[i].surname,&x[i].dil,&x[i].pon,&x[i].vtor,&x[i].sred,&x[i].chetv,&x[i].patn,&x[i].syb);
}
fclose(fout);
}
if (h==2)
{
FILE*fly;
fly=fopen («G:\\baz.txt», «r»);
for (i=0; i<3; i++)
{
fscanf (fly, «%s % i % i % i % i % i % i % i»,&x[i].surname,&x[i].dil,&x[i].pon,&x[i].vtor,&x[i].sred,&x[i].chetv,&x[i].patn,&x[i].syb);
}
fclose(fly);
}
for (i=0; i<3; i++)
{
arifmsum[i]=(x[i].pon+x[i].vtor+x[i].sred+x[i].chetv+x[i].patn+x[i].syb);
}
puts («Vvedite ychastok»);
scanf («%i»,&d);
for (i=0; i<3; i++)
{
if (x[i].dil==d)
{
if (arifmsum[i]>max)
{
max=arifmsum[i];
}
printf («naibolshoe kolichestvo detalej na % i ychastke sobral % s =%i», d, x[i].surname, arifmsum[i]);
}
}
}
Опис процедур та функцій користувача
У процесі виконання курсової роботи було створено декілька математичних формул.
В програмі для того, щоб на екран вивести прізвища складальників і загальну кількість делатей, зібраних за тиждень для ділянки ХХ, необхідно додати всі зібрані деталі, всіх працівників за тиждень, в коді програми суму всіх деталей позначаємо arifmsum типу int.
Формула, за якою підраховується сума зібраних деталей всіх працівників за тиждень:
arifmsum[i]=(x[i].pon+x[i].vtor+x[i].sred+x[i].chetv+x[i].patn+x[i].syb);
Вхідними даними для цієї формули є: x[i].pon (кількість зібраних деталей за понеділок); x[i].vtor (кількість зібраних деталей за вівторок) типу int; x[i].sred (кількість зібраних деталей за середу) типу int; x[i].chetv (кількість зібраних деталей за четвер) типу int; x[i].patn (кількість зібраних деталей за п'ятницю) типу int; x[i].syb (кількість зібраних деталей за суботу) типу int.
Вихідними даними для цієї формули є результат суми зібраних деталей всіх працівників за тиждень. Програма видасть результат типу int.
В програмі для того, щоб на екран вивести прізвище складальника, що
зібрав за тиждень найбільшу кількість деталей для ділянки ХХ, необхідно створити цикл і перевірити відповідність введеного номеру ділянки з номером у файлі. Якщо співпадають, то знаходимо найбільшу кількість виготовлених деталей та виводимо на екран.
puts («Vvedite ychastok»);
scanf («%i»,&d);
for (i=0; i<3; i++)
{
if (x[i].dil==d)
{
if (arifmsum[i]>max)
{
max=arifmsum[i];
}
printf («naibolshoe kolichestvo detalej na % i ychastke sobral % s =%i», d, x[i].surname, arifmsum[i]);
}
}
Вхідними даними для цього циклу є: x[i].dil (номер ділянки) типу int.
Вихідними даними для цієї формули є виведення на екран прізвища складальника, що зібрав за тиждень найбільшу кількість деталей для ділянки ХХ. Програма видасть результат типу char.
Опис стандартних процедур та функцій, що використовувались у програмі
Функції введення / виведення
Функція printf («рядок формату», список аргументів); - призначена для виведення інформації за заданим форматом у стандартний вихідний потік. Рядок формату задається в рядку форматування, яка крім специфікатора формату може містити текст і керуючі символи. Значення першого аргументу виводиться відповідно з першим специфікатором формату, другий - з другим, і т.д. Ця функція зберігається у бібліотеці <stdio.h>.
Функція scanf («рядок формату», список адрес аргументів); -
призначена для введення з клавіатури значення аргументів, в співвідношенні з вказаними специфікатором формату. Перший аргумент отримує значення в співвідношенні з першим специфікатором формату, другий - з другим і т.д. Ця функція зберігається у бібліотеці <stdio.h>.
Функція puts («Рядок»); - призначена для виведення на екран рядок символів і переводить курсор на початок наступного рядка екрана. В якості параметра функції можно використо-вувати рядкову константу або рядкову змінну. Ця функція зберігається у бібліотеці <stdio.h>.
Функція getch(); - повертає код символу натиснутій клавіші. Ця функція зберігається у бібліотеці <stdio.h>.
Функція clrscr(); - очищає екран. Ця функція зберігається у бібліотеці <stdio.h>.
Функції роботи з файлами
Функція FILE* fopen («Ім'я файлу», «режим обміну даними»); - відкриває файл з вказаним ім'ям для дії, яка задається параметром «режим обміну даними». Ця функція зберігається у бібліотеці <stdio.h>.
Функція fscanf (ім'я потоку, «рядок формату», список адрес аргументів); - виконує форматоване читання значення змінних з файлу, який зв'язаний з потоком, вказаним в якості першого параметра. Ця функція зберігається у бібліотеці <stdio.h>.
Функція fclose (ім'я потоку); - закриває вказаний поток. Ця функція зберігається у бібліотеці <stdio.h>.
Функції вибору
Інструкція if
Варіант 1
if (Умова)
{
// Тут інструкції, які будуть
// виконані, якщо значення
// умови не рівне нулю
}
Варіант 2
if (Умова)
{
// Тут інструкції, які будуть
// виконані, якщо значення
// Умови не рівне нулю
}
else
{
// Тут інструкції, які будуть
// виконані, якщо значення
// Умови рівне нулю
}
Інструкція switch
Варіант 1
switch (вираз)
{
case константа1: інструкція1; break;
case константа2: інструкція1; break;
case константаN: інструкціяN; break;
default: інструкція; break;
}
Варіант 2
switch (вираз)
{
case константа1: інструкція1; break;
case константа2: інструкція1; break;
case константаN: інструкціяN; break;
}
Цикли
Інструкція for (ініціалізація; перевірка умови; нове значення)
{
// інструкції цикла (тіло цикла)
}
Ініціалізація - інструкція ініціалізації лічильника циклу.
Перевірка умови - вираз, значення якого визначає умову виконання інструкцій циклу. Інструкції цикла виконуються доти, доки Перевірка умови істина, тобто відмінна від нуля.
Нове значення - інструкція зміни параметрів циклу.
Инструкция while (Логічний вираз)
{
// тіло
}
Спочатку перевіряється значення логічного виразу. Якщо воно відмінне від нуля, то виконується тіло функції. Потім знову перевіряється значення логічного виразу, якщо воно відмінне від нуля, то виконується тіло функції ще раз. И так доти, доки Логічний вираз не стане рівним нулю.
Інструкція для роботи з програмою: системному програмісту, користувачу
Для запуску програми необхідно запустити файл «detali.cpp». Після запуску файлу з являється код програми. Для того, щоб запустити програму необхідно натиснути Ctrl+F9 або на панелі меню вибрати Run - > Run
Рисунок 2. Приклад запуску програми
Після цього, у з'явившомуся вікні:
Рисунок 3.Вікно програми
В меню вибираємо необхідний пункт за допомогою введення відповідного номера і натискаємо enter.
Натиснувши 0 - ми створимо новий файл з необхідними даними для роботи програми (baz.txt).
Для цього потрібно ввести прізвища складальників, номер ділянки, та кількість зібраних деталей протягом тижня.
Рисунок 4. Вікно програми, після обрання нульового пункту меню
Рисунок 5.Вікно програми, після обрання нульового пункту меню
Натиснувши 1 - програма буде зчитувати дані з заданого файлу (baza.txt).
Рисунок 6.Вікно програми, після обрання першого пункту меню
Рисунок 7.Вікно програми, після обрання першого пункту меню
Натиснувши 2 - програма нам видасть прізвище складальника, який зібрав найбільше деталей за тиждень на заданій дільниці.
Рисунок 8. Вікно програми, після обрання другого пункту меню
У разі натиснення іншої цифри чи літери, програма повідоме про помилку.
Приклад тестування та результату роботі програми
Вхідні данні, що необхідні для тестування програми:
Рисунок 6.Файл «baza.txt»
При записі таких даних отримуємо наступний результат:
Рисунок 7.Тестування програми
При створенні нового файлу, отримаємо наступний результат:
Рисунок 8.Створення нового файлу
Отримаємо наступний результат:
Рисунок 9.Тестування програми
Висновки
В результаті виконання курсової роботи, я удосконалила вміння розробляти програми та програмувати алгоритми на мові С, використовувати бібліотечні функції, створювати файл, зчитувати дані з файлу, додавати інформацію до файлу. Результати, які були отримані в ході курсової роботи задовольнили поставлену задачу, тобто програма видала таку інформацію: прізвища складальників та кількість деталей, за вказаними у завданні показниками, прізвище складальника, який зібрав найбільше деталей за вказаними у завданні показниками.
Список літератури
1. Вирт Н. Алгоритмы и структуры данных: Пер.с англ. - М.: Мир, 1989. - 360 с.
2. Культин Н. С/С++ в задачах и примерах. - СП.: БХВ - Петербург, 2005. - 288 с.
3. Мик Б. Практическое руководство по программированию: Пер. с англ. - М.: Радио и связь, 1986. - 168 с.
4. Прата С., Мартин Д. Язык Си. Руководство для начинающих: Пер.с англ. - М.: Мир, 1988.-512 с.
5. Б. Керниган, Д. Ритчи - Язык программирования С, 2-е издание.: Пер.
с англ. - М.: Издательский дом «Вильямс», 2009 - 304 с.: ил. - парал. тит. англ.
6. З.Я. Шпак - Программирование на языке С. - Львов: Ориана-Нова,
2006, - 432 с.
7. Интернет ссылка http: http://ru.wikipedia.org/
Размещено на Allbest.ru
Подобные документы
Розробка програми GameBox, яка включає в себе дві гри, судоку та пятнашки. Опис структури даних та вимоги до них, процедур і функцій користувача, стандартних процедур і функцій, які використовувались в програмі, та файлів. Результати роботи програми.
курсовая работа [5,3 M], добавлен 12.11.2011Опис структури даних та вимоги до них, процедур і функцій користувача, файлів та їх призначення. Інструкція для роботи з програмою. Результати роботи програми, її структура та функціональні компоненти, принципи роботи та сфери практичного застосування.
курсовая работа [330,6 K], добавлен 04.02.2015Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.
курсовая работа [1,0 M], добавлен 28.06.2012Аналіз предметної області і постановка задачі на розробку програми для автоматизації роботи автопідприємства. Перелік та опис використаних компонентів та основних процедур програми. Опис структур та методів обробки даних. Інструкція для користувача.
курсовая работа [2,3 M], добавлен 15.02.2012Теоретичні відомості про пакет ІЗВП Borland Delphi та СУБД MS Access, оцінка їх функціональних особливостей. Опис структури бази даних. Проектування інтерфейсу програми, опис її логічної структури та функцій. Контроль коректності вхідних, вихідних даних.
курсовая работа [4,5 M], добавлен 03.01.2014Персональна СУБД Microsoft Access як засіб управління базами даних. Ознайомлення із її основними функціями – зберіганням і видобуванням даних, представленням інформації в зручному для користувача вигляді. Принципи розробки та роботи з даною програмою.
контрольная работа [295,3 K], добавлен 14.05.2011Особливості Сонячної системи та космічних тіл в її межах. Роль площини земної орбіти — екліптики. Опис програми, яка демонструє приблизний рух планет. Блок-схеми алгоритмів та структури програми. Опис процедур та обробників. Інструкція користувача.
курсовая работа [756,6 K], добавлен 17.03.2014Дослідження основних етапів роботи з програмою сканування каталогу на наявність відповідних файлів find.с. Призначення функцій findfirst та findnext. Дослідження будови та призначення структури ffblk. Швидкість запису зміни файлу. Елементи директорії.
лабораторная работа [24,1 K], добавлен 04.04.2011Робота з файлами, використовування програм-переглядачів, що забезпечують прокрутку тексту у вікні перегляду. Перегляд файлів в текстовому та інших форматах (шістнадцятеричному та бінарному). Алгоритм програми, системні вимоги, інструкція для користувача.
курсовая работа [16,5 K], добавлен 08.08.2009Створення баз даних для автоматизування роботи торгового представника в середовищі програмування Delрhі. Опис вхідної та результуючої інформації, формалізований опис задачі. Розробка технічного та робочого проекту, опис та обґрунтування вибору структури.
курсовая работа [135,8 K], добавлен 11.10.2010