辅导案例-ISYS5002
Assignment - Blood Bank Management
ISYS5002 Introduction to Programming
Date Due: 23:59, Friday 5 June 2020
Overview
A Blood Bank is where blood components are gathered as a result of blood donations. Information
about the donor and the blood components needs to be managed. You are to design and write a C#
program to manage blood donors and provide a summary report for a blood bank.
You will use the foundational C# skills you've been developing and apply them to manage and
analyse a small set of Blood Donors. The set of Blood donors are provided in a tabular format as a
text file. This assignment will be an introduction to reading, processing, and grouping rows and
columns to add, update, delete donors and calculate some interesting statistics.
This is a significant assignment worth 30% of your mark.
The Task
You are to write a C# application that can manage donors and provide summary information about
the blood banks information. The data is maintained in a text file. Your program must be able to open
and read the information from the text file. This information will be used to calculate the summary
information. Any additions, updates or deletion of donors and their data will need to be saved to a
file. When saving, thought will need to be given whether you overwrite the existing file or create a new
file.
Managing donors includes:
add a donor
delete a donor
update information about donor
browse records (next/previous)
search for a donor
Summary information needed includes:
the total number of donors
the average age of a donor
the most common blood type
the lest common blood type
the number of donors of each blood type
Data File format
All the data is loaded from a text file. Any changes made should be saved to a text file. Each donor
record will be on its own line with field separated by a comma. Each record will contain the following
information:
first name
last name
date of birth
email
blood group
last donated
The Design
The design of the program, including the GUI, is to be completed by yourself. The following ideas are
just suggestions; you may have other ideas. If you get inspiration from other programs, perhaps via a
google search, please make sure you reference them within the comments in your code.
The data is stored in a text file. How will you load the data? How will you display the loaded data, as
a list box? How will you save the data? It is up to you to think about if the changes are automatically
saved, if you overwrite the existing file or if you provide a save-as functionality.
Think about how you will input the donor's details; will this be a set of label and text boxes. What
about input validation, can you use radio buttons? Is the email formatted correctly? For each donor
management action, you probably will need a button for add, delete, update, etc. When you add a
new donor, what happens if they already have a record? Make sure whatever your implementation is
that the tab order of the input controls makes sense.
Browsing is the ability to move forward and backwards through the donor records. Will this simple
next and previous buttons? Perhaps you can load the file into a list box and allowing the user to scroll
up and down through the list. If using a list box, maybe you can select a record in the list, and it will
populate the input form.
Searching will be limited to any one input field. When you search you, will first sort the records based
on the search field, and then show the first donor record that matches that record. Can you use one
form for both inputs and search, and the user either selects the search or add donor button.
Implementation
The following table can be used as a guide to marks where you can put your effort. It not as simple as
this, you may have the pass level working and some of the credit level or included detailed comments
explaining how to implement the credit level, so may end up with a credit mark. So this is to be used
as a helpful guide!
Pass/Credit Credit Distinction
Open file
Add a donor
Save file
Valid Type
Search
Delete a donor
Report
Valid Dates
Create Backup
Update Donor
Remove duplicates
Valid Email
Validate input file
Don't try to implement the entire program at once. Start small, implement basic functionality and add
as you go. For example, get the pass level working, then try for the credit level.
If you are unable to get the program to do something, then comment out the problem code, add a
comment explaining what you are trying to do. This will maximize your marks. Just make sure your
program compiles without errors!
Evaluation
Your submission will be evaluated to see if your solution correctly implements the described
behaviours. You will have access to some test files we will have other files to test your solution when
grading. All behaviour we test is completely described by the problem specification.
The code submitted must conform to the C# programming style naming conventions guidelines used
through the unit. This includes:
Program/project has a meaningful name
using comments to explain code and design choices
using comments to reference any forums, websites, videos that you used ideas or code snippets
from.
GUI controls have meaningful names
GUI controls use the camel case naming convention
variable and method names are meaningful
variable names use camel case
method names use pascal case
constant are in upper case
program is correctly indented
Submission Guidelines
The assignment is due 23:59 Friday 5th June 2020. You must submit the entire
C# project folder as a single compressed archive file. Submission will be online via the unit's
BlackBoard site.
Academic Integrity
All submissions must comply with Curtin’s Academic Integrity policy.
Refer to the Academic Integrity tab in the Blackboard or see Academic
Integrity site for more information. All submissions must comply with
the requirements of the Copyright Act 1968 and the ’Digital Agenda’
amendments to the Copyright Act.
51作业君 51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: IT_51zuoyejun