{ "title": "数学公式查询计算器 - 常见公式查询、计算、添加和删除", "description": "这是一个便捷的数学公式查询计算器,包含常见公式查询、部分公式计算、添加新公式以及删除已添加公式功能,方便用户快速查找和计算数学公式。", "keywords": "数学公式, 公式查询, 公式计算, 二次方程, 勾股定理, 三角形面积, 圆柱体体积, 球的表面积, 球的体积, 导数, 添加公式, 删除公式", "content": "#include "stdio.h" #include "stdlib.h" #include "math.h"

#define PI 3.1415926

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

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

    if (a == 4)
        return 0;
    if (a == 1 || a == 2 || a == 3)
        ;
    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("1. 二次方程\n");
    printf("2. 勾股定理\n");
    printf("3. 三角形面积\n");
    printf("4. 圆柱体体积\n");
    printf("5.球的表面积\n");
    printf("6.球的体积\n");
    printf("0. 返回上一级\n");
    printf("请输入选项:\n");
    scanf("%d", &choice);

    switch (choice) {
        case 0:
            choice = 0;
            a = 0;
            break;
        case 1:
            quadraticEquation();
            break;
        case 2:
            pythagoreanTheorem();
            break;
        case 3:
            areaOfTriangle();
            break;
        case 4:
            volumeOfCylinder();
            break;
        case 5:
            SOfBall();
            break;
        case 6:
            volumeOFBall();
            break;
        default:
            printf("无效的选项,请重新输入。\n");
            break;
    }
}

while (a == 3) {
    addNewFormula();
    a = 0;
}

} return 0; }

// 二次方程函数 void quadraticEquation() { double a, b, c; double discriminant; double root1, root2;

printf("\n请输入二次方程的系数:\n");
printf("a = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);

discriminant = b * b - 4 * a * c;

if (discriminant > 0) {
    root1 = (-b + sqrt(discriminant)) / (2 * a);
    root2 = (-b - sqrt(discriminant)) / (2 * a);
    printf("方程的两个根为:%.2lf和%.2lf\n", root1, root2);
} else if (discriminant == 0) {
    root1 = -b / (2 * a);
    printf("方程的两个根相等,为:%.2lf\n", root1);
} else {
    double realPart = -b / (2 * a);
    double imaginaryPart = sqrt(-discriminant) / (2 * a);
    printf("方程的两个复根为:%.2lf + %.2lfi和%.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}

}

// 勾股定理函数 void pythagoreanTheorem() { double a, b, c;

printf("\n请输入三角形的两条直角边的长度:\n");
printf("a = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);

c = sqrt(a * a + b * b);
printf("斜边的长度为:%.2lf\n", c);

}

// 三角形的面积计算函数 void areaOfTriangle() { double base, height;

printf("\n请输入三角形的底和高:\n");
printf("底 = ");
scanf("%lf", &base);
printf("高 = ");
scanf("%lf", &height);

double area = 0.5 * base * height;
printf("三角形的面积为:%.2lf\n", area);

}

// 圆柱体体积函数 void volumeOfCylinder() { double radius, height;

printf("\n请输入圆柱体的底面半径和高:\n");
printf("半径 = ");
scanf("%lf", &radius);
printf("高 = ");
scanf("%lf", &height);

double volume = PI * radius * radius * height;
printf("圆柱体的体积为:%.2lf\n", volume);

}

// 球的表面积函数 void SOfBall() { printf("请输入球的半径:\n"); int r; double S; scanf("%d", &r); S = 4 * PI * r * r; printf("球的表面积为:%.21f\n", S); }

// 球的体积函数 void volumeOFBall() { printf("请输入球的半径:\n"); int r; double V; scanf("%d", &r); V = 4 * PI * r * r * r / 3; printf("球的表面积为:%.21f\n", V); }

// 常见导数的函数 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"); FILE *file; file = fopen("formulas.txt", "a+"); int count = 0; char line[100]; while (fgets(line, sizeof(line), file)) { count++; printf("%d. %s", count, line); } if (file == NULL) { printf("无法打开文件!\n"); return; }

     printf("1.添加新公式\n");
     printf("2.删除公式\n");
     printf("3.退出\n");
     int x;
     scanf("%d",&x);
     if(x==3) {
     	return 0;
	 }
    else if(x==1){

// int count = 0; // char line[100]; // while (fgets(line, sizeof(line), file)) { // count++; // printf("%d. %s", count, line); // }

count++;
printf("请输入要添加的公式名称:\n");
char name[100];
scanf("%s", name);

printf("请输入公式的内容:\n");
char content[100];
scanf("%s", content);

fprintf(file, "%d. %s: %s\n", count, name, content);

fclose(file);
printf("公式已成功添加!\n");

} else if (x == 2) { FILE *file; file = fopen("formulas.txt", "r"); if (file == NULL) { printf("无法打开文件!\n"); return; } int count = 0; char line[100]; printf("请选择要删除的公式编号:\n"); while (fgets(line, sizeof(line), file)) { count++; printf("%d. %s", count, line); } fclose(file); printf("请输入要删除的公式编号:\n"); int choice; scanf("%d", &choice); if (choice < 1 || choice > count) { printf("无效的编号!\n"); return; } FILE *tempFile; tempFile = fopen("temp.txt", "w"); if (tempFile == NULL) { printf("无法创建临时文件!\n"); return; } file = fopen("formulas.txt", "r"); if (file == NULL) { printf("无法打开文件!\n"); fclose(tempFile); return; } count = 0; while (fgets(line, sizeof(line), file)) { count++; if (count != choice) { fprintf(tempFile, "%s", line); } } fclose(file); fclose(tempFile); remove("formulas.txt"); rename("temp.txt", "formulas.txt"); printf("公式已成功删除!\n"); } else{ printf("您输入的选项不合法,请重试\n"); } }


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

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