# rasunnyaa/learn architecture

> Architecture diagram of the GitHub repository rasunnyaa/learn, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rasunnyaa/learn
- Repository: https://github.com/rasunnyaa/learn
- Video tour (about a minute): https://gitdiagram.com/rasunnyaa/learn/video

## Overview

This repository is a collection of independent C and C++ programming exercises, not a single application. The sampled programs take console input, perform a small calculation or demonstrate a data structure or object-oriented concept, then print results. The graph groups representative exercises by topic; each is a standalone workflow. Source excerpts were available for only a subset of the files, and there is no README, so relationships and capabilities beyond those examples are not inferred.

Main entry points: [`ทำในชั่วโมง/main.cpp`](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%99%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%A7%E0%B9%82%E0%B8%A1%E0%B8%87/main.cpp) (Father demo entry), [`การบ้านโปรแกรม 1/ใบงาน 3/6.c`](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%203/6.c) (Change calculator), [`การบ้านโปรแกรม 1/ใบงาน 2/2.c`](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%202/2.c) (Swap and sum), [`การบ้านโปรแกรม 1/ใบงาน 11/4.c`](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%2011/4.c) (Point movement)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_procedural["Procedural exercises"]
  node_change["Change calculator<br/>[6.c]"]
  node_swap["Swap and sum<br/>[2.c]"]
  node_point["Point movement<br/>[4.c]"]
end

subgraph group_data["Data exercises"]
  node_arraymenu["Array menu<br/>[1.c]"]
  node_recursive["Recursive maximum<br/>[7.c]"]
  node_registration["Student registration display<br/>[5.c]"]
end

subgraph group_oop["Object-oriented exercises"]
  node_products["Product management<br/>[5.cpp]"]
  node_fan["Fan state demo<br/>[4.cpp]"]
  node_father_main["Father demo entry<br/>[main.cpp]"]
  node_father_class["Father class<br/>[father.h]"]
  node_father_impl["Father implementation<br/>[father.cpp]"]
end

node_terminal(("Console user"))

node_terminal -->|"enters values"| node_change
node_change -->|"prints change"| node_terminal
node_terminal -->|"enters numbers"| node_swap
node_swap -->|"prints sum"| node_terminal
node_terminal -->|"enters coordinates"| node_point
node_point -->|"prints point"| node_terminal
node_terminal -->|"chooses actions"| node_arraymenu
node_arraymenu -->|"prints results"| node_terminal
node_terminal -->|"enters numbers"| node_recursive
node_recursive -->|"prints maximum"| node_terminal
node_registration -->|"prints records"| node_terminal
node_terminal -->|"chooses actions"| node_products
node_products -->|"prints products"| node_terminal
node_fan -->|"prints state"| node_terminal
node_father_main -->|"uses class"| node_father_class
node_father_main -->|"calls methods"| node_father_impl
node_father_main -->|"prints details"| node_terminal

click node_change "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%203/6.c"
click node_swap "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%202/2.c"
click node_point "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%2011/4.c"
click node_arraymenu "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%207/1.c"
click node_recursive "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%208/7.c"
click node_registration "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%2010/5.c"
click node_products "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%2013/5.cpp"
click node_fan "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%2012/4.cpp"
click node_father_main "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%99%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%A7%E0%B9%82%E0%B8%A1%E0%B8%87/main.cpp"
click node_father_class "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%99%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%A7%E0%B9%82%E0%B8%A1%E0%B8%87/father.h"
click node_father_impl "https://github.com/rasunnyaa/learn/blob/main/%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%99%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%A7%E0%B9%82%E0%B8%A1%E0%B8%87/father.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_change,node_swap,node_point,node_terminal toneBlue
class node_arraymenu,node_recursive,node_registration toneAmber
class node_products,node_fan,node_father_main,node_father_class,node_father_impl toneMint
```

## Components

### Procedural exercises

- [Change calculator](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%203/6.c): `การบ้านโปรแกรม 1/ใบงาน 3/6.c`
- [Swap and sum](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%202/2.c): `การบ้านโปรแกรม 1/ใบงาน 2/2.c`
- [Point movement](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%2011/4.c): `การบ้านโปรแกรม 1/ใบงาน 11/4.c`

### Data exercises

- [Array menu](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%207/1.c): `การบ้านโปรแกรม 1/ใบงาน 7/1.c`
- [Recursive maximum](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%208/7.c): `การบ้านโปรแกรม 1/ใบงาน 8/7.c`
- [Student registration display](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%2010/5.c): `การบ้านโปรแกรม 1/ใบงาน 10/5.c`

### Object-oriented exercises

- [Product management](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%2013/5.cpp): `การบ้านโปรแกรม 1/ใบงาน 13/5.cpp`
- [Fan state demo](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%201/%E0%B9%83%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99%2012/4.cpp): `การบ้านโปรแกรม 1/ใบงาน 12/4.cpp`
- [Father demo entry](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%99%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%A7%E0%B9%82%E0%B8%A1%E0%B8%87/main.cpp): `ทำในชั่วโมง/main.cpp`
- [Father class](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%99%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%A7%E0%B9%82%E0%B8%A1%E0%B8%87/father.h): `ทำในชั่วโมง/father.h`
- [Father implementation](https://github.com/rasunnyaa/learn/blob/main/%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%99%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%A7%E0%B9%82%E0%B8%A1%E0%B8%87/father.cpp): `ทำในชั่วโมง/father.cpp`

### Other components

- **Console user**

## Connections

- Console user → Change calculator: enters values
- Change calculator → Console user: prints change
- Console user → Swap and sum: enters numbers
- Swap and sum → Console user: prints sum
- Console user → Point movement: enters coordinates
- Point movement → Console user: prints point
- Console user → Array menu: chooses actions
- Array menu → Console user: prints results
- Console user → Recursive maximum: enters numbers
- Recursive maximum → Console user: prints maximum
- Student registration display → Console user: prints records
- Console user → Product management: chooses actions
- Product management → Console user: prints products
- Fan state demo → Console user: prints state
- Father demo entry → Father class: uses class
- Father demo entry → Father implementation: calls methods
- Father demo entry → Console user: prints details
