CSc 110: Can’t Stop The Feeling

This assignment should be written in the python programming language. You should only use python features that we have discussed up to this point. If you have questions about whether or not a particular feature can/should be used, ask the instructors! You may use any python version 3.0 or newer.

All of your programming should be well-formatted and easy for the graders to read and comprehend. Some points are allocated towards style and commenting! Each program file should have a header comment at the top that has the following format:

#
# Author: Student Name
# Description:
#    A short description of what this program does!
# 

If any part of your scripts are particularly complex, you should put documentation comments above those lines of code.

Can’t Stop The Feeling (39 points)

If you haven’t yet listened to “CAN’T STOP THE FEELING!” by JT, stop reading this spec and go listen. Like, now.

Now that that’s out of the way, let’s recap the lyrics of the song:

I got this feeling inside my bones
It goes electric, wavey when I turn it on
All through my city, all through my home
We're flying up, no ceiling, when we in our zone

I got that sunshine in my pocket
Got that good soul in my feet
I feel that hot blood in my body when it drops
I can't take my eyes up off it, moving so phenomenally
Room on lock, the way we rock it, so don't stop

And under the lights when everything goes
Nowhere to hide when I'm getting you close
When we move, well, you already know
So just imagine, just imagine, just imagine

Nothing I can see but you when you dance, dance, dance
A feeling good, good, creeping up on you
So just dance, dance, dance, come on
All those things I shouldn't do
But you dance, dance, dance
And ain't nobody leaving soon, so keep dancing

I can't stop the feeling
So just dance, dance, dance
I can't stop the feeling
So just dance, dance, dance

Ooh, it's something magical
It's in the air, it's in my blood, it's rushing on
I don't need no reason, don't need control
I fly so high, no ceiling, when I'm in my zone

I got that sunshine in my pocket
Got that good soul in my feet
I feel that hot blood in my body when it drops
I can't take my eyes up off it, moving so phenomenally
Room on lock, the way we rock it, so don't stop

Under the lights when everything goes
Nowhere to hide when I'm getting you close
When we move, well, you already know
So just imagine, just imagine, just imagine

Nothing I can see but you when you dance, dance, dance
Feeling good, good, creeping up on you
So just dance, dance, dance, come on
All those things I shouldn't do
But you dance, dance, dance
And ain't nobody leaving soon, so keep dancing

I can't stop the feeling
So just dance, dance, dance
I can't stop the feeling
So just dance, dance, dance

I can't stop the feeling
So just dance, dance, dance
I can't stop the feeling
So just dance, dance, dance

I can't stop the, I can't stop the
I can't stop the, I can't stop the
I can't stop the feeling

Nothing I can see but you when you dance, dance, dance
Feeling good, good, creeping up on you
So just dance, dance, dance, come on
All those things I shouldn't do
But you dance, dance, dance
And ain't nobody leaving soon, so keep dancing

(Note that I left out a few lyrics, but this is most of them).

You will write a python program that prints out these lyrics exactly. However, there are some requirements on how this program functions…

Notice that some lyrical sections only show up once, but some lyrics show up multiple times throughout the song. The verses, for example, never repeat.

However, the chorus of the song:

Nothing I can see but you when you dance, dance, dance
Feeling good, good, creeping up on you
So just dance, dance, dance, come on
All those things I shouldn't do
But you dance, dance, dance
And ain't nobody leaving soon, so keep dancing

Is repeated three times. Similarly, the post-chorus/bridge:

I can't stop the feeling
So just dance, dance, dance
I can't stop the feeling
So just dance, dance, dance

Is also repeated a few times.

You are going to write a function that prints out each “section” of the song. You should have all of these functions:

Once you write each of these function, you will write two other functions that print out variants of the whole song.

Both must be implemented by making calls to the other functions. These functions allow you to eliminate the need for duplicate/redundant print statements in your code.

To Test this, check that both of these functions print out the correct output by putting calls to them in your main function. Call your program feeling.py.

Submission and grading

This problem will be graded out of 39 points. It is due on 6/19/2017 at 6:00pm.

You should put all of your code in to a python file named feeling.py. Submit feeling.py to the associated D2L dropbox. Following these turn-in and naming instructions closely is very important, because our grading scripts will depend on some of the details. You may lose points if these instructions are not followed precisely!