DA205E (Spring 26) - Programming in C#, II @ MAU
This is the continuation course of the Programming in C# course (DA204E). In this course we are diving deeper into OOP with C# as well as programming GUI:s, this time using both Windows forms and WPF. The course consists of multiple assignments grouped into two groups as far as grading goes along with three quizzes.
This repo contains all the assignments I've worked on along any other relevant files. For all graded work see the "Graded Assignments" folder. For images of the applications created in the different assignments please refer to the "Application Images", or this readme.
Assignment 1 primarly focuses on applying basic OOP concepts such as encapsulation, inheritance, dynamic binding in a Windows Forms application. The application consisted of a simple form where the user could add a new animal, and then see the animal data in the GUI. Additionally the user was able to load an image into the application. Making a new animal would remove the old one.
Assignmnet 2 builds upon assignment 1, mainly by adding new data structures into the mix (such as lists, dictionaries, and queues), but also introducing polymorphism and generics. Interfaces were introduced and a generic list management class was created. The user could now create multiple animals, as well as edit or delete any one of them. More data would be displayed such as daily food requirements and upcomming events.
Assignment 3 builds upon the last two assignments by adding support for importing data and exporting data from the application in various file formats. Additionally the user may now filter and search for animals as well as calculate some basic statistics. These new features taught the basics of serialization to plain text, json and xml, as well as, the basics of de-serialization from plain text and json. In order to get the filtering and searching to work LINQ was used. Lastly some basics about exceptions (along with custom exceptions) was introduced to complement the file handling tasks.
Assignmnet 4 brings a completley new application, this time focusing on flight management. The user may add new flights/airplanes and then these would be controlled in the application by making the mtake off or changing destination or flight height. What makes this assignment so interesting is the practical implementation of the publisher/subscriber pattern which introduced delegates and events. Additionally the GUI was ceated in WPF rather than Windows Forms this time introducing interesting mechanics such as bindings, observable collections etc.
Assignment 5 brings yet another application, this time focused on records, tuples and even more data structures (like HashSets). In short the user may add transaction categories and transactions. These may then be filtered or searched, aditionally the user may get an overeview of the cash-flow per month and generate a simple .txt report. Just like assignment 3 some basic serialization and deserialization was included as a part of this assignment, though this time only with JSON support.
To be updated...
To be updated...
| Assignment | Handed in | Grade | Best possible grade |
|---|---|---|---|
| Assignment 1 | ☑ | A | A |
| Assignment 2 | ☑ | A | A |
| Quiz 1 | ☑ | A | A |
| Assignment 3 | ☑ | A | A |
| Quiz 2 | ☑ | A | A |
| Assignment 4 | ☑ | - | A |
| Assignment 5 | ☑ | - | A |
| Quiz 3 | ☑ | A | A |
| Assignment 6 pt 1 | ☑ | A | A |
| Assignment 6 pt 2 | ☑ | - | A |
To be determined.