数学公式查询和计算器 - 在线工具
#include <stdio.h>\n#include <stdlib.h>\n#include <math.h> \n\n#define PI 3.1415926\n\nvoid quadraticEquation();\nvoid pythagoreanTheorem();\nvoid areaOfTriangle();\nvoid volumeOfCylinder();\nvoid SOfBall();\nvoid volumeOFBall();\nvoid daoshu();\nvoid addNewFormula();\nvoid deleteFormula();\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('8.删除已添加的公式\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 case 8:\n deleteFormula();\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 FILE *file;\n file = fopen('formulas.txt', 'a+');\n int count = 0;\n char line[100];\n while (fgets(line, sizeof(line), file)) {\n count++;\n printf('%d. %s', count, line);\n }\n if (file == NULL) {\n printf('无法打开文件!\n');\n return;\n }\n\n printf('1.添加新公式\n');\n printf('2.退出\n');\n int x;\n scanf('%d',&x);\n if(x==2) {\n return 0;\n }\n else if(x==1){\n \n// int count = 0;\n// char line[100];\n// while (fgets(line, sizeof(line), file)) {\n// count++;\n// printf('%d. %s', count, line);\n// }\n\n count++;\n printf('请输入要添加的公式名称:\n');\n char name[100];\n scanf('%s', name);\n\n printf('请输入公式的内容:\n');\n char content[100];\n scanf('%s', content);\n\n fprintf(file, '%d. %s: %s\n', count, name, content);\n\n fclose(file);\n printf('公式已成功添加!\n');\n}
else{\n printf('您输入的选项不合法,请重试\n');\n } \n}\n\n// 删除已添加公式函数\nvoid deleteFormula() {\n FILE *file;\n file = fopen('formulas.txt', 'r+');\n if (file == NULL) {\n printf('无法打开文件!\n');\n return;\n }\n\n printf('您已添加的公式有:\n');\n int count = 0;\n char line[100];\n while (fgets(line, sizeof(line), file)) {\n count++;\n printf('%d. %s', count, line);\n }\n\n printf('请输入要删除的公式序号:\n');\n int formulaNumber;\n scanf('%d', &formulaNumber);\n\n if (formulaNumber < 1 || formulaNumber > count) {\n printf('无效的序号!\n');\n fclose(file);\n return;\n }\n\n // 将文件指针移到要删除的公式之前\n fseek(file, 0, SEEK_SET);\n for (int i = 1; i < formulaNumber; i++) {\n fgets(line, sizeof(line), file);\n }\n\n // 删除公式行\n char temp[100]; // 存储要删除的行\n fgets(temp, sizeof(temp), file); // 读取要删除的行\n\n // 将文件指针移到要删除的公式之后\n fseek(file, 0, SEEK_CUR); // 当前位置\n char newLine[100]; // 存储下一行\n while (fgets(newLine, sizeof(newLine), file)) {\n fprintf(file, '%s', newLine); // 将下一行写入文件\n }\n // 删除最后一行\n ftruncate(fileno(file), ftell(file)); // 从当前位置截断文件\n\n fclose(file);\n printf('公式已成功删除!\n');\n
原文地址: https://www.cveoy.top/t/topic/pSCY 著作权归作者所有。请勿转载和采集!