3.1
What are the shared characteristics of different agile methods of software development?
2. For what types of system are agile approaches to development particularly likely to be successful?
3. List the 5 principles of agile methods.
4. List 4 questions that should be asked when deciding whether or not to adopt an agile method of software development.
5. Name three important agile techniques that were introduced in extreme programming?
6. What is test-first development?
7. What are the possible problems of test-first development?
8. Why has the Scrum agile method been widely adopted in preference to methods such as XP?
9. What is a Scrum sprint?
10. What are the barriers to introducing agile methods into large companies?
In: Computer Science
When the user enters 4 at the menu prompt, your program will access all objects in the array to calculate and display only the largest number of coin denomination, and the total number of coins for the largest denomination. If there are more than one coin denominations having equal amount, you will need to list down all of them. After processing the output for menu option 4, the menu is re-displayed.
Menu option 4 should return as follows.
The largest number of coin denomination is: $1 5 cent
The total number of $1 coin is: 2 The total number of 5 cent coin is: 2
i'm stuck with the returnDenomination() method
===
// import Scanner class to take user input
import java.util.Scanner;
// Client class
public class Client {
// for display colored terminal output
public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_YELLOW = "\u001B[33m";
public static final String ANSI_GREEN = "\u001B[32m";
// scanner object
static Scanner userInput = new Scanner(System.in);
public static void main(String[] args) {
// declare and initialise variables
char yesNo = ' ';
String name;
boolean newPerson;
int menuInput;
int coinAmount;
int personNum = 0;
// declar array of object, Change type
Change person[] = new Change[10];
// for the purpose of testing the program by tutor, hard-coded data
personNum = 9;
person[0] = new Change("Abel", 10);
person[1] = new Change("Belle", 25);
person[2] = new Change("Chanel", 235);
person[3] = new Change("Desmond", 240);
person[4] = new Change("Elaine", 55);
person[5] = new Change("Farah", 60);
person[6] = new Change("Gabriel", 170);
person[7] = new Change("Hazel", 285);
person[8] = new Change("Iris", 190);
// display recommendation msg
System.out.print(ANSI_YELLOW);
System.out.print("\n[System Msg] ");
System.out.print(ANSI_RESET);
System.out.println("Recommendation: Please enter at least 9 records to test the program.");
// loop while userInput is not 'N' for new person
do {
newPerson = true;
System.out.println("\nCurrent record: " + personNum + "/9");
// userInput for name & coinAmount
System.out.print("\nPlease enter the name of the person: ");
name = userInput.nextLine();
System.out.print("Please enter coin value for the person (range 5 to 95, a multiple of 5): ");
coinAmount = userInput.nextInt();
userInput.nextLine();
// verify if useInput amount is valid (range 5 to 95, multiple of 5)
if(coinAmount < 5 || coinAmount > 95 || (coinAmount % 5) !=0) {
System.out.print(ANSI_YELLOW);
System.out.print("\n[System Msg] ");
System.out.print(ANSI_RESET);
System.out.println("Incorrect coin value. Must be in the range 5 to 95, multiple of 5");
continue;
}
// verify person in record
for (int i = 0; i < personNum; i++) {
// update total amount if name matches exisiting record
if (person[i].getName().equalsIgnoreCase(name)) {
person[i].setAmount(person[i].getAmount() + coinAmount);
newPerson = false;
break;
}
}
// add to record if the person is new
if (newPerson)
person[personNum++] = new Change(name, coinAmount);
// break when number of person in record greater/equals 9
if (personNum >= 9)
break;
System.out.print("\nDo you have more person to enter (Y/N): ");
yesNo = Character.toUpperCase(userInput.nextLine().charAt(0));
// verify only Y or N userInput
while (yesNo != 'Y' && yesNo != 'N') {
System.out.print(ANSI_YELLOW);
System.out.print("\n[System Msg] ");
System.out.print(ANSI_RESET);
System.out.print("Invalid! Do you have more person to enter (Y/N): ");
yesNo = Character.toUpperCase(userInput.nextLine().charAt(0));
}
} while(yesNo != 'N'); // end of newPerson do-while loop
// loop until userInput 5 to exit
do {
// display menu
System.out.println("\n1. Enter a name and display change to be given for each denomination");
System.out.println("2. Find the name with the smallest amount and display change to be given for each denomination");
System.out.println("3. Find the name with the largest amount and display change to be given for each denomination");
System.out.println("4. Calculate and display the largest number of coin denomination, and the total number of the coin");
System.out.println("5. Exit");
// wait for userInput
System.out.print("\nWhat would you like to do? Enter your choice: ");
menuInput = userInput.nextInt();
userInput.nextLine();
// display according to userInput
switch (menuInput) {
// display changes based on name of person entered
case 1:
returnIndividual(person, personNum);
break;
// display person with smallest amount and changes
case 2:
returnSmallest(person, personNum);
break;
// display person with largest amount and changes
case 3:
returnLargest(person, personNum);
break;
// display total of largest numer of coin denomination
case 4:
returnDenomination(person, personNum);
break;
// display farewell message and exit program
case 5:
System.out.print(ANSI_YELLOW);
System.out.print("\n[System Msg] ");
System.out.print(ANSI_RESET);
System.out.println("Have a good day ahead. Bye!\n");
System.exit(0);
break;
// default for no case match
default:
System.out.print(ANSI_YELLOW);
System.out.print("\n[System Msg] ");
System.out.print(ANSI_RESET);
System.out.println("Invalid! Please enter your choice again: \n");
}
} while (menuInput != 5); // end of menu do-while loop
} // end of main()
// method to find individual person by name and display denomination
public static void returnIndividual(Change person[], int personNum) {
// declare variable to store array of denomination
int denomination[] = new int[4];
// prompt userInput for name
System.out.print("Enter name: ");
String name = userInput.nextLine();
boolean nameNotFound = true;
// verify display name and coinAmount in record
for (int i = 0; i < personNum; i++) {
if (person[i].getName().equalsIgnoreCase(name)) {
// calculate and return count of each denomination
denomination = person[i].calDenomination();
System.out.println(ANSI_GREEN);
System.out.println("\n" + person[i].getName() + " has an account of: " + person[i].getAmount() + " cents\n");
// display count of each denomination
System.out.println("Change:");
if (denomination[0] != 0)
System.out.println("$1 : " + denomination[0]);
if (denomination[1] != 0)
System.out.println("50¢: " + denomination[1]);
if (denomination[2] != 0)
System.out.println("20¢: " + denomination[2]);
if (denomination[3] != 0)
System.out.println("10¢: " + denomination[3]);
if (denomination[4] != 0)
System.out.println("5¢ : " + denomination[4] + "\n");
System.out.println(ANSI_RESET);
// set flag to false since name is in record
nameNotFound = false;
break;
}
}
// display error msg if name not in record
if (nameNotFound) {
System.out.print(ANSI_YELLOW);
System.out.print("\n[System Msg] ");
System.out.print(ANSI_RESET);
System.out.println(name + " not found in record!\n");
}
} // end of returnIndividual()
public static void returnDenomination(Change person[], int personNum) {
// for menu 4
} // end of returnDenomination
} // end of Client class
In: Computer Science
What is a growth function? How does it relate to the efficiency of an algorithm? Explain with example.
In: Computer Science
1. What are the fundamental activities that are common to all software processes?
2. List 3 generic process models that are used in software engineering?
3. Why are iterations usually limited when the waterfall model is used?
4. What are the three benefits of incremental development, compared to the waterfall model?
5. What are the development stages in integration and configuration?
6. What are the principal requirements engineering activities?
7. Why is it increasingly irrelevant to distinguish between software development and evolution?
8. What are the advantages of using incremental development and delivery?
9. What are the two different approaches to process improvement and change that have been proposed?
10. What are the identified levels in the SEI’s Capability Maturity Model
In: Computer Science
Functional & non-functional requirements document
The following document has gathered from various sources, including engineers working in our company, interviews, contacts with the client, etc., all the requirements for a project described below. You are strongly advised to read the following document multiple times, and keep notes. Don’t bother searching on the internet, you will not find anything helpful. Instead, you have to be the chief Software Engineer, and your mission is to describe functional and non-functional requirements, as good and detailed as possible. When you are missing data, you have to make assumptions (sometimes wild ones). No one can really answer your questions, and you have a presentation to the higher management in 45 min sharp. By then, you have to construct a document, with a very small ( no more than 10 lines) executive description, and no more than two A4 pages (1.25 space, font 12) text. Good luck.
INFORMATION ABOUT THE PROJECT
Our company is seriously considering of bidding for the following project, and we ask you, the lead Software Engineer, to construct a draft document, with the functional and non-functional requirements. The better your document, the better job will do our business development team to construct a proposal.
Project abstract description
The project is about monitoring the two gates of the University, automate the entry of authorized personnel, plus record all car license plates, if they left at night, and also raise alarms if a car is in the parking for more than 5 days. Also the system needs to report cars that are still at the parking, or during any holiday, or when the University is closed officially (e.g., during summer holidays). During those periods, only high-ranking personnel is automatically allowed to enter (e.g., Deans). All others need to be stopped at the gate, and call their supervisor. For that purpose, the following descriptions have been gathered.
Notes
• Each security room next to each gate, will be equipped with the necessary hardware, in order for the guards to see the license plate camera, plus another camera facing the car driver. Also each car will be equipped with electronic id device. The entry bar will be connected to the system, and will be automatically raised, if the car and driver are both authorized.
The license plate cameras have to have a good false positive rate. The driver-side camera will not do face recognition at the beginning, but the client wants this to be an option for the near future.
The time it takes for one car to enter, is of great importance. The client needs to know this in detail.
There should be a “manual override” button on the screen, but the system should keep all details possible, guard details, time, date, car & license picture, etc.
The client will accommodate all data into their own facilities and infrastructure, but they will not provide any hardware/software for this project.
The guards will be trained accordingly if desired.
The data gathered should not be used for other purposes.
The staff, students, faculty, are really worried about their personal data, and how those
are going to be used. Some even claim that the data will be used to monitor their
working time.
Our company, is worried about the cost of this project, and we want to find innovative
ways to keep the cost low, so we can bid a lower price, and get a competitive advantage
against other bidders.
Our company also is not very experienced in such projects, and they hired you to “make
the difference”
(no specific language nor coding needed )
In: Computer Science
Hands-On Project 19-2 Print in the Cloud
To practice cloud printing using Google Cloud Print, you’ll need a computer with an installed printer and another computer somewhere on the Internet. For the easiest solution to using Google Cloud Print, both computers need Google Chrome installed. You’ll also need a Google account. On the computer with an installed printer, do the following:
1. If you don’t already have Google Chrome, go to google.com/chrome/browser/desktop, download, and install it.
2. Open Google Chrome and enter chrome://devices in the address box. Click Add printers. Sign in to Google with your Google account. If you don’t already have an account, you can click Create account to create one.
3. The list of installed printers appears. Uncheck all printers except the one you want to use for cloud printing. Click Add Printer(s). On a computer anywhere on the Internet, do the following:
4. If necessary, install Google Chrome.
5. Open Google Chrome and sign in with your Google account. Navigate to a webpage you want to print. Click the menu icon in the upper-right corner of the Chrome window and click Print.
6. On the Print page, click Change and select the printer, which is listed in the Google Cloud Print group. Click Print. The page prints over the web to your printer.
In: Computer Science
Question?
Identify the relationships of Player and Player fields including PKs, CKs, and FDs. While using the entities and fields found in Player, create a DBDL example of tables, fields, and key fields that are in third normal form.
Instructions: Convert this table to an equivalent collection of tables, fields, and keys that are in the third normal form. Represent your exercise answers in DBDL design from the database normalization phases.
The player contains information about players and their teams.
Player has attributes PlayerId, First, Last, Gender, TeamId, TeamName, TeamCity where PlayerId is the only CK and the FDs are:
PlayerId → First
PlayerId → Last
PlayerId →Gender
PlayerId → TeamId
PlayerId → TeamName
PlayerId → TeamCity
TeamId → TeamName
TeamId → TeamCity
Figure 1: Player – Sample Data
| PlayerID | First | Last | Gender | TeamID | TeamName | TeamCity |
| 1 | Jim | Jones | M | 1 | Flyers | Winnipeg |
| 2 | Betty | Smith | F | 5 | OilKings | Calgary |
| 3 | Jim | Smith | M | 10 | Oilers | Edmonton |
| 4 | Lee | Mann | M | 1 | Flyers | Winnipeg |
| 5 | Samantha | McDonald | F | 5 | OilKings | Calgary |
| 6 | Jimmy | Jasper | M | 99 | OilKings | Winnipeg |
In: Computer Science
A local client needs to take his static web page for ordering organic vegetables and build a dynamic page. He doesn't have much money to spend, so we are going to write orders to a flat file. He is also going to need a page that he can go to that will display his orders.
He has already met with Sharron, so we've got a specification already assembled. Here are the details:
The customer will go to a form page where they can enter an order for vegetables. The file will be called orderVegetables.php. Here are products a customer can order:
The customer should be able choose a quantity of items beside any of the vegetable options. Only allow orders where there is at least one thing ordered. Also, if the total price is over $50 then they qualify for free delivery, otherwise delivery cost is $5.00. (You can apply the delivery fee after tax, or before). Be sure to also capture the customers name, email and phone number on the form so the client can contact them to setup delivery. Make sure each order has the date and time of the order as well. Don't forget to use \r\n for a new line at the end of each record.
When the user clicks 'submit,' a POST request is made to processVeggies.php where the order is written to the file veggie-orders.txt. The text file should be simply a storage place in lieu of using a proper database. Some would call it a 'flat-file' storage system. Make sure to lock the file before appending, and to unlock it afterwards. Display a thank you message to the client and print their order details to the screen. Let them know that they will be contacted within the next business day.
Of course the client would like a page to view all the orders. This file will be called viewOrders.php. The client would like a link on this page to reset the orders (reset the veggie-orders.txt file) called Reset Orders. This link will call a file resetOrders.php. The client will typically print off a days worth of orders and then reset the form for the next day. Don't worry about locking the file on your reset page.
Good luck! We need this prototype soon!
- Ima Plant
Senior Consultant,
Acme International Inc.
====
The order form also needs to capture customer name, phone number, and email.
What to expects
1. The input page (named orderVegetables.php) needs to have the following fields:
a. Select drop-down fields should be used to allow users to choose a quantity for each item. Limit the options to 0-30.
b.We also need fields for name, email, and phone number.
2. Look and Feel: Use bootstrap or not, your choice. The header of each page should contain a masthead/header image that would befit an upscale veggie shop. Please use GIMP, MS PAINT or some other editor to create this header image for the top of your page. Or better yet, set your header text using <h1> or <h2> and set the image you create as a background-image in your CSS. As well, all formatting should be done using CSS in an external stylesheet. Please use a div with an id of 'container' to hold your content. Ensure that this simple theme is present for ALL of your pages!
3. The processing page (named processVeggies.php) needs to include the following:
a. Order details gathered from input form.
b. Whether or not delivery is free - display a message to the user one way or the other (include dollar sign and two decimal places - that is, format for currency)
c. Assume a provincial tax rate of 15%
d. Calculate and display the details of their order, net amount before tax, tax amount, delivery amount, and total amount.
e. Include the time, date, and year (for Atlantic Canada) that the order was processed.
f. Ensure that there is some type of validation on the processing page. If someone tried to run it without accessing the form page first, it should give the user a link back to the order page.
4. The processing page (processVeggies.php) should also write this order to a file.
a .Ensure file is accessible to your script, but hidden from public browsing. Please note that veggie-orders.txt MUST be stored one directory behind your publishing directory. "$DOCUMENT_ROOT/../veggie-orders.txt" would be an example.
b. Orders file should be delimited by a "\t" or some other delimiter. " \r\n" at the end of each line.
5. The viewOrders.php page should open the file for reading only and display, in html, all of the pending orders for the day. The look and feel of this page should follow the store's theme. Though this page would be used only by administrators of the site, we will not lock it down. For now, assume it will be live for all to view. Please create a table to hold all of the pending orders. Each line of the order file could be a table row. You can keep this simple, no need to use explode() or list() if you don't want to. As well on this page, create a hyperlink to resetOrders.php (see below). If there are no pending orders, ensure there is a message to the user stating the fact.
6. Create another page called resetOrders.php. This page should reset the orders file (delete the file contents), give the user confirmation that the file has been cleared and give them a link/instructions on what to do next.
7. All pages should be accessible via links. So there should be some sort of menu. I DON'T need a link to process orders as that would be silly. Remember menus should go at the top of your pages.
8.Comments, Code Formatting, Submission Packaging (variable naming, page naming).
In: Computer Science
Given an integer named area which represents the area of a rectangle, write a function minPerimeter that calculates the minimum possible perimeter of the given rectangle, and prints the perimeter and the side lengths needed to achieve that minimum. The length of the sides of the rectangle are integer numbers. For example, given the integer area = 30, possible perimeters and side-lengths are: (1, 30), with a perimeter of 62 (2, 15), with a perimeter of 34 (3, 10), with a perimeter of 26 (5, 6), with a perimeter of 22 Thus, your function should print only the last line, since that is the minimum perimeter. Some example outputs: >>>minPerimeter(30) 22 where rectangle sides are 5 and 6. >>>minPerimeter(101) 204 where rectangle sides are 1 and 101. >>>minPerimeter(4564320) 8552 where rectangle sides are 2056 and 2220.
In: Computer Science
PYTHON!
Exercise 3 - Total Line length
Write a python function that will return the total length of line that passes through any number of provided points ( (x,y) ). The points should be passed as individual tuples or lists. The function should also have a parameter (True or False) to indicate whether the line should start from the origin, and that parameter should default to False. If True, the returned value should include the distance from the origin to the first point, otherwise start adding distances from the first point. So a function call could look something like this:
dist = lineLength((1,2), (2,3), (7,4), start=False)
Demonstrate it in your main program by calculating the length of
line going through the following 5 points (with and without the
origin option set to True):
(1,1), (-2,4), (-3,-2), (2,-1), (1,1)
PreviousNext
In: Computer Science
Task 1. Consider the following scenarios
Last week we discussed in the class, the threats posed by each of the above scenarios and explain what its effect may be if a web application is compromised. One of the software strategies to cover the emergent security threat to an application is to build abuse cases. The result I expect is a report which integrates the software development lifecycle with security in every step of it for the abuse case described for any one of the scenarios mentioned above. You can also attempt the exercise for any scenario which interests you . (5 points)
In: Computer Science
In: Computer Science
In C++, dealing with Binary Search trees. Implement search, insert, removeLeaf, and removeNodeWithOneChild methods in BST.h. BST.h code below. CPP code also provided for reference, nothing to be changed on cpp code.
#include
#include "BSTNode.h"
using namespace std;
#ifndef BST_H_
#define BST_H_
class BST {
public:
BSTNode *root;
int size;
BST() {
root = NULL;
size = 0;
}
~BST() {
if (root != NULL)
deepClean(root);
}
BSTNode *search(int key) { // complete this method
}
BSTNode *insert(int val) { // complete this method
}
bool remove(int val) { // complete this method
}
private:
void removeLeaf(BSTNode *leaf) { // complete this method
}
void removeNodeWithOneChild(BSTNode *node) { // complete this method
}
static BSTNode *findMin(BSTNode *node) {
if (NULL == node)
return NULL;
while (node->left != NULL) {
node = node->left;
}
return node;
}
static BSTNode *findMax(BSTNode *node) {
if (NULL == node)
return NULL;
while (node->right != NULL) {
node = node->right;
}
return node;
}
void print(BSTNode *node) {
if (NULL != node) {
node->toString();
cout << " ";
print(node->left);
print(node->right);
}
}
static int getHeight(BSTNode *node) {
if (node == NULL)
return 0;
else
return 1 + max(getHeight(node->left), getHeight(node->right));
}
static void deepClean(BSTNode *node) {
if (node->left != NULL)
deepClean(node->left);
if (node->right != NULL)
deepClean(node->right);
delete node;
}
public:
int getTreeHeight() {
return getHeight(root);
}
void print() {
print(root);
}
int getSize() {
return size;
}
};
#endif
testCorrectness.cpp
#include
#include
#include
#include
#include
#include
#include
#include "BST.h"
#include "Hashing.h"
using namespace std;
int arrayIns[] = { 11, 12, 15, 17, 12, 19, 4, 5, 11, 19, 20, 32, 77, 65, 66, 88,
99, 10, 8, 19, 15, 66, 11, 19 };
const int numInsert = sizeof(arrayIns) / sizeof(int);
int searchArray[] = { 29, 3, 19, 27, 12, 34, 4, 5, 19, 20, 32, 45, 37, 25, 99,
25, 8, 24, 12, 16 };
const int numSearch = sizeof(searchArray) / sizeof(int);
int deleteArray[] = { 16, 12, 15, 5, 17, 19, 4, 5, 19, 20, 32, 17, 19, 39, 99,
10, 8, 19, 15, 21 };
const int numDelete = sizeof(deleteArray) / sizeof(int);
const int cleanUp[] = { 11, 77, 65, 66, 88 };
const int numCleanUp = sizeof(cleanUp) / sizeof(int);
const int TABLE_SIZE = 7;
void printArray(int *A, int len) {
if (0 == len)
cout << "[]";
else {
cout << "[";
for (int i = 0; i < len - 1; i++) {
if (A[i] == INT_MAX)
cout << "infty, ";
else
cout << A[i] << ", ";
}
if (A[len - 1] == INT_MAX)
cout << "infty]";
else
cout << A[len - 1] << "]";
cout << endl;
}
}
void printList(list &A) {
if (0 == A.size())
cout << "[]" << endl;
else {
list::iterator it;
cout << "[";
for (it = A.begin(); next(it) != A.end(); ++it)
cout << *it << ", ";
cout << *it << "]";
cout << endl;
}
}
void printList(list *A) {
if (0 == A->size())
cout << "[]" << endl;
else {
list::iterator it;
cout << "[";
for (it = A->begin(); next(it) != A->end(); ++it)
cout << *it << ", ";
cout << *it << "]";
cout << endl;
}
}
//HASHING -------------------------------------------
Hashing *testHashing() {
cout << "****************** Test Hashing Correctness ******************"
<< endl << endl;
Hashing *hChain = new Hashing(TABLE_SIZE);
cout << "Inserting the following numbers: ";
printArray(arrayIns, numInsert);
for (int i = 0; i < numInsert; i++) {
hChain->insert(arrayIns[i]);
}
cout << endl << "*** Hash Table Structure (after insertion) ***" << endl;
int size = 0;
for (int i = 0; i < TABLE_SIZE; i++) {
cout << "Slot " << i << ": ";
printList(hChain->getList(i));
size += hChain->getList(i)->size();
}
cout << endl << "Size of hash table: " << size << endl;
cout << "\n*** Searching Hash Table ***" << endl;
list foundList;
list notFoundList;
for (int i = 0; i < numSearch; i++) {
int val = searchArray[i];
bool found = hChain->search(val);
if (found)
foundList.push_back(val);
else
notFoundList.push_back(val);
}
cout << "Found: ";
printList(foundList);
cout << "Did not find: ";
printList(notFoundList);
cout << endl << "*** Deleting Hash Table ***" << endl;
list deleteList;
list deleteNotFoundList;
for (int i = 0; i < numDelete; i++) {
int val = deleteArray[i];
bool deleted = hChain->remove(val);
if (deleted)
deleteList.push_back(val);
else
deleteNotFoundList.push_back(val);
}
cout << "Deleted: ";
printList(deleteList);
cout << "Did not find: ";
printList(deleteNotFoundList);
cout << endl << "*** Hash Table Structure (after deletion) ***" << endl;
size = 0;
for (int i = 0; i < TABLE_SIZE; i++) {
cout << "Slot " << i << ": ";
printList(hChain->getList(i));
size += hChain->getList(i)->size();
}
cout << endl << "Size of hash table: " << size << endl;
return hChain;
}
//BST
BST *testBST() {
cout << "\n****************** Test BST Correctness ******************"
<< endl << endl;
BST *bst = new BST();
cout << "Inserting the following numbers: ";
printArray(arrayIns, numInsert);
for (int i = 0; i < numInsert; i++) {
bst->insert(arrayIns[i]);
}
cout << endl << "*** BST Structure (after insertion) ***" << endl;
bst->print();
cout << endl << endl << "Size of BST: " << bst->getSize() << endl;
cout << "\n*** Searching BST ***" << endl;
list foundList;
list notFoundList;
for (int i = 0; i < numSearch; i++) {
int val = searchArray[i];
if (bst->search(val) != NULL)
foundList.push_back(val);
else
notFoundList.push_back(val);
}
cout << "Found: ";
printList(foundList);
cout << "Did not find: ";
printList(notFoundList);
cout << endl << "*** Deleting BST ***" << endl;
list deleteList;
list deleteNotFoundList;
for (int i = 0; i < numDelete; i++) {
int val = deleteArray[i];
bool deleted = bst->remove(val);
if (deleted)
deleteList.push_back(val);
else
deleteNotFoundList.push_back(val);
}
cout << "Deleted: ";
printList(deleteList);
cout << "Did not find: ";
printList(deleteNotFoundList);
cout << endl << "*** BST Structure (after deletion) ***" << endl;
bst->print();
cout << endl << endl << "Size of BST: " << bst->getSize() << endl;
return bst;
}
static void cleanTest(Hashing *hashing, BST *bst) {
cout << "\n****************** Clean up ******************" << endl;
for (int i = 0; i < numCleanUp; i++) {
hashing->remove(cleanUp[i]);
bst->remove(cleanUp[i]);
}
int size = 0;
for (int i = 0; i < TABLE_SIZE; i++)
size += hashing->getList(i)->size();
cout << "\nSize of hash table: " << size << endl;
cout << "Size of BST: " << bst->getSize();
delete hashing;
delete bst;
}
int main() {
cleanTest(testHashing(), testBST());
return 0;
}
BSTnode.h
#include <iostream>
using namespace std;
#ifndef BSTNODE_H_
#define BSTNODE_H_
class BSTNode {
public:
int value;
BSTNode *left, *right, *parent;
BSTNode(int val) {
// each node is inserted as a leaf
value = val;
left = NULL;
right = NULL;
parent = NULL;
}
void toString() {
if (parent == NULL)
cout << "<" << value << ", null>";
else
cout << "<" << value << ", " << parent->value << ">";
}
};
#endifIn: Computer Science
Though threads simplify sharing within a process, context-switching between threads within a process is just as expensive as context-switching between processes.
In: Computer Science
You have been asked to produce a spreadsheet analysis of the percentages of inpatients treated by patient age. You need to communicate the percentage of patients who were ages 1 through 18, 19 through 35, 36 through 55, and 55 and older. The best type of graph to depict this would be:
Group of answer choices
Line graph
Stacked bar graph
Cluster bar graph
Pie chart
A and C
The use of a Database Management System would be best suited for:
Group of answer choices
Producing thematic maps
Creating a financial model
Creating pie charts
Performing “what-if” analysis
Managing the patient records of a physical therapy clinic
As manager you must create an analysis of staffing requirements for multiple departments. You will need to calculate the number of employees needed for each position using a series of complex formulas incorporating factors such as new patient admissions, the projected numbers of procedures to be performed, follow-up appointments, and several other variables. The best program for this effort would be:
Group of answer choices
Microsoft Access
Microsoft Word
ArcMap GIS
Microsoft Excel
None of the above
Which two of the following describe a relational database?
Group of answer choices
A relational database can consist of one single table containing all of the information.
Microsoft Access is not capable of creating a relational database, only flat file databases are allowed
Tables containing names must be sorted in alphabetical order
A relational structure is the often the best design for databases in which a single person-level record must be associated with multiple transaction records for the same individual
Each table in the relational join must contain a unique key field allowing the records to be joined to another table containing the same key field.
In comparison to Microsoft Excel, which one of the following statements with respect to Microsoft Access is true?
Group of answer choices
Access is more flexible since you can enter the data at the same time that you create the database structure.
Access allows you to quickly create complex formulas for specific cells.
Access database fields must be defined prior to any data being input into it.
Due to its capacity limitations, Access should not be used if there are over 1,000 records and the number is expected to grow over time.
Access allows data to be copied from one range to another.
In: Computer Science