Project 0 - Summer Camp

Inputs: child info (age, name, gender), counselor info (age, name, gender), camp info (location, days open), barracks info (max occupancy, name, location), number of kids eating at cafeteria, number of kids participating in activity. CounselorTeams for activities, field location, river location

Outputs: canoes needed, canoes available(Boolean), number in campgroup that have beds, days until camp is closed, winner of baseball game, children in camp group are of the correct age(Boolean), vacancy in cafeteria, whether the tables are clean, how many are boarded in the barracks, average age of counselors in the team. Whether the counselors in a team are the same sex, ratio of counselors age to experience, whether a child is boarded, number of years until 18th birthday, cooking time for a meal

Assumptions: days passed given by user <= daysOpen, user gives good data, 4 kids for each canoe, 30 sec cooking time for each diner, winner of baseball game randomly decided, 1 child takes up one bed, one child eats one meal

Constraints: occupancy of cafeteria = 100, 3 counselors per team. 5 children per campgroup, child can only have one gender (m or f), age of child < 18, age and experience for counselors > 0

Relationships:

SummerCamp has Cafeteria, Barracks, 2 CampGroups, 1 CounselorTeam, 2 Activities.

Activity has a CounselorTeam

BaseballActivity and CanoeActiviy extend activity

Cafeteria has meal and Table

CampGroup has CounselorTeam and 5 children

CounselorTeam has 3 counselors

Invariants: daysUntilClose <= daysOpen, seats available in cafeteria >= 0, numberBoard is < 6 and >= 0

Pre Conditions: both baseball teams arent the same, number of participants in start canoe activity >= 0, vacancy must be assigned to cafeteria to calculate seatsAvailable Vacancy > 0 in order to addDiner, child is less than 18, vacancy for barracks > 0 for assignBed, ages of counselors must be >= 0, numberOfKids for cookingTime > 0, table must be clean to call useTable, table must be dirty to call cleanTable

Post Conditions: yearsUntil18 < 18 and > 0, number boarded <= occupancy, aveAge > lowest age and < highest age, end activity returns properties to null, age:ex ratio > 0, cooking time increases as kids eating increases, table is dirty after useTable, table is clean after cleanTable