CSSE1001 Supplementary Programming Exercise

CSSE1001 Supplementary Programming Exercise
Create a simple banking application with a graphical user interface (GUI) for a banking system.
The GUI is to be written from the perspective that the user is an employee of the bank (e.g. a teller).
A bank has private customers who can have regular transaction bank accounts. The bank also
has business customers who can have business bank accounts. The bank needs to keep track
of customers via their name, address, phone numbers, email address and id. The bank also
needs to know the registered and trading names of business customers, as well as the details
of the contact person for a business customer. Private customers may have joint transaction
accounts (i.e. two or more customers share access to a single transaction account.)
There are three types of transaction accounts: Savings, Bonus Savings and Overdraft. All
accounts maintain record of their current balance and their interest rate. The interest rate is
the same for all accounts of a particular type (i.e. all savings accounts will have the same
interest rate). It is possible to query an account for its current balance as well as perform debit
and credit operations on the account. Accounts can also calculate interest due to the account
and update their balance.
Savings accounts cannot have a negative balance. When a customer debits their account a

CSSE1001留学生作业代做、代写Programming课程作业
fee of $1 is charged to their account, on top of the amount debited.
Bonus savings accounts also cannot have a negative balance. There is no fee for debiting a
bonus savings account, but if the account is debited within a month then no interest is earnt
on the account. The bonus savings account will need to manage this behaviour. There will
need to be a method that resets this debit counter to zero. When calculating interest a bonus
savings account will earn an extra 1%.
Overdraft accounts may have a negative balance, up to a specified limit. Each customer may
have a different limit. There are no fees for debiting an overdraft account. If the account
balance is negative, calculate interest will deduct the calculated interest amount from the
account, otherwise it will add the interest to the account. The interest rate charged when the
balance is negative may be different to the interest rate paid to the account when it is in
credit.
A business bank account has the same rules as an overdraft account, except that there is a
fee for each type of withdrawal transaction. Transferring money between accounts is charged
$1. Withdrawing cash from an ATM is charged $2. Withdrawing cash from a bank teller is
charged $5. Writing a cheque is charged $10.
The application needs to allow the user to create both private and business customers with
their appropriate details. Business customers need to have at least one contact person, who
would also be a customer of the bank. When accounts are created, they need to be assigned
one or more customers as the account owners. Accounts must be given an initial balance
when created.
The application needs to allow the user to select a customer by their id and see all their
accounts. This view should show each account’s balance and overdraft limit, if the account
has one. The user can select one of the accounts to either deposit money into the account or
withdraw money from the account.
When withdrawing money from an account the application needs to display a message to the
user to inform them if they are unable to withdraw money due to having insufficient funds in
the account balance. The GUI also needs to inform the user if they are overdrawing an
account.
All the customer and account data needs to be saved to a file between executions of the
program. This should be a file in the same directory as the program executable. The data from
the file should be loaded when the program starts and saved before the program exits. You
may also add features to save or reload the data from a menu.
The program needs to be well documented with comments that describe each class and
method, and any complex logic in the code.
The program is to be submitted by email to [email protected] by 6pm on Friday,
October 11, 2019. Late submissions will not be marked. The submission should be a ZIP file
that contains your source code and sample data file. An interview may be required as part of
the assessment process. Interviews will be conducted at the Saint Lucia campus in the week
of October 14 to 18.
You must implement this program in Python, using the TkInter library for the GUI. Your
submission must demonstrate sound knowledge of object-oriented principles and good
programming practice. You need to demonstrate that you have met all the learning objectives
for CSSE1001. You will not be given a mark for this exercise, only whether it is achieves a
passing result or not. The program must achieve all the criteria listed below.
Criteria
? The program correctly implements the logic described above and has very few, minor
logical errors.
? Algorithmic logic is appropriate and not more complicated than required.
? Code is well structured, well commented, easy to read, and clearly expresses its logic.
? All functions, methods and classes have correct and informative docstrings.
? Classes provide a good clear structure for the design.
? Each class encapsulates a single conceptual idea.
? Dependencies between classes are as minimal as is possible.
? Inheritance and polymorphism have been used to provide a design structure that makes
it easy to add new features to the program.
? Program design clearly separates the underlying logic from the user interface (e.g. using
an MVC design structure).
? GUI components from the TkInter library are used appropriately to provide the user
interface.

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:[email protected]

微信:codehelp

原文地址:https://www.cnblogs.com/clga/p/11604311.html

时间: 2024-11-05 23:37:14

CSSE1001 Supplementary Programming Exercise的相关文章

斯坦福大学机器学习公开课---Programming Exercise 1: Linear Regression

斯坦福大学机器学习公开课---Programming Exercise 1: Linear Regression 1  Linear regression with one variable In thispart of this exercise, you will implement linear regression with one variableto predict profits for a food truck. Suppose you are the CEO of a rest

斯坦福大学机器学习公开课:Programming Exercise 2: Logistic Regression

斯坦福大学机器学习公开课:Programming Exercise 2: Logistic Regression---Matlab实现 1 Logistic Regression In this part of the exercise, I will build a logistic regression model to predict whether a student gets admitted into a university. You want to determine each

第二周:神经网络的编程基础----------2、编程作业常见问题与答案(Programming Assignment FAQ)

Please note that when you are working on the programming exercise you will find comments that say "# GRADED FUNCTION: functionName". Do not edit that comment. The function in that code block will be graded. 1) What is a Jupyter notebook? A Jupyt

第四周:Deep Neural Networks(深层神经网络)----------2.Programming Assignments: Building your Deep Neural Network: Step by Step

Building your Deep Neural Network: Step by Step Welcome to your third programming exercise of the deep learning specialization. You will implement all the building blocks of a neural network and use these building blocks in the next assignment to bui

课程一,第四周(Deep Neural Networks) —— 2.Programming Assignments: Deep Neural Network - Application

Deep Neural Network - Application Congratulations! Welcome to the fourth programming exercise of the deep learning specialization. You will now use everything you have learned to build a deep neural network that classifies cat vs. non-cat images. In

代写C语言 IGRAPHICS GAME PROGRAMMING 作业和实验

IGRAPHICS GAME PROGRAMMING EXERCISEA major high street bank has commissioned you to write agraphical game to entertain their customers while they waitto see a personal banker at one of their busy branches. Thepremise of the game is to be based on sim

ELEC0021 Programming

ELEC0021 Programming II 2018-19 Prof. G. Pavlou1PROGRAMMING ASSIGNMENT 2Ordered Linked ListIn this programming exercise you are going to design, implement and test an ordered linkedlist based on the generic List class introduced in the notes. The pur

现代编译原理--第零章(含代码)

<现代编译原理>,俗称,虎书.因为这本书对实践的要求比较高,所以选择了这本书来作为编译原理的学习书籍,想一步一步的记录下来,最终完成一个完整的编译器.但是,一个人看书总是感觉很孤独.今天看第一章的题目,看完了都不知道要干什么.无奈找了一本中文版的,翻译的也不如人意,还不如看英文的.最后去晚上找了半天才找到别人写的第一章作业运行后,才知道要实现什么功能.然后自己徒手开始写,居然没有逻辑bug的就完了.呵呵.突然感觉网上的资料太少,所以写这一个系列的文章也想把志同道合的聚集起来,大家一起来讨论虎书

【MATLAB】Machine Learning (Coursera Courses Outline &amp; Schedule)

课程涉及技术: 梯度下降.线性回归.监督/非监督学习.分类/逻辑回归.正则化.神经网络.梯度检验/数值计算.模型选择/诊断.学习曲线.评估度量.SVM.K-Means聚类.PCA.Map Reduce & Data Parallelism 等- 课程涉及应用: 邮件分类.肿瘤诊断.手写识别.自动驾驶.模型优化.OCR等- Coursera machine learning course materials, including problem sets and my solutions (usi