Премини към съдържанието
Boqn Tzonev

Имам нужда от съвет как да продължа с актуализацията в C++

Препоръчан отговор


#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>

using namespace std;

const int N = 5;

struct player
{
	string ime;
	string familia;
	string otbor;
	int nomer;
	int vk_golove;
} igrachi[N], podredba;

// Prototypes.
int add_player(player a[]);
void search_by_number(player a[], int &nomer_na_igracha);
void search_by_team(player a[], string & ime_na_otbora);
void klasirane(player a[]);
void actual(player a[], int &nomer_na_igracha, string & ime_na_otbora);

//**********************************************
fstream igrachi_file;
//**********************************************

int add_player(player a[])
{
	int br;

	igrachi_file.open("igrachi.txt", ios::out | ios::app);  // <--- As an "fstream" this needs to know if it is input or output.

	do
	{
		//cout << "\n Broi igrachi:";
		cout << "\n Number of players:";

		cin >> br;

	} while (br <= 0 || br > N);

	if (igrachi_file.fail())
	{
		cout << "Error. The file is missing.";

		exit(1);
	}

	for (int i = 0; i < br; i++)
	{
		//cout << "Vuvedi ime na igrach:";
		cout << " Enter player's first name: ";

		cin >> a[i].ime;

		igrachi_file << a[i].ime << endl;

		//cout << "Vuvedi familia na igrach:";
		cout << " Enter a player's last name :";

		cin >> a[i].familia;

		igrachi_file << a[i].familia << endl;

		//cout << "Vuvedi otbor na igracha:";
		cout << " Enter a player's team: ";

		cin >> a[i].otbor;

		igrachi_file << a[i].otbor << endl;

		//cout << "Vuvedi nomer na igracha:";
		cout << " Enter the player number: ";

		cin >> a[i].nomer;

		if (a[i].nomer > 99 || a[i].nomer < 1)
		{
			do
			{
				//cout << "Vuvedete nomer ot 1 do 99. \n";
				cout << "Enter number 1 to 99. \n";

				cin >> a[i].nomer;
			} while (a[i].nomer > 99 || a[i].nomer < 1);
		}

		igrachi_file << a[i].nomer << endl;

		//cout << "Vuvedi vkarani golove na igracha:";
		cout << " Enter player goals scored: ";

		cin >> a[i].vk_golove;

		if (a[i].vk_golove < 0)
		{
			do
			{
				//cout << "Vuvedete golove >= 0 \n";
				cout << "Enter goals >= 0 \n";

				cin >> a[i].vk_golove;

			} while (a[i].vk_golove < 0);
		}

		igrachi_file << a[i].vk_golove << endl;
	}

	igrachi_file.close();
}


void search_by_number(player a[], int &nomer_na_igracha)
{
	int flag = 0;

	igrachi_file.open("igrachi.txt", ios::in);

	igrachi_file.seekg(0);

	if (igrachi_file.fail())
	{
		cout << "Fail to open the file";

		exit(1);
	}

	for (int i = 0; i < N; i++)
	{
		igrachi_file >> a[i].ime;

		igrachi_file >> a[i].familia;

		igrachi_file >> a[i].otbor;

		igrachi_file >> a[i].nomer;

		igrachi_file >> a[i].vk_golove;


		if (nomer_na_igracha == a[i].nomer)
		{
			cout << "Igrach: " << a[i].ime << " " << a[i].familia
				<< "\nOtbor: " << a[i].otbor << "\nNomer: " << a[i].
				nomer << "\nVkarani golove: " << a[i].vk_golove << endl;

			flag++;
		}
	}

	if (!flag)
		cout << endl << "Nqma takuv igrach!" << endl;

	igrachi_file.close();

}


void search_by_team(player a[], string & ime_na_otbora)
{
	int flag = 0;

	igrachi_file.open("igrachi.txt", ios::in);

	igrachi_file.seekg(0);

	if (igrachi_file.fail())
	{
		cout << "Fail to open the file";

		exit(1);
	}

	for (int i = 0; i < N; i++)
	{
		igrachi_file >> a[i].ime;

		igrachi_file >> a[i].familia;

		igrachi_file >> a[i].otbor;

		igrachi_file >> a[i].nomer;

		igrachi_file >> a[i].vk_golove;


		if (ime_na_otbora == a[i].otbor)
		{
			cout << "Igrach: " << a[i].ime << " " << a[i].familia
				<< "\nOtbor: " << a[i].otbor << "\nNomer: " << a[i].
				nomer << "\nVkarani golove: " << a[i].vk_golove << endl << endl;

			flag++;
		}
	}

	if (!flag)
		cout << endl << "Nqma takuv otbor!" << endl;

	igrachi_file.close();
}


void klasirane(player a[])
{
	igrachi_file.open("igrachi.txt", ios::in);

	igrachi_file.seekg(0);  // <--- Not needed as the file pointer is already at the beginning from the open statement.

	for (int i = 0; i < N; i++)
	{
		igrachi_file >> a[i].ime;

		igrachi_file >> a[i].familia;

		igrachi_file >> a[i].otbor;

		igrachi_file >> a[i].nomer;

		igrachi_file >> a[i].vk_golove;
	}

	cout << "ime" << setw(15) << "familia" << setw(15) << "otbor" <<
		setw(15) << "nomer" << setw(15) << "vkarani golove" << endl;

	for (int i = 0; i < N; i++)

	{
		cout << a[i].ime << right << setw(15) << a[i].
			familia << right << setw(15) << a[i].
			otbor << right << setw(15) << a[i].
			nomer << right << setw(15) << a[i].vk_golove << endl;
	}

	igrachi_file.close();
}



int main()
{
	int choice;
	int nomer_na_igracha;

	string ime_na_otbora, familia_na_igracha;

	player a[N];

	do
	{
		cout <<
			"\n================================================================================"
			<< endl;

		cout << "\t\tMenu\n\n";

		//cout << "= Izberete:\n";
		cout << " Choose:\n";

		//cout << "= 1. Dobavqne na igrachi\n";
		cout << " 1. Add players\n";

		//cout << "= 2. Spisuk s igrachite\n";
		cout << " 2. List of players\n";

		//cout << "= 3. Spravka za igrach po nomer\n";
		cout << " 3. Reference for player by number\n";

		//cout << "= 4. Spravka za igrach po otbor\n";
		cout << " 4. Player report by team\n";

		//cout << "= 5. Aktualizirane\n";
		cout << " 5. Update\n";

		//cout << "= 6. Krai\n";
		cout << " 6. End\n";

		cout <<
			"\n================================================================================"
			<< endl;

		cin >> choice;

		switch (choice)
		{

			case 1:
			{
				add_player(a);

				break;
			}

			case 2:
			{
				klasirane(a);
				break;
			}

			case 3:
			{
				cout << "Tursene po nomer: ";

				cin >> nomer_na_igracha;

				search_by_number(a, nomer_na_igracha);
				break;
			}

			case 4:
			{
				cout << "Tursene po otbor: ";

				cin >> ime_na_otbora;

				search_by_team(a, ime_na_otbora);
				break;
			}

			case 5:
			{
				cout<< "Update:";
				
				cin>> nomer_na_igracha, ime_na_otbora;
				
				}
				break;
		}
	} while (choice != 6);
}

Здравейте имам нужда от малко помощ с моята курсова задача.Остана ми да направя единствено актуализацията ,но не мога да се справя. Ето и какво съм направил по актуализацията.Ще го постна като отговор долу.

sa.jpg

void actual(player a[], int nomer_na_igracha, string ime_na_otbora)
{
	int i{};
	fstream igrachi_file;

	igrachi_file.open("igrachi.txt", ios::in);

	while (getline(igrachi_file, a[i].familia))  // <--- Changed.
	{
		igrachi_file >> a[i].vk_golove;
		igrachi_file.ignore(std::numeric_limits<std::streamsize>::max(), '\n');  // <--- Requires header file <limits>.

		getline(igrachi_file, a[i].otbor);

		i++;
	}

	igrachi_file.close();
	
	//cout << "Vuvedete igrachite chiqto informaciq iskate da redaktirate: ";
	cout << "Enter the players whose information you want to edit: ";
	//cin >> num;  // <--- Not defined or used.

	//cout << "\n Ime: ";
	cout << "\n Name: ";

	std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');  // <--- Requires header file <limits>.
	getline(cin, a[i].familia);
	//cout << "\n Golove: ";
	cout << "\n Goals: ";
	cin >> a[i].vk_golove; // <--- goals.

	cin.get();
	cout << endl << endl;

}

Кодът не е правилен.Да се види до къде съм стигнал.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.


  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Горещи теми в момента

  • Подобни теми

    • от Wilhelm
      Здравейте, трябва ми спешна помощ за решение на тази задача по два варианта най-късно до утре! Ще съм ви длъжен!
       
       
    • от FlippyBG
      Здравейте хора, кякой може ли да каже как да оправя програмата. Мерси предварително.
      Да се направи функция за копиране на дадена опашка C++ 
       
      #include <iostream>
      using namespace std;
      struct elem
      {
          int key; elem *next;
      };
      void push(elem * &first, elem * &last, elem * p, int n);
      int pop(elem * &first, elem * &last, elem * &p, int &n);
      void copyQueue(elem * first, elem * last, elem * p, elem * &first2, elem * &last2, elem * &p2, int num);
      int main()
      {
          int num;
          elem *first = NULL, *last = NULL, *p;
          elem *first2 = NULL, *last2 = NULL, *p2;

          cout << "\n ~~~ Enter a symbol to stop entering numbers ~~~\n";
          cout << "\n Enter numbers:  \n";
          while (cin >> num)
              push(first, last, p, num);
          cout << "\n The numbers are:  \n";
          //while (pop(first, last, p, num))
      //    {
      //        cout << num << " ";
      //    }

          copyQueue(first, last,p , first2, last2, p2, num);
          while (pop(first2, last2, p2, num))
          {
              cout << num << " ";
          }
          cout << "\n";
          while (pop(first, last, p, num))
          {
              cout << num << " ";
          }
      }
      void push(elem * &first, elem * &last, elem * &p, int n)
      {
          p = last;
          last = new elem;
          last->key = n;
          last->next = NULL;
          if (p != NULL) p->next = last;
          if (first == NULL)
          {
              first = last;
          }
      }
      int pop(elem * &first, elem * &last, elem * &p, int &n)
      {
          if (first)
          {
              n = first->key;
              p = first;
              first = first->next;
              if (first == NULL) last = first;
              delete p;
              return 1;
          }
          else
              system("pause");
          return 0;
      }
      void copyQueue(elem * first, elem * last, elem * p, elem * &first2, elem * &last2, elem * &p2, int num)
      {
          while (pop(first, last, p, num))
          {
              push(first2, last2, p2, num);
          }
      }
       
    • от Plamy Gerova
      Да се състави програма, която извежда на екрана онези елементи на списък с начален указател start чиито стойности не се повтарят.
    • от SilentSword
      Здравейте! Имам задача да намеря най- често срещания елемент в списък с начален указател start. Някой може ли да ме насочи как да я направя?
    • от Plamy Gerova
      Задачата е следната: Да се напише програма с функция за копиране на дадена опашка. Трябва да има функции pop(), push() и copy().
  • Дарение

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване