Assignment 4- Implementing a Banking Application Due: See course shell for due date and time
Check with you professor to see if you are permitted to work as a group. The application is by far
the most complex system that you have attempted so far. It consists of eleven classes, two
structs, one interface and two enums coupled in varying degrees of tightness. The Bank class is
the main driver of the application. It has a collection of Accounts and Person that is initialize
appropriately in the static constructor. You will implement the entire system in Visual Studio. A
short description of each type with their members is given below. You are advised to implement
each type in the order that they are described. No method should have a Console.WriteLine()
unless you are explicitly told to output something on the console. Each type must be in separate
files
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
ExceptionType enum You will implement this enum in Visual Studio. There are seven members:
The members are self-explanatory. AccountType enum You will implement this enum in Visual
Studio. There are three members: \begin{tabular}{|l|} \hline AccountTypeenum \\ \hline
Constants \\ \hline Checking, \\ Saving, \\ Visa \end{tabular} The members are self-explanatory.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Utils class [The implementation for this class is given in the appendix. Create a class called Utls
and copy and past the statements into the appropriate part of the file] You will implement the
Utils class in Visual Studio. This class is comprised of three fields and provides two static
properties. It simulates the passage of time. Each time the Time property is accessed, it increases
the internal field by a random amount. It is used to time stamped all banking events. A short
description of each class member is given below: Properties: There are three properties. 1. _time
- this private class variable is of type DayTime that store the time of this object. It is initialized
(with argument 1_048_000_000) at declaration. It is mutated (changed) whenever either of the
properties is accessed. 2. random - this private class variable is of type Random storing the time
of this object. It is initialized (with argument 1_048_000_000) at declaration. It is mutated
(changed) whenever either of the properties is accessed. 3. ACCOUNT_TYPE - this private class
variable is of type Dictionary. It serves as a lookup table to match an account type with a
particular prefix. It is initialized (code is given in the appendix) at declaration. Properties: There
are two properties, both of which are computed.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Op.