x-kom hosting

[C++] program, który czyta plan lekcji z pliku txt i wyświetla go na ekranie

stypa1110
utworzono
utworzono (edytowane)

Witam mam pewien problem. Mam napisać program, który czyta plan lekcji z pliku txt i wyświetla go na ekranie oraz koloruje na czerwono przedmioty zawodowe.

#include <cstdlib>#include <iostream>#include <fstream>#include <windows.h>using namespace std;void kol(int kolor);int main(){	int zmienna;	zmienna=0;	string dana;	ifstream odczyt ("dane.txt");	do	{		kol(15);		odczyt>>dana;		if (dana=="Poniedzialek")		 {				cout<<dana<<" ";				odczyt>>dana;				cout<<dana<<endl;		 }		if (dana=="Wtorek")		 {				cout<<dana<<" ";				odczyt>>dana;				cout<<dana<<endl;		 }		if (dana=="Sroda")		 {				cout<<dana<<" ";				odczyt>>dana;				cout<<dana<<endl;		 }		if (dana=="Czwartek")		 {				cout<<dana<<" ";				odczyt>>dana;				cout<<dana<<endl;		 }		if (dana=="Piatek")		 {				cout<<dana<<"  ";				odczyt>>dana;				cout<<dana<<endl;				zmienna++;		 }		odczyt>>dana;	   while (dana!="/")		 {				 if (dana=="SOiSK")				  {						kol(12);						cout<<dana<<endl;				  }				 if (dana=="OB")				  {						kol(12);						cout<<dana<<endl;				  }				 if (dana=="TI")				  {						kol(12);						cout<<dana<<endl;				  }				 if (dana=="UTK")				  {						kol(12);						cout<<dana<<endl;				  }				 if (dana=="POiS")				  {						kol(12);						cout<<dana<<endl;				  }				 kol(15);				 odczyt>>dana;		}	  cout<<"\n";	}	while (zmienna==0);	kol(15);	system("PAUSE");	return 0;}void kol(int kolor){	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),kolor);}

Zawartość plika dane.txt

Poniedzialek 08:15SOiSKSOiSKSOiSKOBOBReligiaMatematyka/Wtorek 09:55TI NiemieckiBiologiaUTKPOHistoriaPolskiPolski/Sroda 08:15MatematykaChemiaAngielskiPodstawy_PrzedsiebiorczosciWFWF/Czwartek 08:15HistoriaReligiaSOiSKGeografiaPolskiPolski/Piatek 08:15AngielskiNiemieckiFizykaWFOBPOiSPOiSPOiS/

Używam środowiska wxDev-C++ 6.10.2

I narazie jak ma mi wyświetlać same zawodowe to program działa bez zarzutu, ale gdy dodam, że ma również wyświetlać inne przedmioty to zaczynają się kłopoty.

Niektóre przedmioty zawodowe zostają wyświetlone 2 razy więcej niż powinny i wtedy jeden z nich jest na czerwono a drugi na biało. Przedmioty ogólne chciałem wypisać za pomocą else po ostatnim if oraz za pomocą if gdzie dawałem za warunek dana!="SOiSK" oraz reszte zawodowych i też nie wychodziło. Za pomoc z góry dziękuje.

edit:

Już rozwiązałem problem

święty
komentarz
komentarz

Nie wiem czy o to Ci chodziło ale proponuję takie coś, że pętlę while z tymi kolorkami zamienić np na taką:

		while (dana!="/")		{				 if (dana=="SOiSK" || dana=="OB" || dana=="TI" || dana=="UTK" || dana=="POiS" )				 {					 kol(12);					 cout<<dana<<endl;				 }				 else				 {					 kol(15);					 cout << dana << endl;				 }		odczyt>>dana;		}

I wtedy wyświetla wszystkie przemioty +zawodowe koloruje

P.s. Proponuję skrócić w podobny sposób pętle z dniami tygodnia, nie robiłem już tego ale na pierwszy rzut oka wydaje się że analogicznie :)

Mam nadzieję że o to chodziło

Pozdro ;)

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.