Advanced Programming (object oriented programming)


Choose one of the following examples to derive your own classes and class hierarchy.
Use virtual functions, maybe templates, test the classes and apply them in a code that uses STL and polymorphism.
  1. Sebastian Achert:
    2D geometrical objects( triangle, rectangle, quadrangle, square, circle, ellipse )  with methods area(), perimeter(). Write a code that arranges a bunch of these figures. Check for intersection of these figures.
  2. Clemens Schiffer, Jacob Wiesmeyr, Huber Ramsauer:
    Matrix classes (dense, band, sparse [CRS-compressed row storage, Rüde ], symmetric with methods matrix_vector_product(), access(i,j), diag()). Apply it to solve the Poisson-equation in 2D.
  3. Daniel Kraft; Sanjin Maržić, Sebastian Ramacher:
    Chess figures (king, queen, rook, knight, bishop, pawn) with methods position(), move(), color()). Write a code that starts at a certain configuration on the chess board, moves the figures, checks whether a move is possible and removes figures from the board if necessary.Check for Check!
  4. Mario Rohrhofer, Michael Pontelli:
    Cars and their accouterments  (basis, combi, elegance, sports, economy) with methods price(), power(), loss_value_per_year. Set up a warehouse that sells them, e.g., picks offers in a certain price range.
  5. Stefan Rosenberger:
    Transport means (train, ICE, slow train, car, PKW, LKW, ship [river, sea], airplane [transport, passengers] with methods capacity(), passengers(), distance(), price_per_km). Write some logistics to choose the best (different criteria) transport means for certain tasks, e.g.,  transport 3 people from  Übelbach to  Berlin. 
  6. Daniel Hofstadler, Elias Windisch:
    Trees (broad-leafed treeconiferous treegymnosperm, loosing leafs) with methods height(), diameter(), life_expectancy(), CO2-compensation) are to be classified an evaluated. Generate a mixed forrest, determine its value over the next 20 years (trees die, get deseases, are cut, vegatation changes)
  7. University staff (students, intern, extern, employees, secretary, professor, phd-student). Filter these information wrt. to various critera as staff-groups (number of professors+phd-student; email list for professors+secretary, ...), duration of employment (congratuate for 20 years),retirement in near future.
  8. Michael Kniely:
    Sports(wo)men ( alpine skiing, ski jumper, cross country, biathlon) with methods name(), country(), sponsor() and a method that a returns measure to compare sportsmen of the same type. Write a code that simulates some sports event that presents the recent rankings after each action od a sports(wo)man. That code has to be general enough to operate with all sorts of sports(wo)men.
Read your input data from a file (use/modify module file_io), create also larger data sets.

Links:

Templates, STL, Libraries (ols)
  1. Vector and matrix operations, iterative schemes:
  2. Solvers for sparse linear systems