c++ project help

profileibrahim93
project_v3.pdf

1 ECET 455: Object – Oriented Programming | Semester: Fall Academic Year: 2013-2014

ECET-455: Object Oriented Programming Semester: Fall – 2013-2014

Release Date: 25/11/2013 Hand in Date: see below

Introduction

This project assesses your ability to carry out various software development activities in order to develop an engineered solution to a given problem. This involves identifying the requirements, writing a specification, designing, testing and evaluating a solution. The process has several stages and some investigation is required so you should plan the work carefully. Working successfully as a team is a key requirement for working in industry, and for this project you will be working in a group of 2. Your lecturers will act as the client for the software development project, and you will need to elicit detailed information from them at appropriate times. The client’s initial outline of the requirements appears later in this document. You must develop the solution to the assignment mainly in your own time, however, some of the office hours will be set aside to enable you to seek clarification, elicit more details from the client, and receive feedback on your work. In keeping with the practical industrial scenario, there will be milestones set for deliverable components of the project; the difference in this case is that rather than the company takes a substantial financial penalty for a missed milestone, you will be penalized with a percentage reduction of your assignment mark. The stages of the project are as follows:

1. System Analysis (collecting and understanding user requirements)

2. System Design (logical design of your program: defining classes, defining objects interaction, defining files for permanent storage, designing user interface screens)

3. System Implementation (code)

4. System Testing

There are no visual elements to the program. The entire program runs using a console window. All output will be text based and directed towards the console window. Do not diverge from the project specification. If you do not conform to the project

specification then you will lose marks. If you do want to make some addition to the project, and you are unsure whether the change will break the specification then check with your instructor first. The format of the program output is given in the specification. You must adhere to this format. Some example output will be provided. You can therefore test your output against

2 ECET 455: Object – Oriented Programming | Semester: Fall Academic Year: 2013-2014

the expected output.

Plagiarism  You will be held responsible if someone copies your work - unless you can

demonstrate that have taken reasonable precautions against copying.

Learning Outcomes  Make an informed choice of implementation method for a given problem, implement

and document a structured program to meet a given specification

 Select and apply appropriate data algorithms to a given problem.

 Implement Object-Oriented programming skills acquired through the course, and apply them to a real-life project.

Project Files This project has one associated file:

 There is a style guide. The style guide can be found inside the module page on Moodle. The file is called "style guide.doc".

Deliverables

 The overall structure of the project which will later be the first part of your report. (Stages 1 and 2, Uploaded to Moodle)

 List of the classes and their data members and member functions that your team is planning to use showing a brief description (what functions are expected to do) and the name of the team member that will be implementing it.

 For extra marks, a flow chart of the program behavior should be presented. You can show the interactions between your classes using Data Flow Diagrams. You can read about these diagrams online.

 At this stage, there is no code required, just high level description of how you will approach the problem. This part is equally as important as the Code. Feedback will be given before starting the next part.

Saturday 7 th

December 2013 – 10pm

 A .zip file containing the whole project folder zipped. The project must be set up to run in Visual Studio 2010 or higher. (Stages 3 and 4, Uploaded to Moodle)

Sunday 5 th

January 2014 – 4pm

 The full report about your program (soft copy to be uploaded to Moodle)

Sunday 5 th

January 2014 – 4pm

 Poster (bonus marks)

Week 13

3 ECET 455: Object – Oriented Programming | Semester: Fall Academic Year: 2013-2014

Project Summary

Full Description

You are to design the software to operate an Automated Teller Machine (ATM), emphasizing Object Oriented design for the data structures needed to realize the system. The ATM will be console based (no graphics/windows required), menu-based, and a typical session will guide the user through the various options at any stage in an ATM transaction. Users should be able to check their balance, deduct amounts from their balance (withdraw), and add to their balance (deposit), by navigating menu options and entering text. Initial user records should be retrieved from a binary file. Final user account information should be written to a binary file for permanent storage. The system should prevent the user from doing impossible things (like deducting amounts bigger than their available balance or deducting amounts bigger than the ATM’s balance) and should allow the user to enter a “cancel” option (this can be a defined value like -1) at any stage. Extra bonus: the ATM should maintain its own supply of cash in various currency notes, so that it provides the user with least possible notes/best combination of notes. The ATM should also print an error if there is not enough currency of the right kind in the machine to handle a request.

Requirements

The welcome screen should show these options:

1. User select/login. 2. Admin login. 3. Close the system.

I. User Login should do the following:

1. Ask for a client number/pin and validate it. 2. Retrieve account info for that user. 3. Display a Transaction Menu:

a. Deposit b. Withdraw c. Balance Inquiry d. Transfer e. Logout (goes back to welcome screen)

 Deposit Option asks the user for: 1. Amount to deposit (and validates it). 2. Adds this to account then returns to Transaction Menu. 3. [Bonus: updates bank notes/in ATM]

 Withdrawal Option asks the user for: 1. Amount to withdraw (and validates it). 2. Withdraw this from account then returns to Transaction Menu. 3. [Bonus: updates bank notes/in ATM]

 Balance Inquiry:

4 ECET 455: Object – Oriented Programming | Semester: Fall Academic Year: 2013-2014

1. Displays balance info on the screen for logged User 2. Goes back to Transaction Menu

 Transfer: 1. Asks the logged User to enter the destination account 2. Asks the logged User for the amount to send 3. Checks the availability of the amount 4. Execute the transfer or displays error message 5. Goes back to Transaction Menu

II. Admin Login should do the following:

1. Check all bank notes in the ATM. 2. Add currency notes of any kind (20KD, 10KD, 5KD) to the ATM. 3. Create User Accounts 4. Delete User Accounts 5. Display any User Account information 6. Logout

Report

 You need to write a report about the program. The report must be succinct and to the point. The report is not a story. The report is not a chronological record of the process of development. The maximum size of the report is 4 pages.

 The report will describe:

 Stages 1 and 2 in which the system analysis and the system design were conducted. This part may include the system requirements, diagrams, charts, etc.

 Stages 3 and 4, i.e. parts completed in your implementation of the program, and any testing techniques used before delivering the final version of your program. The testing strategy should perform all of the possible sensible tests with your code, i.e. extreme cases and worst-case scenarios.

Code Style and Layout

 Your code needs to adhere to the style guide.

 The style guide can be found inside the module page on Moodle.

5 ECET 455: Object – Oriented Programming | Semester: Fall Academic Year: 2013-2014

Overview of the marking scheme for the program

Overall Project Weight: 15% of Total Grade

Bare pass mark (60%)

Designing the basic features, no special features

Pass mark (70%)

Implementation of the full scenario with errors (basic scenario should be working)

B classification (80%) Implementation of the full scenario without errors

A classification (90%)  Implementation of the full scenario.

 Enhanced options: 1. Currency notes management 2. Other innovative add-ons.

6 ECET 455: Object – Oriented Programming | Semester: Fall Academic Year: 2013-2014

Marking scheme

D Available marks Result Comments

Basic scenario

50 /50

C Result

Full scenario but with significant errors or elements missing.

10 / 10

B Result

Full scenario without errors

10 / 10

A Result

Full scenario without errors with enhanced options

10 / 10

Report Result

Quality

10 /10

Code Style and layout Result

Conformance to the style guide. Use of good code layout.

10 / 10

Overall mark

Comments

If you lose marks for any reason then this will be stated here.