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

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

Задание:

  • Создать файл, содержащий ФИО сотрудника, год, месяц, длительность командировки в днях, город, в который осуществляется выезд, выездная сумма командировочных расходов.
  • Определить общие выплаты командировочных за указанный месяц.
  • Вывести список наиболее часто посещаемых городов в порядке убывания за указанный период (с месяца 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
19941
Оцени работу

рейтинг

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