一元多项式加减乘除运算-C语言实现

根据同学的要求,对该程序作了点修改。
/*
* 文件: main.c
* ------------
* 功能:一元多项式的运算(加,减,乘,除)
* 版本: 1.1
* 日期 2008-05-16
*/
#include
#include
#include
#include "polynomial.h"

/*
* 主函数
*/
int main(void)
{
    Link pa=NULL;
    Link pb=NULL;
    Link rX = NULL;
    Link copyB = NULL;
    int isExit = FALSE;
    int operation = ADD;
   
    printf("一元多项式运算 (版本 %.1f)/n", VERSION);
    puts("注:输入的幂必须从小到大");
    printLine();

    printf("创建多项式 P(x):");
    pa = createPolynomial();

    printLine();
   
    printf("创建多项式 Q(x):");
    pb = createPolynomial();

    // 确定执行什么操作
    do {
        printLine();
        printf("P(x) = ");
        display(pa, TRUE);
   
        printf("Q(x) = ");
        display(pb, TRUE);

        puts("[-操作菜单-]");
        puts(" 0 加法/n 1 减法/n 2 乘法/n 3 除法/n 4 退出");
        scanf("%d", &operation);
       
        switch(operation) {
            case ADD: {
                    printLine();
                    puts("加法运算结果");
                    rX = copyList(pa);
                    copyB = copyList(pb);
                    addPoly(rX,copyB);
                    printf("R(x) = ");
                    display(rX, TRUE);
                } break;

            case SUB: {
                    printLine();
                    puts("减法运算结果");
                    rX = copyList(pa);
                    copyB = copyList(pb);
                    rX = subtractPoly(rX, copyB);
                    printf("R(x) = ");
                    display(rX, TRUE);
                } break;

            case MUL: {
                    printLine();
                    puts("乘法运算结果");
                    printf("R(x) = ");
                    rX = copyList(pa);
                    copyB = copyList(pb);
                    rX = multiplyPolynomial(rX, copyB);
                    display(rX, TRUE);
                } break;

            case DIV: {
                    printLine();
                    puts("除法运算结果");
                    rX = copyList(pa);
                    copyB = copyList(pb);
                    rX = reverse(rX);
                    copyB = reverse(copyB);
                    dividePolynomial(rX, copyB);
                } break;
       
            case EXIT: { // 退出程序
                    isExit = TRUE;
                } break;

            default: {
                    puts("Error: Unexpected Input, please try again.");
                    //isExit = TRUE;
                }

        } //End switch
       
    } while (isExit != TRUE);

    destroy(&pa);
    destroy(&pb);

    if (rX) {
        destroy(&rX);
    }
    if (copyB) {
        destroy(©B);
    }
    printf("执行完成 /n");
    //printf("按任意键继续 ... ");
    //getch();
    return 0;
}

你可能感兴趣的:(一元多项式加减乘除运算-C语言实现)