Разработка и реализация программы на языке С - Курсовая работа

бесплатно 0
4.5 82
Использование класса статических массивов структур и базы данных "ODER" при создании программы на языке С . Основные формы выдачи результатов. Технические и программные средства. Тесты для проверки работоспособности алгоритма создания программы.


Аннотация к работе
Данная курсовая работа посвящена разработке и реализации программы на языке С с использованием класса статических массивов структур и базы данных "ODER".10) Описать структуру с именем ODER, содержащую следующие поля: ?банк; Написать программу, выполняющую следующие действия: ?Ввод с клавиатуры данных в файл, состоящий из восьми элементов типа ODER; информацию о средней сумме, принятой на расчетные счета получателей банка, введенного с клавиатуры; если такого банка нет, выдать на дисплей соответствующее сообщение. поиск суммы, снятой с расчетного счета плательщика, введенного с клавиатуры. поиск информации по перечисляемым суммам.· разработка алгоритмов и программ для решения прикладных задач, осуществление постановки и выбор алгоритмов решения экономико-управленческих задач, в том числе с применением математических методов;Формы выдачи результатов - таблица: Название банка Счет плательщика Счет получателя Сумма Для выбора действия используется меню, содержащее следующие пункты: · Добавить запись · Удалить записьДанные о каждом человеке должны содержать следующие поля: Поле "Название банка" - название банка.Для реализации задачи мы построили модель проектирования структуры программы в виде блок - схем и последовательных шагов к конечному результату.Для реализации данной курсовой работы используются: 1.Наиболее распространены 3 варианта сортировки данных: пузырьковая сортировка, сортировка вставкой и сортировка посредством выбора.Методы проектирования алгоритмов включают: нисходящее проектирование, модульность, структурное программирование. Нисходящее проектирование предполагает последовательное разбиение исходной задачи на подзадачи до такой конкретизации, когда подзадача сможет быть реализована одним оператором выбранного для программирования языка. Он обеспечивает легкость составления алгоритмов и отладки программ, легкость сопровождения и модификации, а также возможность одновременной разработки различных модулей разными специалистами с использованием разных языков программирования. При работе над модулем можно применить принцип структурного программирования. В соответствии с этим принципом для построения любого алгоритма (программы) требуются три типовых блока: 1. Функциональный.Рис.1. Схема функции вывода информации на экран Схема функции вывода информации о средней сумме Схема функции поиска записей по счету плательщикаДолгое время основным способом тестирования было тестирование методом "черного ящика" - программе подавались некоторые данные на вход и проверялись результаты, в надежде найти несоответствия. При этом как именно работает программа считается несущественным. Такие методики обобщенно называют тестированием "белого ящика". При тестировании программы как белый ящик происходит проверка логики программы.Для исследования работоспособности данной программы и получения информации о предоставленной работе необходимо проверить следующее: 1. Главное меню (вывод всех пунктов меню). 2. Создание бинарного файла.Рис.Ориентированный граф программыТаблица 2. Сценарий диалога № вершины графа Операция 4 Сохранение таблицы в файлНазвание Назначение sozd_f (filename) Создать бинарный файл Add (filename) Добавление новой строки с данными в БД Print (filename) Вывод текущей БД на экранДля тестирования алгоритма сортировки введем следующие данные: Рис.Процессор AMD II P560 (2,5 ГГЦ), 4096 МБSDRAM, OCWIN 7Вызов программы реализуется двойным щелчком по файлу "Project1. exe", который находится в директории пользователя ПК.Экранные формы могут быть различны по содержанию и логическому построению: § основное окно представляет собой обобщенную структуру объекта с отражением основных параметров и с возможностью быстрого перехода на конкретный объект;Главное меню программы изображено на рис. Для создания файла с записями необходимо выбрать действие 9. Для сортировки записей необходимо выбрать действие 4. Для удаления записи необходимо выбрать действие 3 и ввести номер удаляемой записи, задем подтвердить удаление.Результатом выполненной курсовой работы стала программа для работы с записями о банковский одерах.

План
Содержание

1. Введение

2. Постановка задачи

2.1 Условия задачи

2.2 Конечные цели решения задачи

2.3 Формы выдачи результатов

2.4 Описание используемых данных

3. Анализ и исследование задачи

3.1 Типы решения задачи

3.2 Технические и программные средства для ее решения

3.3 Математическая модель

4. Алгоритм решения задачи

4.1 Метод проектирования алгоритма

4.2 Блок-схема алгоритма

4.3 Метод тестирования

4.4 Тесты для проверки работоспособности алгоритма

5. Создание программы

5.1 Дерево функций программы

5.2 Последовательность создания программы

5.3 Сценарий диалога программы

5.4 Описание используемых подпрограмм

6. Результаты тестовых расчетов и их анализ

7. Системные требования

8. Инструкция пользователя

8.1 Вызов программы

8.2 Экранные формы

8.3 Описание возможных результатов выполнения программы

Заключение

Список использованной литературы

Листинг программы

Введение
Данная курсовая работа посвящена разработке и реализации программы на языке С с использованием класса статических массивов структур и базы данных "ODER". В этой курсовой для обработки данных использовались многочисленные операции, такие как сортировки, загрузка и сохранения результатов обработки в бинарный файл, поиск по вводимым данным, а также добавление и удаление записей.

Кроме того, для упрощения понимания кода программы были изображены блок-схемы алгоритмов всех используемых в курсовой функций, а также представлено тестирование программы, подтверждающее корректную и достоверную работу всех функций.

Реализация данной задачи представляет собой программу, написанную в среде C .

Вывод
Результатом выполненной курсовой работы стала программа для работы с записями о банковский одерах. Программа содержит меню, которое осуществляет удобную навигацию по программе. Позволяет вводить данные с клавиатуры, сохранение данных происходит в бинарный файл. Есть возможность удаления и сортировки записей, а так же поиска.

Список литературы
1. Т.А. Павловская. Ю.А. Щупак С/С . Программирование на языке высокого уровня. - СПБ.: Питер, 2011. - 461 с.: ил.

2. Т.А. Павловская, Ю.А. Щупак. С/С . Структурное программирование: Практикум. - СПБ.: Питер, 2009. - 239 с.: ил.

3. Прата. Объектно-ориентированное программирование в C .2 изд. - ЭКСМО, 2007. - 336 с.: ил.

4. Б. Страуструп. Язык программирования С , 3-е изд пер. с англ. - М.: "Бином", СПБ.: "Невский диалект", 2011. - 991 с., ил.

Листинг программы

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

#include

#include

#include

#pragma hdrstop

#include

#include

#include

#include using namespace std;

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

#pragma argsused void Print (char* filename);

void printru (char* s) { char *s1 = new char [81];

CHARTOOEM (s,s1);

// printf (s1);

cout<<s1;

} struct ODER

{ char bank [15];

char plat [10];

char polu [10];

int sum;

};

void print_data (ODER mm) { cout<<"|"<<setw (15) <<mm. bank;

cout<<"|"<<setw (10) <<mm. plat;

cout<<"|"<<setw (10) <<mm. polu;

cout<<"|"<<setw (10) <<mm. sum<<"|";

cout<<"

";

} int load_from_file (char* filename, ODER* &mm) {

FILE *m_file;

m_file = fopen (filename, "rb");

fseek (m_file, 0, SEEK_END);

int n = ftell (m_file) / sizeof (ODER);

mm = new ODER [n];

fseek (m_file, 0, SEEK_SET);

fread (mm, sizeof (ODER), n, m_file);

fclose (m_file);

return n;

} void print_head () { cout << " - -------------------------------------------------

";

printru (" | ODER |

");

cout << " |------------------------------------------------|

";

printru (" | Банк |Счет плат. |Счет пол. | Сумма |

");

cout << " |---------------|----------|----------|----------|

";

} void sozd_f (char* filename) {

FILE *m_file;

m_file = fopen (filename, "wb ");

if (m_file==0) { printru ("Создать файл не удалось!

");

getch ();

return;

} fclose (m_file);

} void Add (char* filename) {

FILE *m_file;

m_file = fopen (filename, "ab");

ODER x;

if (m_file==0) { printru ("Открыть файл н удалось!

");

getch ();

return;

} char y_n;

do {

// Ввод данных printru ("Введите банк

");

fflush (stdin);

cin. getline (x. bank, 15);

printru ("Введите расчетный счет плательщика

");

fflush (stdin);

cin. getline (x. plat, 10);

printru ("Введите расчетный счет получателя

");

fflush (stdin);

cin. getline (x. polu, 10);

printru ("Введите сумму, руб.

");

cin>>x. sum;

fwrite (&x, sizeof (ODER),1,m_file);

printru ("Продолжить (y/n)?

");

cin>>y_n;

} while (y_n=="y"||y_n=="Y");

fclose (m_file);

} void Print (char* filename) {

ODER *mm;

int n = load_from_file (filename, mm);

print_head ();

for (int i=0; i<n; i ) { cout<<setw (3) <<i 1;

print_data (mm [i]);

} cout<<"-------------------------------------------------------

";

} void Del (char* filename) {

ODER *mm;

int n = load_from_file (filename, mm);

Print (filename);

int i,j;

char ch;

printru ("Введите номер строки: ");

cin>>j;

if (jn) { printru ("Нет такой строки!

");

getch ();

return;

} print_data (mm [j-1]);

printru ("Удалить (y/n): ");

cin>>ch;

if (ch=="y") { for (i=j; i<n; i ) mm [i-1] =mm [i];

n-;

FILE *m_file = fopen (filename, "wb");

fwrite (mm, sizeof (ODER), n, m_file);

fclose (m_file);

printru ("Строка удалена.

"); getch ();

}

} void Sort (char* filename) {

ODER *mm;

int n = load_from_file (filename, mm);

for (int i=0; i<n-1; i ) { for (int j=i 1; j<n; j ) if (strcmp (mm [i]. plat, mm [j]. plat) > 0) {

ODER temp;

temp = mm [j];

mm [j] = mm [i];

mm [i] = temp;

}

}

FILE *m_file = fopen (filename, "wb");

fwrite (mm, sizeof (ODER), n, m_file);

fclose (m_file);

} void PRINTASUM (char* filename) {

ODER *mm;

int n = load_from_file (filename, mm);

printru ("Введите банк

");

char bank [15];

fflush (stdin);

cin. getline (bank, 15);

int count = 0;

int sum = 0;

print_head ();

for (int i=0; i<n; i ) if (strcmp (mm [i]. bank, bank) == 0) { count ; sum = mm [i]. sum; cout<<setw (3) <<count; print_data (mm [i]);

} if (count==0) printru ("Такого маршрута нет!

");

else { printru ("Средняя сумма = "); cout<<1.0*sum/count<<endl; } cout<<"-------------------------------------------------------

";

} void SEARCHPLAT (char* filename) {

ODER *mm;

int n = load_from_file (filename, mm);

printru ("Введите расчетный счет плательщика

");

char plat [10];

fflush (stdin);

cin. getline (plat, 10);

int sum = 0;

print_head ();

for (int i=0; i<n; i ) if (strcmp (mm [i]. plat, plat) == 0) { sum = mm [i]. sum; cout<<setw (3) <<" "; print_data (mm [i]);

} printru ("Сумма = "); cout<<sum<<endl;

cout<<"-------------------------------------------------------

";

} void SEARCHSUM (char* filename) {

ODER *mm;

int n = load_from_file (filename, mm);

printru ("Введите перечисляемую сумму

");

int sum;

cin>>sum;

int count=0;

print_head ();

for (int i=0; i<n; i ) if (mm [i]. sum == sum) { count ; cout<<setw (3) <<count; print_data (mm [i]);

} if (count==0) printru ("Таких одеров нет!

");

cout<<"-------------------------------------------------------

";

} int main (int argc, char* argv [])

{ char ch = "-";

FILE *m_file;

char filename [] = "ODER. bin";

while (ch! ="0") { cout<<"-----------------MENU-----------------"<<endl;

printru ("1 - Добавить ODER

");

printru ("2 - Печать данных на экране

");

printru ("3 - Удалить запись

");

printru ("4 - Сортировать

");

printru ("5 - Информация о средней сумме

");

printru ("6 - Поиск суммы по счету плательщика

");

printru ("7 - Поиск по перечисляемой сумме

");

printru ("0 - Выход

");

printru ("9 - Создать файл

");

printru ("Комманда: ");

cin>>ch;

switch (ch) { case "1": Add (filename); break;

case "2": Print (filename); break;

case "3": Del (filename); break;

case "4": Sort (filename); break;

case "5": PRINTASUM (filename); break;

case "6": SEARCHPLAT (filename); break;

case "7": SEARCHSUM (filename); break;

case "9": sozd_f (filename); break;

default: break;

}

} return 0;

}

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

Размещено на
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?