• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prośba o ocenę kodu i wskazówki

Object Storage Arubacloud
0 głosów
222 wizyt
pytanie zadane 7 sierpnia 2015 w C i C++ przez CPP_Newbie Użytkownik (770 p.)

Witam,

Jest to mój pierwszy, prosty programik w konsoli. W planach mam jego przeniesienie na obiektówkę.

Zależy mi na doszlifowaniu podstaw, więc proszę bardziej zaawansowany koderów o ocenę jakości tego kodu w jego obecnej postaci i wskazówki, co źle, co można poprawić, co można było zrobić lepiej.

Osobiście nie podobają mi się zmienne globalne (nie miałem pomysłu co zrobić, żeby się nie resetowały mi się przy kolejnej pętli _tmain() i nie jestem pewien właściwego / sensownego użycia wskaźników).

http://wklej.org/id/1770054/

3 odpowiedzi

+1 głos
odpowiedź 7 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)
Wiesz co, zapewne użyłeś wskaźników, aby pracować na oryginalnych danych w funkcjach (funkcja nie tworzy kopii). Jeśli tak, to radzę korzystać z referencji. Przez to nie musisz wyłuskiwać ciągle wartości wskaźnika, a działasz na normalnej nazwie zmiennej. Nie wiem, czy je znasz, ale radzę ci się na nie przestawić. Oczywiście twoje programy będą działać tak samo, ale kod będzie bardziej czytelny (w C++ zalecane jest stosowanie referencji).
komentarz 7 sierpnia 2015 przez Wiciorny Ekspert (270,910 p.)
No i oczywiście szybszy będzie,  tutaj akurat nieodczywalnie :D ... ale  w wielkich projektach to zaleta
komentarz 7 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)
O tym, że wskaźniki są wolniejsze od referencji, to nie słyszałem, bo tak naprawdę, to referencja to taki ukryty wskaźnik.
komentarz 7 sierpnia 2015 przez Wiciorny Ekspert (270,910 p.)
to był komentarz do twojej wypowiedzi, uwzględniający że dzięki stosowaniu wskaźników i referencji, program jest szybszy.
0 głosów
odpowiedź 7 sierpnia 2015 przez rafal.budzis Szeryf (85,260 p.)

_tmain nie podoba mi sie na nazwa :

- nic nie mówi 
- podkresleniem zazwyczaj poprzedzamy pola prywatne a to funkcja i program bez obiektowości
- pozostałe metody są po polsku a kod powinien być spójny lingwistycznie proponuje starać się pisac po angielsku nawet jesli nie potrafisz to leć z słownikiem i ćwicz :)

Nazwy poziomów do tablicy to samo z zakresami wtedy to całe 

	switch (poziom_trudnosci)
	{
	case '1':
		zakres_max = 100;
		cout << "Trudność gry ustawiona na Łatwy!" << endl;
		Sleep(1500);
		break;
	case '2':
		zakres_max = 250;
		cout << "Trudność gry ustawiona na Normalny!" << endl;
		Sleep(1500);
		break;
	case '3':
		zakres_max = 500;
		cout << "Trudność gry ustawiona na Trudny !" << endl;
		Sleep(1500);
		break;
	case '4':
		zakres_max = 1000;
		cout << "Trudność gry ustawiona na Hardcore !" << endl;
		Sleep(1500);
		break;
	default:
		break;
	}

Bedziesz mógł zamieniać na

	if (poziom_trudnosci>0 && poziom_trudnosci<4)
	{
		zakres_max = zakres_poziomow[poziom_trudnosci];
		cout << "Trudność gry ustawiona na "<< nazwy_poziomow[poziom_trudnosci] <<" !" << endl;
		Sleep(1500);
	}

im mniej kodu tym lepiej ! postaraj się też reszte programu menu itp gdzie są pokazywane poziomy przepisać na pokazywanie tego z tej tablicy(na pętli for) jeśli uda ci się zrobić tak ze bedzie wystarczyło dopisac nowy indeks do 2 tablic zeby dodać nowy poziom to mozna powiedzieć ze kod jest elastyczny :D

Co do zmienych globalnych to mogłeś zrobić jedną strukture która by grupowała te wszystkie zmienne a przy okazji był by tylko jeden wskaźnik.

0 głosów
odpowiedź 7 sierpnia 2015 przez Rogargol Pasjonat (16,600 p.)
Poza tym co pisali poprzednicy, z kosmetycznych poprawek, to polecam funkcje getch() z biblioteki (ktora musisz olczywiscie dolaczyc jesli chcesz z niej korzystac ;) ) conio.h

Funkcja czeka na wcisniecie klawisza i zwraca jego wartosc. Przydaje sie w takich prostych menu jakie zrobiles, bo uzytkownik nie musi potwierdzac swojego wyboru enterem.

Podobne pytania

0 głosów
1 odpowiedź 162 wizyt
+1 głos
1 odpowiedź 140 wizyt
pytanie zadane 27 listopada 2020 w SQL, bazy danych przez pirat Nowicjusz (170 p.)
+1 głos
1 odpowiedź 824 wizyt
pytanie zadane 11 lutego 2022 w OpenGL, Unity przez BarSki13 Obywatel (1,250 p.)

92,632 zapytań

141,502 odpowiedzi

319,881 komentarzy

62,015 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...