Консольный учет командировок сотрудников предприятия на С++

Тема данной курсовой работы «Разработка программы учета командировок сотрудников предприятия».

Создать файл, содержащий ФИО сотрудника, год, месяц, длительность командировки в днях, город, в который осуществляется выезд, выездная сумма командировочных расходов. Определить общие выплаты командировочных за указанный месяц, вывести список наиболее часто посещаемых городов в порядке убывания за указанный период(С месяца X по месяц Y).

Язык написания С++, тип БД текстовый файл. Написан в Visual Studio 2012(2015).

В архиве проекта отсутствует пояснительная записка, тут только проект программы, который требуется запустить на Visual Studiio после распоковки!

Данный проект имеет разделенную пользовательскую часть, на администратора и пользователя.

Администратор может:

  • Загрузка данных из файла
  • Вывод записей
  • Удаление одной или всех записей
  • Поиск записи
  • Редактирование записи
  • Вывод списка наиболее посещаемых городов за указанный месяц
  • Вывод общей выплаты командировочных за указанный месяц
  • Запись в файл
  • Изменение пароля

Пользователь может:

  • Просмотр записей
  • Вывод списка наиболее посещаемых городов за указанный месяц
  • Вывод общей выплаты командировочных за указанный месяц
  • Поиск записи

Для данной задачи лучше всего подходят текстовые файлы. Во время своей работы, программа оперирует структурами которые ввиду своей простоты без проблем записываются и считываются из текстового файла.

Для объединения данных внутри программы используется контейнер std::list из стандартной библиотеки

// Ф-ция добавления новых элементов
void addCommandV(list<CommandStruct> &a)
{
	system("Cls");
	std::string TEXT;

	//Создаем временную переменную
	CommandStruct *tmp = new CommandStruct;

	double dBuffer = 0;
	int i = 0, iBuffer = 0;
	int count;
	cout << "Сколько записей добавить?" << endl;
	cin >> count;
	cin.ignore(); 

	for (i = 0; i < count; i++)
	{
		//Заполняем её
		cout << "Элемент " << a.size() << endl;

		//Ввод инвентарного номера
		//Цикл который выполниться минимум 1 раз
		do
		{
			cout << "Введите инв.номер: ";
			getline(cin, TEXT);

			try
			{
				//Конверт данных в число
				iBuffer = std::stoi(TEXT);
			}
			catch(...)
			{
				cout << "Неправильный формат инвентарного номера!!! Попробуйте еще!!!" << endl;
				//tmp->position = 0;
				iBuffer = -2;
			}

			if (iBuffer != -2 && iBuffer < 0)
			{
				cout << "Неправильный формат инвентарного номера!!! Попробуйте еще!!!" << endl;
			}
		}
		while(iBuffer < 0);

		tmp->position = iBuffer;
		iBuffer = 0;

		cout << "Введите ФИО: ";
		getline(cin, TEXT);
		tmp->sFIO = TEXT;

		//Ввод год поездки
		//Цикл который выполниться минимум 1 раз
		do
		{
			cout << "Введите год поездки: ";
			getline(cin, TEXT);

			try
			{
				//Конверт данных в число
				iBuffer = std::stoi(TEXT);
			}
			catch(...)
			{
				cout << "Неправильный формат года!!! Попробуйте еще!!!" << endl;
				//tmp->position = 0;
				iBuffer = -2;
			}

			if (iBuffer != -2 && iBuffer < 0)
			{
				cout << "Неправильный формат года!!! Попробуйте еще!!!" << endl;
			}
		}
		while(iBuffer < 0);

		tmp->iYear = iBuffer;
		iBuffer = 0;

		//Ввод месяца
		//Цикл который выполниться минимум 1 раз
		do
		{
			cout << "Введите месяц поездки: ";
			getline(cin, TEXT);

			try
			{
				//Конверт данных в число
				iBuffer = std::stoi(TEXT);
			}
			catch(...)
			{
				cout << "Неправильный формат месяца!!! Попробуйте еще!!!" << endl;
				//tmp->position = 0;
				iBuffer = -2;
			}

			if (iBuffer != -2 && iBuffer < 0)
			{
				cout << "Неправильный формат месяца!!! Попробуйте еще!!!" << endl;
			}
		}
		while(iBuffer < 0);

		tmp->iMonth = iBuffer;
		iBuffer = 0;

		//Ввод количества дней отведенных на поездку
		//Цикл который выполниться минимум 1 раз
		do
		{
			cout << "Введите количество дней поездки: ";
			getline(cin, TEXT);

			try
			{
				//Конверт данных в число
				iBuffer = std::stoi(TEXT);
			}
			catch(...)
			{
				cout << "Неправильный формат количества дней!!! Попробуйте еще!!!" << endl;
				//tmp->position = 0;
				iBuffer = -2;
			}

			if (iBuffer != -2 && iBuffer < 0)
			{
				cout << "Неправильный формат количества дней!!! Попробуйте еще!!!" << endl;
			}
		}
		while(iBuffer < 0);

		tmp->iCountOfDays = iBuffer;
		iBuffer = 0;

		//Ввод города
		cout << "Введите город: ";
		getline(cin, TEXT);
		tmp->sCity = TEXT;

		//Ввод выделенной суммы на поездку
		//Цикл который выполниться минимум 1 раз
		do
		{
			cout << "Введите сумму в рублях, выделенную на поездку: ";
			getline(cin, TEXT);

			try
			{
				//Конверт данных в число
				dBuffer = std::stod(TEXT);
			}
			catch(...)
			{
				cout << "Неправильный формат суммы!!! Попробуйте еще!!!" << endl;
				//tmp->position = 0;
				dBuffer = -2;
			}

			if (dBuffer != -2 && dBuffer < 0)
			{
				cout << "Неправильный формат суммы!!! Попробуйте еще!!!" << endl;
			}
		}
		while(dBuffer < 0);

		tmp->dSumm = dBuffer;
		dBuffer = 0;

		// Добавляем её в список
		a.push_back( *tmp );
	}

	// Освобождаем память
	delete tmp;
}
Купить

500,00 

(без учета комиссии 3,8 %)

После оплаты Вы получите работу на электронную почту.
UchetKomandirovok_SmallSize.rar
19941
Оцени работу

рейтинг

Поделись работой с друзьями

Комментарии (0)

Zicise

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегестрированые пользователи имеют возможность комментировать работы
Консольный учет командировок сотрудников предприятия на С++
Создать файл, содержащий ФИО сотрудника, год, месяц, длительность командировки в днях, город, в который осуществляется выезд, выездная сумма командировочных расходов. Определить общие выплаты командировочных за указанный месяц, вывести список наиболее часто посещаемых городов в порядке убывания за указанный период(С месяца X по месяц Y).
Категория: Образование
Стоимость: 500,00