Ja bym to widział tak:
klasa pierwotna dla wyrażenia np. Expression z abstarkcyjnymi metodami rysowania i obliczania obszaru zajmowanego przez to wyrażenie.
klasy pochode do Expression (Symbol, Suma, Roznica, Ułamek, Potęga ... ).
Argumentem klasy Symbol bedzie po prostu string z cyframi czy literami, a argumentami pozostałych klas będą wyrażenia (Expression) (np. suma ma dwa argumenty typu expression)
metoda rysowania bedzie polegać na
- narysowaniu działania (kreska ułamkowa, znak plus ...), wielkość i położenie zależy od wielkości argumentów, którą sprawdzasz też przy pomocy metody klasy Expression (np. długość kreski ułamkowej bedzie zależeć od szerokości argumentów )
- narysowaniu argumentów (za pomocą ich metod rysowania).
teraz wystarczy stworzyć odpowiednie klasy, dodać jedne do drugich jako argumenty i wywolac metode rysowania tej stojącej najwyżej
//dopisane
aha, C a nie C++, wiec nici z abstrakcji
Musisz w każdym razie zbudować dzrewo, którego wezłami będą działania (suma, potega ...), a na końcach będą znajdować sie symbole (string), no i ... liczyć rozmiar i rysować.