Waiting for answer This question has not been answered yet. You can hire a professional tutor to get the answer.


USE C# do project Scenario Overview An area library is considering letting patrons checkout electronic devices such as tablets.

USE C# do project

Scenario Overview

An area library is considering letting patrons checkout electronic devices such as tablets. It is therefore commissioning a prototype of a device management and checkout system by a group of talented CIS programmers studying object-oriented design!

At the start, the library would like to start building a basic list of devices they have in stock. Having a prototype would give them the ability to see both possibilities and shortcomings, refine their own requirements and expectations, and then go to a software development consultant. In their basic prototype, the library would like a demonstration of a simple system which allow maintenance of device information.

Following are the general specifications of what the library wants. While there are some specifics provided, the library leaves the nitty-gritty implementation details in the good hands of its capable programming team.

The library maintains a list of electronic devices. Each device has a Stock Keeping Unit (SKU) code, which is an alphanumeric code up to 6 letters in length. Each device also has a name.

The library would like to keep track of whether each device is available or not. Devices are checked out already are considered "not available", whereas devices that are "available" can be checked out.

Since the library is commissioning an object-oriented prototype, they would really like objects to model Devices. Each device should have inside it all the attributes, which need to be tracked.

The library has heard arrays are a good way to store a series of logically related objects although they dont know much about them. They hope that their talented designers will come up with some sophisticated design that would be reusable and extensible in the years to come!

For its management purposes, the library would like the following. A main menu should present the user with options. Users should be able to see a list of devices, add a new device, edit an existing device, search for a device by name, and check out a device. The main menu should ask which option the user would like to select and perform that action. After completion, the user should be brought back to the main menu. The main menu should also allow users to cleanly exit the application. Also, needless to say, the library would prefer if its application did not crash - ever. If the system goes down, it might take down other systems with it and the library cannot afford to have no way to check out material! That would be a bad result for the development team.

Sample Output - Video Demo

Feature overview: https://youtu.be/XgY0K95LKQw

Error-handling and robustness overview: https://youtu.be/kGpQFEjc3lE

Suggested Sequence of Activities

 use your Device class as one of the first things you do.

 Once you have your Device class, you can then use array of devices in an external class.

 Once you have successfully created the array,use method to load sample data, i.e. create data for 5 sample devices and store it in the array

 Then start working through each feature - displaying devices, adding devices, etc.

 Your goal should be to do iterative development such that you are always adding more features to a program that is running. Each iteration of your project works but each successive iteration has something new that is added to it.

 Look at your code again after it is working and take out all redundant and duplicate code - create reusable classes and methods.  Finally, clean up variable and method names, comment code properly and make the code look clean and readable!

An excellent, "A" application:

 Is fully functional o Displays a list of devices including their SKU, name, availability

 Columns are properly formatted o Allows adding a new device  Will not allow adding a new device if the array is full. o Allows editing of existing devices o Searches for devices by name.

 Case insensitive searches for any part of the name matching o Allows checking out of devices o Allow clean exits

 Is robust; does not crash and is able to recover from bad input or other logical errors  Has excellent commenting and source code standards

 Functionality is distributed across various methods o Methods are focused and do primarily one main thing  Code is largely concise and non-redundant.

 Program is well done in an object-oriented fashion o Very little use, if any, of static variables and methods o Uses primarily instance variables and methods o Main has very little code in it o Adheres to principles of encapsulation by making members private and offering access to them through specified public properties and methods o Has methods and classes that will be reusable in future projects i.e. they are structured generically and all configuration happens through specifying parameters or properties

Show more
Ask a Question