C-------------> na C++

XJulekx

Użytkownik
Dołączył
Październik 30, 2012
Posty
5
Witajcie czy mogli byście pomóc mi w zamianie kodu z c na c++. Wiem to pewnie banalne wiem ze printf na cout scanf na cin i malloc na new ale jednak mam problem pomożecie?

oto kod




#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <iostream>
#include <stdio.h>
using namespace std;

struct podroz
{
char *nazwa;
char *cel;
char *start;
int cena;

};

struct klient
{
char *imie;
char *nazwisko;
podroz kupione[10];
int koszty_laczne;
char *tel;
};

podroz dodaj(podroz tmp)
{


cout<<"Podaj panstwo: ");
scanf("%s", buff);
tmp.nazwa=buff;
buff=(char*)(malloc(sizeof(char)*30));
printf("Podaj miejscowosc z ktorej nastapi wylot: ");
scanf("%s", buff);
tmp.cel=buff;
buff=(char*)(malloc(sizeof(char)*30));
printf("Podaj miejscowosc koncowa: ");
scanf("%s", buff);
tmp.start=buff;
printf("Podaj cene podrozy w zl: ");
scanf("%d",&tmp.cena);


return tmp;
};
klient *dodaj(klient *tmp)
{
char* buff=(char*)(malloc(sizeof(char)*30));
printf("Podaj imie: ");
scanf("%s", buff);
tmp->imie=buff;
buff=(char*)(malloc(sizeof(char)*30));
printf("Podaj nazwisko: ");
scanf("%s", buff);
tmp->nazwisko=buff;
buff=(char*)(malloc(sizeof(char)*30));
printf("Podaj telefon: ");
scanf("%s", buff);
tmp->tel=buff;

tmp->koszty_laczne=0;
return tmp;
};
void wyswietl(podroz tmp)
{
if(tmp.nazwa=="PUSTE") return;

printf("///// \n");
};
void wyswietl(klient *tmp)
{
int i;
if(tmp->imie=="PUSTE") return;
printf("%s %s %s \n",tmp->imie,tmp->nazwisko,tmp->tel);
printf("Laczny koszt wycieczek: %d \n", tmp->koszty_laczne);
};

klient *dodaj_podroz(klient *tmp)
{
int i;
for(i=0;i<10;i++)
{
if(tmp->kupione.nazwa!="PUSTE") continue;
tmp->kupione=dodaj(tmp->kupione);
tmp->koszty_laczne+=tmp->kupione.cena;
break;
}
return tmp;
};
void menu()
{


int i;
int wybor=10;
int wybor2=0;
klient **klienci;
klienci=(klient**)malloc(10*sizeof(klient*));
for(i=0;i<10;i++)
{
klienci=(klient*)malloc(sizeof(klient));
klienci->imie="PUSTE";
klienci->nazwisko="PUSTE";
klienci->tel="PUSTE";
klienci->kupione.nazwa="PUSTE";
klienci->kupione.start="PUSTE";
klienci->kupione.cel="PUSTE";
}
while(wybor!=0)
{
system("cls");
printf("1: Dodaj klienta.\n");
printf("2: Przegladaj klientow.\n");
printf("3: Dodaj podroz klientowi.\n");

printf("0: Wyjdz.\n");
scanf("%d",&wybor);
switch (wybor)
{
case 1:
{
for(i=0;i<10;i++)
{
if(klienci->imie!="PUSTE") continue;
klienci=dodaj(klienci);
system("pause");
break;
}

}break;
case 2:
{
for(i=0;i<10;i++)
{
wyswietl(klienci);
}

system("pause");
}break;
case 3:
{
for(i=0;i<10;i++)
{
if(klienci->imie=="PUSTE") continue;
printf("%d :",i);
wyswietl(klienci);
}
printf("Podaj nr klienta ktoremu chcesz dodac podroz: ");
scanf("%d", &i);
klienci=dodaj_podroz(klienci);

}break;
case 4:
{
for(i=0;i<20;i++)
{
}
}


}
}
for(i=0;i<10;i++)
{
free(klienci);
}
}


int main()
{
menu();
system("pause");
return 1;
}
 

trojanxem

Użytkownik
Dołączył
Grudzień 6, 2011
Posty
239
na pierwszy rzut oka tutaj tylko printfy na couty , scanfy na ciny. Także dasz radę, jak poprawisz kod mozesz wkleic moze sie cos rzuci w oczy
 

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
- char* zmienna; zamień na string zmienna;
- scanf("%s", &zmienna); zamień na cin >> zmienna;
- printf("tekst"); zamień na cout << "tekst";
 

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
Przepisałem Ci ten kod na C++.
Proszę:
Kod:
#include <windows.h> 
#include <iostream>

using namespace std;

struct podroz
{
    string nazwa; 
    string cel; 
    string start; 
    int cena;
};

struct klient
{
    string imie; 
    string nazwisko; 
    podroz kupione[10]; 
    int koszty_laczne; 
    string tel;
};

podroz dodaj(podroz tmp) 
{
    cout << "Podaj panstwo: ";
    cin >> tmp.nazwa;
    cout << "Podaj miejscowosc z ktorej nastapi wylot: "; 
    cin >> tmp.cel;
    cout << "Podaj miejscowosc koncowa: "; 
    cin >> tmp.start;
    cout << "Podaj cene podrozy w zl: ";
    cin >> tmp.cena;
    return tmp;
};

klient *dodaj(klient *tmp)
{
    cout << "Podaj imie: "; 
    cin >> tmp->imie;
    cout << "Podaj nazwisko: "; 
    cin >> tmp->nazwisko;
    cout << "Podaj telefon: "; 
    cin >> tmp->tel;
    tmp->koszty_laczne = 0;
    return tmp;
};

void wyswietl(podroz tmp) 
{
    if(tmp.nazwa=="PUSTE")
        return;
    cout << "///// \n";
};
void wyswietl(klient *tmp)
{
    if(tmp->imie=="PUSTE")
        return;
    cout << tmp->imie << " " << tmp->nazwisko << " " << tmp->tel << "\n";
    cout << "Laczny koszt wycieczek: " << tmp->koszty_laczne << "\n";
};

klient *dodaj_podroz(klient *tmp)
{
    for(int i = 0; i < 10; i++)
    {
        if(tmp->kupione[i].nazwa != "PUSTE")
            continue;
        tmp->kupione[i] = dodaj(tmp->kupione[i]);
        tmp->koszty_laczne += tmp->kupione[i].cena;
        break;
    }
    return tmp;
};

void menu()
{
    int a;
	int wybor = 10;
	int wybor2 = 0;

	klient **klienci; 
	klienci = new klient *[10];
	 
	for(int i = 0; i < 10; i++)
	{
		klienci[i] = new klient;
		klienci[i]->imie = "PUSTE";
		klienci[i]->nazwisko = "PUSTE";
		klienci[i]->tel = "PUSTE";
		klienci[i]->kupione[i].nazwa = "PUSTE";
		klienci[i]->kupione[i].start = "PUSTE";
		klienci[i]->kupione[i].cel = "PUSTE";
	}
	while(wybor != 0)
	{
		system("cls");
		cout << "1: Dodaj klienta.\n";
		cout << "2: Przegladaj klientow.\n";
		cout << "3: Dodaj podroz klientowi.\n";
		cout << "0: Wyjdz.\n";
		cin >> wybor;
		
		switch (wybor)
		{
			case 1:
			{
				for(int i = 0; i < 10; i++)
				{
					if(klienci[i]->imie != "PUSTE")
						continue;
					klienci[i] = dodaj(klienci[i]);
					system("pause");
					break;
				}

			}
			break;
			case 2:
			{
				for(int i = 0; i < 10; i++)
				{
					wyswietl(klienci[i]);
				}
				system("pause");
			}
			break;
			case 3:
			{
				for(int i = 0; i < 10; i++)
				{
					if(klienci[i]->imie=="PUSTE")
						continue;
					cout << i << " :";
					wyswietl(klienci[i]);
				}
				cout << "Podaj nr klienta ktoremu chcesz dodac podroz: ";
				cin >> a;
				klienci[a] = dodaj_podroz(klienci[a]);

			}
			break;
			case 4:
			{
				for(int i = 0; i < 20; i++)
				{
				}
			}
		}
	}

	for(int i = 0; i < 10; i++)
	{
		delete klienci[i];
	}
	delete [] klienci;
}


int main()
{
	menu();
	system("pause");
	return 0;
}
 

XJulekx

Użytkownik
Dołączył
Październik 30, 2012
Posty
5
Wow, dziękuję Ci ogromnie :) ale jakies errory mi wsyakkuja :(
 
Ostatnia edycja:

trojanxem

Użytkownik
Dołączył
Grudzień 6, 2011
Posty
239
Łatwiej by było jakbyś je podał.
 

XJulekx

Użytkownik
Dołączył
Październik 30, 2012
Posty
5
Nie wiem co się stało z moim visualem. Jaki kolwiek program nie wkleje to wyrzuca mi po kilkaset błędów i komunikat: Unable to start program. The file cant be specified. Nie wiem już co poradzić a błędy typu pic.jpg


Błagam o pomoc :(
 
Do góry Bottom