Skip to content

ricwyc-max/PolynomialOperations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

一元多项式运算与可视化系统

> 一个支持加减乘除、带 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 // 本文件


🚀 一键运行

  1. 安装 Visual Studio 2019 及以上,勾选“使用 C++ 的桌面开发”
  2. 双击 homework.sln → 选择 Debug|x64Ctrl+F5 编译运行
  3. 在界面左侧两个文本框输入多项式,点击按钮即可看到结果与柱状图

🧪 输入格式示例

合法输入 含义
3x^4-2 x^2+1 3x⁴-2x²+1
-x^3+4x-5 -x³+4x-5
x^21x^2
7 常数 7
+0x^5 自动忽略零项

支持任意空格、Tab、正负号连续出现,程序会自动规范化


📈 绘图规则

  • 柱状图仅展示当前激活的多项式(最后一次运算结果或手动输入)
  • 奇指数 → 蓝色;偶指数 → 绿色
  • 空多项式或零多项式 → 画布留空

💾 文件输出样例

result.txt

division.txt


⚠️ 已知限制

  • 仅支持整数系数
  • 除法采用长除法,若不能整除则给出商+余式,不继续化简
  • 指数范围:-32768 ~ 32767int16 安全区间)
  • 界面固定大小,暂未适配高 DPI 缩放

🧑‍💻 开发随笔

  • 链表按指数升序存储,插入即合并同类项,保证运算复杂度 O(n+m)
  • Win32 绘图双缓冲方案:BeginPaint + InvalidateRect 解决残影
  • 所有字符串转换均使用 std::wstring + std::to_wstring,确保中文不乱码
  • 借助 Kimi / DeepSeek 生成初始代码骨架,但全部手工重构 + 单步调试,无直接复制粘贴

📄 许可

仅供教学交流使用,禁止商业用途。引用请注明出处。

About

数据结构与算法大作业

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors