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.
Programming II hiding, and replacing members, Serialization, Generics, Linq ExceptionType
enum You will implement this enum in Visual Studio. There are seven members: 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 members are self-explanatory.
AccountType enum You will implement this enum in Visual Studio. There are three members:
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 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 Assignment 4, Winter 2022 hiding, and replacing members,
Serialization, Generics, ling Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, Utils class hiding, and replacing members, Serialization,
Generics, Ling [The implementation for this class is given in the appendix. Create a class called
UtIs and copy and 1. Time - this public class variable is of type Day Time. It adds a random
value to the internal field_time and then returns it. past the statements into the appropriate part of
the file] 2. Now - this public class variable is of type Day Time. It adds zero to the internal
field_time You will implement the Utils class in Visual Studio. This class is comprised of three
fields and and then returns it. provides two static properties. It simulates the passage of time.
Each time the Time property is Methods: accessed, it increases the internal field by a random
amount. It is used to time stamped all banking There are no explicitly defined methods. You do
not have to code this class. Just copy the code statements from the appendix of this A short
description of each dass member is given below: document. 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_648_600_800 ) 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_848_800_800) at
declaration. It is mutated (changed) whenever elther 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 i.
Programming II hiding, and replacing members, Serialization, Generics, Linq ExceptionType
enum You will implement this enum in Visual Studio. There are seven members: 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 members are self-explanatory.
AccountType enum You will implement this enum in Visual Studio. There are three members:
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 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 Assignment 4, Winter 2022 hiding, and replacing members,
Serialization, Generics, ling Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, Utils class hiding, and replacing members, Serialization,
Generics, Ling [The implementation for this class is given in the appendix. Create a class called
UtIs and copy and 1. Time - this public class variable is of type Day Time. It adds a random
value to the internal field_time and then returns it. past the statements into the appropriate part of
the file] 2. Now - this public class variable is of type Day Time. It adds zero to the internal
field_time You will implement the Utils class in Visual Studio. This class is comprised of three
fields and and then returns it. provides two static properties. It simulates the passage of time.
Each time the Time property is Methods: accessed, it increases the internal field by a random
amount. It is used to time stamped all banking There are no explicitly defined methods. You do
not have to code this class. Just copy the code statements from the appendix of this A short
description of each dass member is given below: document. 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_648_600_800 ) 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_848_800_800) at
declaration. It is mutated (changed) whenever elther 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 i.
RPA Summer School Studio Session 4 AMER: Advanced practices with Studio and O...Diana Gray, MBA
In this session we will learn all about email automation, advanced selectors and error handling with UiPath Studio.
Agenda:
-Send Email using Automation
-Basic String Manipulation
-Date Formatting
-Advanced selectors
-Debugging and error handling in Studio
-Leveraging Orchestrator Assets
-Making use of Orchestrator Queues
-How to publish a project in Studio
-Deployment to Orchestrator
-Demo - follow-along
Your trainers:
👩🏽💻 Priya Darshini, 3X UiPath MVP 2022, RPA Solution Architect
C++ (pronounced "see plus plus") is a computer programming language based on C. It was created for writing programs for many different purposes. In the 1990s, C++ became one of the most used programming languages in the world.
The C++ programming language was developed by Bjarne Stroustrup at Bell Labs in the 1980s, and was originally named "C with classes". The language was planned as an improvement on the C programming language, adding features based on object-oriented programming. Step by step, a lot of advanced features were added to the language, like operator overloading, exception handling and templates.
.NET Attributes and Reflection - What a Developer Needs to Know...Dan Douglas
An overview of .NET Attributes and Reflection. Pro's, Con's, and when to use them along with a practical demo of .NET reflection in use.
Video demos can be found here:
http://dandouglas.wordpress.com/talks-webcasts/
are differentiated B cells that have begun to secret antibody but hav.pdfamarhandi
are differentiated B cells that have begun to secret antibody but have not yet lost the capacity to
proliferate, and still express cell surface immunoglobulin. a. marginal zone B cells b.
plasmablasts c. B-1 B cells d. none of these choices are correct e. plasma cells x.
Are allergies identified or is No Known Allergles (WKA) stated A. Pr.pdfamarhandi
Are allergies identified or is No Known Allergles (WKA) stated? A. Pretemt B. Deficient
QUESTION 2 In there documentation of Advance Directive status? not required, but it is
important to atk the patient about advanoe drectives and docuners the patienfe reponte. ? A.
Present B. Deficient QUESTION 3 Is the sex identified? A. Present B. Absen QUESTION 4 Are
face/ethnicity idenstied? Prosent Deficlent QUESTION 5 Is the residence identhiad? A. Present
a. Deficient QUESTION 6 to the Hospital ion (SSN or MRis) prepent? A. Present B. Doficient.
More Related Content
Similar to Assignment 4- Implementing a Banking Application Due See course shel.pdf
RPA Summer School Studio Session 4 AMER: Advanced practices with Studio and O...Diana Gray, MBA
In this session we will learn all about email automation, advanced selectors and error handling with UiPath Studio.
Agenda:
-Send Email using Automation
-Basic String Manipulation
-Date Formatting
-Advanced selectors
-Debugging and error handling in Studio
-Leveraging Orchestrator Assets
-Making use of Orchestrator Queues
-How to publish a project in Studio
-Deployment to Orchestrator
-Demo - follow-along
Your trainers:
👩🏽💻 Priya Darshini, 3X UiPath MVP 2022, RPA Solution Architect
C++ (pronounced "see plus plus") is a computer programming language based on C. It was created for writing programs for many different purposes. In the 1990s, C++ became one of the most used programming languages in the world.
The C++ programming language was developed by Bjarne Stroustrup at Bell Labs in the 1980s, and was originally named "C with classes". The language was planned as an improvement on the C programming language, adding features based on object-oriented programming. Step by step, a lot of advanced features were added to the language, like operator overloading, exception handling and templates.
.NET Attributes and Reflection - What a Developer Needs to Know...Dan Douglas
An overview of .NET Attributes and Reflection. Pro's, Con's, and when to use them along with a practical demo of .NET reflection in use.
Video demos can be found here:
http://dandouglas.wordpress.com/talks-webcasts/
are differentiated B cells that have begun to secret antibody but hav.pdfamarhandi
are differentiated B cells that have begun to secret antibody but have not yet lost the capacity to
proliferate, and still express cell surface immunoglobulin. a. marginal zone B cells b.
plasmablasts c. B-1 B cells d. none of these choices are correct e. plasma cells x.
Are allergies identified or is No Known Allergles (WKA) stated A. Pr.pdfamarhandi
Are allergies identified or is No Known Allergles (WKA) stated? A. Pretemt B. Deficient
QUESTION 2 In there documentation of Advance Directive status? not required, but it is
important to atk the patient about advanoe drectives and docuners the patienfe reponte. ? A.
Present B. Deficient QUESTION 3 Is the sex identified? A. Present B. Absen QUESTION 4 Are
face/ethnicity idenstied? Prosent Deficlent QUESTION 5 Is the residence identhiad? A. Present
a. Deficient QUESTION 6 to the Hospital ion (SSN or MRis) prepent? A. Present B. Doficient.
Antibody secreting cells of the primary focus primarily secrete a. hi.pdfamarhandi
Antibody secreting cells of the primary focus primarily secrete a. high affinity lgE b. pentameric
lgD c. dimeric lgA d. monomeric lgA e. low affinity IgM.
Application Overview Build an android application called NumbersConv.pdfamarhandi
Application Overview: Build an android application called NumbersConversion. The
application does three conversions: - converts a decimal number to a binary and a hexadecimal
number
- onnuertrahionanumhortaodnaimal and a havadarimal numhar
Applications componenents: 1. Create a Fragment\#1 with name FragmentDecimal (java file) 2.
The fragment FragmentDecimal has a layout file "decimal_fragment.xm/" with the following UI
components a. TextView b. EditView(give an id) c. Button(give an id) Type a decimal number
Above is how the fragment\#1 should look like 3. Create a Fragment\#1 with name
FragmentBinary (java file) 4. The fragment FragmentBinary has a layout file "binary fragment.
xm " with the following UI components a. TextView b. EditView(give an id) c. Button(give an
id) Type a binary number Convert to decimal and hexadecimal Above is how the fragment\#1
should look like
5. Create a Fragment\#1 with name FragmentHexadecimal (java file) 6. The fragment
FragmentHexadecimal has a layout file "hexadecimal fragment.xml" with the following UI
components a. TextView b. EditView(give an id) c. Button(give an id) Type a Hexadecimal
number Coevett to decimal and binary Above is how the fragment\#1 should look like For all
Fragment layouts use Hint use LinearLayout 7. Your app has one activity MainActivity 8. copy
it and paste the xml code below into activity_main.xml
Note: the three frameLayout are invisible in activity_main.xml In total you will have 4 java files
(.java) and 4 layouts files(.xml): - MainActivity.java - activity_main.xml -
FragmentDecimal.java - decimal_fragment.xml - FragmentBinary.java - binary_fragment.xml
FragmentHexadecimal.java hexadecimal_fragment.java 8. Make sure to load the three
Fragments in the MainActivity (each should be loaded in a FrameLayout) 9. Take care of the
java code, so Fragments communicates with the activity for data conversion.
An�lisis de estudio de caso sobre Informe de sostenibilidad para or.pdfamarhandi
Anlisis de estudio de caso sobre Informe de sostenibilidad para organizacin sin fines de lucro.
Palabras clave (comunicacin, RSC, organizacin sin nimo de lucro, memoria sostenible,
estrategia)
Palabras clave (comunicacin, RSC, organizacin sin nimo de lucro, memoria sostenible,
estrategia).
Antisocial personality disorder (ASPD) is characterized by deceitfuln.pdfamarhandi
Antisocial personality disorder (ASPD) is characterized by deceitfulness, reckless disregard for
the well-being of others, a diminished capacity for remorse, superficial charm, thrill seeking, and
poor behavioral control. ASPD is not normally diagnosed in children or adolescents, but
antisocial tendencies can sometimes be recognized in childhood or early adolescence. James
Blair and his colleagues have studied the ability of children with antisocial tendencies to
recognize facial expressions that depict sadness, happiness, anger, disgust, fear, and surprise.
They have found that children with antisocial tendencies have selective impairments, with
significantly more difficulty recognizing fearful and sad expressions. Suppose you have a sample
of 35 14-year-old children with antisocial tendencies and you are particularly interested in the
emotion of disgust. The average 14-year-old has a score on the emotion recognition scale of
13.10 . (The higher the score on this scale, the more strongly an emotion has to be displayed to
be correctly identified. Therefore, higher scores indicate greater difficulty recognizing the
emotion). Assume that scores on the emotion recognition scale are normally distributed. You
believe that children with antisocial tendencies will have a harder time recognizing the emotion
of disgust (in other words, they will have higher scores on the emotion recognition test). What is
your null hypothesis stated using symbols? What is your alternative hypothesis stated using
symbols? This is a tailed test. Given what you know, you will evaluate this hypothesis using a
statistic..
Antibiotic resistance occurs by acquisition o.pdfamarhandi
Antibiotic resistance occurs by acquisition of a gene that allows the bacteria to grow in the
presence of a drug. This gene is most often acquired by: inheriting gene mutations slowly over
time vertical gene transfer horizontal gene transfer.
Antarctic Pelagic Food WebWhich species in this food web were dire.pdfamarhandi
Antarctic Pelagic Food Web
Which species in this food web were directly affected by the decimation of the blue whale
population by human whaling at the beginning of the 20th century? For each species, explain
how they were affected. Which species indirectly benefited from the reduced whale population?
Explain the chain of cause and effect. 4. Which species indirectly suffered from the reduced
whale population? Explain the chain of cause and effect..
answering questions. 1. Show graphically an argument why a larg.pdfamarhandi
answering questions. 1. Show graphically an argument why a large country may want to
institute a tariff? What are some reasons a small developing country may want to institute a tariff
even though it will decrease their total surplus?
2. What does the term "Brain Drain" mean in relation to the Lewis model? In particular, explain
the earnings profile of rural born migrants in the urban sector compared to urban born workers
and how we would expect the rate of return (use equation) to migration to show why a rural bom
with low ability level to be disinclined to migrate compared to a rural born of a higher ability
level.
3. What is meant by a "vicious cycle of growth" and show graphically how the government can
utilize policies in order to create a virtuous cycle of growth.
4. From all.of the movies - be specific-what was the most profound/long lasting/interesting thing
that you learned this quarter? Which video was your favorite video, and why?.
Answer the following questions on Wendys case on a separate word doc.pdfamarhandi
Answer the following questions on Wendy's case on a separate word document and upload it to
the drop box by 11:59 pm on Thursday. Questions for Wendy's case: 1. What were gender-
related challenges Wendy Chan faced as a data science team lead in Europa? a. How were male
and female leader perceived to be different according to Wendy? 2. How did Wendy handle the
gender-related challenges? a. If you were Wendy, would you do the same and why? b. If not,
how would you have coped with these challenges? 3. Many organizations are facing gender-
related issues. a. How can firms like Europa reduce, or even eliminate gender-related challenges
faced by women in the workplace. b. How can they encourage women like Wendy to assume
leadership positions? 4. To what extent do you agree with Wendy's observations about perceived
gender differences? What are your thoughts?.
Answer the following questions 1.1 Identify and briefly discuss the.pdfamarhandi
Answer the following questions 1.1 Identify and briefly discuss the three (3) core functions and
two (2) support functions to enable any organisation to operate effectively. (10) 1.2. Identify two
(2) reasons why organisations operate below their maximum processing (2) capacity 1.3. Explain
the difference between planning and control (6) 1.4 Identify five (5) objectives of capacity
planning and control 1.5.1 Illustrate the operations management strategy. Ensure to mark the
drawing clearly (14) 1.5.2 From your illustration above, discuss the inputs (8).
Anne Thom is 25 years old and wants to retire at the age of 50 . In o.pdfamarhandi
Anne Thom is 25 years old and wants to retire at the age of 50 . In order to be able to retire,
Anne figures that she needs to have a sufficient amount in her savings account at the retirement
date to enable her to withdraw $60,000 at the end of each year for the following 30 years. Anne
has just inherited $150,000, which she intends to deposit today to start her retirement fund.
Additionally, she will make a deposit at the end of each year for the next 25 years until she
reaches 50. How much should each annual deposit be? (Assume that Anne's long-term interest
rate is 6\%.).
Assume Coleco pays an annual dividend of $1.49 and has a share price .pdfamarhandi
Assume Coleco pays an annual dividend of $1.49 and has a share price of $37.92. It announces
that its annual dividend will increase to $1,71. If its dividend yield stays the same, what should
be its new share price?.
Assume January 11 Sale on account for $1,000 of merchandise; terms .pdfamarhandi
Assume: January 11: Sale on account for $1,000 of merchandise; terms 2/10,n/30 Assume:
January 21 , receive partial payment on $300 part of original sale Assume: Receipt of remaining
balance Fubruary 2.
Assume H1 and H2 are connected to the same access point AP1. H1 want .pdfamarhandi
Assume H1 and H2 are connected to the same access point AP1. H1 want to send a frame to H2.
H1 must send the frame to the access point first, and th access point then forward it to H2. Fill in
the blank for the MAC addresses for the frame being sent from H1 to AP1. The addreess for
address 1 is for address 2 is and for address 3 is.
Assume NODE p points to a node with int data and NODE next. Write t.pdfamarhandi
Assume NODE *p points to a node with int data and NODE *next. Write the C statement to
print the data field to the screen using p. Write the C statement that callocs an integer array of
size N..
Assume Coleco pays an annual dividend of $1.51 and has a share price .pdfamarhandi
Assume Coleco pays an annual dividend of $1.51 and has a share price of $37,98. It announces
that its annual dividend will increase to $1,79. If its dividend yield stays the same, what should
be its new share price? The now price will bes (Round to the nearest cont.).
Anita Clarke is chief information officer at Foundation Phamaceutical.pdfamarhandi
Anita Clarke is chief information officer at Foundation Phamaceuticals, a large Caliornia based
company. In an industry where in generaly takes $500 milion and to to 12 years 10 bring as nee
drug 10 markec, companies such as Fourdation are always looking for ways to increase
productivity and speed things up. After about eight manths on the job, Carke suggested to
company president James Wu that Foundation implement a new global knowledge-sharing
application that promises so cut development time and costs in half. She hbs done extensive re-
search en knowiedge-sharing systems and has qaked closely with an LT. Girector at global
powerhouse Pfizes, a company that developed its COVID-19 vaceine with BioNTech in about
one year. The Pfizer director beleves the knowiedge-sharing system plays an important role in
that compary's compettiveness. Wu presented the ides to the board of directors, and everyone
agreed to pursue the project. He has asked Clarke to investigate firms that could assist
Foundation's L.T. department in developing and implementing a global know-edge-sharing
application that would be compatible with Foundation's existing systems. Wu explainod that he
wants to present the information to the boand of drectors for a decision next month. arke
identified three major firms that she believed could handle the work and took a summary of her
findings to Wu's office, where she was greeted by Lucy Lee, a young. petice, attractive woman
whe served as a scr of executive assistant bo Wu. Woed was that the relaticnship between Lee
and Wo was lotaly proper, but besides the value of her good looks, no one in the oompany could
understand why she was working there. Her lack of talent and experience made her a labilty
more than a help. She was very deferential to Wu but condescending to everyone else. Lee was a
constant source of imritation and ill will among managers throughout the pompany, but there
was no doubt that the only way to get to Wu was through Lucy Lee. Lee took the information
from Clarke and promised the president would review it within two days. The next aflemoon,
Wu caled Clarke to his ofice and asked why Standaed Sys-tems, a smak local consuting firm, sas
not being considered as a polential peovider Clarke was surprised-Standard was known primariy
for helging amall companies compulerize their acoounting systems. She was not aware that they
had done any work relaled to knowledge-sharing appleations, particularty on a giobal basis.
Upon further investigabicn into the compary, she learned that Slandard was owed by an uncle of
Lucy Lee's, and things began to fal into place. Fortunately, she also leamed that the firm did have
some limited experience in more complex applications, She triod to talk pervately with Wu about
his reasons for wanting to consider Standard, but Wo insisted that Lee participate in all his
internal meebings. A their most recent meeting. Wu insisted that Standard be inctuded for poss
ble cansideration by the board. Du.
Animal Concept Mapping Using the following terms to create a concept .pdfamarhandi
Animal Concept Mapping Using the following terms to create a concept map. Don't forget to
include linking and explaining words in-between the terms. Metazoa germ layers endoderm
ectoderm mesoderm blastula gastrulation diploblast triploblast sexual asexual budding
fragmentation binary fission gametes fertilization zygote protostome deuterostome acoelomate
coelomate tissues epithelial connective muscle nervous organ systems pseudocoelomate
parthenogenesis.
The simplified electron and muon model, Oscillating Spacetime: The Foundation...RitikBhardwaj56
Discover the Simplified Electron and Muon Model: A New Wave-Based Approach to Understanding Particles delves into a groundbreaking theory that presents electrons and muons as rotating soliton waves within oscillating spacetime. Geared towards students, researchers, and science buffs, this book breaks down complex ideas into simple explanations. It covers topics such as electron waves, temporal dynamics, and the implications of this model on particle physics. With clear illustrations and easy-to-follow explanations, readers will gain a new outlook on the universe's fundamental nature.
This presentation includes basic of PCOS their pathology and treatment and also Ayurveda correlation of PCOS and Ayurvedic line of treatment mentioned in classics.
it describes the bony anatomy including the femoral head , acetabulum, labrum . also discusses the capsule , ligaments . muscle that act on the hip joint and the range of motion are outlined. factors affecting hip joint stability and weight transmission through the joint are summarized.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
A workshop hosted by the South African Journal of Science aimed at postgraduate students and early career researchers with little or no experience in writing and publishing journal articles.
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Assignment 4- Implementing a Banking Application Due See course shel.pdf
1. 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,
2. Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
1. Time - this public class variable is of type DayTime. It adds a random value to the internal
field_time and then returns it. 2. Now - this public class variable is of type DayTime. It adds zero
to the internal field_time and then returns it. Methods: There are no explicitly defined methods.
You do not have to code this class. Just copy the code statements from the appendix of this
document.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
ITransaction interface You will implement the ITransaction Interface in Visual Studio. The three
Account sub classes implement this interface. A short description of each class member is given
below: Properties: There are no properties. Methods: 1. void Withdraw(double amount, Person
person). 2. void Deposit(double amount, Person person).
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
AccountException class You will implement the AccountException Class in Visual Studio. This
inherits from the Exception Class to provide a custom exception object for this application. It
consists of a single a constructor: Fields: There are no fields Properties: There are no properties
Constructor: 1. public AccountException(ExceptionType reason )- this public constructor
invokes the base constructor with an appropriate argument. The base constructer argument is
obtain by calling the ToString() of the argument. [You are sending the argument of the child
constructor to the parent constructor.] Methods: There are no methods.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
LoginEventArgs class You will implement the LoginEventArgs Class in Visual Studio. This
inherits from the EventArgs Class to provide a custom object for this application. It consists of
two properties and a single a constructor: Fields: There are no fields Properties: There are two
public properties, with no accompanying setters. Constructors: 1. public LoginEventArgs(string
name, bool success) - this public constructor takes a string and a bool argument and does the
following: a. Invokes the base constructor b. Assigns the arguments to the appropriate properties.
Methods: There are no explicitly defined methods.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
3. TransactionEventArgs class You will implement the TransactionEventArgs Class in Visual
Studio. This inherits from the LoginEventArgs Class to provide a custom object for this
application. It consists of a single property and a single a constructor: Fields: There are no fields
Properties: There is one explicitly defined public property, with no accompanying setters.
Constructors: 1. public TransactionEventArgs(string name, double amount, bool success) - this
public constructor takes a string, a double and a bool argument and does the following: a.
Invokes the base constructor with the appropriate arguments. b. Assigns the middle argument to
the appropriate property. Methods: There are no explicitly defined methods.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Transaction struct You will implement the Transaction struct in Visual Studio. The only purpose
of this stuct is to capture the data values for each transaction. A short description of the struct
members is given below: Properties: There are no fields. Properties: All the properties are public
with the setter absent 1. AccountNumber - this property is a string representing the account
number associated with this transaction. The getter is public, and the setter is absent. 2. Amount -
this property is a double representing the account of this transaction. The getter is public, and the
setter is absent. 3. Originator - this property is a Person representing the person initiating this
transaction. The getter is public, and the setter is absent. 4. Time - this property is a DayTime
type representing the time associated with this transaction. The getter is public, and the setter is
absent.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Constructors: 1. public Transaction ( string accountNumber, double amount, Person person) -
This public constructor takes three arguments. It assigns the arguments to the appropriate
properties. It also sets the Time property to the Time property of the Utils class. Methods: 1.
public override string ToString( ) -This method overrides the same method of the Object class. It
does not take any parameter and it returns a string representing the account number, name of the
person, the amount, and the time that this transition was completed. [See the output for clues for
this method.] You must include the word Deposit or Withdraw in the output.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
DayTime struct You will implement the DayTime struct in Visual Studio. The only purpose of
this stuct is to capture the time of an event. The logic of this class depends on the following: - 1
4. hour =60 minutes - 1 day =24 hours =2460=1_440 minutes - 1 month =30 days
=301_440=43_200 minutes - 1 year =12 months =1243_200=518_400 minutes - Time starts on
the zero minute of the zero hour of the first day of the first month of the zero year. i.e. 0 minute
will be 0000-01-01 00:00 A short description of the struct members is given below: Properties:
There is a single private field. 1. minutes - this private field is a long representing the minute
value of this struct. [The time on a computer system is a simple counter. The long counter
represents the number of ticks (milliseconds) since 1970 January 1] Properties: There are no
properties.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Constructors: 1. public Day ( long minutes ) - This public constructor takes a single long
argument and assigns it to the appropriate field. Methods: 1. public static DayTime operator + (
DayTime lhs, int minutes ) - This method overload the addition operator. Returns a new struct
with the original minutes that is increased by the second argument. This is used in the Util class
to get the current time (Utils. Now) and incremented time (Utils. Time). 2. public override string
ToString( ) - This method overrides the same method of the Object class. It calculates the year,
month, day, hour, and remaining minutes from the private minutes field. [See the output for clues
for this method.]
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Logger class You will implement the Logger Class in Visual Studio. This is a static class with
some housekeeping duties. It handles all login attempts and transaction occurrences. A short
description of each class member is given below: Fields: There are two fields: 1. loginEvents -
this private static List field represents login attempts to the bank. This is initialized to an empty
collection at declaration. 2. transactionEvents - this private static Liststring>field represents login
attempts to the bank. This is initialized to an empty collection at declaration. Properties: There
are no properties. Constructors: There are no properties.
1. public static void LoginHandler(object sender, EventArgs args)-This method does the
following: a. Uses the as operator to cast the second argument to a LoginEventArgs object. b.
Create a string with the following: - PersonName (from args). - Success (from args). - Current
time (from Utils. Now). c. Adds the above string to the loginEvents collection. This method does
not display anything 2. public static void TransactionHandler(object sender, EventArgs args) -
This method does the following: a. Uses the as operator to cast the second argument to a
5. TransactionEventArgs object. b. Create a string with the following: - PersonName (from args). -
Amount (from args) - Operation (from Amount in args) - Success (from args). - Current time
(from Utils. Now). c. Adds the above string to the transactionEvents collection. This method
does not display anything 3. public static void ShowLoginEvents( ) - This is method does not
take any parameters nor does it return a value. The method does the following: a. Prints the
current time (Utils. Now) b. Prints a number list of all the items in the loginEvents collection. 4.
public static void ShowTransactionEvents ( ) -This is method does not take any parameters nor
does it return a value. The method does the following: a. Prints the current time (Utils. Now) b.
Prints a number list of all the items in the transactionEvents collection.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Person class You will implement the Person Class in Visual Studio. A person object may be
associated with multiple accounts. A person initiates activities (deposits or withdrawal) against
an account that is captured in a transaction object. A short description of each class member is
given below: Fields: There are two fields: 3. Password - this private string field represents the
password of this person. (N.B. Password are not normally stored as text but as a hash value. A
hashing function operates on the password and the resulting hash value is stored. When a user
supplies a password, it is passed through the same hashing function and the result is compared to
the stored value.) 4. OnLogin - this public event field represents the EventHandler that will store
the method to be invoked. Properties: All the properties are auto-implemented.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
1. SIN - this string property represents the sin number of this person. The getter is public, and
setter is absent. 2. Name - this property is a string representing the name of this person. This
getter is public, and setter is absent. 3. IsAuthenticated - this property is a bool representing if
this person is logged in with the correct password. This is modified in the Login() and the Logout
() methods. This getter is public, and setter is absent. Constructors: 1. public Person(string name,
string sin)-This public constructor takes two parameters: a string representing the name of the
person and another string representing the SIN of this person. It does the following: a. The
method assigns the arguments to the appropriate fields. b. It also sets the password field to the
first three letters of the SIN. [use the Substring(start_position, length) method of the string class]
Methods: 6. public void Login(string password) - This method takes a string parameter
representing a password and does the following: a. If the argument DOES NOT match the
password field, it does the following: - Sets the IsAuthenticated property to false - Invokes the
6. EventHandler OnLogin with the following arguments: The current object reference (use this)
The second argument is of type LoginEventArgs. This will have arguments - the name of the
current object - and the success on the operation (use false in this case). - Creates an
AccountException object using argument AccountEnum.PASSWORD_INCORRECT - Throws
the above exception b. If the argument matches the password, it does the following: - Sets the
IsAuthenticated property is set to true - Invokes the EventHandler OnLogin with the following
arguments:
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
This method sets the IsAuthenticated property to false This method does not display anything 8.
public override string Tostring( )-This public method overrides the same method of the Object
class. It returns a string representing the name of the person-and if he is authenticated or not.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Account class You will implement the Account Class in Visual Studio. This class that will serve
as the base class for the Visa, Checking and Saving classes. The member
PrepareMonthlyStatement () is Fields: 1. users - this readonly protected field is a list of If these
two fields are readonly, persons representing the user who have access and transactions?
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
constructor to an empty collection. 2. transactions - this readonly puble field is a list of
transaction representing the deposits, withdrawal, payments and purchases of this account. This
initialized at in the constructor to an empty collection. 3. LAST_NUMBER - this private field is
a class variable of type int. It represents the last account number that was used to generate the
unique account number. It is initialized at declaration to 100,000 and is modify in the
constructor. Properties: 1. Balance - this property is a double representing the amount in this
account. This is modified in the Deposit( ) method and in the PrepareMonthlyReport () method
of the derived classes. This is an auto-implemented property the getter is public and the setter is
protected 2. LowestBalance - this property is a double representing the lowest balance that this
amount ever drops to. This is modified in the Deposit() method. This is an autoimplemented
property the getter is public and the setter is protected 3. Number - this property is a string
representing the account number of this account. The getter is public and the setter is absent.
Events: 1. OnTransaction - this event is a double representing the amount in this account. This is
7. modified in the Deposit() method and in the PrepareMonthlyReport () method of the derived
classes. This is an auto-implemented property the getter is public and the setter is protected
Methods: 1. public Account( string type, double balance) - This is the public constructor. It takes
two parameters: a three-letter string representing the type of the account ("VS-", "SV-" and "CK-
" for visa, saving and checking account respectively) and a double representing the starting
balance. The method does the following: a. Sets the Number property to the concatenation
(joining) of the first argument and the class variable LastNumber b. Increments the class variable
LastNumber c. Assigns the second argument to the property Balance d. Assigns the second
argument to the property LowestBalance e. Initializes the field transactions to an empty list of
Transactions. f. Initializes the field users to an empty list of Persons. This constructor is called in
the constructors on the three derived classes 2. public void Deposit( double amount, Person
person) - This public method take a double parameter representing the amount to change balance
by and a person
following: a. Increase (or decrease) the property Balance by the amount specified by its
argument. b. Update the property LowestBalance based on the current value of Balance. c.
Create a Transaction object based on the account Number, the amount (specified by the
argument), a person object (specified by the argument. d. Adds the above object to the list of
transactions This is method is called by the Deposit and withdraw methods of the derived classes
CheckingAccount and SavingsAccount as well as the DoPurchase and DoPayment of the VisaAc
count class. This method does not display anything, nor does it return a value. 3. public void
Adduser (Person person) - This public method takes a person object as a parameter. It adds the
argument to holders (the list of persons). This method does not return a value, nor does it display
anything on the screen. 4. public bool IsUser (string name) -This public method that takes a
string parameter because it is possible that multiple representing the name of the user and
returns true if users will have the same name the argument matches the name of a person in
holders (the list of persons) and false otherwise. You cannot use the Contains method of the list
class because the list is a list of persons and not a list of strings. You willhave to use a loep to
checkeach person in the eollection. Use linq to implement this method. This method does not
display anything on screen. 5. public abstract void PrepareMonthlyReport( )-This abstract public
method does not take any parameter nor does it return a value. Research how to declare an
abstract method. This method is implemented in the classes derived from Accounts. 6. public
virtual void OnTransactionoccur (object sender, EventArgs args) - This public method invoke
the EventHandler OnTransaction with its two arguments. This method does not return a value,
nor does it display anything on the screen. 7. public override string Tostring( )-This method
overrides the same method of the Object class. It does not take any parameter but returns a string
8. representation of this account. It does the following: a. Declare and initialise a string variable to
store the return value and add the following to it: - The Number of this account - The names of
each of the users of the account - The Balance - All the transactions
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
CheckingAccount class You will implement the CheckingAccount Class in Visual Studio. This
is a sub class is derived from the Account class and implements the ITransaction interface. There
are two class variables i.e. variables that are shared but all the objects of this class. A short
description of the class members is given below: Fields: 1. COST_PER_TRANSACTION - this
is a class variable of type double representing the unit cost per transaction. All of the objects on
this class will have the same value. This class variable is initialized to 0.05 . 2.
INTEREST_RATE - this is a class variable of type double representing the annual interest rate.
All of the objects on this class will have the same value. This class variable is initialized to 0.005
. 3. hasoverdraft - this is a bool indicating if the balance on this account can be less than zero.
This private instance variable is set in the constructor. Methods: 1. public CheckingAccount (
double balance =0, bool hasoverdraft = false ) - This public constructor takes a parameter of type
double representing the
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
starting balance of the account and a bool indicating if this account has over draft permission.
The constructor does the following: a. It invokes the base constructor with the string " CK" and
the appropriate argument. [It uses the dictionary ACCOUNT_TYPE and the enum AccountType
to obtain the two letter prefix for this account type] b. Assigns the hasoverdraft argument to the
appropriate field. 2. public new void Deposit( double amount, Person person) -this public method
takes two arguments: a double representing the amount to be deposited and This definition hides
the corresponding a person object representing the person do member in the parent class because
the base the transaction. The method does the class implementation is needed for this method as
well as the Withdraw () method following: a. Calls the Deposit() method of the base class with
the appropriate arguments. b. Calls the OnTransactionoccur () method of the base class with the
appropriate arguments. i. The second argument TransactionEventArgs needs the name of the
person, the amount and true (success of the operation) 3. public void Withdraw (double amount,
Person person) -this public method takes two arguments: a double representing the amount to be
withdrawn and a person object representing the person do the transaction. The method does the
following: a. If this person in not associated with this account, it does the following: i. Calls the
9. OnTransactionoccur () method of the base class with the appropriate arguments. Read the above
Deposit() method for more explanation ii. Throws the appropriate AccountException object b. If
this person in not logged in, it does the following: i. Calls the OnTransactionoccur () method of
the base class with the appropriate arguments. ii. Throws the appropriate AccountException
object. c. If the withdrawal amount is greater than the balance and there is no overdraft facility, it
does the following: i. Calls the OnTransactionoccur () method of the base class with the
appropriate arguments. ii. Throws the appropriate AccountException object. d. Otherwise, it does
the following: i. Calls the OnTransactionoccur () method of the base class with the appropriate
arguments. ii. calls the Deposit() method of the base class with the appropriate arguments (you
will send negative of the amount)
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
4. public override void PrepareMonthlyReport ( ) -this public method override the method of the
base class with the same name. The method does the following: a. Calculate the service charge
by multiplying the number of transactions by the COST_PER_TRANSACTION (how can you
find out the number of transactions?). b. Calculate the interest by multiplying the LowestBalance
by the INTEREST_RATE and then dividing by 12 . c. Update the Balance by adding the interest
and subtracting the service charge. d. Re-initializes the collection transactions (use the Clear ()
method of the list class) This method does not take any parameter, In a real-world application,
the transaction objects would be archived before clearing.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
nor does it display anything
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
SavingAccount class You will implement the SavingAccount Class in Visual Studio. This is a
sub class derived from the Account class and implements the ITransaction interface. Again, there
are two class variables. A short description of the class members is given below: Fields: 1.
COST_PER_TRANSACTION - this is a class variable of type double representing the unit cost
per transaction. All of the objects on this class will have the same value. This class variable is
initialized to 0.05 . 2. INTEREST_RATE - this is a class variable of type double representing the
annual interest rate. All of the objects on this class will have the same value. This class variable
is initialized to 0.015 . Methods: 1. public SavingAccount (double balance =0 ) - This public
10. constructor takes a parameter of type double representing the starting balance of the account. The
constructor does the following: a. It invokes the base constructor with the string "SV-" and its
argument. [It uses the dictionary ACCOUNT_TYPE and the enum AccountType to obtain the
two letter prefix for this account type]
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
VisaAccount class You will implement the VisaAccount Class in Visual Studio. This is a sub
class derived from the Account class and implements ITransaction interface. This class has a
single class variable. A short description of the class members is given below: Fields: 1.
creditLimit - this is a double representing the maximum balance allowable on this account. This
private instance variable is set in the constructor. 2. INTEREST_RATE - this is a class variable
of type double representing the annual interest rate. All of the objects on this class will have the
same value. This class variable is initialized to 0.1995 . Methods: 1. public VisaAccount ( double
balance =0, double creditLimit =1200 ) - This public constructor takes a parameter of type
double representing the starting balance of the account and a double representing the credit limit
of this account. The constructor does the following: a. It invokes the base constructor with the
string "VS-" and the appropriate argument.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
[It uses the dictionary ACCOUNT_TYPE and the enum AccountType to obtain the two letter
prefix for this account type] b. Assigns the argument to the appropriate field 6. public void
DoPayment ( double amount, Person person ) -this public method takes two arguments: a double
representing the amount to be deposited and a person object representing the person do the
transaction. This method does the following: a. Calls the Deposit() method of the base class with
the appropriate arguments. b. Calls the OnTransactionoccur () method of the base class with the
appropriate arguments. i. The second argument TransactionEventArgs needs the name of the
person, the amount and true (success of the operation). 2. public void DoPurchase( double
amount, Person person)-this public method takes two arguments: a double representing the
amount to be withdrawn and a person object representing the person do the transaction. The
method does the following: a. If this person in not associated with this account, it does the
following: i. Calls the OnTransactionoccur () method of the base class with the appropriate
arguments. Read the above Deposit() method for more explanation ii. Throws the appropriate
11. AccountException object b. If this person in not logged in, it does the following: i. Calls the
OnTransactionoccur () method of the base class with the appropriate arguments. ii. Throws the
appropriate AccountException object. c. If the withdrawal amount is greater than the balance and
there is no overdraft facility, it does the following: i. Calls the OnTransactionoccur () method of
the base class with the appropriate arguments. ii. Throws the appropriate AccountException
object. d. Otherwise it does the following: i. Calls the OnTransactionoccur () method of the base
class with the appropriate arguments. ii. calls the Deposit() method of the base class with the
appropriate arguments (you will send negative of the amount) 3. public override void
PrepareMonthlyReport ( )-this public method override the method of the base class with the
same name. The method does the following: a. Calculate the interest by multiplying the
LowestBalance by the InterestRate and then dividing by 12 b. Update the Balance by subtraction
the interest c. Transactions is re-initialized This method does not take any parameter nor does it
display anything
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Bank class You will implement the Bank Class in Visual Studio. This is a static class where all
its members are also static. [All the members of a static class must also be declared static.] A
short description of the class members is given below: Fields: 1. ACCOUNTS - this public
readonly class variable is a dictionary of account. It is initialized at declaration. 2. USERS - this
public readonly class variable is a dictionary of person. It is initialized at declaration. Methods:
1. static Bank( ) - This static constructor contains the following statements to initialize the
USERS and ACCOUNTS collections.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
//initialize the USERS collection //initialize the AcCOUNTS collection AddAccount (new
VisaAccount()); //VS-100000 AddAccount (new VisaAccount (150,500) ); //VS-100001
AddAccount (new SavingAccount(5000)); //SV-100002 AddAccount (new SavingAccount());
//SV-160003 AddAccount (new CheckingAccount (2000)); //CK-100004 AddAccount (new
CheckingAccount(1500, true));//CK-100005 AddAccount (new VisaAccount (50,550) ); //VS-
100006 AddAccount (new SavingAccount(1000)); //SV100007 //associate users with accounts
string number = "VS-100000"; AddUserToAccount (number, "Narendra"); AddUserToAccount
(number, "Ilia"); AdduserToAccount(number, "Mehrdad"); number = "VS-100001";
AddUserToAccount(number, "Vijay"); AddUserToAccount (number, "Arben");
AddUserToAccount (number, "Patrick"); number = "SV-100002"; AddUserToAccount (number,
12. "Yin"); AddUserToAccount (number, "Hao"); AddUserToAccount (number, "Jake"); number =
"SV-100003"; AddUserToAccount (number, "Mayy"); AdduserToAccount (number,
"Nicoletta") number = "CK-100004"; AddUserToAccount (number, "Mehrdad");
AddUserToAccount (number, "Arben"); AddUserToAccount (number, "Yin"); number = "CK-
100005"; AdduserToAccount (number, "Jake"); AdduserToAccount (number, "Nicoletta")
number = "VS-100006"; AddUserToAccount(number, "Ilia");
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
AddUserToAccount(number, "Vijay"); number = "SV-100007" AdduserToAccount (number,
"Patrick"); AddUserToAccount (number, "Hao"); 2. public static void PrintAccounts ( ) -this
public static method displays all the accounts in the ACCOUNTS collection 3. public static void
PrintPersons (-this public static method displays all the persons in the USERS collection 4.
public static Person GetPerson( string name) -this public static method takes a string representing
the name of a person and returns the matching person object. This method does the following: a.
Check if the argument is present in the key of the static collection USERS. b. If the argument is
present the value part of this pair is returned. c. Else the appropriate AccountException object is
thrown This method does not display anything on screen 5. public static Account GetAccount(
string number) - this public static method takes a string representing an account number and
returns the matching account. This method does the following: a. Check if the argument is
present in the key of the static collection ACCOUNTS. b. If the argument is present the value
part of this pair is returned. c. Else the appropriate AccountException object is thrown 6. public
static void AddPerson(string name, string sin) -this method takes two strings and does the
following: a. Creates a Person object with the two arguments. b. Add the static method
LoginHandler() of the Logger class to the Eventhandler field (OnLogin) of the above object. c.
Adds a key-value pair to the USERS collection. The key is the first argument and the value is the
object in Step A respectively. 7. public static void AddAccount (Account account) - this method
takes an account argument and does the following: a. Add the static method TransactionHandler
() of the Logger class to the Eventhandler field (OnTransaction) of the argument. b. Adds a key-
value pair to the ACCOUNTS collection. The key is the Number property of the argument and
the value is the actual argument respectively. 8. public static void AddUserToAccount(string
number, string name) this method takes two string arguments and does the following: a. Locates
the account matching the first argument.
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
13. b. Locates the person matching the second argument. c. Invokes the AddUser() method on the
account object and passing the person object.
Assignment 4 , Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Testing Use the following code in your test harness. Console.WriteLine("nAll acounts:"); Bank.
PrintAccounts(); Console.WriteLine("nA11 Users:"); Bank. PrintPersons(); Person p0, p1, p2,
p3, p4, p5, p6, p7, p8, p9, p10; p= Bank.GetPerson ("Narendra"); p1 = Bank.GetPerson("Ilia");
p2 = Bank.GetPerson ("Mehrdad"); p3 = Bank.GetPerson ("Vijay"); p4 = Bank.GetPerson
("Arben"); p5 = Bank.GetPerson ("Patrick"); p6 = Bank.GetPerson ("Yin"); p7= Bank.GetPerson
("Hao"); p8 = Bank.GetPerson ("Jake"); p9= Bank.GetPerson ("Mayy"); p10 =
Bank.GetPerson("Nicoletta"); po. Login ("123"); p1. Login ("234"); p2. Login ("345"); p3.
Login ("456"); p4. Login("567"); p5. Login("678"); p6. Login("789"); p7. Login ("896"); p10.
Login("234"); p8.Login ("901"); //a visa account VisaAccount a= Bank.GetAccount("VS-
100000") as VisaAccount; a.Pay (1500,p0); a. Purchase (200, p1); a. Purchase (25, p2);
a.Purchase (15,p); a.Purchase (39,p1); a.Pay (480, p0); Console.WriteLine(a); a =
Bank.GetAccount ("VS-106001") as VisaAccount; a.Pay (50,p); a.Purchase (25,p3); a. Purchase
(20,p4); a. Purchase (15, p5); Console, Writeline(a); //a saving account SavingAccount b=
Bank.GetAccount ("SV-100002") as SavingAccount; b.Withdraw (300,p6); b. Withdraw
(32.90,p6); b. Withdraw (50,p7); b. Withdraw (111.11, p8); Console. WriteLine(b); b=
Bank.GetAccount ("SV-106003") as SavingAccount; b.Deposit(300, p3); //ok even though p3 is
not a holder n.k.p. Programming II Page 33 of 42
Assignment 4 , Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
b.Deposit(32.90, p2); b. Deposit( 50,p5); b. Withdraw (111.11,p10); Console.WriteLine(b); //a
checking account CheckingAccount c= Bank.GetAccount("CK-106004") as CheckingAccount;
c.Deposit(33.33, p7); c.Deposit (48.44,p7); c. Withdraw (150,p2); c. Withdraw (200,p4);
c.Withdraw (645, p6); c. Withdraw (350,p6); Console.WriteLine(c); c= Bank.GetAccount ("CK-
100005") as CheckingAccount; c.Deposit(33.33, p8); c.Deposit (40.44,p7); c. Withdraw
(450,p10); c. Withdraw (580, p8); c. Withdraw (645,p10); c. Withdraw (850,p10);
Console.Writeline(c); a= Bank.GetAccount ("VS-100086") as VisaAccount; a.Pay (70, p0); a.
Purchase (2,p3); a. Purchase (10,p1); a.Purchase (15,p1); Console.Writeline(a); b=
Bank.GetAccount ("SV-100007") as SavingAccount; b.Deposit(300, p3); //ok even though p3 is
not a holder b.Deposit (32.90, p2); b. Deposit (50,p5); b. Withdraw (111.11, p7);
Console.WriteLine(b); //The following will cause exception try { n.k.p. Programming Page 34
14. of 42
Assignment 4 , Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
catch (AccountException e) { Console.WriteLine(e.Message); } try { a.Purchase(5825, p4);
//credit limit exceeded 3 catch (AccountException e) {Console.WriteLine(e.Message); } try {
c. Withdraw (1500, p6); //no overdraft } catch (AccountException e)
{Console.WriteLine(e.Message); try { Bank.GetAccount("CK-100018"); //account does not
exist catch (AccountException e) { Console.WriteLine(e.Message); } try {
Bank.GetPerson("Trudeau"); //user does not exist } catch (AccountException e) {
Console.Writeline(e.Message); } //show all transactions foreach(var transaction in Bank.
GetAllTransactions()) Console.WriteLine( transaction); foreach (var keyvaluePair in
Bank.ACCOUNTS) { Account account = keyvaluePair. Value; Console.WriteLine("nBefore
PrepareMonthlyReport()"); Console. Writeline(account); Console. WriteLine(" nAfter
PrepareMonthlyReport ()"); account. PrepareMonthlyReport(); //all transactions are cleared,
balance changes Console. WriteLine(account); } Logger. ShowLoginEvents(); Logger.
ShowTransactionEvents(); n.k.p. Page 35 of 42
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Sample output Use the following code in your test harness. All acounts: [VS-100000, VS-
100000 Narendra Not logged in, Ilia Not logged in, Mehrdad Not logged in $0.00 - transactions
(0) [VS-100001, VS-106001 Vijay Not logged in, Arben Not logged in, Patrick Not logged in
$150.00 - transactions (B) ] [SV-100002, SV-100002 Yin Not logged in, Hao Not logged in,
Jake Not logged in $5,000.00 - transactions () ] [5V-100003, 5V-100003 Mayy Not logged in,
Nicoletta Not logged in $0.00 transactions (0) ] [CK-100004, CK-100004 Mehrdad Not logged
in, Arben Not logged in, Yin Not logged in $2,600.08 - transactions (6)[CK1 [CK-100005, CK-
100005 Jake Not logged in, Nicoletta Not logged in $1,500.00 transactions (b) [VS-100006, VS-
100006 Ilia Not logged in, Vijay Not logged in $50.00 transactions (b) ] [SV-100007, SV-
100007 Patrick Not logged in, Hao Not logged in $1,000.00 transactions (b) ] All Users:
[Narendra, Narendra Not logged in] [Ilia, Ilia Not logged in] [Mehrdad, Mehrdad Not logged in]
[Vijay, Vijay Not logged in] [Arben, Arben Not logged in] [Patrick, Patrick Not logged in] [Yin,
Yin Not logged in] [Hao, Hao Not logged in] [Jake, Jake Not logged in] [Mayy, Mayy Not
logged in] [Nicoletta, Nicoletta Not logged in] VS-100000 Narendra Logged in, Ilia Logged in,
Mehrdad Logged in $1,621.00 transactions (6) VS-100000 $1,500.00 deposited by Narendra on
2021-08-18 05:10 VS-100000 $200.00 withdrawn by Ilia on 2021-08-19 09:11 VS-100000
15. $25.00 withdrawn by Mehrdad on 2021-08-20 01:39 VS-100000 $15.00 withdrawn by Narendra
on 2021-08-22 05:21 V5-100000 $39.00 withdrawn by Ilia on 2021-08-24 18:17 VS-100000
$400.00 deposited by Narendra on 2021-08-25 21:58 VS-100001 Vijay Logged in, Arben
Logged in, Patrick Logged in $590.00 - transactions (4) VS-100001 $500.60 deposited by
Narendra on 2021-08-27 00:39 n.k.p. Programming II Page 36 of 42
Assignment 4 , Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
VS-100001 $25.00 withdrawn by Vijay on 2021-08-28 23:55 VS-100001 $20.00 withdrawn by
Arben on 2021-09-01 09:51 VS-100001 $15.00 withdrawn by Patrick on 2021-09-03 03:46 SV-
100002 Yin Logged in, Hao Logged in, Jake Logged in $4,505.99 - transactions (4) SV-100002
$300.00 withdrawn by Yin on 2021-09-04 20:23 SV-100082 $32.90 withdrawn by Y in on 2021-
09-05 17:11 SV-100002 $50.00 withdrawn by Hao on 2021-09-07 08:54 SV-100002 $111.11
withdrawn by Jake on 2021-09-08 16:16 SV-100803 Mayy Not logged in, Nicoletta Logged in
$271.79 - transactions (4) SV-100003 $300.00 deposited by Vijay on 2021-09-10 18:14 SV-
100003 $32.90 deposited by Mehrdad on 2021-09-12 20:20 SV-100003 $50.00 deposited by
Patrick on 2021-09-13 06:52 SV-100003 $111.11 withdrawn by Nicoletta on 2021-09-15 00:51
CK-100004 Mehrdad Logged in, Arben Logged in, Yin Logged in $728.77 - transactions (6)
CK-100004 $33.33 deposited by Hao on 2021-09-16 10:40 CK-100004 $40.44 deposited by Hao
on 2021-09-18 03:03 CK-100004 $150.00 withdrawn by Mehrdad on 2021-09-20 17:27 CK-
100004 $200.00 withdrawn by Arben on 2021-09-22 19:01 CK-100004 $645.00 withdrawn by
Yin on 2021-09-25 02:44 CK-100004 $350.00 withdrawn by Yin on 2021-09-27 10:29 CK-
100005 Jake Logged in, Nicoletta Logged in - $871.23 - transactions (6) CK-100005 $33.33
deposited by Jake on 2021-09-28 06:51 CK-100005 $40.44 deposited by Hao on 2021-09-29
07:34 CK-100005 $450.00 withdrawn by Nicoletta on 2021-09-30 06:07 CK-100005 $500.00
withdrawn by Jake on 2021-10-01 13:11 CK-100005 $645.00 withdrawn by Nicoletta on 2021-
10-02 12:47 CK-100005 $850.00 withdrawn by Nicoletta on 2021-10-03 21:54 VS-100006 Ilia
Logged in, Vijay Logged in $705.00 - transactions (4) VS-100006 $700.00 deposited by
Narendra on 2021-10-05 15:16 VS-100006 $20.00 withdrawn by Vijay on 2021-10-06 05:47
VS-100006 $10.00 withdrawn by Ilia on 2021-10-07 19:54 VS-100006 $15.00 withdrawn by Ilia
on 2021-10-09 08:31 SV-100007 Patrick Logged in, Hao Logged in $1,271.79 - transactions (4)
SV-100007 $300.00 deposited by Vijay on 2021-10-10 06:31 SV-100007 $32.90 deposited by
Mehrdad on 2021-10-11 13:55 SV-100007 $50.00 deposited by Patrick on 2021-10-12 14:04
SV-100007 $111.11 withdrawn by Hao on 2021-10-13 11:58 Exceptions:
PASSWORD_INCORRECT USER_NOT_LOGGED_IN
NAME_NOT_ASSOCIATED_WITH_ACCOUNT
16. NAME_NOT_ASSOCIATED_WITH_ACCOUNT
NAME_NOT_ASSOCIATED_WITH_ACCOUNT ACCOUNT_DOES_NOT_EXIST
USER_DOES_NOT_EXIST All transactions VS-100000 $1,500.00 deposited by Narendra on
2021-08-18 05:10 VS- 100000$200.0 withdrawn by Ilia on 2021-08-19 69:11 VS-100000 $25.00
withdrawn by Mehrdad on 2021-08-20 01:39 VS-100000 $15.00 withdrawn by Narendra on
2021-08-22 05:21 VS-100000 $39.00 withdrawn by Ilia on 2021-08-24 18:17 VS-100000
$400.00 deposited by Narendra on 2021-08-25 21:58 n.k.p. Programming II Page 37 of 42
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
VS-100001 $500.00 deposited by Narendra on 2021-08-27 00:39 VS-100001 $25.00 withdrawn
by Vijay on 2021-08-28 23:55 VS-100001 $20.00 withdrawn by Arben on 2021-09-01 09:51
VS-100001 $15.00 withdrawn by Patrick on 2021-09-03 03:46 SV-100002 $300.00 withdrawn
by Yin on 2021-09-04 20:23 SV-100002 $32.90 withdrawn by Y in on 2021-09-05 17:11 SV-
100002 $50.00 withdrawn by Hao on 2021-09-07 08:54 SV-100002 $111.11 withdrawn by Jake
on 2021-09-08 16:16 SV-100003 $300.00 deposited by Vijay on 2021-09-10 18:14 SV-100003
$32.90 deposited by Mehrdad on 2021-09-12 20:20 SV-100003 $50.00 deposited by Patrick on
2021-09-13 06:52 SV-100003 $111.11 withdrawn by Nicoletta on 2021-09-15 60:51 CK-100004
$33.33 deposited by Hao on 2021-09-16 10:40 CK-100004 $40.44 deposited by Hao on 2021-
09-18 03:03 CK-100004 $150.00 withdrawn by Mehrdad on 2021-09-20 17:27 CK-100004
$200.00 withdrawn by Arben on 2021-09-22 19:01 CK-100004 $645.00 withdrawn by Yin on
2021-09-25 02:44 CK-100004 $350.00 withdrawn by Yin on 2021-09-27 10:29 CK-100005
$33.33 deposited by Jake on 2021-09-28 06:51 CK-100005 $40.44 deposited by Hao on 2021-
09-29 07:34 CK-100005 $450.00 withdrawn by Nicoletta on 2021-09-30 06:07 CK-10005
$500.00 withdrawn by Jake on 2021-10-01 13:11 CK-100005 $645.00 withdrawn by Nicoletta
on 2021-10-02 12:47 CK-100005 $850.00 withdrawn by Nicoletta on 2021-10-03 21:54 VS-
100006 $700.00 deposited by Narendra on 2021-10-05 15:16 VS-100006 $20.00 withdrawn by
vijay on 2021-10-06 85:47 VS-100006 $10.00 withdrawn by Ilia on 2021-10-07 19:54 VS-
100006 $15.00 withdrawn by Ilia on 2021-10-69 08:31 SV-100007 $300.00 deposited by Vijay
on 2021-10-10 06:31 SV-100007 $32.90 deposited by Mehrdad on 2021-10-11 13:55 SV-
100007 $50.00 deposited by Patrick on 2021-10-12 14:04 SV-100007 $111.11 withdrawn by
Hao on 2021101311:58 Before PreparemonthlyReport () VS-100000 Narendra Logged in, Ilia
Logged in, Mehrdad Logged in $1,621.00 transactions (6) VS-100000 $1,500.00 deposited by
Narendra on 2021-08-18 05:10 VS-100000 $200.60 withdrawn by Ilia on 2021-08-19 09:11 V5-
100000 $25.00 withdrawn by Mehrdad on 2021-08-20 01:39 VS-100000 $15.00 withdrawn by
Narendra on 2021-08-22 05:21 VS-100000 $39.00 withdrawn by Ilia on 2021-08-24 18:17 VS-
17. 100000 $400.00 deposited by Narendra on 2021-08-25 21:58 After PrepareMonthlyReport() VS-
100000 Narendra Logged in, Ilia Logged in, Mehrdad Logged in $1,621.00 transactions (0)
Before PreparemonthlyReport() VS-100001 Vijay Not logged in, Arben Logged in, Patrick
Logged in $590.00 transactions (4) VS-100001 $500.60 deposited by Narendra on 2021-08-27
00:39 VS-100001 $25.00 withdrawn by Vijay on 2021-08-28 23:55 VS-100001 $20.00
withdrawn by Arben on 2021-09-01 09:51 VS-100001 $15.00 withdrawn by Patrick on 2021-09-
03 03:46 After PrepareMonthlyReport() n.k.p. Programming II Page 38 of 42
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
VS-100001 Vijay Not logged in, Arben Logged in, Patrick Logged in $619.92 transactions ( )
Before PrepareMonthlyReport() SV-100002 Yin Logged in, Hao Logged in, Jake Not logged in
$4,505.99 - transactions (4) SV-100002 $300.80 withdrawn by Yin on 2021-09-04 20:23 SV-
100002 $32.90 withdrawn by Y in on 2021-09-05 17:11 SV-100002 $50.00 withdrawn by Hao
on 2021-09-07 08:54 SV-100002 $111.11 withdrawn by Jake on 2021-09-08 16:16 After
PrepareMonthlyReport() SV-100002 Yin Logged in, Hao Logged in, Jake Not logged in
$4,573.38 - transactions (b) Before PreparemonthlyReport() SV-100003 Mayy Not logged in,
Nicoletta Logged in $271.79 - transactions (4) SV-100003 $300.00 deposited by Vijay on
2021-09-10 18:14 SV-100003 $32.90 deposited by Mehrdad on 2021-09-12 20:20 SV-100003
$50.00 deposited by Patrick on 2021-09-13 06:52 SV-100003 $111.11 withdrawn by Nicoletta
on 2021-09-15 00:51 After PrepareMonthlyReport() Before PrepareMonthlyReport() CK-
100004 Mehrdad Logged in, Arben Logged in, Yin Logged in $728.77 - transactions (6) CK-
100004 $33.33 deposited by Hao on 2021-09-16 10:40 CK-100004 $40.44 deposited by Hao on
2021-09-18 03:03 CK-100004 $150.00 withdrawn by Mehrdad on 2021-09-20 17:27 CK-100004
$200.08 withdrawn by Arben on 2021-09-22 19:01 CK-100004 $645.60 withdrawn by Yin on
2021-09-25 02:44 CK-100004 $350.00 withdrawn by Yin on 2021-09-27 10:29 After
PrepareMonthlykeport() CK-100004 Mehrdad Logged in, Arben Logged in, Yin Logged in
$732.11 - transactions (6) Before PreparemonthlyReport() CK-100005 Jake Not logged in,
Nicoletta Logged in $871.23 - transactions (6) CK-100005 $33.33 deposited by Jake on
2021-09-28 06:51 CK-100005 $40.44 deposited by Hao on 2021-09-29 07:34 CK-100005
$450.00 withdrawn by Nicoletta on 2021-09-30 06:07 CK-100005 $500.00 withdrawn by Jake
on 2021-10-01 13:11 CK-100005 $645.08 withdrawn by Nicoletta on 2021-10-02 12:47 CK-
100005 $850.00 withdrawn by Nicoletta on 2021-10-03 21:54 After PrepareMonthlyReport()
CK-100005 Jake Not logged in, Nicoletta Logged in $875.89 - transactions (0) Before
PrepareMonthlyReport() n.k.p. Programming II Page 39 of 42
18. Assignment 4, Uses - Inheritance, Interfaces, Exceptions, EventHandlers, Collections Operator
overloading, hiding, and replacing members, Serialization, Generics, Linq VS-100006 Ilia
Logged in, Vijay Not logged in $705.00 - transactions (4) VS-100006 $700.00 deposited by
Narendra on 2021-10-65 15:16 VS-100006 $20.00 withdrawn by Vijay on 2021-10-06 05:47
VS-100006 $10.00 withdrawn by Ilia on 2021-10-07 19:54 VS-100006 $15,00 withdrawn by Ilia
on 2021-10-09 08:31 After PrepareMonthlyReport() VS-100006 Ilia Logged in, Vijay Not
logged in $714.98 - transactions (0) Before PrepareMonthlyReport() SV-100007 Patrick Logged
in, Hao Logged in $1,271.79 - transactions (4) SV-100007 $300.00 deposited by Vijay on
2021-10-10 06:31 SV-100007 $32.90 deposited by Mehrdad on 2021-10-11 13:55 SV-100007
$50.00 deposited by Patrick on 2021-10-12 14:04 SV-100007 $111.11 withdrawn by Hao on
2021-10-13 11:58 After PrepareMonthlyReport () SV-10007 Patrick Logged in, Hao Logged in
$1,286.59 - transactions (0) Login events as of 2021-10-18 05:02 1 Narendra logged in
successfully on 2021-08-09 21:24 2 Ilia logged in successfully on 2021-08-11 00:02 3 Mehrdad
logged in successfully on 2021-08-12 09:15 4 Vijay logged in successfully on 2021-08-13 05:23
5 Arben logged in successfully on 2621-68-13 15:16 6 Patrick logged in successfully on 2021-
08-14 09:14 7 Yin logged in successfully on 2021-08-14 22:32 8 Hao logged in successfully on
2021-08-15 12:40 9 Nicoletta logged in successfully on 2021-08-15 20:23 10 Jake logged in
successfully on 2021-08-16 16:08 11 Jake logged in unsuccessfully on 2021-10-14 01:59
Transaction events as of 2021-10-18 05:02 1. Narendra deposit $1,500.00 successfully on 2021-
08-17 67:05 2 Ilia deposit $200.00 successfully on 2021-08-18 19:58 3 Mehrdad deposit $25.00
successfully on 2021-08-19 12:26 4 Narendra deposit $15.00 successfully on 2021-08-21 05:58
5 Ilia deposit $39.00 successfully on 2021-08-23 14:17 6 Narendra deposit $480.08 successfully
on 2021-08-25 06:04 7 Narendra deposit $500.00 successfully on 2021-08-26 03:11 8 Vijay
deposit $25.00 successfully on 2021-08-27 16:59 9 Arben deposit $20.00 successfu1ly on 2021-
08-30 05:42 10 Patrick deposit $15.00 successfully on 2021-09-01 22:08 11 Yin deposit $300.00
successfully on 2021-09-04 13:01 12 Yin deposit $32.90 successfully on 2021-09-05 11:14 13
Hao deposit $50.00 successfully on 2021-09-06 07:43 14 Jake deposit $111.11 successfully on
2021-09-07 12:20 15 Vijay deposit $300.00 successfully on 2021-09-09 14:05 16 Mehrdad
deposit $32.90 successfully on 2021-09-11 16:50 17 Patrick deposit $50.00 successfully on
2021-09-13 02:42 18 Nicoletta deposit $111.11 successfully on 2021-09-13 23:30 19 Hao
deposit $33.33 successfully on 2021-09-16 08:38 20 Hao deposit $46.44 successfully on 2021-
09-17 01:40 n.k.p. Programming II
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
21 Mehrdad deposit $150.00 successfully on 2021-09-19 11:17 22 Arben deposit $200.00
19. successfully on 2021-09-22 01:01 23 Yin deposit $645.00 successfully on 2021-09-23 21:42 24
Yin deposit $350.00 successfully on 2021-09-26 04:27 25 Jake deposit $33.33 successfully on
2021-09-27 22:25 26 Hao deposit $40.44 successfully on 2021-09-28 15:46 27 Nicoletta deposit
$450.00 successfully on 2021-09-30 84:37 28 Jake deposit $500.00 successfully on 2021-09-30
17:15 29 Nicoletta deposit $645.00 successfully on 2021-10-02 98:42 30 Nicoletta deposit
$850.00 successfully on 2021-10-02 22:48 31 Narendra deposit $700.00 successfully on 2021-
10-04 20:47 32 Vijay deposit $20.60 successfully on 2021-10-05 21:04 33 Ilia deposit $10.00
successfully on 2021-10-06 23:57 34 Ilia deposit $15.00 successfully on 2021100806:25 35
Vijay deposit $300.00 successfully on 2021-10-09 14:23 36 Mehrdad deposit $32.90
successfully on 2021-10-11 05:38 37 Patrick deposit $50.80 successfully on 2021-10-12 06:37
38 Hao deposit $111.11 successfully on 2021101310:12 39 Vijay deposit $12.50 unsuccessfully
on 2021-10-15 10:24 40 Narendra deposit $12.50 unsuccessfully on 2021-10-16 14:19 41 Arben
deposit $5,825.00 unsuccessfully on 2021-10-17 13:56 42 Yin deposit $1,500.00 unsuccessfully
on 2021-10-18 05:02
Assignment 4, Winter 2022 Uses - Inheritance, Interfaces, Exceptions, EventHandlers,
Collections Operator overloading, hiding, and replacing members, Serialization, Generics, Linq
Appendix Copy the following statements to your Utils class //this class depends of the
implementation of the following types: //DayTime struct and AccountType enum public static
class Utils { static DayTime _time = new DayTime (1_48_00_000); static Random random =
new Random(); public static DayTime Time f get _time += random. Next(1000); } public static
DayTime Now { } get _time +=0; public readonly static Dictionary ACCOUNT_TYPES =
new Dictionary { { AccountType.Checking, "CK" }, { AccountType.Saving, "SV" }, {
AccountType.Visa, "VS"} }; } n.k.p. Programming II Page 42 of 42