The QS Ranking Project is a C++ program designed to manage and sort a list of universities based on specific criteria such as name and rank. This project showcases sorting algorithms, user management, and a simple user interface, providing an interactive way to explore university rankings.
- โจ Features
- ๐ ๏ธ Installation
- ๐ Usage
- ๐งฉ Code Structure
- ๐ฅ User Roles
- ๐ Sorting Algorithms
- ๐ฎ Future Enhancements
- ๐ค Contributing
- ๐ License
- ๐ซ University Management: Store and manage a list of universities with attributes like name and rank.
- ๐ Sorting Algorithms: Implement Bubble Sort and Insertion Sort to order universities by name or rank.
- ๐ฅ User Roles: Manage different user roles (Admin and Registered Users) with role-based access control.
- ๐ฅ๏ธ Console Interface: Interact with the system using a simple text-based menu interface.
To set up and run the project on your local machine, follow these steps:
- Open Visual Studio and create a new project.
- Import the source files into the project.
- Build and Run the project using Visual Studio's build tools.
- Clone the repository:
git clone https://github.com/Hamada-khairi/QS-RANKING-PROJECT.git
- Navigate to the project directory:
cd qs-ranking-project - Compile the project using a C++ compiler:
g++ -o QSRanking Main.cpp University.cpp UserInterface.cpp UserManager.cpp SortAndSearch.cpp BaseUser.cpp RegisteredUser.cpp AdminUser.cpp DataSeeder.cpp
- Run the executable:
./QSRanking
- Launch the program to access the main menu.
- Choose to sort universities by name or rank using Bubble Sort or Insertion Sort.
- View the sorted list of universities displayed in the console.
- Admin users may have access to additional functionalities like adding or removing universities (if implemented).
- Main.cpp: Entry point of the program, handles initialization and user interface.
- University.cpp & University.h: Define the
Universityclass and its attributes. - SortAndSearch.cpp & SortAndSearch.h: Implement sorting algorithms (Bubble Sort and Insertion Sort).
- UserInterface.cpp & UserInterface.h: Manage user interaction and menu display.
- UserManager.cpp & UserManager.h: Handle user authentication and role management.
- BaseUser, RegisteredUser, AdminUser: Define different user roles with varying permissions.
- DataSeeder.cpp & DataSeeder.h: Populate the initial list of universities for sorting and display.
- Admin User: ๐ก๏ธ Has full control over the system, including adding or removing universities.
- Registered User: ๐ Can view and sort the list of universities.
- Base User: โ๏ธ A base class for common user functionalities.
- Bubble Sort: Simple comparison-based algorithm with O(n^2) complexity. Suitable for small datasets.
- Insertion Sort: Builds the final sorted array one item at a time, with O(n^2) complexity in the average and worst case.
- ๐ Implement more efficient sorting algorithms like Quick Sort or Merge Sort.
- ๐จ Develop a graphical user interface (GUI) for a more user-friendly experience.
- ๐ก๏ธ Add error handling and input validation to enhance system robustness.
- ๐ Implement additional user management features, such as registration and profile management.
Contributions are welcome! Please fork the repository and create a pull request with your proposed changes.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Commit your changes (
git commit -am 'Add new feature'). - Push to the branch (
git push origin feature-branch). - Create a new Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- QS Ranking Project C++
- University Ranking Management System
- C++ Sorting Algorithms
- User Role Management in C++
- University Data Sorting Program
