Homework assignment for module Programming Paradigms: OOP command line application in C#
The project is a two-part homework assignment where both are windows-based command line applications written in C#.
Assignment Part 1
This assignment is just a small warming up to get some (first?) experience with application development using the .NET framework and C# specifically. Programming in C# is conceptually very much the same as programming in Java. You’ll notice that there are some slight conceptual and syntactical differences. We’ll have a further look at framework and language elements being specific for .NET. later. For the moment however, we’ll have a look at some well-known concepts. Main purpose of this assignment is not solving the assignment in itself, however to setup your environment and to read about / study the .NET framework and the C# language (“der Weg ist das Ziel”). Have a look at books and/or tutorials to get familiar with the basics.
You have to implement a car dealer scenario. Create a Console Application that enables you to enter Vehicle data. A vehicle can for example be a car or a truck. Vehicles are stored in memory, so persistence is not necessary at the moment. A list of vehicles is maintained and can be ‘queried’. You have to be able to print a list of Vehicles and their most important characteristics, get the number of vehicles available, get the total value of all vehicles, get the price of a specific vehicle (based on ID), increase all prices with a certain percentage, search for a vehicle based on licence plate and search for a vehicle in a certain price range. Think about reasonable attributes and functionality yourself.
- Properties
- Namespaces
- Visibility
- Interface and / or Abstract class
- Inheritance and method overriding
- Constructor overloading
- Exception handling
- Unit testing
- LINQtoObjects
- C# Coding conventions
- Code documentation and documentation generation (compared to javadoc)
- Explain the way from C# code to machine language code using the concepts Managed Code, IL, Metadata, JIT, CLR.
- Use of SVN
- Proper class design
This is the first time for me programming in C#, so the project will contain many different concepts of which some may not seem of direct proper use to the project. They are however, general exercises and aid towards understanding the C# syntax and conventions.