Submit online by midnight, 9th of June 2019.
20% of your final grade; deduct 1 mark per day late
Problem to solve:
Design a player club – signing application
Create an application to act as a player management system. You should create classes to model a Rugby Union, players and teams. The system should store the following information about each player – ID number (unique), name, birth date, height, weight, place of Birth and the team they are signed in. The system should also store the following information about each team – name (unique), ground, coach, founded year, region and a list of players enrolled in the team.
The application should store a collection of players and the team the player signed in, it should also have the functionality to add a new player and a new team to the system, and sign a player to a team. A separate form should be used to perform each of these functions.
The application should be able to display a list of all the players, a list of all the teams, allow the user to select a player and display the team that player is signed in and allow the user to select a team and display all of the players signed with it.
Your application should also have the functionality to write information about players and teams to a file and read those information from a file. It should include a Menu and use a dialog box that allows the user to select a file to open or save to (.txt files only). A user should be able to upload all the saved data into the application and append the data if necessary to what is already in the application. If data is being appended, then your application must verify that duplicate entries are not loaded into the application.
The application should also include functionality to search for players by age and place of born. If the user searches for a specific age or place of born, the list of players should be displayed.
Also, you need to include a chart in your application that plots all the players’ height and weight.
Implementing the following functionality will result in 1 bonus mark which can make up for any other parts in your assignment where you might have lost marks:
Include a chart that plots a histogram of age group, displaying the number of occurrences of each age group.
Your application will be marked on functionality and the usage of good software engineering principles discussed in class. You also need to provide a user friendly user manual.
Functionality (11.5 marks)
– Able to load the list of all players and the list of all the teams (1 marks)
– Able to save the list of all players and the list of all the teams (1 marks)
– Able to save the list of all players and the teams the players signed to (1 mark).
– Able to save the list of all teams and all the signed players with the team (1 mark).
– Proper display of the list of all players and the list of all the teams (1 mark)
– Able to select a player and, subsequently, a proper display of the team that the player is signed to (1 mark), and
– Able to select a team and, subsequently, a proper display of all players signed with the team (1 mark).
– Proper display of the chart that plots all the players’ height and weight (1 mark).
– Search by age and appropriate display information of all the players who are that age (1 mark).
– Search by place of born and appropriate display information of all the players who were born in that place (1 mark).
– Your application must verify that duplicate entry is not loaded into the application (1.5 marks).
Programming Approach (2 marks)
– Appropriate decoupling of the presentation layer from the business logics. In particular, the application should be designed using the following architectural approach
o the use of a Class Library Project to develop classes that encapsulate the necessary classes, including the necessary business logics, and
o a Windows Forms Project that creates the UI and uses the class library project containing all the business logic by referencing it.
Proper Error Handling Mechanisms (3 marks)
The error handling mechanisms that have been taught in the class, including if/else statements, throw statements, and try/ catch/finally statements must be used appropriately.
* Deduct 1 mark for each inappropriate entry allowed. e.g. allow user enter letters into Date of Birth… * Deduct 2 mark for each exception throw.
Documentation (3 marks)
– Provide a clear and helpful user manual including screenshots and instructions on how to use your software in a
word document (2 mark).
– Inclusion of comments to explain code blocks (1 mark).
Other Good Coding Practices (0.5 marks)
– Variables and function names must be named appropriately following the naming conventions discussed in class.
– Looping and conditional statements must follow conventional and best-practice principles.
– Variable scope, span, and live-time minimization.
– All code duplication must be eliminated.
– The use of appropriate line spacing and indentation to improve code readability.
– A given function should perform only a single task.
– All dead code such as unimplemented functions should be deleted.
Bonus (1 mark)
– Include a chart that plots a histogram of age group, displaying the number of occurrences of each age group.
Code that does not compile will receive zero marks.
Hand-in: Submit your program (that includes ALL your files such as .sln) via stream in a zip file.
If you have any questions or concerns about this assignment, please ask the lecturer well in advance.