Doing well on this assignment seems to be as much about how you approach this problem as anything. As the instructions suggest, you need to be organized, methodical and modular in your approach. Don't just try to write 500 lines of code that just "solve it". Consider when it's due and how much time you really have to work on this, keeping in mind whether you have a job, family duties, homework and final projects/exams for other classes, and a little bit of fun time to keep your sanity. Oh, and sleep, if you're one of those people. Honestly, you could probably crank out just ticket sales in a day (~8 hours) or less if you stick to a good design and development process. Consider level 2 or 3 if it's worth more points.
Start by printing out the instructions and highlighting the important parts. The first step is to understand the problem. Think about how you would do this if you had to do it yourself on paper, or if you were the computer. If you can't do it, you can't program a computer to do it. Then, grab some paper and a pencil and start writing down key info and ideas. Write down the high-level tasks you need to accomplish (note, some of this comes directly from the assignment directions). Break those tasks into sub tasks. For example break the task "read input file" into "open file", "read pre-sale ticket price, at-door ticket price and number of pre-sale tickets".
Next take your tasks, data structures, etc and start turning them into pseudo code. Remember, be modular and work on one task at a time. Consider the rough data structures you need: arrays, structs and what elements they contain, etc. Don't get caught up on int vs float vs double just yet, focus on the purpose of each variable, which you can later use as a descriptive variable name.
Code:
double x // WTF is this for?
auction_item_price // this is much clearer, we'll worry about specific type when we actually start coding, but we know price is a number of some sort
This is where you get a rough idea for what functions you'll use, what data they need, etc. You'll also work on the overall program logic without having to worry about syntax, spelling, punctuation, exact data types, etc just yet.
Once you have the whole thing fleshed out in pseudo code, start turning that into C code. Work in small chunks, 5-10 lines of code at a time. Compile (with maximum warning level), fix all warnings and errors, then test it and fix any bugs. Don't move on to the next section until all previous sections are bug-free. It's okay to have a bunch of "test" code that you will throw away before you turn it in. But keep it around in test functions or a test file you can compile in, in case you finish sooner and decide you want to go up a level of difficulty. Then you can re-run your tests and make sure you didn't break some older code by adding newer code. Make sure you check all IO functions (fopen, fscanf, etc) and any other functions that provide error info, for errors and act accordingly. Using perror to print an error message is good, and consider whether you must exit, or you can "recover" from the error.
I would start with the input function. Make sure you can read the whole input file correctly and print it back out, something like. Work on one line at a time and test after each new line you read
Code:
presale_ticket_price: 15 at_door_ticket_price: 25 num_presale_tickets: 200
num_auction_items: 3 min_bid_increment: 10.00
...
read event: BUY TICKET 8
Make up a dozen or so different test files (different size, number of items, actions, etc) you can use to make sure you always read input correctly, unless the professor provides test files for you.
Once you have that done, move onto functions like count_ticket_revenue, count_auction_revenue, etc.