CAB301工具开发

CAB301 DATA STRUCTURES AND ALGORITHMS
1
Development of a Software Application for a Tool
Library
Due Date: 24 May 2021
Weighting: 60%
Group or Individual: Individual
In this project you will develop a software application to solve a real-world problem. To
implement this software application, you will need to use some of the data structures and
algorithms covered in this unit, to store, manage and manipulate data. It will be necessary to
design algorithms, to solve the computational problems arising during the development
process, and to analyse the time efficiency of the algorithms.

  1. Information, Operation Processes and Requirements
    You are hired to develop a software system for a not-for-profit tool library. The solution you
    implement will manage the information about the tools, as well as the members of the tool
    library.
    The tool library lends its tools free of charge to people in the community. All the tools in the
    tool library are obtained either from donations or purchased with funds raised by the
    community.
    In the tool library there are nine (9) categories of tools. In each of these nine (9) tools
    categories, there are a few tool types. For example, one of the nine (9) categories is Painting
    Tools. Painting Tools are divided into five (5) types, including Sanding Tools, Brushes,
    Rollers, Paint Removal Tools, and Paint Scrapers. Appendix A shows the details of the nine
    (9) categories and those tool types in each of the tool categories.
    In each of the tool types, there may be multiple tools with different names. For example,
    Irwin 125mm Orbital Sander, Rocket Sanding Block Holder and PowerFit 120 Triangular
    Sander are three Sanding Tools.
    In tool library, there could be multiple tools with the same name. For example, there could be
    five (5) Irwin 125mm Orbital Sanders in the tool library.
    When the tool library receives a tool, staff will register it with the software system. If the tool
    library has already had some tools that have the same name with the tool, the quantity of the
    tool needs to be increased in the software system. If the tool library does not have any tool
    that has the same name with the tool, the name and quantity of the tool received must be
    entered into the software system.
    For a person to borrow any tool from the tool library, they must first become a member of the
    tool library. To obtain membership, the person must provide:
    • Firstname
    • Lastname
    • Contact phone number
    CAB301 DATA STRUCTURES AND ALGORITHMS
    2
    These details must be entered into the software system before the person can obtain
    membership with the tool library, and only then may the person borrow tools from the tool
    library.
    When a member borrows a tool from the tool library, details of this loan must be entered into
    the software system. The tool library has some specific restrictions and policies.
  2. Information about every tool stocked by the tool library is stored together in a
    catalogue. Members may browse this catalogue to find information about each of the
    tools.
  3. A member cannot borrow more than three (3) tools at the same time.
  4. If a member finds a tool in the catalogue they want to borrow, but all of this tool type
    is currently on loan, the member cannot obviously borrow the tool, nor can they
    reserve the tool.
  5. When a member returns a tool or tools to the tool library, the loan record for the
    tool(s) must be removed from the software system. Any other loans the member may
    still have should remain be in the software system.
    The system analysis has already been done, and a high-level object-oriented design has been
    created. Your task is to follow the following iterative and incremental software development
    process to implement the object-oriented design.
  6. Software Development Process and Tasks
    a. Design and implement a class, Tool, which implements the iTool interface to be
    provided. In this software application, each tool is represented by an object of class
    Tool.
    b. Design and implement a class, ToolCollection, which implements the iToolCollection
    interface that has been provided with this assignment specification. In this software
    application, an object of the ToolCollection class is used to store and manipulate a
    collection of Tool objects. This class must use an Array or Arrays to store a
    collection of Tool objects. An object of this class can be used to store a collection of
    tools that are being rented by a member or a collection of tools of a tool type.
    c. Design and implement a class, Member, which implements the iMember interface that
    has been provided with this assignment specification. In this software application,
    each registered member is represented by an object of class Member.
    d. Design and implement a class, MemberCollection, which implements the
    iMemberCollection interface that has been provided with this assignment
    specification. A collection of registered members can be stored in an object of class
    MemberCollection. This class must use a Binary Search Tree as a class member to
    store a collection of Member objects. An object of this class can be used to store all
    those registered members or to store a collection of members who are currently
    renting a particular tool.
    e. Design and implement a class, ToolLibrarySystem, which implements the
    iToolLibrarySystem interface that has been provided with this assignment
    CAB301 DATA STRUCTURES AND ALGORITHMS
    3
    specification. The software uses the implemented methods in the class to implement
    the functionalities of the software system. For example, the system uses the
    implemented method, void add(iTool), in this class to implement the functionality of
    adding a new tool to the system.
    f. Make good use of the above five classes to build a software application for the tool
    library, satisfying the following functional and non-functional requirements:
    • The software application must be a Console Application of Microsoft Visual
    Studio 2019 on Microsoft Windows 10 and the programming language used in the
    software development must be C#.
    • Both the staff and all the registered members can use the software application. The
    software application has a main menu and two sub-menus. The identity of a user
    must be verified in the main menu before he/she can use the system as a registered
    member or a staff member. It is assumed that the username and the password for the
    staff are ‘staff’ and ‘today123’, respectively, and that the username of a registered
    member is the member’s name in one word. For example, if a member’s surname
    and given name are ‘Smith’ and ‘John’, respectively, then the member’s username
    is ‘SmithJohn’. The password is a four-digit integer of the member’s choice.
    • The system should have a staff menu that allows a staff member to do the
    following:
     Add a new tool to the system
     Add new pieces of an existing tool to the system
     Remove some pieces of a tool from the system (the pieces of a tool cannot
    be removed if it is currently not in the tool library)
     Register a member with the system
     Remove a member from the system
     Given the name of a member, find the contact phone number of the
    member
    • The system should have a member menu that allows a registered member to do the
    following:
     Display the information about all the tools of a tool type selected by the
    user. The information includes the name of the tools and the quantity of the
    tools currently in the tool library
     Borrow a tool from the tool library, given the name of the tool, if the tool is
    available in the tool library
     Return a tool to the tool library
     List all the tools that are currently holding by the member
     Display top three most frequently borrowed tools by all the members in the
    descending order by the number of times the tool has been borrowed. The
    display should include the name of the tool and the number of times that
    the tool has been borrowed by now.
    CAB301 DATA STRUCTURES AND ALGORITHMS
    4
    • The main menu and the two sub-menus should look like:
    g. Design a test plan and use the test plan to systematically test the functionality of the
    software system.
    h. Write a technical report, which is structured as follows:
    • Table of contents
    • Introduction – Briefly talk about the project and the software application that you
    have developed
    • Design and Analysis of Algorithms – design an efficient algorithm to solve the
    following computational problem(s) in the software application. Use the
    pseudocode notations introduced in Lecture 1 to describe your algorithm(s) and
    analyse the time efficiency of your algorithm(s).
     Display top three (3) most frequently borrowed tools in the descending
    order by the number of times that a tool has been borrowed.
    CAB301 DATA STRUCTURES AND ALGORITHMS
    5
    • Software Test Plans and Test Results – design a test plan for each of functionality
    testes. In each of the test plan, please include the test scenarios/cases and test data
    for each of the test scenarios/cases. Please also provide your test results for each of
    the test scenarios/cases using screenshots.
  7. Assignment Requirements
    • The software application must be a Console Application of Microsoft Visual Studio
  8. and the programming language must be C#.
    • You must not use any third-party C# class libraries.
    • All the data structures and algorithms used in the software application must be
    covered in this unit.
  9. Submissions
    • Your submission should be a single zip file named by your_student_number.zip and
    comprises of a complete C# Console Application project and a technical report in PDF.
    • Your submission must be submitted via the blackboard. Email submission is not accepted.
    • You may resubmit your assignment as many times as you wish before the deadline. If you
    submit your assignment multiple times, we will only mark the last submission before the
    deadline.
    CAB301 DATA STRUCTURES AND ALGORITHMS
    6
    Appendix A: Tool Categories and Tool Types
    A.1 Tool Categories:
  10. Gardening tools
  11. Flooring tools
  12. Fencing tools
  13. Measuring tools
  14. Cleaning tools
  15. Painting tools
  16. Electronic tools
  17. Electricity tools
  18. Automotive tools
    A.2 Tool Types in Each of the Tool Categories:
  19. Gardening tools
    o Line Trimmers
    o Lawn Mowers
    o Hand Tools
    o Wheelbarrows
    o Garden Power Tools
  20. Flooring Tools
    o Scrapers
    o Floor Lasers
    o Floor Levelling Tools
    o Floor Levelling Materials
    o Floor Hand Tools
    o Tiling Tools
    CAB301 DATA STRUCTURES AND ALGORITHMS
    7
  21. Fencing Tools
    o Hand Tools
    o Electric Fencing
    o Steel Fencing Tools
    o Power Tools
    o Fencing Accessories
  22. Measuring Tools
    o Distance Tools
    o Laser Measurer
    o Measuring Jugs
    o Temperature & Humidity Tools
    o Levelling Tools
    o Markers
  23. Cleaning Tools
    o Draining
    o Car Cleaning
    o Vacuum
    o Pressure Cleaners
    o Pool Cleaning
    o Floor Cleaning
  24. Painting Tools
    o Sanding Tools
    o Brushes
    o Rollers
    o Paint Removal Tools
    o Paint Scrapers
    o Sprayers
    CAB301 DATA STRUCTURES AND ALGORITHMS
    8
  25. Electronic Tools
    o Voltage Tester
    o Oscilloscopes
    o Thermal Imaging
    o Data Test Tool
    o Insulation Testers
  26. Electricity Tools
    o Test Equipment
    o Safety Equipment
    o Basic Hand tools
    o Circuit Protection
    o Cable Tools
  27. Automotive Tools
    o Jacks
    o Air Compressors
    o Battery Chargers

你可能感兴趣的:(前端)