разработка программы для сортировки данных в файле на си/с++

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 22 22 страницы
  • 10 + 10 источников
  • Добавлена 28.06.2024
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
ВВЕДЕНИЕ 2
1. Теоретическая часть 4
2. Практическая часть 8
2.1 Описание компонентов программы 8
2.2 Контроль ошибок при выполнении операций чтения/записи 10
2.3 Этапы работы программы 11
2.4 Примеры входных и выходных данных 13
ЗАКЛЮЧЕНИЕ 16
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 18
ПРИЛОЖЕНИЕ A 19

Фрагмент для ознакомления

Программа успешно справляется с задачей сортировки данных и корректно обрабатывает ошибки ввода, что подтверждено результатами тестирования. В ходе работы были достигнуты все поставленные цели, а программа продемонстрировала свою эффективность в задачах сортировки данных.Возможные улучшения программы включают оптимизацию алгоритма за счёт выбора более удачных опорных элементов, добавление поддержки других форматов данных, таких как CSV или JSON, а также возможность обработки дробных чисел. В будущем также можно рассмотреть добавление графического интерфейса для улучшения удобства использования программы и расширения её функциональных возможностей. Параллельная версия алгоритма быстрой сортировки может значительно ускорить процесс сортировки на многопроцессорных системах, что будет полезно для обработки больших объемов данных.В целом, данная курсовая работа предоставила ценный опыт в разработке программного обеспечения на языкеC++, реализации алгоритмов сортировки и обработке файловых данных. Полученные знания и навыки будут полезны для дальнейшего изучения и профессиональной деятельности в области программирования и разработки алгоритмов.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВКормен Т., Лейзерсон Ч., Ривест Р., Штайн К. "Алгоритмы: построение и анализ". Москва: Издательство "Вильямс", 2013.Седжвик Р. "Алгоритмы на C++". Москва: Издательство "Бином", 2002.Стивен Прата. "Язык программирования C++. Лекции и упражнения". Санкт-Петербург: Издательство "Питер", 2011.Бьерн Страуструп. "Принципы и практика использования C++". Москва: Издательство "Вильямс", 2016.Шилдт Г. "Полный справочник по C/C++". Москва: Издательство "Диалектика", 2014.Карнегли М. "Сортировка и поиск: алгоритмы и структуры данных". Москва: Издательство "Бином", 2010.Уокер Д. "Практическое руководство по сортировке и обработке данных". Санкт-Петербург: Издательство "БХВ-Петербург", 2005.Документация по C++ (cppreference.com): https://en.cppreference.com/w/Документация по стандартной библиотеке C++ (cplusplus.com): http://www.cplusplus.com/Натан У. "Программирование на языке C++ для начинающих". Москва: Издательство "Лаборатория знаний", 2017.ПРИЛОЖЕНИЕ A#include #include #include #include using namespace std;bool checkInteger(string input) { bool isNeg = false; int itr = 0; if (input.size() == 0) { return false; } if (input[0] == '-') { isNeg = true; itr = 1; } for (int i = itr; i < input.size(); i++) { if (!isdigit(input[i])) { return false; } } if (stoll(input) >= INT64_MAX) { return false; } return true;}void swap(vector& v, long long int x, long long int y) { int temp = v[x]; v[x] = v[y]; v[y] = temp;}void quicksort(vector& vec, long long int L, long long int R) { int i, j, mid, temp; i = L; j = R; mid = L + (R - L) / 2; temp = vec[mid]; while (iL) { while (vec[i] < temp) i++; while (vec[j] > temp) j--; if (i <= j) { swap(vec, i, j); i++; j--; } else { if (i < R) quicksort(vec, i, R); if (j > L) quicksort(vec, L, j); return; } }}int main(int argc, char* argv[]) { string filename; long long int lengthEntry, start, end; int typeOfSort; vector data; cout << "Enter path to your file: "; cin >> filename; fstream myfile(filename, ios_base::in); ifstream check(filename); if (!check) { cout << "Error: The file cannot be opened at the specified path." << endl; return 0; } string input; cout << "Enter the length of the entry in bytes: "; cin >> input; if (checkInteger(input)) { lengthEntry = stoll(input); } else { cout << "Error: An incorrect value was entered (a real number or string)." << endl; return 0; } cout << "Enter the number of the line to be sorted from: "; cin >> input; if (checkInteger(input)) { start = stoll(input); } else { cout << "Error: An incorrect value was entered (a real number or string)." << endl; return 0; } cout << "Enter the number of the line where the sorting will be completed: "; cin >> input; if (checkInteger(input)) { end = stoll(input); } else { cout << "Error: An incorrect value was entered (a real number or string)." << endl; return 0; } cout << "If you want to sort in ascending order, enter 1, otherwise enter 2: "; cin >> input; if (checkInteger(input)) { typeOfSort = stoi(input); if (!(typeOfSort == 1 || typeOfSort == 2)) { cout << "Error: The sorting type can be either 1 or 2." << endl; return 0; } } else { cout << "Error: An incorrect value was entered (a real number or string)." << endl; return 0; } long long int currentString = 1; while (myfile >> input) { if (currentString > end) { break; } if (currentString >= start) { if (checkInteger(input)) { data.push_back(stoll(input)); } else { cout << "Error: Integers were expected to arrive from the file, real numbers or strings were received." << endl; return 0; } } currentString++; } if (currentString <= end) { cout << "Error: More lines were expected in the file than were received." << endl; return 0; } cout << endl; quicksort(data, 0, data.size() - 1); ofstream fout; fout.open("FILE.SRT"); if (typeOfSort == 1) { fout << "Sorted data from \"" << filename << "\" by ascending order :" << endl; } else { fout << "Sorted data from \"" << filename << "\" by descending order :" << endl; reverse(data.begin(), data.end()); } for (int i = 0; i < data.size(); i++) { fout << data[i] << endl; } cout << "The program has successfully sorted the input data, see the file FILE.SRT." << endl; return 0;}

1. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. "Алгоритмы: построение и анализ". Москва: Издательство "Вильямс", 2013.
2. Седжвик Р. "Алгоритмы на C++". Москва: Издательство "Бином", 2002.
3. Стивен Прата. "Язык программирования C++. Лекции и упражнения". Санкт-Петербург: Издательство "Питер", 2011.
4. Бьерн Страуструп. "Принципы и практика использования C++". Москва: Издательство "Вильямс", 2016.
5. Шилдт Г. "Полный справочник по C/C++". Москва: Издательство "Диалектика", 2014.
6. Карнегли М. "Сортировка и поиск: алгоритмы и структуры данных". Москва: Издательство "Бином", 2010.
7. Уокер Д. "Практическое руководство по сортировке и обработке данных". Санкт-Петербург: Издательство "БХВ-Петербург", 2005.
8. Документация по C++ (cppreference.com): https://en.cppreference.com/w/
9. Документация по стандартной библиотеке C++ (cplusplus.com): http://www.cplusplus.com/
10. Натан У. "Программирование на языке C++ для начинающих". Москва: Издательство "Лаборатория знаний", 2017.