数学公式查询器 - 在线计算和公式查询
#include<stdio.h> #include<stdlib.h> #include<math.h> \n#define PI 3.1415926\n\nvoid quadraticEquation(); void pythagoreanTheorem(); void areaOfTriangle(); void volumeOfCylinder(); void SOfBall(); void volumeOFBall(); void daoshu(); void addNewFormula(); void deleteFormula(); \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 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 printf('3.退出\n');\n int x;\n scanf('%d',&x);\n if(x==3) {\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}\n else if(x==2){\n deleteFormula();\n }\n else{\n printf('您输入的选项不合法,请重试\n');\n } \n}\n\n// 删除已添加公式函数\nvoid deleteFormula() {\n printf('您已添加的公式有:\n'); \n FILE *file;\n file = fopen('formulas.txt', 'r+');\n if (file == NULL) {\n printf('无法打开文件!\n');\n return;\n }\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 // 将文件指针重置到文件开头\n rewind(file);\n \n printf('请输入要删除的公式序号:\n');\n int deleteNum;\n scanf('%d', &deleteNum);\n \n // 根据序号删除相应的公式\n FILE *tempFile;\n tempFile = fopen('temp.txt', 'w');\n if (tempFile == NULL) {\n printf('无法打开文件!\n');\n return;\n }\n \n int deleteCount = 0;\n while (fgets(line, sizeof(line), file)) {\n deleteCount++;\n if (deleteCount != deleteNum) {\n fprintf(tempFile, '%s', line);\n }\n }\n \n fclose(file);\n fclose(tempFile);\n \n // 删除原文件\n remove('formulas.txt');\n // 重命名临时文件为原文件\n rename('temp.txt', 'formulas.txt');\n \n printf('公式已成功删除!\n');\n
原文地址: https://www.cveoy.top/t/topic/pSDr 著作权归作者所有。请勿转载和采集!