联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2020-04-15 10:23

COMP08034 Structures & Algorithms – Coursework


Session 2019-20


This coursework can be carried out either individually or in pairs. Submission should be via Moodle. You are to implement a dynamic data structure to maintain details of current projects for an IT company.


You are advised to develop the program one step at a time and keep a copy of the version for each step which should then be included in your submission. In addition to the marks at each step, there are 25 marks for documentation, programming style, testing and an individual report.


Your individual report should justify your choice of data structure and testing of the system. You should discuss any difficulties you encountered and any parts of your solution that are not working correctly.


A computer company which has many projects being undertaken at any one time would like a system to hold information on all the current projects as well as details of the employees working on each project. An employee only works on a single project at a time.


The data to be stored for each project is:

Project Titlee.g. Web site creation

Expected start/end datese.g. 01/01/20 – 31/05/20


The data to be stored for each project team member is:

Namee.g. Joe Bloggs

Employee Numbere.g. 999999

Divisione.g. Web Development


The features required by the Company include:

?Add details of a new project

?Add details of a new member of a specified project

?Display the details for a specific project

?Display all the details for all the projects

?Remove a particular employee from a specified project

?Remove a project from the system



Step 1: Functionality is worth 25 marks

?create a Company class with suitable attributes to represent each project as well as a link to each project.

?Using an appropriate dynamic data structure, write a CompanyTest class that offers a simple menu to add a new project, find and display a specific project, remove a specific project and to display the details of all the projects currently being carried out by the company in alphabetical order of project title;

?Use appropriate exception handling.


Step 2: Functionality is worth 15 marks

?Create a TeamMember class with suitable attributes;

?Using an appropriate dynamic data structure, different from the one used above, write a TeamMemberTest class that offers a simple menu to add a new team member, find and display a specific team member, remove a specific team member and to display the details of all the team members;


Step 3: Functionality is worth 35 marks

?Combine the two structures above modifying the necessary methods so that the resulting data structure is a binary search tree; You will need:

oAn addProject method that adds projects to the structure;

oan addTeamMember method that interacts with the user to select a project to add the project team member details to;

oa removeTeamMember method to remove a specific team member from the system if they are no longer a member of the team;

oa removeProject method to remove a project from the system;

oa displayTeamMembers method which interacts with the user to select the project to display and which then displays all the team members for that project;

oa displayAll method to display the information on all data for the projects including all the team member info, in alphabetical order of project;

?provide a method to display the number of members in each project team.

?add JUnit classes that test your solution.

Submission


Due Date: Friday 17th April 2020 @ 10pm


Upload your work via Moodle

?create a folder based on your banner id e.g. B00123456. If the coursework is done in pairs, then include both banner ids.

?copy ALL the projects for the different versions of the program into this folder as well as your report

?create a compressed zip version of this folder

oin Windows Explorer, select the folder with the right button then select Send To then Compressed (zip) Folder

?select the Coursework Submission link in the Coursework tab on Moodle and follow the instructions to upload the zip file


Marking Scheme


Source code must compile to qualify for marks (Except items under “Individual Report”)

Max

Step 1

add Projects to chosen dynamic structure5

  checks if project already exists & displays suitable message2

find a particular project & display info3

  suitable message if project not found1

remove project from structure3

display all projects in alphabetical order3

 suitable indentation / formatting2

 suitable message if no projects in the system1

Error handling for user input in all menu options1

exception handling2

Confirmation quit message when choose quit option 1

invalid message if invalid menu option 1

Step 2

add project team members to chosen dynamic structure3

  checks if team member already exists2

 suitable message if team member already in the system1

find a particular team member & display info2

  suitable message if team member not found1

remove team member from structure3

display all team members2

 suitable message if no team members in the system1

Step 3

combine the two structures  so that the resulting data structure is a binary search tree3

add projects to the structure2

  display project added message1

add project team members3

 when select a Project

   detects no match for Project1

   suitable message displayed1

   only ask for team member information if project ok1

  displays team member added message1

deletes team member3

 displays team member removed message1

deletes a project2

displays project removed message1

display

   displays team member details for a specific Project2

display all the project and team member details in alphabetical order of project 3

   layout as required2

provide a method to display the number of team members assigned to each project3

Add JUnit classes to that test the solution5

Style & report

code layout/indentation2

meaningful names2

appropriate use of public/private1

appropriate use of static identifier1

appropriate override of Object methods1

use of this to identify object components1

adherence to structured programming1

Source code in GitHub repository2

Evidence of use of the GitHub repository2

Solution design follows Model-View-Controller Pattern.4

Individual report including testing & reflective assessment of work8


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp