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