[prog] C++
wolf
wolf at wolfrising.net
Tue Mar 9 00:06:55 EST 2004
I did finally get the php figured out and handed in the room chart,
even had a nice button
to click on to print the page : ) However, the lady who enters the room
data informed
my boss that she had decided she'd rather just use excel then enter the
info into a database and then print it. Oh well.
As usual, I've been pecking away at the C++ question but not doing too
well, could anyone
give me a bit of an additional shove? I think I may have picked a
question way passed
my abilities, altho I think it would be nice to have it save my cd
library : ) My biggest
accomplishment prior to trying this were functions, so I think I kinda
jumped a little overboard
with classes : ) I would still like to know how this all would work tho
: )
Thank you : )
On Mar 3, 2004, at 10:42 PM, Jacinta Richardson wrote:
>
> How'd the PHP stuff go?
>
>> write a program to track a music cd library, allow the user to enter
>> cds. Each item should include the artist, album title, year and genre.
>> All records should be displayed in order by artist. Design this using
>> a
>> class and represent each cd as an object of that class ( This is the
>> part that is really confusing me). Store the data in a text file so it
>> can be retrieved and viewed.
>>
>> Since I use OSX I was sort of following itunes as an example, I have
>> my
>> cds listed in a database in mysql, but I don't know if you can connect
>> to that with C++?
>
> You can connect to databases through C++ but I don't think it's talking
> about anything that serious. I think this is probably what you need
> to be
> doing:
>
> a) design a CD class:
>
> Class CD:
> object private variables:
> artist, album title, year, genre
>
> methods:
> yet to be determined.
>
> b) write code to allow users to enter cds (perhaps using insertion
> sort)
>
> c) write code to write cd list to a file (maybe best to sort first)
> d) write code to extract cd list from a file.
>
> e) write code to allow the user to view the cds etc.
>
>
> A possible program for this might look like this:
>
> Ask user if they want to
> a) add a new cd,
> b) read in cds from a file
> c) list all cds
> d) end session
>
> If a) then
> ask for artist name
> ask for album title
> ask for year
> ask for genre
>
> create new C++ object with these values
> add new object to list of objects. [1]
>
> return to top.
>
> If b) then
> ask for name of file
>
> read in first cd [2]
> create new C++ object with these values [3]
> add new object to list of objects
>
> read in next cd and repeat
>
> return to top
>
> If c) then
> walk over list of (sorted) cds and print
> out each one
>
> return to top
>
> If d) then
> ask for a file name
> write out list of (sorted) cds to file
> quit
>
> Else
> invalid response
> return to top.
>
> [1] - I highly recommend using insertion sort to add your elements in.
> What this means is that you always add elements in such a way as to
> keep
> your list sorted. For example adding 4 into the following list:
> 2, 20, 40, 300
> gives us
> 2, 4, 20, 40, 300
> If you always add elements into this list using insertion sort then you
> will never have to actually sort the list. There are 3 cases in
> insertion sort and it's best (at the start) to treat them separately.
> The cases are:
> 1. Inserting right at the front of the list
> 2. Inserting somewhere in the middle of the list
> 3. Inserting right at the end of the list
>
> [2] - You'll have to think hard about how you want to represent
> individual
> cds in your file. You could do one cd per line with distinct
> separators,
> such as:
>
> author%%%title%%%year%%genre
>
> or you could write them out in little blocks:
> a:author
> t:title
> y:year
> g:genre
>
> a:author
> t:title
> y:
> g:genre
>
> but you'll need to document your assumptions about the integrity of
> the file.
>
> [3] One of the nice things about object oriented programming is that
> you
> can hide the representation of things inside the objects. For example
> it
> would make sense to create a "write_to_file(FILE file)" method for
> the CD
> Class. This would be called on each CD object and that object would
> write
> itself to the file.
>
> Likewise a "read_from_file(FILE file)" method would allow CD objects to
> read themselves from the file. This is really handy because you might
> want to use this CD class (and its stored CDs) somewhere else in other
> code.
>
> In fact, it might even be a good idea to have the object ask the user
> for
> new cd details (in part a). This means that if you ever decide to
> store
> more information about a cd (such as a play list or a filename
> pointing to
> your mp3 collection) you only need to change the class, not the rest of
> the code.
>
> Of course you're going to want to have the CD print itself out too. So
> this gives us the following class model:
>
> Class CD:
> object private variables:
> artist, album title, year, genre
>
> methods:
> new // you always need a constructor
> read_from_user() // ask user for cd details
> read_from_file(FILE file) // read details for 1 cd from file
> print_to_file(FILE file)
> display_self()
>
> and (for example) part a and b become:
>
> If a) then
> object = CD.new();
> if(! object.read_from_user()) {
> user didn't give us the right kind of data
> return to top.
> }
> add object to list.
> return to top.
>
> If b) then
> ask for name of file
>
> while ( 1 ) {
> object = CD.new();
> if(! object.read_from_file(filename)) {
> invalid file or no more entries
> break;
> }
> add object to list
> }
> return to top.
>
>
> I hope this helps.
>
> Jacinta
>
> --
> ("`-''-/").___..--''"`-._ | Jacinta Richardson |
> `6_ 6 ) `-. ( ).`-.__.`) | Perl Training Australia |
> (_Y_.)' ._ ) `._ `. ``-..-' | +613 9354 6001 |
> _..`--'_..-_/ /--'_.' ,' | contact at perltraining.com.au |
> (il),-'' (li),' ((!.-' | www.perltraining.com.au |
>
More information about the Programming
mailing list