# briancai666/c-programming-course-2026fall architecture

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

- Interactive diagram: https://gitdiagram.com/briancai666/c-programming-course-2026fall
- Repository: https://github.com/briancai666/c-programming-course-2026fall

## Overview

This repository is a collection of standalone C and C++ course exercises, not a single application. The typical workflow is that a learner runs one program, enters values through standard input, and reads its calculation or reformatted output. The map groups sampled exercises by week and topic; parallel C/C++ versions are independent implementations. The README describes the course broadly, while the sampled source supports only the specific behaviors shown here.

Main entry points: [`week-01/ex-C.cpp`](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-01/ex-C.cpp) (Temperature average), [`week-01/ex-B.cpp`](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-01/ex-B.cpp) (Reorder fields), [`week-02/ex-D.cpp`](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-02/ex-D.cpp) (Make change), [`week-03/homework/ex-C.cpp`](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-03/homework/ex-C.cpp) (Make change)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_week1["Week 1"]
  node_temperature["Temperature average<br/>[ex-C.cpp]"]
  node_reorder["Reorder fields<br/>[ex-B.cpp]"]
end

subgraph group_week2["Week 2"]
  node_change["Make change<br/>[ex-D.cpp]"]
end

subgraph group_week3["Week 3"]
  node_change2["Make change<br/>[ex-C.cpp]"]
  node_quadratic["Quadratic roots<br/>[ex-F.cpp]"]
end

subgraph group_week4["Week 4"]
  node_time["Time difference<br/>[ex-B.cpp]"]
  node_geometry["Geometry measures<br/>[ex-B.cpp]"]
end

node_learner(("Learner"))

node_learner -->|"enters values"| node_temperature
node_temperature -->|"prints average"| node_learner
node_learner -->|"enters fields"| node_reorder
node_reorder -->|"prints reordered"| node_learner
node_learner -->|"enters amount"| node_change
node_change -->|"prints counts"| node_learner
node_learner -->|"enters amount"| node_change2
node_change2 -->|"prints counts"| node_learner
node_learner -->|"enters coefficients"| node_quadratic
node_quadratic -->|"prints roots"| node_learner
node_learner -->|"enters times"| node_time
node_time -->|"prints difference"| node_learner
node_learner -->|"enters dimensions"| node_geometry
node_geometry -->|"prints measures"| node_learner

click node_temperature "https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-01/ex-C.cpp"
click node_reorder "https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-01/ex-B.cpp"
click node_change "https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-02/ex-D.cpp"
click node_change2 "https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-03/homework/ex-C.cpp"
click node_quadratic "https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-03/homework/ex-F.cpp"
click node_time "https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-04/classwork/ex-B.cpp"
click node_geometry "https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-04/homework/ex-B.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_temperature,node_reorder toneBlue
class node_change toneAmber
class node_change2,node_quadratic toneMint
class node_time,node_geometry toneRose
class node_learner toneIndigo
```

## Components

### Week 1

- [Temperature average](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-01/ex-C.cpp): `week-01/ex-C.cpp`
- [Reorder fields](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-01/ex-B.cpp): `week-01/ex-B.cpp`

### Week 2

- [Make change](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-02/ex-D.cpp): `week-02/ex-D.cpp`

### Week 3

- [Make change](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-03/homework/ex-C.cpp): `week-03/homework/ex-C.cpp`
- [Quadratic roots](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-03/homework/ex-F.cpp): `week-03/homework/ex-F.cpp`

### Week 4

- [Time difference](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-04/classwork/ex-B.cpp): `week-04/classwork/ex-B.cpp`
- [Geometry measures](https://github.com/briancai666/c-programming-course-2026fall/blob/main/week-04/homework/ex-B.cpp): `week-04/homework/ex-B.cpp`

### Other components

- **Learner**

## Connections

- Learner → Temperature average: enters values
- Temperature average → Learner: prints average
- Learner → Reorder fields: enters fields
- Reorder fields → Learner: prints reordered
- Learner → Make change: enters amount
- Make change → Learner: prints counts
- Learner → Make change: enters amount
- Make change → Learner: prints counts
- Learner → Quadratic roots: enters coefficients
- Quadratic roots → Learner: prints roots
- Learner → Time difference: enters times
- Time difference → Learner: prints difference
- Learner → Geometry measures: enters dimensions
- Geometry measures → Learner: prints measures
