Effective: Late Fall 8-Week, 2018/2019

CISS 242: Programming II

Back to Top

  Course Description

A continuation of CISS 241. Topics include strings, pointers, recursion, classes, methods, and operator overloading.

Prerequisite: Grade of C or better in CISS 241

Proctored Exams: Final



  Textbooks

As part of TruitionSM, students will receive their course materials automatically as described below.

Required

  •  Gaddis, Tony. (2018). Starting Out with C++: From Control Structures Through Objects (9th). Addison Wesley.  eText

Bookstore Information

Visit https://www.ccis.edu/bookstore.aspx for details.

eText Information

If a course uses an eText, (see Textbook information above) the book will be available directly in Desire2Learn (D2L) and through the VitalSource eText reader the Friday before the session begins, if registered for courses prior to that date.  Students will have a VitalSource account created for them using their CougarMail email address. Upon first login to VitalSource, students may need to verify their account and update their VitalSource password.  More information about how to use the VitalSource platform, including offline access to eTexts, can be found in D2L.  Students that would like to order an optional print-on-demand copy of eligible eTexts can do so through the VitalSource bookshelf at an additional cost.  Once orders are placed, it can take approximately five to seven business days for students to receive their print-on-demand books.

Physical Course Materials Information

Students enrolled in courses that require physical materials will receive these materials automatically at the address on file with Columbia College.  Delivery date of physical materials is dependent on registration date and shipping location.  Please refer to confirmation emails sent from Ed Map for more details on shipping status.

Returns: Students who drop a course with physical course materials will be responsible for returning those items to Ed Map within 30 days of receipt of the order.  More specific information on how to do so will be included in the package received from Ed Map.  See here for Ed Map's return policy. Failure to return physical items from a dropped course will result in a charge to the student account for all unreturned items.

Note: Students who opt-out of having their books provided as part of TruitionSM are responsible for purchasing their own course materials.

  Course Overview

This course picks up where CISS 241 left off. An introduction to functions in the previous course enabled the programmer to start breaking the program into modules. Arrays and vectors then allowed the programmer to place data in a container to handle larger amount of data with one variable. This concept continues as we move forward with the introduction of classes toward the end of the course. The concept of classes will continue in CISS 243. This course will continue with the building blocks needed to create object-oriented programs.

Pointers are used a great deal in C++, they allow the programmer to control objects. You will learn about objects and class first by using the String library. The string data type is actually a library in C++, it is not a primitive data type of the language. Strings are objects that provide both attributes and methods to use on the object. As a programmer, you will create objects by first using structures. Structures are another container construct that allows us to store more than one value. Unlike arrays, these allow for the data to be of different data types. The handling of files is also covered, from basic text files to binary files that store the data from a structure as records similar to that of a database.

  Technology Requirements

Participation in this course will require the basic technology for all online classes at Columbia College:
  • A computer with reliable Internet access
  • A web browser
  • Acrobat Reader
  • Microsoft Office or another word processor such as Open Office

You can find more details about standard technical requirements for our courses on our site.

  Course Learning Outcomes

  1. Write C++ programs using pointers and memory allocation and deallocation.
  2. Write C++ programs that demonstrate an understanding of the object-oriented paradigm and practice of object-oriented programming.
  3. Write C++ programs which use input and output streams.

  Grading

Grading Scale

Grade Points Percent
A 738-820 90-100%
B 656-737 80-89%
C 574-655 70-79%
D 492-573 60-69%
F 0-491 0-59%

Grade Weights

Assignment Category Points Percent
Discussions (8) 80 10%
Programming Labs (7) 70 9%
Programming Assignments (7) 280 34%
Quizzes (7) 140 17%
Course Project 100 12%
Final Exam 150 18%
Total 820 100%

  Schedule of Due Dates

Week 1

Assignment Points Due
Discussion 1 10 Wednesday/Sunday
Programming Lab 1 10 Saturday
Introductions -- Sunday
Programming Assignment 1 40
Quiz 1 20

Week 2

Assignment Points Due
Discussion 2 10 Wednesday/Sunday
Programming Lab 2 10 Saturday
Programming Assignment 2 40 Sunday
Quiz 2 20
Proctor Information N/A

Week 3

Assignment Points Due
Discussion 3 10 Wednesday/Sunday
Programming Lab 3 10 Saturday
Programming Assignment 3 40 Sunday
Quiz 3 20

Week 4

Assignment Points Due
Discussion 4 10 Wednesday/Sunday
Programming Lab 4 10 Saturday
Programming Assignment 4 40 Sunday
Quiz 4 20

Week 5

Assignment Points Due
Discussion 5 10 Wednesday/Sunday
Programming Lab 5 10 Saturday
Programming Assignment 5 40 Sunday
Quiz 5 20

Week 6

Assignment Points Due
Discussion 6 10 Wednesday/Sunday
Programming Lab 6 10 Saturday
Programming Assignment 6 40 Sunday
Quiz 6 20

Week 7

Assignment Points Due
Discussion 7 10 Wednesday/Sunday
Programming Lab 7 10 Saturday
Programming Assignment 7 40 Sunday
Quiz 7 20

Week 8

Assignment Points Due
Discussion 8 10 Wednesday/Saturday
Course Project 100 Saturday
Final Exam 150
Total Points: 820

  Assignment Overview

Discussions

There will be weekly Discussions in Weeks 1-8. Discussion assignments are designed to allow you to utilize what you've learned in the assigned readings and Content area lectures of the course. They will further the understanding of concepts and ideas in programming. You will be required to make an initial response to the prompts of each Discussion topic by 11:59 pm CT Wednesday. You will not be able to view other student responses until you make your initial post. You will then respond to at least two classmates by 11:59 pm CT Sunday. You must respond substantively (more than one word/short phrase). A grading rubric will be provided in D2L for guidance. Discussion posts are worth 10 points each (6 points for original posts, 4 points for responses). Three posts (one initial post and two peer responses) are required for full credit.

Programming Labs

During Weeks 1-7, you will complete a Programming Lab each week. These Programming labs allow you to engage in the topics covered in the week in an easier, simpler program before building to the tougher Programming Assignments. Programming Labs must follow standard code formatting, as shown in the textbook code and examples. In addition, they must contain a comment block at the top of the code file with a detailed description of what the program does. Once functions are covered, they should be used in all programming assignments and a comment block is needed for each function with a detailed description of what it does. The solutions provided must stay within the course content that has been covered.

Each Programming Lab is due to the appropriate Dropbox folder by 11:59 pm CT Saturday of the week assigned.

Programming Assignments

During Weeks 1-7, you will complete two Programming Assignments. Programming Assignments must follow standard code formatting, as shown in the textbook code and examples. They will also be required to have a comment block at the top of the code file with a detailed description of what the program does. Once functions are covered, a comment block is needed for each function with a detailed description of what it does. Once a function is covered, they should be used in subsequent Programming Assignments and the overall scope should stay within the content that has been covered.

Programming Assignments will be due by 11:59 pm CT Sunday of the week they are assigned. They are worth 25 points each.

Course Project

You will be asked to design a system to keep track of either a CD or DVD/Blu-ray collection. The program will only work exclusively with either CDs or DVDs/Blu-rays since some of the data is different. Which item your program will work with will be up to you. The data will be stored in a file. The data from the file will be stored in a text (.TXT) file as records. Each CD/DVD/Blu-ray in the collection will be represented as a class, so there will be one class that is the CD/DVD/Blu-ray. The CD class will be limited to five (5) songs, and the class will need to keep an array of five (5) strings for the song titles. It should also maintain the length of each song and the total length of the CD, as well as the artist name. The DVD/Blu-ray class will have a data member for the title of the movie, length of the movie, the year of the movie, and for the names of two of the main actors in the movie. There will be a class that maintains the list of CD/DVDs/Blu-rays. This list can be limited to just 5 CD/DVD/Blu-rays and provide a method to add a CD/DVD/Blu-ray, to remove a CD/DVD/Blu-ray, and to update a CD/DVD/Blu-ray.

The program should provide a menu for the user to be able to add, delete, update and display the information in a CD/DVD/Blu-ray. The Course Project must follow standard code formatting, as shown in the textbook code and examples. It must have a comment block at the top of the code file with a detailed description of what the program does. Functions must have a comment block with a detailed description of what it does.

The Course Project must follow standard code formatting, as shown in the textbook code and examples. It must include a comment block at the top of the code file with a detailed description of what the program does. Functions must also have a comment block with a detailed description of what it does.

The Course Project is due by 11:59 pm CT Saturday of Week 8. It is worth 100 points.

Quizzes and Exams

Quizzes

There will be Quizzes in Weeks 1-7. Quizzes will be comprised of 10 multiple-choice or true/false questions. You are allowed one 20-minute timed attempt at each Quiz. You will be able to review all of the quiz answers once completed. Quizzes will be open from 12:01 am CT Monday and remain open until 11:59 pm CT Sunday. Quizzes are worth 20 points.

Exams

There will be a proctored Final Exam in Week 8. Proctor information is due by 11:59 pm CT Sunday of Week 2. The Final Exam will be open from 12:01 am CT Monday until 11:59 pm CT Saturday of Week 8. The Final Exam will be comprised of 100 multiple-choice or true/false questions and writing short code segments (short answer). Students are allowed one timed attempt of 2 hours at the Final Exam. You will be able to review all of the Final Exam answers once completed. The Final Exam will be worth 150 points.

Note: Proctoring information is due in Week 2 to the appropriate Dropbox folder. See the Proctoring Module in the D2L for more information.

  Course Outline

Click on each week to view details about the activities scheduled for that week.

Readings
  • Starting Out with C++: Chapter 8
  • Custom Multimedia
Discussion 1

A key element of programming is to understand the problem you are trying to solve. When working with customers (external or internal to your company) they are often limited by their understanding of programming in communicating their needs. They may only be able to do so at a very high level, or by telling you the problem they are having. It is the programmer’s job to define what they are looking for, even if it means telling the customer what their needs are. This is where the importance of defining software requirements come into play.

In this week’s discussion, discuss the importance of software requirements and the different ways to determine requirements. What methods have you adopted to obtain the important information you need, and where have you struggled (even with the best-laid plans)?

Your initial post is due by 11:59 pm CT on Wednesday.  Your responses to at least two classmates' posts are due by 11:59 pm CT on Sunday.

Programming Lab 1

Complete the following program which determines if the user has a winning lottery ticket.

The user will input a 5 digit number which is the winning number. The program will compare that number to the list of numbers the user has and determines if they won.  The method must use a linear search to find the number and return a Boolean true if user is a winner and false otherwise. Use the code attached to the Assignment.

You must submit Programming Lab 1 no later than 11:59 pm CT on Saturday.

Introductions

During the first week, we will take the time to "socialize" and get to know one another. Introduce yourself to the class. Include information such as what brought you to take this course, what you would like to get out of the course, and a trait you possess that you feel is unique or different from other people. If you feel comfortable doing so, tell us about yourself, including any personal or professional details you’d like to share, or even your location and how long you have lived there. Please feel free to tell the class about you.

Programming Assignment 1

This assignment will require the use of three arrays, which will be used in parallel. Create a program that keeps track of the sales of BBQ sauces for a company. The company makes several different types of sauces, Original, Sticky Sweet, Spicy, Sweet Heat, Hickory Bourbon and Smokey Mesquite.

One array will contain the names of the different BBQ sauces. This array will be initialized from a text file with the 6 different names. A second array will be used for the price of each bottle of BBQ sauce; this will also be initialized from a file. The two files can be different files. The third array will be used to store the amount sold of each type of sauce.

The program will then prompt the user for how many of each sauce has been sold. Once all the data is entered a report is created that displays each of the sauce types with the total amount sold and the total sales for each of the sauces.  This output should be in a table format.

The program will also calculate the overall total of sales for all of the sauces. It will then determine which sauce was the highest selling and the lowest selling product.

Validations:

  1. The files can be opened
  2. No negative values for the amount of sales for each sauce. This should be a loop asking for the input again.

Requirements:

  1. When prompting for the amount sold of a sauce, the name of the sauce must be used in the prompt.
  2. Table output should have evenly spaced columns.
  3. Where there is currency being displayed, it must be formatted with 2 decimal places and a $.
  4. Method to display the table of output.
  5. Method to calculate the total of overall sales, returns the amount.
  6. Method to get the inputs from the user for the amount sold of each sauce.
  7. Method to determine which is the highest and lowest product sold.

You must submit Programming Assignment 1 by 11:59 pm CT on Sunday.

Quiz 1

Quiz 1 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 8, as well as concepts covered in Week 1. You will have 20 minutes and one attempt to complete the quiz. 

You must submit Quiz 1 by 11:59 pm CT Sunday. 

Readings
  • Starting Out with C++: Chapter 9
  • Custom Multimedia
Discussion 2

Pointers help support many capabilities of the C++ language. An array being a pointer is only one example of the use. How do pointers help with the management of memory and the data it holds? Just as arrays allow us to have one variable to access more than one value, how do pointers expand this functionality aside from arrays also being pointers?

Your initial post is due by 11:59 pm CT on Wednesday.  Your responses to at least two classmates' posts are due by 11:59 pm CT on Sunday.

Programming Lab 2

Create a function/method that will increase the size of an array by 2 (double the size). The function/method must return a pointer to the new array. Main will create the initial array and pass it to the function/method. The pointer in main will point to the array with the new size. No data should be lost from the array passed in and all the new locations should be set to zero.

You must submit Programming Lab 2 no later than 11:59 pm CT on Saturday.

Programming Assignment 2

This assignment will require you to write a program that will keep track of a test score for each (4) student. This program will make use of two arrays. The two arrays are:

  • Array of strings with the students names
  • Array of doubles with the students test score

Note that the student name at index 0 of the first array will have the test score at index 0 of the second array.

Both arrays must be dynamically allocated using a pointer. The size of the arrays are based on the user’s input, so the program must ask for how many students.

The program must obtain the name of the student and that student’s test score from the user. Once all the data is entered, the data will be sorted by scores in ascending order. Both arrays must be sorted so that the student still has the same test score. So, both are sorted at the same time. The program will also display the sorted array along with the test score average.

All methods/functions will use pointers as parameters and use only pointer notation and pointer arithmetic, not array notation.

Required Method/Functions:

  • void GetGrades(double* scores, string* students, int size);
  • void DisplayGrades(double* scores, string* students, int size, double avg);
  • void Sort(double* scores, string* students, int size);
  • double Average(double* scores, int size);

Validation requirements:

  1. Do not accept a negative number of students to be entered (used for the size of the arrays).
  2. Do not accept a negative test score.
    1. If invalid prompt the user for a new test score until they enter a valid test score; use a loop.

Output should appear as:

Student                            Score

Richard                            67.40

Mark                                67.83

Jane                                 72.65

Sandy                              95.32

Class average is:  75.80

You must submit Programming Assignment 2 by 11:59 pm CT on Sunday.

Quiz 2

Quiz 2 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 9, as well as concepts covered in Week 2. You will have 20 minutes and one attempt to complete the quiz. 

You must submit Quiz 2 by 11:59 pm CT Sunday. 

Proctor Information
Submit your proctor form to the appropriate Dropbox folder by the end of the week. Remember to “Save” the form before placing it in Dropbox. See the Content area for more information.
Readings
  • Starting Out with C++: Chapter 10
  • Custom Multimedia
Discussion 3

The creation of an array allocates enough memory to hold the number of elements specified. Explain the how the memory of an array will always be allocated in the RAM and how the indexing into the array works with the memory. In other words, how does something like “myArray[index]” access the correct memory location?

Your initial post is due by 11:59 pm CT on Wednesday.  Your responses to at least two classmates' posts are due by 11:59 pm CT on Sunday.

Programming Lab 3

Verification

This programming lab makes use of an array of characters. The program will validate the characters in the array to see if they meets a set of requirements.

Requirements:

  1. Must be at least 6 characters long (but not limited to 6, can be greater)
  2. Contains one upper case letter
  3. Contains one lower case letter
  4. Contains one digit

Complete the code attached. Must use pointer while checking the characters.

You must submit Programming Lab 3 no later than 11:59 pm CT on Saturday.

Programming Assignment 3

This assignment will require you to write a program that will create an array of 10 string objects. The array will be initialized with the strings which contain the person’s name and phone number in one string. The following is an example of test data:

“Renee Javens, 678-1223”,

“Joe Looney, 586-0097”,

“Geri Palmer, 223-8787”,

“Lynn Presnell, 887-1212”,

“Bill Wolfe, 223-8878”,

“Sam Wiggins, 486-0998”,

“Bob Kain, 586-8712”,

“Tim Haynes, 586-7676”,

“John Johnson, 223-9037”,

“Jean James, 678-4939”,

“Ron Palmer, 486-2783”

The program will prompt the user for the name or part of a name to search for. For example, the user may type in “Joe”, and the program should then display “Joe Looney, 586-0097.” If the user enters “Pal” then the program should have two outputs from the above list.

The program should make use of the string object methods to find the matches.  The array should be created in main and use a method to search the array to find the name(s) in the array. If a match is not found then it should display a message indicating there is no match. The method must be passed the array of data.

You must submit Programming Assignment 3 by 11:59 pm CT on Sunday.

Quiz 3

Quiz 3 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 10, as well as concepts covered in Week 3. You will have 20 minutes and one attempt to complete the quiz. 

You must submit Quiz 3 by 11:59 pm CT Sunday. 

Readings
  • Starting Out with C++: Chapter 11
  • Custom Multimedia
Discussion 4

Many people think of programming as simply writing the code. By now, you have seen that design of the program is an important part of programming. Design is one of the initial steps in creating a program. Testing is part of the final steps in programming. There are many different forms of testing. Compare and contrast the testing concepts of Unit Testing or Integration testing.

Your initial post is due by 11:59 pm CT on Wednesday.  Your responses to at least two classmates' posts are due by 11:59 pm CT on Sunday.

Programming Lab 4

This program will use a structure to hold the data for each division of a corporation.

The structure will keep the following data:

  • Name of division (string)
  • Sales total for quarter 1 (double)
  • Sales total for quarter 2 (double)
  • Sales total for quarter 3 (double)
  • Sales total for quarter 4 (double)

The program will ask the user for the inputs needed to populate the structure. Then display the data for each instance of the structure.

Complete the code provided to complete the program.

You must submit Programming Lab 4 no later than 11:59 pm CT on Saturday.

Programming Assignment 4

Create a program to keep track of the statistics for a kid’s soccer team.  The program will have a structure that defines what data the program will collect for each of the players.

The structure will keep the following data:

  • Players Name (string)
  • Players Jersey Number (integer)
  • Points scored by Player (integer)

The program will have an array of 12 players (use less for testing and development, use a constant for the size).  Each element in the array is a different player on the team.

The program will ask the user to enter information for each player.  The program will also display the team information in a table format. After the table, the total points scored by a team will be displayed.

The program will also determine which player scored the most points on the team.

Validation:

  • Do not accept negative value for player’s number
  • Do not accept negative value for player’s score

Required Methods:

  • void GetPlayerInfo(Player &);
  • void ShowPlayerInfo(const Player);
  • int GetTotalPoints(const Player[ ], int);
  • void ShowHighest(Player [ ], int);

You must submit Programming Assignment 4 by 11:59 pm CT on Sunday.

Quiz 4

Quiz 4 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 11, as well as concepts covered in Week 4. You will have 20 minutes and one attempt to complete the quiz. 

You must submit Quiz 4 by 11:59 pm CT Sunday. 

Readings
  • Starting Out with C++: Chapter 12
  • Custom Multimedia
Discussion 5

Working with records in a file is similar to working with a database. The records can be accessed randomly just like a query in a database. With files there is no query to provide, just need to determine which record in the file to access. Provide the detailed steps to access a random record in a file. This process can be used to read a record from the file or to update the data in a file. Describe the steps required to do both.

Your initial post is due by 11:59 pm CT on Wednesday.  Your responses to at least two classmates' posts are due by 11:59 pm CT on Sunday.

Programming Lab 5

Download and modify the Lab5.cpp program. Currently the program will read the contents of a file and display each line in the file to the screen. It will also display the line number followed by a colon. You will need to change the program so that it only display 24 lines from the file and waits for the user to press the enter key to continue. Do not use the system(“pause”)  statement.

You must submit Programming Lab 5 no later than 11:59 pm CT on Saturday.

Programming Assignment 5

Create a program that will prompt the user for a file name to work with. Then prompt the user for a string to search for. The program will search the file for the string the user provided, each line in the file is a string. So a line should be read from the file, search the line for the string. If the string is in that line then it should display the line. If the string is not in the line then it should read the next line from the file. The program should also keep track of how many times it found the string and how many line from the file it has read completely. Provide the text file you created for this program.

You must submit Programming Assignment 5 by 11:59 pm CT on Sunday.

Quiz 5

Quiz 5 will be comprised of 10 multiple-choice and true/false questions covering Chapter 12, as well as concepts covered in Week 5. You will have 20 minutes and one attempt to complete the quiz. 

You must submit Quiz 5 by 11:59 pm CT Sunday. 

Readings
  • Starting Out with C++: Chapter 13 (pages 719-753)
  • Custom Multimedia
Discussion 6

Programs work with objects oriented around the data in the objects. Classes provide two access specifiers (public and private). Why should the data be protected by using the private specifier instead of public? What role do the accessors and mutators play in the data hiding?

Your initial post is due by 11:59 pm CT on Wednesday.  Your responses to at least two classmates' posts are due by 11:59 pm CT on Sunday.

Programming Lab 6

In this lab, you will complete the class that is provided for you so that main will work correctly. The class defines what a person is with just two data members. The class provides the accessors and mutators for the data members. It also provides a method that displays the person’s information.  The code provided has one of the methods completed for you; you must implement the rest.

Download Source Lab 6 Files

Note: The main will output the person information two times. First using the DisplayPerson method and then again using the accessor methods.

You must submit Programming Lab 6 no later than 11:59 pm CT on Saturday.

Programming Assignment 6

Create a class called Circle. The class declaration must be in a header file (.h) and the class implementation must be in a source file (.cpp). The name of the files must match the class name.

Main (in a file called Source.cpp) should create an instance of the Circle class. It needs to set the radius using the set method added. The program will then use the other methods to display the radius, diameter, area and circumference of the circle.

Note: there are 3 files to submit for this assignment.

Data members:

  • radius as double
  • PI as double as a constant set to 3.14

Validation:

  • Do not accept negative value for radius.
    1. Should be validated in the Set method for radius
    2. If value is negative then it should set radius to 0

Required Methods:

  • void SetRadius(double r);
  • double GetRadius( ) const;
  • double CalculateArea( ) const;
  • double CalculateCircumference( ) const;
  • double GetDiameter( ) const;

You must submit Programming Assignment 6 by 11:59 pm CT on Sunday.

Quiz 6

Quiz 6 will be comprised of 10 multiple-choice and true/false questions covering Chapter 13, as well as concepts covered in Week 6. You will have 20 minutes and one attempt to complete the quiz. 

You must submit Quiz 6 by 11:59 pm CT Sunday.

Readings
  • Starting Out with C++: Chapter 13 (pages 720-802)
  • Custom Multimedia
Discussion 7

Classes allow for more than one constructor for each class. How many constructors are called when an instance of the class is created if the class has more than one? What are the reasons for having more than one?

Your initial post is due by 11:59 pm CT on Wednesday.  Your responses to at least two classmates' posts are due by 11:59 pm CT on Sunday.

Programming Lab 7

In this lab, you will modify the Student class you created in a previous lab. You will modify one new data member which will be a static integer data member. Call that data member count. You also add a static method to the Student class that will display the value of count with a message indicating what the value represents, meaning I do not want to just see a value printed to the screen.

Change main so that it calls this new method towards the end of the program. Call the method using the static syntax; do not use one of the instances of the Student class.

You will also need to change the Student constructor so that it increments the new data member you added, count.

In your post explain why you get the value it displays.

You must submit Programming Lab 7 no later than 11:59 pm CT on Saturday.

Programming Assignment 7

This assignment uses two classes which utilize the concept of aggregation. One class will be called TimeOff. This class makes use of another class called NumDays. Then you will create a driver (main) that will handle the personnel records for a company and generate a report.

TimeOff class will keep track of an employee’s sick leave, vacation, and unpaid time off. It will have appropriate constructors and member functions for storing and retrieving data in any of the member objects.

Data members of TimeOff:

  • name as string – name of employee
  • empNum as integer – employee ID
  • maxSickDays as NumDays
  • sickTaken as NumDays
  • maxVacation as NumDays
  • vacTaken as NumDays
  • maxUnpaid as NumDays
  • unpaidTaken as NumDays

Validation:

  • Company policy states an employee may not accumulate more than 240 hours of paid vacation. So, once at 240 hours, they stop earning.
  • Employee should not be able to take more vacation time than what is earned.
  • Employee should not be able to take more sick time than what is earned.
  • Employee should not be able to take more unpaid time than what is earned

Required Methods:

  • A default constructor
  • A constructor with parameters for all the data members
  • Accessors and mutators for all data members.
  • Overload the << operator which will output the report about the employee. The vacation, sick and unpaid information.

NumDays class is to store a value that represents a number of hours which is also converted to the number days the hours is equivalent to. Every 8 hours is converted to 1 day. So 12 hours is converted to 1.5 days for example.

Data members of TimeOff:

  • hours as double
  • days as double

Required Methods:

  • A constructor with a parameter for the number of hours.
  • Accessors and Mutators for all data members.
  • Overload the addition operator (+)
  • Overload the subtraction operator(-)
  • Overload the Prefix and Postfix increment operator (++)
  • Overload the Prefix and Postfix decrement operator(--)

Main will create an instance of the TimeOff class to represent one employee. The program does not need to ask the user for input. The program should increase and decrease the amount of vacation time, sick time and unpaid time. Showing that all the requirements are met. In other words, create a test plan.

Then create a second instance of TimeOff and assign the first instance of TimeOff to the second. Show both reports to show they are the same.

You must submit Programming Assignment 7 by 11:59 pm CT on Sunday.

Quiz 7

Quiz 7 will be comprised of 10 multiple-choice and true/false questions covering Chapter 13, as well as concepts covered in Week 7. You will have 20 minutes and one attempt to complete the quiz. 

You must submit Quiz 7 by 11:59 pm CT Sunday.

Readings
  • Review Starting Out with C++: Chapters 8 - 14
Discussion 8

In programming, we are always assigning one variable to another. With the use of primitive data types that is not a problem. With classes, the program needs to know how to do the assignment. Explain the concepts of deep copy and member wise assignment.

Your initial post is due by 11:59 pm CT on Wednesday.  Your responses to at least two classmates' posts are due by 11:59 pm CT on Saturday.

Course Project

You are to design a system to keep track of either a CD or DVD/Blu-ray collection. The program will only work exclusively with either CDs or DVDs/Blu-rays since some of the data is different. Which item your program will work with will be up to you. The data will be stored in a file. The data from the file will be stored in a text (.TXT) file as records. Each CD/DVD/Blu-ray in the collection will be represented as a class, so there will be one class that is the CD/DVD/Blu-ray. The CD class will be limited to five (5) songs, and the class will need to keep an array of five (5) strings for the song titles. It should also maintain the length of each song and the total length of the CD, as well as the artist name. The DVD/Blu-ray class will have a data member for the title of the movie, length of the movie, the year of the movie, and for the names of two of the main actors in the movie. There will be a class that maintains the list of CD/DVDs/Blu-rays. This list can be limited to just 5 CD/DVD/Blu-rays and provide a method to add a CD/DVD/Blu-ray, to remove a CD/DVD/Blu-ray, and to update a CD/DVD/Blu-ray.

The program should provide a menu for the user to be able to add, delete, update and display the information in a CD/DVD/Blu-ray. The Course Project must follow standard code formatting, as shown in the textbook code and examples. It must have a comment block at the top of the code file with a detailed description of what the program does. Functions must have a comment block with a detailed description of what it does.

The Course Project must follow standard code formatting, as shown in the textbook code and examples. It must include a comment block at the top of the code file with a detailed description of what the program does. Functions must also have a comment block with a detailed description of what it does.

The Course Project is due by 11:59 pm CT Saturday of Week 8.

Final Exam

The proctored Final Exam will be comprised of 100 multiple-choice, short answer, and true/false questions covering material in Weeks 1-8. You will have 120 minutes and one attempt to complete the exam.

It will open at 12:01 am CT Monday and must be completed by 11:59 pm CT Saturday.

  Course Policies

Student Conduct

All Columbia College students, whether enrolled in a land-based or online course, are responsible for behaving in a manner consistent with Columbia College's Student Conduct Code and Acceptable Use Policy. Students violating these policies will be referred to the office of Student Affairs and/or the office of Academic Affairs for possible disciplinary action. The Student Code of Conduct and the Computer Use Policy for students can be found in the Columbia College Student Handbook. The Handbook is available online; you can also obtain a copy by calling the Student Affairs office (Campus Life) at 573-875-7400. The teacher maintains the right to manage a positive learning environment, and all students must adhere to the conventions of online etiquette.

Plagiarism and Academic Integrity

Academic integrity is a cumulative process that begins with the first college learning opportunity. Students are responsible for knowing the Academic Integrity policy and procedures and may not use ignorance of either as an excuse for academic misconduct. Columbia College recognizes that the vast majority of students at Columbia College maintain high ethical academic standards; however, failure to abide by the prohibitions listed herein is considered academic misconduct and may result in disciplinary action, a failing grade on the assignment, and/or a grade of "F" for the course.

Additionally, all required papers may be submitted for textual similarity review to Turnitin.com for the detection of plagiarism. All submitted papers may be included in the Turnitin.com reference database for the purpose of detecting plagiarism. This service is subject to the Terms and Conditions of Use posted on the Turnitin.com site.

Non-Discrimination

There will be no discrimination on the basis of sex, race, color, national origin, sexual orientation, religion, ideology, political affiliation, veteran status, age, physical handicap, or marital status.

Student Accessibility Resources

Columbia College is committed to creating a learning environment that meets the needs of its diverse student body. If you anticipate or experience any barriers to learning, communicate your concerns with the instructor. In addition to speaking with the instructor, the following resources are available to ensure an opportunity to learn in an inclusive environment that values mutual respect.

  • For students with disabilities/conditions who are experiencing barriers to learning or assessment, contact the Student Accessibility Resources office at (573) 875-7626 or sar@ccis.edu to discuss a range of options to removing barriers in the course, including accommodations.
  • For students who are experiencing conflict which is impacting their educational environment, contact the Office of Student Conduct at studentconduct@ccis.edu or (573) 875-7877.
  • For students who have concerns related to discrimination or harassment based on sex, gender identity, sexual orientation, pregnancy or parental status, please contact the Title IX Office at titleixcoordinator@ccis.edu. More information can be found at http://www.ccis.edu/policies/notice-of-non-discrimination-and-equal-opportunity.aspx

Online Participation

You are expected to read the assigned texts and participate in the discussions and other course activities each week. Assignments should be posted by the due dates stated on the grading schedule in your syllabus. If an emergency arises that prevents you from participating in class, please let your instructor know as soon as possible.

Attendance Policy

Attendance for a week will be counted as having submitted any assigned activity for which points are earned. Attendance for the week is based upon the date work is submitted. A class week is defined as the period of time between Monday and Sunday (except for week 8, when the work and the course will end on Saturday at midnight.) The course and system deadlines are based on the Central Time Zone.

Cougar Email

All students are provided a CougarMail account when they enroll in classes at Columbia College. You are responsible for monitoring email from that account for important messages from the College and from your instructor. You may forward your Cougar email account to another account; however, the College cannot be held responsible for breaches in security or service interruptions with other email providers.

Students should use email for private messages to the instructor and other students. The class discussions are for public messages so the class members can each see what others have to say about any given topic and respond.

Late Assignment Policy

An online class requires regular participation and a commitment to your instructor and your classmates to regularly engage in the reading, discussion and writing assignments. Although most of the online communication for this course is asynchronous, you must be able to commit to the schedule of work for the class for the next eight weeks. You must keep up with the schedule of reading and writing to successfully complete the class.

No late discussion posts will be accepted.

Late assignments will be accepted up to one week late for partial credit. Assignments will be subject to 5 point deductions for each day it is late.

Course Evaluation

You will have an opportunity to evaluate the course near the end of the session. A link will be sent to your CougarMail that will allow you to access the evaluation. Be assured that the evaluations are anonymous and that your instructor will not be able to see them until after final grades are submitted.

Proctor Policy

Students taking courses that require proctored exams must submit their completed proctor request forms to their instructors by the end of the second week of the session. Proctors located at Columbia College campuses are automatically approved. The use of ProctorU services is also automatically approved. The instructor of each course will consider any other choice of proctor for approval or denial. Additional proctor choices the instructor will consider include: public librarians, high school or college instructors, high school or college counseling services, commanding officers, education service officers, and other proctoring services. Personal friends, family members, athletic coaches and direct supervisors are not acceptable.

  Additional Resources

Orientation for New Students

This course is offered online, using course management software provided by Desire2Learn and Columbia College. The course user guide provides details about taking an online course at Columbia College. You may also want to visit the course demonstration to view a sample course before this one opens.

Technical Support

If you have problems accessing the course or posting your assignments, contact your instructor, the Columbia College Technology Solutions Center, or the D2L Helpdesk for assistance. If you have technical problems with the VitalSource eText reader, please contact VitalSource. Contact information is also available within the online course environment.

Online Tutoring

Smarthinking is a free online tutoring service available to all Columbia College students. Smarthinking provides real-time online tutoring and homework help for Math, English, and Writing. Smarthinking also provides access to live tutorials in writing and math, as well as a full range of study resources, including writing manuals, sample problems, and study skills manuals. You can access the service from wherever you have a connection to the Internet. I encourage you to take advantage of this free service provided by the college.

Access Smarthinking through CougarTrack under Students -> Academics -> Academic Resources.