summaryrefslogtreecommitdiff
path: root/lab04/README.md
blob: b5dd0a5897678fd4f901c789586b396d93933941 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 数据结构实验 04

## 功能简介

本项目使用 GNU C11 实现一个简单的终端计算器,包含:

- 线性表的添加、插入、删除、修改、查找和遍历;
- 向量加法、减法和夹角余弦计算;
- 顺序表多项式的加减、乘法和求导;
- 链表多项式的加减、乘法和求导;
- 四则运算表达式求值;
- 实矩阵加减乘、转置、行列式和特征值计算(特征值可为复数)。

底层实现使用自定义的 `vec` 动态数组和循环双向链表。

## 编译说明

在项目根目录执行:

```sh
make
```

默认使用 GNU C11 标准编译,生成可执行文件 `calculator`。

编译参数包括 `-std=gnu11 -Wall -Wextra -O2`,链接时使用数学库 `-lm`。

清理编译文件:

```sh
make clean
```

## 使用说明

运行程序:

```sh
./calculator
```

在主菜单中选择线性表、向量、顺序表多项式、链表多项式、表达式计算或矩阵运算。矩阵运算入口为菜单项 6,先输入矩阵 A、B 的行列数及各行元素,再选择运算。菜单支持方向键或 `j`/`k` 移动,按 Enter 确认,按 `Esc` 或 `q` 返回或退出。

运行测试:

```sh
make test
```