当前位置:   article > 正文

c语言多功能计算软件170

c语言多功能计算软件170

定制魏:QTWZPW,获取更多源码等

目录

题目

要求

主要代码片段


题目

设计一个计算器软件,具备如下功能提示界面。

要求

  1. 设计出界面,注意界面名称最后为自己的姓名;(20分)
  2. 能够实现加、减、乘、除功能;(40分)
  3. 能够将十进制转换成相应的二级制、八进制、十六进制数(20分)

      4. 能够求解一元二次方程。(20分)

主要代码片段

  1. #include <stdio.h> // 包含标准输入输出库
  2. #include <math.h> // 包含数学函数库
  3. #include <stdlib.h> // 包含标准库函数
  4. long decimalToBinary(long decimalNum); // 声明十进制转二进制函数
  5. long decimalToOctal(long decimalNum); // 声明十进制转八进制函数
  6. char* decimalToHex(long decimalNum); // 声明十进制转十六进制函数
  7. int main() { // 主函数开始
  8. int choice; // 定义选项变量
  9. double num1, num2, result; // 定义输入数和结果变量
  10. while (1) { // 进入无限循环
  11. printf("|-------------------------------|\n"); // 打印菜单
  12. printf("|请选择你要的计算方法: |\n");
  13. printf("|-------------------------------|\n");
  14. printf("|加法请按_1 进制转换_5 |\n");
  15. printf("|减法请按_2 求一元二次方程_6 |\n");
  16. printf("|乘法请按_3 |\n");
  17. printf("|除法请按_4 退出_0 |\n");
  18. printf("|-------------------------------|\n");
  19. printf("Please write down the number: \n"); // 提示用户输入选项
  20. scanf("%d", &choice); // 读取用户选项
  21. if (choice == 0) { // 如果选择退出
  22. printf("感谢使用!\n"); // 打印退出信息
  23. break; // 跳出循环
  24. }
  25. switch (choice) { // 根据选项进行操作
  26. case 1: // 加法
  27. printf("请输入两个数:\n"); // 提示用户输入两个数
  28. scanf("%lf %lf", &num1, &num2); // 读取两个数
  29. result = num1 + num2; // 计算结果
  30. printf("结果为:%lf\n", result); // 打印结果
  31. break; // 结束本次操作
  32. case 2: // 减法
  33. printf("请输入两个数:\n"); // 提示用户输入两个数
  34. scanf("%lf %lf", &num1, &num2); // 读取两个数
  35. result = num1 - num2; // 计算结果
  36. printf("结果为:%lf\n", result); // 打印结果
  37. break; // 结束本次操作
  38. case 3: // 乘法
  39. printf("请输入两个数:\n"); // 提示用户输入两个数
  40. scanf("%lf %lf", &num1, &num2); // 读取两个数
  41. result = num1 * num2; // 计算结果
  42. printf("结果为:%lf\n", result); // 打印结果
  43. break; // 结束本次操作
  44. case 4: // 除法
  45. printf("请输入两个数:\n"); // 提示用户输入两个数
  46. scanf("%lf %lf", &num1, &num2); // 读取两个数
  47. if (num2 != 0) { // 检查除数是否为0
  48. result = num1 / num2; // 计算结果
  49. printf("结果为:%lf\n", result); // 打印结果
  50. } else {
  51. printf("除数不能为0!\n"); // 若除数为0,打印错误信息
  52. }
  53. break; // 结束本次操作
  54. case 5: // 进制转换
  55. printf("请输入一个十进制数:\n"); // 提示用户输入十进制数
  56. scanf("%lf", &num1); // 读取十进制数
  57. printf("转换的进制(2/8/16):\n"); // 提示用户选择转换进制
  58. scanf("%d", &choice); // 读取用户选择
  59. switch (choice) { // 根据选择进行转换
  60. case 2: // 二进制
  61. printf("结果为:%ld\n", decimalToBinary((long)num1)); // 打印结果
  62. break; // 结束本次操作
  63. case 8: // 八进制
  64. printf("结果为:%ld\n", decimalToOctal((long)num1)); // 打印结果
  65. break; // 结束本次操作
  66. case 16: // 十六进制
  67. printf("结果为:%s\n", decimalToHex((long)num1)); // 打印结果
  68. break; // 结束本次操作
  69. default: // 其他情况
  70. printf("无效的选择!\n"); // 打印错误信息
  71. }
  72. break; // 结束本次操作
  73. case 6: // 求一元二次方程
  74. printf("请输入一元二次方程的三个系数(a, b, c):\n"); // 提示用户输入系数
  75. scanf("%lf %lf %lf", &num1, &num2, &result); // 读取系数
  76. if (num1 == 0) { // 检查是否为一元二次方程
  77. printf("不是一元二次方程!\n"); // 若不是,打印错误信息
  78. } else {
  79. double delta = num2 * num2 - 4 * num1 * result; // 计算判别式
  80. if (delta > 0) { // 判别式大于0
  81. double x1 = (-num2 + sqrt(delta)) / (2 * num1); // 计算第一个根
  82. double x2 = (-num2 - sqrt(delta)) / (2 * num1); // 计算第二个根
  83. printf("方程的根为:%lf, %lf\n", x1, x2); // 打印结果
  84. } else if (delta == 0) { // 判别式等于0
  85. double x = -num2 / (2 * num1); // 计算唯一根
  86. printf("方程的根为:%lf\n", x); // 打印结果
  87. } else {
  88. printf("方程无实数根!\n"); // 判别式小于0,打印错误信息
  89. }
  90. }
  91. break; // 结束本次操作
  92. default: // 无效选项
  93. printf("无效的选择!\n"); // 打印错误信息
  94. }
  95. }
  96. return 0; // 返回主函数
  97. }

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/426487
推荐阅读
相关标签
  

闽ICP备14008679号