"#include <stdio.h>\n#include <stdlib.h>\n#include <math.h> \n\n#define PI 3.1415926\n\nstruct Formula {\n char name[100];\n char content[100];\n struct Formula next;\n};\n\nvoid quadraticEquation();\nvoid pythagoreanTheorem();\nvoid areaOfTriangle();\nvoid volumeOfCylinder();\nvoid SOfBall();\nvoid volumeOFBall();\nvoid daoshu();\nvoid addNewFormula();\nvoid deleteFormula();\n\nstruct Formula head = NULL;\n\nint main() {\n int a; // 第一级选择\n while (1) {\n printf("\n");\n printf("\n请选择以下几个选项\n");\n printf("1.常见公式查询\n");\n printf("2.部分公式计算\n");\n printf("3.退出程序\n");\n printf("\n");\n printf("您的选项是:\n");\n scanf("%d", &a);\n\n if (a == 3)\n return 0;\n if (a == 1 || a == 2)\n ;\n else\n printf("您输入的选项不合法!请重试\n");\n \n\n while (a == 1) {\n printf("\n请在以下选项中选择您要查询的公式:\n");\n printf("1.常见函数的导数\n");\n printf("2.正弦定理\n");\n printf("3.余弦定理\n");\n printf("4.辅助角定理\n");\n printf("5.球的表面积公式\n");\n printf("6.球的体积公式\n");\n printf("7.添加新公式或查询已添加的公式\n");\n printf("0.返回上一级\n");\n int b; // 第二级选择\n scanf("%d", &b);\n switch (b) {\n case 0:\n b = 0;\n a = 0;\n break;\n case 1:\n daoshu();\n break;\n case 2:\n printf("a/sin A=b/sin B=c/sin C=2R\n");\n printf("R外三角形的外接圆半径\n");\n break;\n case 3:\n printf("cos A=bb+cc-aa/2bc\n");\n break;\n case 4:\n printf("asinx+bcosx=√ (a2+b2)sin [x+arctan (b/a)]\n");\n break;\n case 5:\n printf("S=4ΠRR\n");\n break;\n case 6:\n printf("V=4ΠRRR/3\n");\n break;\n case 7:\n addNewFormula();\n break;\n default:\n printf("无效的选项,请重新输入。\n");\n break;\n }\n }\n\n int choice; // 第二级选择\n\n while (a == 2) {\n printf("\n请选择要查询的数学公式:\n");\n printf("1. 二次方程\n");\n printf("2. 勾股定理\n");\n printf("3. 三角形面积\n");\n printf("4. 圆柱体体积\n");\n printf("5.球的表面积\n");\n printf("6.球的体积\n");\n printf("0. 返回上一级\n");\n printf("请输入选项:\n");\n scanf("%d", &choice);\n\n switch (choice) {\n case 0:\n choice = 0;\n a = 0;\n break;\n case 1:\n quadraticEquation();\n break;\n case 2:\n pythagoreanTheorem();\n break;\n case 3:\n areaOfTriangle();\n break;\n case 4:\n volumeOfCylinder();\n break;\n case 5:\n SOfBall();\n break;\n case 6:\n volumeOFBall();\n break;\n default:\n printf("无效的选项,请重新输入。\n");\n break;\n }\n }\n}\n return 0;\n}\n\n// 二次方程函数\nvoid quadraticEquation() {\n double a, b, c;\n double discriminant;\n double root1, root2;\n\n printf("\n请输入二次方程的系数:\n");\n printf("a = ");\n scanf("%lf", &a);\n printf("b = ");\n scanf("%lf", &b);\n printf("c = ");\n scanf("%lf", &c);\n\n discriminant = b * b - 4 * a * c;\n\n if (discriminant > 0) {\n root1 = (-b + sqrt(discriminant)) / (2 * a);\n root2 = (-b - sqrt(discriminant)) / (2 * a);\n printf("方程的两个根为:%.2lf和%.2lf\n", root1, root2);\n } else if (discriminant == 0) {\n root1 = -b / (2 * a);\n printf("方程的两个根相等,为:%.2lf\n", root1);\n } else {\n double realPart = -b / (2 * a);\n double imaginaryPart = sqrt(-discriminant) / (2 * a);\n printf("方程的两个复根为:%.2lf + %.2lfi和%.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);\n }\n}\n\n// 勾股定理函数\nvoid pythagoreanTheorem() {\n double a, b, c;\n\n printf("\n请输入三角形的两条直角边的长度:\n");\n printf("a = ");\n scanf("%lf", &a);\n printf("b = ");\n scanf("%lf", &b);\n\n c = sqrt(a * a + b * b);\n printf("斜边的长度为:%.2lf\n", c);\n}\n\n// 三角形的面积计算函数\nvoid areaOfTriangle() {\n double base, height;\n\n printf("\n请输入三角形的底和高:\n");\n printf("底 = ");\n scanf("%lf", &base);\n printf("高 = ");\n scanf("%lf", &height);\n\n double area = 0.5 * base * height;\n printf("三角形的面积为:%.2lf\n", area);\n}\n\n// 圆柱体体积函数\nvoid volumeOfCylinder() {\n double radius, height;\n\n printf("\n请输入圆柱体的底面半径和高:\n");\n printf("半径 = ");\n scanf("%lf", &radius);\n printf("高 = ");\n scanf("%lf", &height);\n\n double volume = PI * radius * radius * height;\n printf("圆柱体的体积为:%.2lf\n", volume);\n}\n\n// 球的表面积函数\nvoid SOfBall() {\n printf("请输入球的半径:\n");\n int r;\n double S;\n scanf("%d", &r);\n S = 4 * PI * r * r;\n printf("球的表面积为:%.21f\n", S);\n}\n\n// 球的体积函数\nvoid volumeOFBall() {\n printf("请输入球的半径:\n");\n int r;\n double V;\n scanf("%d", &r);\n V = 4 * PI * r * r * r / 3;\n printf("球的表面积为:%.21f\n", V);\n}\n\n// 常见导数的函数\nvoid daoshu() {\n printf("(C) ′=0, C为常数\n");\n printf("x ′=1\n");\n printf("(In x) ′=1/x\n");\n printf("sin x ′=cos x\n");\n printf("cos x ′=(-sin x)\n");\n}\n\n// 添加新公式函数\nvoid addNewFormula() {\n printf("您已添加的公式有:\n"); \n struct Formula *temp = head;\n int count = 1;\n while (temp != NULL) {\n printf("%d. %s: %s\n", count, temp->name, temp->content);\n temp = temp->next;\n count++;\n }\n\n printf("1.添加新公式\n");\n printf("2.删除已添加公式\n");\n printf("3.退出\n");\n int x;\n scanf("%d", &x);\n if(x==3) {\n return;\n }\n else if(x==1){\n struct Formula newFormula = (struct Formula)malloc(sizeof(struct Formula));\n if (newFormula == NULL) {\n printf("内存分配失败!\n");\n return;\n }\n\n printf("请输入要添加的公式名称:\n");\n scanf("%s", newFormula->name);\n\n printf("请输入公式的内容:\n");\n scanf("%s", newFormula->content);\n\n newFormula->next = head;\n head = newFormula;\n\n printf("公式已成功添加!\n");\n }\n else if(x==2){\n deleteFormula();\n }\n else{\n printf("您输入的选项不合法,请重试\n");\n } \n}\n\n// 删除已添加公式函数\nvoid deleteFormula() {\n printf("您已添加的公式有:\n"); \n struct Formula *temp = head;\n int count = 1;\n while (temp != NULL) {\n printf("%d. %s: %s\n", count, temp->name, temp->content);\n temp = temp->next;\n count++;\n }\n\n printf("请输入要删除的公式序号:\n");\n int deleteNum;\n scanf("%d", &deleteNum);\n\n if (deleteNum < 1 || deleteNum > count) {\n printf("无效的序号,请重新输入。\n");\n return;\n }\n\n struct Formula *prev = NULL;\n temp = head;\n int currentCount = 1;\n while (temp != NULL && currentCount < deleteNum) {\n prev = temp;\n temp = temp->next;\n currentCount++;\n }\n\n if (temp == NULL) {\n printf("没有找到该公式。\n");\n return;\n }\n\n if (prev == NULL) {\n head = temp->next;\n } else {\n prev->next = temp->next;\n }\n\n free(temp);\n\n printf("公式已成功删除!\n");\n}\n


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

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