Skip to content

Repository files navigation

💻 C Projects

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. 🚀


📚 Projects

# 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

🎓 Project 1 — Student Dashboard

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

🧠 Concepts

struct • Arrays • Pointers • Functions • File I/O • CSV • String handling

📁 Location: Project 1 - Student Dashboard


🏦 Project 2 — Bank ATM System

A command-line ATM/banking simulation where users can create accounts and perform basic banking operations.

✨ Features

  • 👤 Create an account
  • 🔐 Login using account number and PIN
  • 💰 Check balance
  • ➕ Deposit money
  • ➖ Withdraw money
  • 🔄 Transfer money between accounts
  • 🚪 Logout
  • 💾 Persistent account data

🧠 Concepts

struct • Arrays • Pointers • Strings • File I/O • Authentication logic • Functions

📁 Location: Project 2 - Bank ATM System


🎮 Project 3 — Hangman Game

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.

✨ Features

  • 🎲 Random word selection
  • 🔤 Letter guessing
  • ❤️ Six chances
  • 📊 Score tracking
  • ⚠️ Final-warning stage
  • 🏆 Win detection
  • 💀 Loss detection
  • 🔄 Play again option

🧠 Concepts

Arrays • Strings • Pointers • Functions • Loops • Conditional logic • Random number generation

📁 Location: Project 3 - Hangman Game


✅ Project 4 — Dynamic To-Do List

A command-line task manager that uses dynamic memory allocation instead of a fixed-size array.

✨ Features

  • ➕ 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

🧠 Concepts

malloc()realloc()free() • Pointers • Double pointers • Dynamic arrays • Structures • File I/O

📁 Location: Project 4 - Dynamic To-Do List


📈 Learning Progression

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.


🛠️ Technologies & Concepts

💻 Language

  • C

📚 Core Concepts

  • 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

🧰 C Standard Library

stdio.h
string.h
stdlib.h
ctype.h
time.h

🎯 Purpose

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


🚀 Future Projects

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

👨‍💻 Author

Syed Shams Junaid

GitHub: Azaucifer


This repository is a record of my progress learning and building with C.

About

Practical C programming projects exploring data structures, pointers, file I/O, dynamic memory management, and command-line application development.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages