A collection of practical C programming projects built while learning and strengthening my understanding of the C programming language.
These projects progress from basic data structures and file handling to dynamic memory allocation, pointers, and more complex program logic. 🚀
| # | Project | Description | Key Concepts |
|---|---|---|---|
| 🎓 1 | Student Dashboard | Manage student records with persistent CSV storage | struct, arrays, pointers, file I/O |
| 🏦 2 | Bank ATM System | Create accounts, login, deposit, withdraw, and transfer money | struct, strings, file I/O, functions |
| 🎮 3 | Hangman Game | Terminal-based word guessing game with scoring | arrays, strings, pointers, functions, randomness |
| ✅ 4 | Dynamic To-Do List | Task manager using dynamically allocated memory | malloc, realloc, free, pointers, file I/O |
A command-line student management system that allows users to:
- ➕ Add students
- 👀 View all students
- 🔎 Search students by ID
- 🗑️ Delete students
- ✏️ Update grades
- 💾 Save data to a CSV file
- 📂 Load existing records
struct • Arrays • Pointers • Functions • File I/O • CSV • String handling
📁 Location: Project 1 - Student Dashboard
A command-line ATM/banking simulation where users can create accounts and perform basic banking operations.
- 👤 Create an account
- 🔐 Login using account number and PIN
- 💰 Check balance
- ➕ Deposit money
- ➖ Withdraw money
- 🔄 Transfer money between accounts
- 🚪 Logout
- 💾 Persistent account data
struct • Arrays • Pointers • Strings • File I/O • Authentication logic • Functions
📁 Location: Project 2 - Bank ATM System
A terminal-based Hangman game where the player attempts to guess a randomly selected word.
Players receive a maximum of 6 incorrect guesses before losing.
- 🎲 Random word selection
- 🔤 Letter guessing
- ❤️ Six chances
- 📊 Score tracking
⚠️ Final-warning stage- 🏆 Win detection
- 💀 Loss detection
- 🔄 Play again option
Arrays • Strings • Pointers • Functions • Loops • Conditional logic • Random number generation
📁 Location: Project 3 - Hangman Game
A command-line task manager that uses dynamic memory allocation instead of a fixed-size array.
- ➕ Add tasks
- 👀 View tasks
- ✅ Mark tasks as completed
- 🔄 Mark tasks as incomplete
- 🗑️ Delete individual tasks
- 🧹 Delete all completed tasks
- 💾 Save tasks to a file
- 📂 Load tasks when the program starts
- 📈 Dynamically grow the task list
- 📉 Dynamically shrink the task list
- 🧠 Free allocated memory
malloc() • realloc() • free() • Pointers • Double pointers • Dynamic arrays • Structures • File I/O
📁 Location: Project 4 - Dynamic To-Do List
The projects represent a progression in my understanding of C:
Project 1
Student Dashboard
│
▼
Structs + Arrays + File I/O
│
▼
Project 2
Bank ATM System
│
▼
Functions + Pointers + Program Logic
│
▼
Project 3
Hangman Game
│
▼
Strings + Arrays + Randomness
│
▼
Project 4
Dynamic To-Do List
│
▼
Dynamic Memory + malloc + realloc + free
The Dynamic To-Do List was particularly useful for understanding how memory can be allocated and resized at runtime rather than relying on a fixed-size array.
- C
- Variables and data types
- Functions
- Loops
- Conditionals
- Arrays
- Strings
- Structures
- Pointers
- Double pointers
- Dynamic memory allocation
- File handling
- Input/output
- Searching
- Array manipulation
- Random number generation
stdio.h
string.h
stdlib.h
ctype.h
time.h
This repository contains projects created while developing my C programming fundamentals.
Rather than only completing isolated exercises, I am using these projects to practice building complete command-line applications that combine multiple programming concepts.
The projects gradually introduce more advanced concepts, particularly:
🧱 Data structures 👉 Pointers 📂 File handling 🧠 Dynamic memory management 🔧 Modular program design 🧪 Problem solving
More C projects will be added as I continue progressing through the language and exploring topics such as:
- 🧠 Data structures
- 🔍 Algorithms
- 🧵 More advanced pointers
- 📦 Linked lists
- 🌳 Trees
- 🔎 Searching and sorting
- 💾 More advanced file handling
- 🧪 Testing
- 🧩 Modular C projects
Syed Shams Junaid
GitHub: Azaucifer
⭐ This repository is a record of my progress learning and building with C.