Intermediate Projects
Prerequisites: Level 2 — Intermediate
Build these using dynamic memory, structs, and the data structures from Level 2.
1. Singly Linked-List To-Do List
Rebuild the console to-do list from Level 1, this time backed by a linked list of dynamically-allocated nodes instead of a fixed-size array, so it can grow to any number of tasks.
2. Student Record System with File Persistence
Model a struct Student { char name[50]; int id; float gpa; }. Support
adding, listing, and saving/loading the full list to a file with
fwrite/fread (binary I/O) between runs.
3. RPN (Reverse Polish Notation) Calculator
Use the stack you built in Level 2 to evaluate expressions like
"3 4 +" or "5 1 2 + 4 * + 3 -" — push numbers, and on an operator, pop
two values, apply it, and push the result back.
4. Simple Key-Value Store
Use an array of struct { char key[32]; char value[128]; } (linear
search is fine at this scale) supporting set/get/delete, backed by a text
file so data survives between runs.