PPDB C++
Simple student admission system (PPDB) built with C++ using in-memory data storage
Share this project:
Project Overview
PPDB C++ - Student Admission System
A simple student admission system (PPDB - Penerimaan Peserta Didik Baru) built with C++. This console-based application manages new student registrations using in-memory data storage, demonstrating fundamental C++ programming concepts.
📋 Overview
This PPDB (New Student Admission) application is a console-based system that handles student registration processes. Built without database integration, it uses in-memory data structures to store information within a single session, making it an excellent learning project for C++ fundamentals.
✨ Features
- Student Registration: Register new students with complete information
- View Registrations: Display all registered students
- In-memory Storage: Data stored during program runtime
- Admin Access: Special admin menu (accessible with code 13)
- Session-based: All data available within one program session
Admin Features
Access admin panel by entering number 13 in main menu:
- Username:
admin - Password:
admin
Admin capabilities:
- View all registrations
- Manage system settings
- Access special functions
🛠️ Technologies Used
- C++: Core programming language
- STL: Standard Template Library (vectors, strings)
- Console I/O: For user interaction
📁 Project Structure
ppdb-cpp/
├── src/
│ └── main.cpp # Main application file
├── bin/
│ └── ppdb.exe # Compiled executable
├── .vscode/ # VS Code configuration
├── .gitignore
└── README.md
🚀 Getting Started
Prerequisites
- C++ compiler (GCC, Clang, or MSVC)
- Command line interface
Compilation
Using GCC:
g++ -o ppdb src/main.cpp
Using Clang:
clang++ -o ppdb src/main.cpp
Using Visual Studio:
- Open project in Visual Studio
- Build → Build Solution
- Executable in Debug/Release folder
Running the Application
Linux/macOS:
./ppdb
Windows:
ppdb.exe
Or double-click the executable
💻 Usage Guide
Main Menu
Upon starting, you'll see the main menu with options:
- Register New Student
- View All Registrations
- Exit
- Admin Panel (hidden option)
Registering Students
- Select option 1
- Enter student information:
- Full Name
- Date of Birth
- Address
- Parent/Guardian Name
- Phone Number
- Previous School
- Desired Class/Program
- Data saved to memory
- Return to main menu
Viewing Registrations
- Select option 2
- See list of all registered students
- Information displayed in formatted table
- Return to main menu
Admin Access
- Enter 13 from main menu
- Login with credentials:
- Username:
admin - Password:
admin
- Username:
- Access admin features:
- View detailed statistics
- Export data (if implemented)
- System management
📊 Data Structure
Student information stored in memory:
struct Student {
string name;
string dateOfBirth;
string address;
string parentName;
string phoneNumber;
string previousSchool;
string desiredClass;
int registrationNumber;
};
🎓 Learning Concepts
This project demonstrates:
- Struct/Class Usage: Data organization
- Vector Container: Dynamic arrays
- Console I/O: User interaction
- Control Structures: Loops and conditionals
- Functions: Code organization
- String Manipulation: Text processing
- In-memory Storage: Data management within session
⚠️ Important Notes
Data Persistence
Note: This application does NOT use a database. All data is stored in memory during program execution:
- Data exists only while program is running
- When you exit, all data is lost
- Each run starts with empty data
- No file saving implemented
This is intentional for learning purposes, focusing on C++ fundamentals without database complexity.
🔧 Code Example
Basic structure:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct Student {
string name;
int regNumber;
// ... other fields
};
vector<Student> students; // In-memory storage
void addStudent() {
Student newStudent;
// Get input from user
students.push_back(newStudent);
}
void viewStudents() {
for(const auto& student : students) {
cout << student.name << endl;
}
}
int main() {
int choice;
while(true) {
// Display menu
cin >> choice;
switch(choice) {
case 1: addStudent(); break;
case 2: viewStudents(); break;
case 13: adminPanel(); break;
case 3: return 0;
}
}
}
🐛 Troubleshooting
Program Crashes on Input
- Check input validation -Ensure correct data types
Admin Panel Not Accessible
- Enter exactly 13 (not "admin" or other)
- Follow with correct credentials
Data Disappears
- This is normal - data is session-based
- All data clears when program exits
🚀 Future Enhancements
To make this production-ready:
- File-based storage (text/CSV files)
- Database integration (SQLite, MySQL)
- Data validation and error handling
- Search and filter capabilities
- Edit/delete student records
- Print registration forms
- Backup and restore
- User authentication system
- GUI interface (Qt, wxWidgets)
🎯 Use Cases
- Learning C++ fundamentals
- Understanding data structures
- Practicing console applications
- Teaching programming basics
- Simple registration systems
🤝 Contributing
This is a learning project. Feel free to fork and enhance with:
- File I/O for persistence
- Better UI/UX
- Additional features
- Database integration
📄 License
Open source and available for educational purposes.
💭 Personal Note
This is a simple PPDB application that doesn't use a database. All data is stored in-memory within a single session. It was great practice for learning C++ fundamentals without the complexity of database integration!
Built for Learning C++ 🎓📝
Simple student admission system with in-memory storage