[C#] Przeliczanie systemów liczowych


(Meggyis) #1

Witam Wszystkich,

 

Musze zrobić program zaliczeniowy na JiPP, ponieważ nie jestem zbyt dobry w programowaniu i nie przepadam za tym specjalnie to chciałbym Was prosić pomoc i zadać kilka pytań.

 

Program musimy wymyślić sami, ale musi zawierać dziedziczenie , polimorfizm , Base - przechwytywane z klasy bazowej treści/poleceń konstruktorów, set i get , może nawet to żeby nie był konsolowy tylko okienkowy.

 

Wymyśliłem sobie "kalkulator" przeliczający systemy liczbowe. Na początku wybierasz opcję jaki system liczbowy chcesz wpisać (2, 8, 10, 16) a program przelicza i wypisuje w każdym systemie. Domyślam się, że C# ma to przeliczanie już w jakiejś bibliotece ale pewnie będę musiał robić to ręcznie. Ale gdyby ktoś już miał gotowe formuły przeliczające to będę wdzięczny za podzielenie się nimi :slight_smile: (za nakierowanie na bibliotekę również)

 

Pomyślałem, że zrobię 4 klasy, dla każdego sytemu liczbowego. Klasę _ Decimal _ uznałbym powiedzmy za klasę główną - tzn. zawierała by formuły przeliczające na wszystkie systemy i ona by wszystko wypisywała, a pozostałe klasy wypisywałby wartość wpisana przez użytkownika (czyli 2, 8 lub 16), przeliczałyby tylko na system dziesiętny i przesyłały te wartość do klasy Decimal , która policzy pozostałe wartości.

 

No ale teraz moje główne pytanie, czy w takim programie da się wcisnąć wszystkie powyższe rzeczy? Prawdopodobnie bez nich program nie przejdzie ;/

Czy to wszystko to dobry pomysł czy lepiej szukać czegoś innego?

 

Jeśli ktoś robił kiedyś coś podobnego, to będę wdzięczny za każdą podpowiedź czy ułatwienie. Było by super jakby ktoś tak mniej więcej napisał jak powinien wyglądać schemat programu i/lub formuły przeliczające.

 

PS. W załączniku dodaje program, który pisaliśmy, własny projekt ma zawierać te same elementy + było by super jakby zawierał tablice (nie wiem czy da się to jakoś zrobić na tablicach)

 

Jeszcze raz dziękuję Wszystkim za pomoc :slight_smile: Gdy tylko cos napiszę będę wrzucał tu kod i sie z Wami konsultował :slight_smile:

Figury.zip


(Johny) #2

Konwersja jest związana z samymi zmiennymi

np.

int a

int b=5

a=b.ToBin();

http://stackoverflow.com/questions/2954962/decimal-to-binary-conversion-in-c

Podajesz numer w postaci stringa,bazę systemu zródłowego i systemu docelowego

C# jest mocno obiektowy,same zmienne są obiektami


(Marcin Obala) #3

Przy przeliczeniu systemów nie widzę nic więcej poza jedną zmienna oraz dwiema funkcjami: string DowolnySystemNaDowolnySystem(int podstawaZ, int PodstawaNa, string liczba) oraz int NaDziesietny(string liczba, int podstawa)

Przeliczanie wyglądało by tak ze wywołuje np. DowolnySystemNaDowolnySystem(16,24,“FFFF”). W środku funkcji wywołuje druga która przelicza mi przekazana liczbę na dziesiętny a z dziesiętnego juz na docelowy system (wpisalem 24 bo mamy 26 liter a angielskim alfabecie i możemy je wykorzystać).

Ja nie widze sensu wciskac tutaj dziedziczenia i klasy.