C++ Homework Project Assignment | Homework Help Websites

(1) Learn to create class structure in C++

(2) Create an array of objects in C++

Don't use plagiarized sources. Get Your Custom Essay on
C++ Homework Project Assignment | Homework Help Websites
GET AN ESSAY WRITTEN FOR YOU FROM AS LOW AS $13/PAGE
Order Essay

(3) Search and perform operations on the array of objects

Project Description:

The input csv file for this project consists of rows of data that deals with COVID-19 cases and deaths per day for each county in every state in the United States. Here is an example,

date,county,state,fips,cases,deaths

2020-01-21,Snohomish,Washington,53061,1,0

2020-01-22,Snohomish,Washington,53061,1,0

2020-01-23,Snohomish,Washington,53061,1,0

For the purposes of this project, we will assume that the following are char* data types: date, county, and state. FIPS (unique identifier for each county) along with cases and deaths are int data types. Please note the comma delimiter in each row. You need ­­­to carefully read each field knowing that you will have a comma.

You will use redirected input (more later) to read an input txt file that contains the following:

counts  //number of data entries in the csv file

Filename.csv  //this is the file that contains the covid-19 data

Command  //details of what constitutes a command is given below

Command

Command

Your C++ program will read the counts value on the first line of the txt file, which represents the number of data entries in the csv file. (Note – the first line of the csv file contains descriptive variable fields, so there will be a total of [number of data entries + 1] lines in the csv file). Then, on the second line, it will read the Filename.csv and open the file for reading (more on how to do this in C++). After you open the file, you will read the data from each row of the csv file and create a COVID19 object. The COVID19 class is given below. You need to implement all of the necessary methods.

class COVID19 {

protected:

char* date;

char* county;

char* state;

int fips;

int cases;

int deaths;

public:

COVID19 (); //default constructor

COVID19 (char* da, char* co, char* s, int f,

int ca, int de); //initializer

display ();

//write all accessors and other methods as necessary

};

After your write the above class you will write the following class:

class COVID19DataSet {

protected:

COVID19* allData;

int count; //number of COVID19 objects in allData

int size; //maximum size of array

public:

COVID19DataSet (); //default constructor

COVID19DataSet (int initSize);

void display ();

void addRow (COVID19& oneData);

int findTotalCasesByCounty (char* county, char* state);

int findTotalDeathsByCounty (char* county, char* state);

int findTotalCasesByState (char* state);

int findTotalDeathsByState (char* state);

int findTotalCasesBySateWithDateRange (char* state,

char* startDate, char* endDate);

int findTotalDeathsBySateWithDateRange (char* state,

char* startDate, char* endDate);

~COVID19(); //destructor

//other methods as deem important

};

The structure of the main program will be something like this:

#include <iostream>

using namespace std;

// Write all the classes here

int main () {

int counts; // number of records in Filename.CSV

int command;

COVID19 oneRow;

//read the filename, for example, Filename.csv

//open the Filename.csv using fopen (google it for C++ to find out)

//assume that you named this file as myFile

//read the first integer in the file that contains the number of rows

//call this number counts

COVID19DataSet* myData = new COVID19DataSet (counts);

for (int i=0; i < counts; i++) {

//read the values in each row

//use setters to set the fields in oneRow

(*myData).addRow (oneRow);

} //end for loop

while (!cin.eof()) {

cin >> command;

switch (command) {

case 1: {

//read the rest of the row

(*myData).findTotalCasesByCounty (county, state);

break;

}

case 2: {

//do what is needed for command 2

break;

}

case 3: {

//do what is needed for command 3

break;

}

case 4: {

//do what is needed for command 4

break;

}

case 5: {

//do what is needed for command 5

break;

}

case 6: {

//do what is needed for command 6

break;

}

default: cout << “Wrong command\n”;

} //end switch

} //end while

delete myData;

return 0;

}

Input Structure:

The input txt file will have the following structure – I have annotated here for understanding and these annotations will not be in the actual input file. After the first two lines, the remaining lines in the input txt file contains commands (one command per line), where there can be up to 6 different commands in any order with any number of entries. The command is indicated by an integer [1 to 6] and can be found at the beginning of each line.

counts // Number of data entries in the csv file

Covid-19-Data-csv  // Name of the input file that contains the actual Covid-19 data by county and state

1 Cleveland, Oklahoma //command 1 here is for findTotalCasesByCounty

1 Walla Walla, Washington

1 San Francisco, California

1 Tulsa, Oklahoma

2 Oklahoma, Oklahoma //command 2 here is for findTotalDeathsByCounty

2 Miami, Ohio

2 Miami, Oklahoma

3 Oklahoma //command 3 here is for findTotalCasesByState

3 North Carolina

4 New York //command 4 here is for findTotalDeathsByState

4 Arkansas

5 Oklahoma 2020-03-19 2020-06-06 //5 here is for findTotalCasesBySateWithDateRange

6 New York 2020-04-01 2020-06-06 //6 here is for findTotalDeathsBySateWithDateRange

Redirected Input

Redirected input provides you a way to send a file to the standard input of a program without typing it using the keyboard. To use redirected input in Visual Studio environment, follow these steps: After you have opened or created a new project, on the menu go to project, project properties, expand configuration properties until you see Debugging, on the right you will see a set of options, and in the command arguments type “< input filename”. The < sign is for redirected input and the input filename is the name of the input file (including the path if not in the working directory). A simple program that reads character by character until it reaches end-of-file can be found below.

#include <iostream>

using namespace std;

//The character for end-of-line is ‘\n’ and you can compare c below with this

//character to check if end-of-line is reached.

int main () {

char c;

cin.get(c);

while (!cin.eof()) {

cout << c;

cin.get(c);

}

return 0;

}

C String

A string in the C Programming Language is an array of characters ends with ‘\0’ (NULL) character. The NULL character denotes the end of the C string. For example, you can declare a C string like this:

char aCString[9];

Then you will be able to store up to 8 characters in this string. You can use cout to print out the string and the characters stored in a C string will be displayed one by one until ‘\0’ is reached. Here are some examples:

0

1

2

3

4

5

6

7

8

cout result

Length

u

s

e

r

n

a

m

e

\0

username

8

n

a

m

e

\0

name

4

n

a

m

e

\0

1

2

3

4

name

4

\0

(nothing)

0

Similarly, you can use a for loop to determine the length of a string (NULL is NOT included). We show this in the following and also show how you can dynamically create a string using a pointer

char aCString[] = “This is a C String.”; // you don’t need to provide

// the size of the array

// if the content is provided

char* anotherCString; // a pointer to an array of

// characters

unsigned int length = 0;

while( aCString[length] != ‘\0’)

{

length++;

}

// the length of the string is now known

anotherCString = new char[length+1]; // need space for NULL character

// copy the string

for( int i=0; i< length+1; i++)

anotherCString[i] = aCString[i];

cout << aCString << endl; // print out the two strings

cout << anotherCSring << endl;

delete [] anotherCString; // release the memory after use

You can check http://www.cs.bu.edu/teaching/cpp/string/array-vs-ptr/, other online sources or textbooks to learn more about this.

Output Structure

Stay tuned for the exact format in which the output of your program should be formatted. For now, it is recommended to start working on reading in the input files, storing the data, and accessing the data based on the given commands.

Constraints

1. In this project, the only header you will use is #include <iostream> and using namespace std.

2. None of the projects is a group project. Consulting with other members of this class our seeking coding solutions from other sources including the web on programming projects is strictly not allowed and plagiarism charges will be imposed on students who do not follow this.

Rules for Gradescope (Project 1):

1. Students have to access GradeScope through Canvas using the GradeScope tab on the left, or by clicking on the Project 1 assignment submission button.

2. Students should upload their program as a single cpp file and cannot have any header files. If, there are header files (for classes) you need to combine them to a single cpp file and upload to GradeScope.

3. Students have to name their single cpp file as ‘project1.cpp’. All lower case. The autograder will grade this only if your program is saved as this name.

4. Sample input files and output files are given. Your output should EXACTLY match the sample output file given. Please check the spaces and new lines before your email us telling that the ‘output exactly matches but not passing the test cases’. Suggest using some type of text comparison to check your output with the expected.

5. Students need to have only one header file(iostream) while uploading to GradeScope. You cannot have ‘pch.h’ or ’stdafx.h’.

6. Students cannot have ‘system pause’ at the very end of the cpp file.

Grand Paper Writers
Order NOW For A 10% Discount!
Pages (550 words)
Approximate price: -

Our Advantages

Plagiarism Free Papers

All papers are written by the best professional writers to ensure 100% originality. We always provide plagiarism reports whenever we deliver completed papers.

Free Revisions

All papers by Grand Paper Writers are completed and submitted on time. This timely delivery of papers gives you time to go through the paper before the official deadline.

Title-page

As an additional service, we will provide a title page that precedes the contents of your paper. Here, you will provide your personal details.

Bibliography

We also ensure that we provide an extra page for the references or bibliographies following referencing rules.

Originality & Security

At Grandpaperwriters.com, we guarantee students for the provision of security and original work. All your personal information is handled with confidentiality and is not shared with third parties. Additionally, we ensure that we provide original content with accompanying plagiarism reports to show originality.

24/7 Customer Support

Our customer support team is always available 24/7 to provide instant responses to any queries raised by students.

Try it now!

Calculate the price of your order

We'll send you the first draft for approval by at
Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Place your order

Fill in the order form and provide all details of your assignment.

Proceed with the payment

Choose the payment system that suits you most.

Receive the final file

Once your paper is ready, we will email it to you.

Our Services

Grandpaperwriters.com has the best professional essay writers for quality services.

Pricing

Flexible Pricing

Here, a Grandpaperwriters.com, we do not compromise on the time of our clients. We always deliver all completed papers on or before the deadlines.

Communication

Admission Help & Client-Writer Contact

Grandpaperwriters.com provides an interactive portal where students can communicate directly to their writers.

Deadlines

Paper Submission

Here, a Grandpaperwriters.com, we do not compromise on the time of our clients. We always deliver all completed papers on or before the deadlines.

Reviews

Customer Feedback

Grandpaperwriters.com appreciates feedback from our clients to help us improve the delivery of essay writing services. As such, we are constantly changing our policies to ensure maximum customer and writer satisfaction.