设计思想
首先使用定义的两个函数get_coef()
和getNums()
将读入的字符串如6x^-3-x+4.4x^2-1.2x^9
,进行分割得到每一项的系数和指数,然后将其存入系数数组coefs[]
和指数数组expns[]
中。
在建立多项式的过程中,使用系数数组和指数数组进行多项式的建立。 使用C
扩充函数库 conio.h
中声明的一个函数gotoxy(int x, int y)
,利用它将光标移动到指定位置的功能,进行界面的显示和输出。
使用system("cls")
函数对程序进行清屏操作,利用此函数实现了程序的反复读入和输出。
界面参考大佬博客:一元稀疏多项式简单计算器 十分感谢。
内部数据结构代码自己实现,相比于网上的大多相关博客,代码简洁明了。
内部数据结构代码详解:一元稀疏多项式计算器 【 数据结构课设 】 仿真界面 + 代码详解
void goto_xy(int x, int y)
{
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos = { x,y };
SetConsoleCursorPosition(hOut, pos);
}
void show(Polyn a, Polyn b, Polyn c)
{
goto_xy(0, 0); printf(“┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n”);
goto_xy(0, 1); printf(“┃ 一元稀疏多项式简单计算器 ┃\n”);
goto_xy(0, 2); printf(“┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┫”);
goto_xy(0, 3); printf(“┃\n”); goto_xy(50, 3); printf(“┃\n”);
goto_xy(0, 4); printf(“┃\n”); goto_xy(50, 4); printf(“┃\n”);
goto_xy(0, 5); printf(“┃\n”); goto_xy(50, 5); printf(“┃\n”);
goto_xy(0, 6); printf(“┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫”);
goto_xy(0, 7); printf(“┃★ A :”); goto_xy(7, 7); printPoLlyn(a); goto_xy(50, 7); printf(“┃”);
goto_xy(0, 8); printf(“┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫”);
goto_xy(0, 9); printf(“┃★ B :”); goto_xy(7, 9); printPoLlyn(b); goto_xy(50, 9); printf(“┃”);
goto_xy(0, 10); printf(“┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫”);
goto_xy(0, 11); printf(“┃★ C :”); goto_xy(7, 11); printPoLlyn©; goto_xy(50, 11); printf(“┃”);
goto_xy(0, 12); printf(“┣━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┫”);