Skip to content
Snippets Groups Projects
Commit b1f0cf3d authored by j2-pelczar's avatar j2-pelczar :cowboy:
Browse files

Upload New File

parent 334ba79f
No related branches found
No related tags found
No related merge requests found
README.md 0 → 100644
# GitLab Repository for Worksheet Implementations
## Overview
This repository contains solutions to the tasks provided in Worksheet 1 and Worksheet 2 of the advanced software development module.
The tasks explore advanced C++ concepts, such as memory management, template adaptation, and unit testing. Each worksheet demonstrates
the practical application of these concepts through structured tasks and accompanying documentation.
---
## Repository Structure
```
/
├── worksheet_one/
│ ├── .vscode/ # IDE configuration files
│ ├── docs/ # Documentation for Worksheet 1
│ ├── task_1/ # Implements Task 1: File parsing and validation
│ ├── task_2/ # Implements Task 2: Data processing using templates
│ ├── task_3/ # Implements Task 3: Advanced data manipulation
│ ├── task_4/ # Integrates features from previous tasks
│ ├── tasks_revisited/ # Combines tasks 2 and 3 using templates for reusability
├── worksheet_two/
│ ├── .vscode/ # IDE configuration files
│ ├── docs/ # Documentation for Worksheet 2
│ ├── simpletest/ # Testing framework for Worksheet Two
│ ├── task_1_bump_allocator/ # Implements a custom memory allocator
│ ├── task_2_unit_tests/ # Unit tests for validating functionality
│ ├── task_3/ # Extends features with advanced functionality
├── worksheet_zero/
│ ├── TicTacToe/ # Simple implementation of the TicTacToe game
│ └── hello_world.cpp # Basic "Hello, World!" example in C++
```
---
## Getting Started
### Prerequisites
- **C++ Compiler**: Ensure you have a C++17 or later compatible compiler (e.g., GCC or Clang).
- **CMake**: To build and manage the project.
- **Testing Framework**: SimpleTest (provided in Worksheet Two).
### Clone the Repository
```bash
git clone <repository-link>
cd GitLab_repo
```
---
## Worksheet One
### Task Highlights
1. **Task 1**: File Parsing and Validation
- Parses input files to extract relevant data.
- Validates the data against predefined criteria.
- Documentation: See `worksheet_one/docs/task_1.md` for detailed instructions.
2. **Task 2**: Data Processing Using Templates
- Implements template-based functions for processing and transforming data.
- Focuses on code reusability and modularity.
- Documentation: See `worksheet_one/docs/task_2.md` for design details.
3. **Task 3**: Advanced Data Manipulation
- Applies advanced techniques to manipulate and process complex datasets.
- Introduces optimization strategies for efficient computation.
- Documentation: Refer to `worksheet_one/docs/task_3.md` for methodology.
4. **Task 4**: Integration of Features
- Combines features from previous tasks into a cohesive solution.
- Focuses on system design and integration testing.
- Documentation: See `worksheet_one/docs/task_4.md`.
5. **Tasks Revisited**: Template Adaptation
- Revisits Tasks 2 and 3 to create a reusable, template-based solution.
- Documentation: See `worksheet_one/docs/template_adaptation.md`.
---
## Worksheet Two
### Task Highlights
1. **Task 1 (Bump Allocator)**:
- Implements a custom memory allocator using the bump allocation strategy.
- Optimizes memory allocation and deallocation for specific use cases.
- Documentation: See `worksheet_two/docs/task_1_bump_allocator.md`.
2. **Task 2 (Unit Tests)**:
- Develops unit tests to validate functionality and catch edge cases.
- Focuses on verifying the robustness and reliability of the code.
- Documentation: See `worksheet_two/docs/task_2_unit_tests.md`.
3. **Task 3**:
- Extends features by integrating additional functionality.
- Explores advanced techniques to enhance the solution.
- Documentation: Refer to `worksheet_two/docs/task_3.md`.
4. **Testing Framework**: SimpleTest
- Used for validating the outputs of the tasks.
- Instructions: See `worksheet_two/docs/simpletest.md` for usage.
---
## Demonstration
### Running the Code
- Navigate to the desired task directory.
- Use the provided Makefile or follow the build instructions:
```bash
make
./run_task
```
### Example Demonstrations
1. **Worksheet One - Task 1**:
```bash
cd worksheet_one/task_1
make
./run_task1 input_file.txt
```
Example Output:
```plaintext
Successfully parsed 50 records.
Validation complete: 48 valid, 2 invalid.
```
2. **Worksheet Two - Task 1 (Bump Allocator)**:
```bash
cd worksheet_two/task_1_bump_allocator
make
./run_allocator
```
Example Output:
```plaintext
Allocated 1024 bytes of memory successfully.
Memory deallocation completed.
```
3. **Unit Tests**:
```bash
cd worksheet_two/task_2_unit_tests
make test
```
Example Output:
```plaintext
Running all test cases...
Test 1: Passed.
Test 2: Passed.
All tests completed successfully.
```
---
## Additional Notes
- Ensure all dependencies are installed before running the tasks.
- Refer to the `docs/` folder for detailed instructions and design documents.
- For troubleshooting, consult the specifications in `worksheet 1.pdf` and `worksheet 2.pdf`.
---
## Contact
For any issues, please create a GitLab issue or contact the repository maintainer.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment