Where should upload my website files?
The short answer to this question is the public_html/ directory.
For more detail, read on.
Every cPanel account has what is called a home directory. This is the directory that you see when you connect via FTP, SFTP or SSH.
A brand new cPanel account home directory looks a little like this
Depending on your software, you may not see the files and directories that begin with a dot (.) In any case, never delete or modify these files unless you know exactly what you are doing.
Your website files should be uploaded into the public_html/ directory.
For example if your domain was mywebsite.com then a file located at public_html/mypicture.jpg would be served to the internet as http://mydomain.com/mypicture.jpg
The www item is nothing more than a shortcut to the public_html/ directory - you can treat it as the same thing if you find that easier.
What about Addon domains?
This is a slightly more complex question - for the answer please read Understanding Primary, Parked and AddOn Domains.
What about the other files and directories?
All of the other files and directories are required in order to ensure your web hosting and email accounts function correctly. Therefore, if you are new to cPanel, stick purely to the public_html directory and you won't break your hosting account.