Write a text-based accounting program for recording

Post New Homework

CP50065E Functional Programming - University of West London

Learning outcome 1: Understand the functional model in which a program is a set of nested expressions.
Learning outcome 2: Design recursive functions using base and recursive cases.
Learning outcome 3: Understand the main features of a lazy functional language.
Learning outcome 4: Write, understand and analyse functional programs in Haskell.

Title Accounting program
Task details The purpose of this assignment is to apply knowledge gained throughout the module to a design and development project. To this end, implement a small program and write a short report about your implementation:

Accounting program
Write a text-based accounting program for recording transactions to and from an account. A transaction is either a cash withdrawal, a cash deposit, a transfer (to another account) or a receipt, and consists of the transaction value (in Pound Sterling, Dollar, or Euro), a reference field (for recording the purpose), and, if applicable, the sender/receiver account number. The program should have the following features:
Users will be able to deposit and withdraw an amount in cash. The account is in Pound Sterling, but transactions can be either in Pound Sterling, Dollar, or Euros, and should be recorded as such.

The program will have preset exchange rates for Pound Sterling, Dollar and Euro, but the user can change these between transactions.

Transactions can be cancelled. Upon cancellation, the original transaction is kept in the ledger but marked as reversed. And an additional correctional transaction be lodged. (For example, a user deposits 100 Pound Sterling in transaction A. Later, this transaction is cancelled.
Transaction A is then marked as reversed, and a correctional transaction A' is made, withdrawing 100 Pound Sterling.)

Users will further be able to list all transactions and all transaction data, optionally filtered by transaction type (deposit, withdrawal, transfer, receipt) or currency (Pound Sterling, Dollar or Euro), and/or sorted by value, or sender/receiver number.

Users will also be able to search transactions by sender/receiver account number.

Last but not least, users will be able to query the total current account balance and the average transaction value.

The program should have explanatory text as necessary and handle input errors etc. gracefully.

Implement application features in a command processing style. For example, depositing and withdrawing amounts might be recorded via commands such as
receive 100 pound "tax refund" 1234567890
for logging the receipt of 100 Pound Sterling from account no. 1234567890,
withdraw 100 dollar "pocket money" for logging the withdrawal of 100 Dollars, search 1234567890
for listing all transactions to and from account no. 1234567890,
list
to see all transactions, or
list filter "deposit+dollar"
for listing all deposits in dollar.

Report
Write a short report (less than 500 words). The report needs to include eight screenshots showing main application functions (withdraw, deposit, transfer, receive, list, search, cancel, set exchange rate), and detail how functional programming concepts were applied.
The report should also include a brief overall reflection of what went well, what did not go well, and what you would do differently if you were given a similar task in the future.

Attachment:- Functional Programming.rar

Post New Homework
Captcha

Looking tutor’s service for getting help in UK studies or college assignments? Order Now