#include<iostream>
#include<cstdlib>
#include<time.h>
#include<conio.h>
#include<unistd.h>
#include<string>
#include<windows.h>
using namespace std;
enum Position{ LEFT, CENTRE, RIGHT };
void print( Position pos, string s, int linelength )
{
int spaces = 0;
switch( pos )
{
case CENTRE: spaces = ( linelength - s.size() ) / 2; break;
case RIGHT : spaces = linelength - s.size() ; break;
}
if ( spaces > 0 ) cout << string( spaces, ' ' );
cout << s << '\n';
}
int main()
{
const int LINELENGTH = 40;
string header( LINELENGTH, '=' );
int lekcja,temat,format;
cout<<"wcisnij dowolny klawisz aby kontynuowac"<<endl<<endl;
getch();
for(;;)
{
bool contlekcja=true;
system( "cls" );
cout<<"==============================="<<endl;
cout<<"MENU GLOWNE"<<endl;
cout<<"==============================="<<endl;
cout<<"1. Lekcja 1: Petla WHILE"<<endl;
cout<<"2. Lekcja 2: Tablice"<<endl;
cout<<"3. Lekcja 3: Tablice losowe"<<endl;
cout<<"4. Wyjscie"<<endl<<endl;
print( CENTRE, "wybierz numer opcji", LINELENGTH );
cin>>lekcja;
switch(lekcja)
{
case 1:
{
while(contlekcja)
{
bool conttemat=true;
system( "cls" );
cout<<"==============================="<<endl;
cout<<"Lekcja 1: Petla WHILE"<<endl;
cout<<"==============================="<<endl;
cout<<"1. 001-petla while"<<endl;
cout<<"2. 002-petla while"<<endl;
cout<<"3. 003-petla while"<<endl;
cout<<"4. 004-petla while"<<endl;
cout<<"5. Powrot do menu glownego."<<endl<<endl;
print( CENTRE, "wybierz numer opcji", LINELENGTH );
cin>>temat;
switch(temat)
{
case 1:
{
while(conttemat)
{
system("cls");
cout<<"001-petla while"<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"Napisz program wczytujacy z klawiatury liczbe calkowita."<<endl;
cout<<"Program powinien przyjmowac jedynie liczbe dodatnia."<<endl;
cout<<"Jesli uzytkownik poda liczbe ujemna, wyswietla sie komunikat o nieprawidlowej liczbie i poproszony jest o kolejna liczbe."<<endl;
cout<<"Probe wczytywania liczby powtarzamy dopoty, dopoki uzytkownik nie poda liczby poprawnej (dodatniej)."<<endl;
cout<<"Po zakonczeniu petli pojawia sie komunikat \"liczba prawidlowa = \"\""<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"1. format.txt"<<endl;
cout<<"2. format.exe"<<endl;
cout<<"3. Powrot do wyboru tematu."<<endl<<endl;
print( CENTRE, "wybierz numer opcji", LINELENGTH );
cin>>format;
switch(format)
{
case 1:
{
system("cls");
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"#include<iostream>"<<endl;
cout<<"using namespace std;"<<endl;
cout<<"int main();"<<endl;
cout<<"{"<<endl;
cout<<" int a;"<<endl;
cout<<" cout<<\"podaj liczbe\"<<endl;"<<endl;
cout<<" cin>>a;"<<endl;
cout<<" while(a<=0)"<<endl;
cout<<" {"<<endl;
cout<<" cout<<\"nieprawidlowa liczba\""<<endl;
cout<<" cout<<\"podaj liczbe\""<<endl;
cout<<" cin>>a;"<<endl;
cout<<" }"<<endl;
cout<<" cout<<\"prawidlowa liczba=\"<<a;"<<endl;
cout<<" return 0;"<<endl;
cout<<"}"<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
print( CENTRE, "Nacisnij dowolny klawisz aby kontynuowac.", LINELENGTH );
getch();
break;
}
case 2:
{
int a;
system("cls");
cout<<"podaj liczbe";
cin>>a;
while(a<=0)
{
cout<<"nieprawidlowa liczba"<<endl;
sleep(2);
system("cls");
cout<<"podaj liczbe";
cin>>a;
}
system("cls");
cout<<"prawidlowa liczba="<<a;
getch();
break;
}
case 3:
{
conttemat=false;
break;
}
default:
{
system( "cls" );
cout<<"Nie ma takiej opcji w menu!"<<endl<<endl;
cout<<"Nacisnij dowolny klawisz aby kontynuowac."<<endl<<endl;
getch();
}
}
}
}
case 2:
{
while(conttemat)
{
system("cls");
cout<<"002-petla while"<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"Wykorzystujac petle WHILE napisz program, wyznaczajacy pole kwadratu."<<endl;
cout<<"Program jako dane (dlugosc boku) powinien przyjmowac wylacznie liczby dodatnie."<<endl;
cout<<"W przypadku podania liczby ujemnej pojawia sie komunikat o blednych danych i ponowna mozliwosc wczytania liczby."<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"1. format.txt"<<endl;
cout<<"2. format.exe"<<endl;
cout<<"3. Powrot do wyboru tematu."<<endl<<endl;
print( CENTRE, "wybierz numer opcji", LINELENGTH );
cin>>format;
switch(format);
{
case 1:
{
system("cls");
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"#include<iostream>"<<endl;
cout<<"using namespace std;"<<endl;
cout<<"int main()"<<endl;
cout<<"{"<<endl;
cout<<" int a,p;"<<endl;
cout<<" cout<<\"podaj dlugosc boku kwadratu \";"<<endl;
cout<<" cin>>a;"<<endl;
cout<<" while(a<=0)"<<endl;
cout<<" {"<<endl;
cout<<" cout<<\"bledne dane\"<<endl;"<<endl;
cout<<" cout<<\"podaj dlugosc boku kwadratu \";"<<endl;
cout<<" cin>>a;"<<endl;
cout<<" } "<<endl;
cout<<" p=a*a;"<<endl;
cout<<" cout<<\"pole kwadratu wynosi=\"<<p;"<<endl;
cout<<" return 0;"<<endl;
cout<<"}"<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
print( CENTRE, "Nacisnij dowolny klawisz aby kontynuowac.", LINELENGTH );
getch();
break;
}
case 2:
{
int a,p;
cout<<"podaj dlugosc boku kwadratu ";
cin>>a;
while(a<=0)
{
cout<<"bledne dane"<<endl;
cout<<"podaj dlugosc boku kwadratu ";
cin>>a;
}
p=a*a;
cout<<"pole kwadratu wynosi="<<p;
getch();
break;
}
case 3:
{
conttemat=false;
break;
}
default:
{
system( "cls" );
cout<<"Nie ma takiej opcji w menu!"<<endl<<endl;
cout<<"Nacisnij dowolny klawisz aby kontynuowac."<<endl<<endl;
getch();
}
}
}
}
case 3:
{
cout<<"git"<<endl;
system("cls");
break;
}
case 4:
{
cout<<"git"<<endl;
system("cls");
break;
}
case 5:
{
contlekcja=false;
break;
}
default1:
{
system( "cls" );
cout<<"Nie ma takiej opcji w menu!"<<endl<<endl;
cout<<"Nacisnij dowolny klawisz aby kontynuowac."<<endl<<endl;
getch();
break;
}
}
}
}
case 2:
{
system( "cls" );
cout<<"git"<<endl;
break;
}
case 3:
{
system( "cls" );
cout<<"git"<<endl;
break;
}
case 4:
{
system( "cls" );
cout<<"Za chwile nastapi zamkniecie programu.";
exit(0);
}
default:
{
system( "cls" );
cout<<"Nie ma takiej opcji w menu!"<<endl<<endl;
cout<<"Nacisnij dowolny klawisz aby kontynuowac."<<endl<<endl;
getch();
system( "cls" );
}
}
}
return 0;
}
problem jest z tym switch'em "cout<<"2. 002-petla while"<<endl;"
błędy dublowania typu-[Error] duplicate case value