A C project for manipulating polynomials using linked lists
This project, initially developed for a university assignment, empowers you to explore linked lists and their application to complex polynomial operations. It has since been significantly enhanced to provide a robust development environment:
- Streamlined Workflow: CMake integration ensures seamless cross-platform compatibility for building the project.
- Enhanced Code Structure: Refactored code promotes readability, maintainability, and modularity.
- Dockerized Deployment: The included Dockerfile simplifies deployment by packaging the project into a container.
- Polynomial Arithmetic: Perform essential operations like addition, subtraction, multiplication, division, evaluation, differentiation, and integration on polynomials.
- Efficient Representation: Leverage linked lists to represent polynomials effectively, optimizing memory management.
- Visualized Insights: Generate graphs of polynomials using the SDL2 library, providing a clear understanding of their behavior.
- CRC Calculation (Optional): Implement CRC (Cyclic Redundancy Check) to detect errors in data transmission (documentation required).
For a traditional build, ensure you have CMake, SDL2, SDL2_image, and SDL2_ttf libraries installed on your system. Refer to your system's package manager for installation instructions.
For a more convenient setup, leverage the provided Dockerfile to run the project in a container. This approach eliminates the need for specific library installations.
- Clone the repository:
git clone https://github.com/lyes-mersel/polynomial-master.git
- Build the project:
cd polynomial-master && mkdir build && cd build cmake .. make
- Run the application:
./polynomial-master
- Clone the repository:
git clone https://github.com/lyes-mersel/polynomial-master.git
- Build the image:
cd polynomial-master docker build -t polynomial-master .
- Run the container:
Unix-based system (Debian, Ubuntu, Mint, macOS, ...):
Windows (requires Xming server):
docker run --rm -it --device /dev/dri -e DISPLAY=:0 --volume /tmp/.X11-unix:/tmp/.X11-unix polynomial-master
docker run --rm -it -e DISPLAY=:0 --volume /tmp/.X11-unix:/tmp/.X11-unix polynomial-master
Note: For Windows users running the container, installing and launching the Xming server is a prerequisite.
- C Programming Language: Forms the foundation for the project's functionalities.
- CMake: Streamlines the build process across different platforms.
- SDL2, SDL2_image, SDL2_ttf: Libraries utilized for graphics and user interface elements.
We welcome contributions to Edutainment! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Commit your changes.
- Push to the branch.
- Create a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Website - Portfolio
- Github - @lyes-mersel
- LinkedIn - @lyes-mersel