> 一个支持加减乘除、带 Windows GUI 和柱状图展示的轻量级教学工具
> 作者:吴尧承(2304120130)
> 课程:数据结构与算法(智能建造一班)
| 功能 | 说明 |
|---|---|
| 多项式输入 | 支持省略系数、省略指数、带符号、容错空格 |
| 四则运算 | 加、减、乘、除(长除法),自动合并同类项 |
| 实时绘图 | 柱状图动态展示当前多项式,奇偶指数颜色区分 |
| 结果保存 | 一键导出运算过程到 result.txt / division.txt |
| 中文路径 | 界面、文件均支持 Unicode 中文 |
homework/
├─ main.cpp // 入口,Win32 消息循环
├─ Polynomial.h/.cpp // 核心链表结构 + 四则运算
├─ PolynomialGUI.h/.cpp // 窗口、控件、绘图、事件
├─ PolynomialCalculator.h/.cpp // 静态工具类(保存、格式化)
├─ resource.h / homework.rc // 图标、菜单资源
├─ homework.sln / .vcxproj // VS2019+ 工程
└─ README.md // 本文件
- 安装 Visual Studio 2019 及以上,勾选“使用 C++ 的桌面开发”
- 双击
homework.sln→ 选择Debug|x64→Ctrl+F5编译运行 - 在界面左侧两个文本框输入多项式,点击按钮即可看到结果与柱状图
| 合法输入 | 含义 |
|---|---|
3x^4-2 x^2+1 |
3x⁴-2x²+1 |
-x^3+4x-5 |
-x³+4x-5 |
x^2 或 1x^2 |
x² |
7 |
常数 7 |
+0x^5 |
自动忽略零项 |
支持任意空格、Tab、正负号连续出现,程序会自动规范化
- 柱状图仅展示当前激活的多项式(最后一次运算结果或手动输入)
- 奇指数 → 蓝色;偶指数 → 绿色
- 空多项式或零多项式 → 画布留空
result.txt
division.txt
- 仅支持整数系数
- 除法采用长除法,若不能整除则给出商+余式,不继续化简
- 指数范围:
-32768 ~ 32767(int16安全区间) - 界面固定大小,暂未适配高 DPI 缩放
- 链表按指数升序存储,插入即合并同类项,保证运算复杂度 O(n+m)
- Win32 绘图双缓冲方案:
BeginPaint+InvalidateRect解决残影 - 所有字符串转换均使用
std::wstring+std::to_wstring,确保中文不乱码 - 借助 Kimi / DeepSeek 生成初始代码骨架,但全部手工重构 + 单步调试,无直接复制粘贴
仅供教学交流使用,禁止商业用途。引用请注明出处。