На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Командировки на С++

Задание:

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

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

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

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

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

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

Содержимое проекта:

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

Для объединения данных внутри программы используется контейнер 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;
}

Содержание архива

  • Исходный код на С++ для Visual Studio

Купить 1500,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

Здесь еще никто не оставлял свои комментарии, будь первым!

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

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

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

1500,00 

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

Заказать через

UchetKomandirovok_SmallSize.rar
19.5 kB
Оцени работу

7

рейтинг

Командировки на С++
Среда разработки: Visual Studio Язык разработки: C++ Хранение данных: текстовый файл
Категория: Образование
Стоимость: 1500,00