Microsoft Visual C++ 2010 Express programowanie obiektowe.

0

Witam posiadam taki kodzik (wklejam cały co mi szkodzi)

#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;


int main(int argc, char *argv[])
{
   s:  
  
cout<<"================================================================================"<<endl;
cout<<"Program obliczajacy silnie z danej liczby napisany specjalnie na 6 z informatyki"<<endl;
 cout<<"================================================================================"<<endl;
    int x,silnia=1;
    
    system ("title Silnia BY SWATv0.2");
    system ("color 02");
    cout<<"Podaj liczbe, z ktorej zostanie wyliczona silnia:"<<endl;
    cin>>x;
    
    
    {
   


           
    if 
    (x>31) cout<<"Program oblicza silnie tylko dla liczby nie wiekszej niz 31"<<endl;
    
    if 
    (x>31) goto w;
    
    if
    (x<0) cout<<"Podano zla wartosc.(Liczba ujemna)"<<endl;
    
    if
    (x<0) goto w;
    
   
  
    
}
    
    
    q:
    
    cout<<"Silnia z liczby wynisi: "<<endl;
      for(int i=1;i<=x;i++){
                      
              silnia*=i;        
                      }
              cout<<silnia<<endl;
              goto w;
              
              
              w:
              
              char h;
    float T,N;
    cout<<"Czy chcez kontynulowac?"<<endl;
    cout<<"T/Dowolny znak"<<endl;
        
    cin>>h;
    switch(h)
    {
                    case 'T,t':
                         system ("cls");
                    goto s;
                     case 'N':
                    goto e;
                         
                         
                    
                    }
              e:      
    
    return EXIT_SUCCESS;
}




 

Oblicza silnie napisałem go od ręki w dev cpp na informatyce ale w te wakacje mi mało więc chce zacząć się uczyć programowania obiektowego i tutaj pojawia się problem:
Na początku "przełożyłem ten program na okienko " w borland c++ wszystko działało, tylko że na komputerach z zainstalowanym borlandem a na innych wywalało błędy brakujących bibliotek (nawet po dodaniu ich do pliku/projektu). Pomyślałem że taki Microsoft Visual C++ 2010 skierowany domyślnie na programowanie w windows nie będzie pokazywał tylu blędów podczas uruchamianie już skompilowanego programu na różnych komputerach. Ale gdy w borlandzie wszystko było dla mnie oczywiste (textbox1="blablabla"+ silnia) to w Visualu już tak nie jest: po dodaniu atrybutu onclick do button'a i wklepaniu pętli program domaga się wstawienia ; po { oraz na w innych niedożecznych miejscach. W czym tkwi problem bo już sam nie wiem, może posiadacie mały kurs po polsku lub angielsku?

0

Po pierwsze: nie używaj goto. Chyba, że chcesz być rozszarpanym przez użytkowników tego forum.
Po drugie: taki kod:

if    (x>31) cout<<"Program oblicza silnie tylko dla liczby nie wiekszej niz 31"<<endl;
    if    (x>31) goto w;

Po co dajesz dwa ify? O klamerkach i blokach instrukcji słyszałeś?
Po trzecie: ten case jak ma działać:

case 'T,t':

?
Po czwarte: sformatuj kod po ludzku.

0

Goto też jest dla ludzi,jednak używać go należy tak jak i wyjątków,czyli prawie że nigdy.Poza tym radzę utrwalić sobie nawyk,że jeśli już goto używasz to:
1.W komentarzu zapodajesz,w którym kierunku skok nastąpi-ułatwia to trochę czytanie takiego kodu
2.używasz jakiś sensownych nazw etykiet
np

DataCalculations:
.dataInput
.something
.something
if(!dataCheck())
{
    cout<<"Incorrect data!Please provide right data.";
    goto DataCalculations;//jump up to line xxx
}

to tak podglądowo tylko,powyższy kod pięknie da się zapisać w postaci do/while

1 użytkowników online, w tym zalogowanych: 0, gości: 1