#include <stdio.h> #include <stdlib.h> #include <math.h>

#define PI 3.1415926

struct Formula { char name[100]; char content[100]; struct Formula *next; };

void quadraticEquation(); void pythagoreanTheorem(); void areaOfTriangle(); void volumeOfCylinder(); void SOfBall(); void volumeOFBall(); void daoshu(); void addNewFormula(); void deleteFormula(); void displayFormulas();

struct Formula *head = NULL;

int main() { int a; // 第一级选择 while (1) { printf("\n"); printf("\n请选择以下几个选项\n"); printf("1.常见公式查询\n"); printf("2.部分公式计算\n"); printf("3.退出程序\n"); printf("\n"); printf("您的选项是:\n"); scanf("%d", &a);

    if (a == 3)
        return 0;
    if (a == 1 || a == 2)
        ;
    else
        printf("您输入的选项不合法!请重试\n");

    while (a == 1) {
        printf("\n请在以下选项中选择您要查询的公式:\n");
        printf("1.常见函数的导数\n");
        printf("2.正弦定理\n");
        printf("3.余弦定理\n");
        printf("4.辅助角定理\n");
        printf("5.球的表面积公式\n");
        printf("6.球的体积公式\n");
        printf("7.添加新公式或查询已添加的公式\n");
        printf("0.返回上一级\n");
        int b; // 第二级选择
        scanf("%d", &b);
        switch (b) {
            case 0:
                b = 0;
                a = 0;
                break;
            case 1:
                daoshu();
                break;
            case 2:
                printf("a/sin A=b/sin B=c/sin C=2R\n");
                printf("R外三角形的外接圆半径\n");
                break;
            case 3:
                printf("cos A=b*b+c*c-a*a/2bc\n");
                break;
            case 4:
                printf("asinx+bcosx=√ (a2+b2)sin [x+arctan (b/a)]\n");
                break;
            case 5:
                printf("S=4ΠR*R\n");
                break;
            case 6:
                printf("V=4ΠR*R*R/3\n");
                break;
            case 7:
                addNewFormula();
                break;
            default:
                printf("无效的选项,请重新输入。\n");
                break;
        }
    }

    int choice; // 第二级选择

    while (a == 2) {
        printf("\n请选择要查询的数学公式:\n");

        printf("请输入选项:\n");
        scanf("%d", &choice);

        switch (choice) {

            default:
                printf("无效的选项,请重新输入。\n");
                break;
        }
    }
}
return 0;

}

// 常见导数的函数 void daoshu() { printf("(C) ′=0, C为常数\n"); printf("x ′=1\n"); printf("(In x) ′=1/x\n"); printf("sin x ′=cos x\n"); printf("cos x ′=(-sin x)\n"); }

// 添加新公式函数 void addNewFormula() { printf("您已添加的公式有:\n"); displayFormulas(); printf("1.添加新公式\n"); printf("2.删除已添加公式\n"); printf("3.退出\n"); int x; scanf("%d", &x); if (x == 3) { return; } else if (x == 1) { struct Formula *newFormula = (struct Formula *)malloc(sizeof(struct Formula)); if (newFormula == NULL) { printf("内存分配失败!\n"); return; } printf("请输入要添加的公式名称:\n"); scanf("%s", newFormula->name); printf("请输入公式的内容:\n"); scanf("%s", newFormula->content); newFormula->next = head; head = newFormula; printf("公式已成功添加!\n"); } else if (x == 2) { deleteFormula(); } else { printf("您输入的选项不合法,请重试\n"); } }

// 删除已添加公式函数 void deleteFormula() { printf("您已添加的公式有:\n"); displayFormulas(); printf("请输入要删除的公式序号:\n"); int deleteNum; scanf("%d", &deleteNum);

if (deleteNum <= 0) {
    printf("无效的序号,请重新输入。\n");
    return;
}

struct Formula *current = head;
struct Formula *previous = NULL;
int count = 1;

while (current != NULL) {
    if (count == deleteNum) {
        if (previous == NULL) {
            head = current->next;
        } else {
            previous->next = current->next;
        }
        free(current);
        printf("公式已成功删除!\n");
        return;
    }
    previous = current;
    current = current->next;
    count++;
}

printf("找不到该序号的公式。\n");

}

// 显示已添加公式函数 void displayFormulas() { struct Formula *current = head; int count = 1; while (current != NULL) { printf("%d. %s: %s\n", count, current->name, current->content); current = current->next; count++; } }


原文地址: http://www.cveoy.top/t/topic/pSFr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录