c语言多功能计算软件170

news2024/12/26 0:30:07

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

目录

题目

要求

主要代码片段


题目

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

要求

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

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

主要代码片段

#include <stdio.h>       // 包含标准输入输出库
#include <math.h>        // 包含数学函数库
#include <stdlib.h>      // 包含标准库函数

long decimalToBinary(long decimalNum);      // 声明十进制转二进制函数
long decimalToOctal(long decimalNum);       // 声明十进制转八进制函数
char* decimalToHex(long decimalNum);        // 声明十进制转十六进制函数

int main() {                                // 主函数开始
    int choice;                             // 定义选项变量
    double num1, num2, result;              // 定义输入数和结果变量

    while (1) {                             // 进入无限循环
        printf("|-------------------------------|\n");   // 打印菜单
        printf("|请选择你要的计算方法:         |\n");
        printf("|-------------------------------|\n");
        printf("|加法请按_1   进制转换_5        |\n");
        printf("|减法请按_2   求一元二次方程_6  |\n");
        printf("|乘法请按_3                     |\n");        
        printf("|除法请按_4     退出_0          |\n");              
        printf("|-------------------------------|\n");
        printf("Please write down the number:    \n");   // 提示用户输入选项
        scanf("%d", &choice);                           // 读取用户选项

        if (choice == 0) {                              // 如果选择退出
            printf("感谢使用!\n");                      // 打印退出信息
            break;                                      // 跳出循环
        }

        switch (choice) {                               // 根据选项进行操作
            case 1:                                     // 加法
                printf("请输入两个数:\n");              // 提示用户输入两个数
                scanf("%lf %lf", &num1, &num2);         // 读取两个数
                result = num1 + num2;                   // 计算结果
                printf("结果为:%lf\n", result);         // 打印结果
                break;                                  // 结束本次操作

            case 2:                                     // 减法
                printf("请输入两个数:\n");              // 提示用户输入两个数
                scanf("%lf %lf", &num1, &num2);         // 读取两个数
                result = num1 - num2;                   // 计算结果
                printf("结果为:%lf\n", result);         // 打印结果
                break;                                  // 结束本次操作

            case 3:                                     // 乘法
                printf("请输入两个数:\n");              // 提示用户输入两个数
                scanf("%lf %lf", &num1, &num2);         // 读取两个数
                result = num1 * num2;                   // 计算结果
                printf("结果为:%lf\n", result);         // 打印结果
                break;                                  // 结束本次操作

            case 4:                                     // 除法
                printf("请输入两个数:\n");              // 提示用户输入两个数
                scanf("%lf %lf", &num1, &num2);         // 读取两个数
                if (num2 != 0) {                        // 检查除数是否为0
                    result = num1 / num2;               // 计算结果
                    printf("结果为:%lf\n", result);     // 打印结果
                } else {
                    printf("除数不能为0!\n");           // 若除数为0,打印错误信息
                }
                break;                                  // 结束本次操作

            case 5:                                     // 进制转换
                printf("请输入一个十进制数:\n");        // 提示用户输入十进制数
                scanf("%lf", &num1);                    // 读取十进制数
                printf("转换的进制(2/8/16):\n");     // 提示用户选择转换进制
                scanf("%d", &choice);                   // 读取用户选择

                switch (choice) {                       // 根据选择进行转换
                    case 2:                             // 二进制
                        printf("结果为:%ld\n", decimalToBinary((long)num1));  // 打印结果
                        break;                                                // 结束本次操作

                    case 8:                             // 八进制
                        printf("结果为:%ld\n", decimalToOctal((long)num1));   // 打印结果
                        break;                                                // 结束本次操作

                    case 16:                            // 十六进制
                        printf("结果为:%s\n", decimalToHex((long)num1));      // 打印结果
                        break;                                                // 结束本次操作

                    default:                            // 其他情况
                        printf("无效的选择!\n");                               // 打印错误信息
                }
                break;                                  // 结束本次操作

            case 6:                                     // 求一元二次方程
                printf("请输入一元二次方程的三个系数(a, b, c):\n");   // 提示用户输入系数
                scanf("%lf %lf %lf", &num1, &num2, &result);            // 读取系数

                if (num1 == 0) {                        // 检查是否为一元二次方程
                    printf("不是一元二次方程!\n");       // 若不是,打印错误信息
                } else {
                    double delta = num2 * num2 - 4 * num1 * result;      // 计算判别式

                    if (delta > 0) {                    // 判别式大于0
                        double x1 = (-num2 + sqrt(delta)) / (2 * num1);   // 计算第一个根
                        double x2 = (-num2 - sqrt(delta)) / (2 * num1);   // 计算第二个根
                        printf("方程的根为:%lf, %lf\n", x1, x2);          // 打印结果
                    } else if (delta == 0) {            // 判别式等于0
                        double x = -num2 / (2 * num1);   // 计算唯一根
                        printf("方程的根为:%lf\n", x);  // 打印结果
                    } else {
                        printf("方程无实数根!\n");      // 判别式小于0,打印错误信息
                    }
                }
                break;                                  // 结束本次操作

            default:                                    // 无效选项
                printf("无效的选择!\n");                 // 打印错误信息
        }
    }

    return 0;       // 返回主函数
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1591788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BoostCompass(建立正排索引和倒排索引模块)

阅读导航 一、模块概述二、编写正排索引和倒排索引模块✅安装 jsoncpp✅Jieba分词库的安装1. 代码基本框架2. 正排索引的建立3. 倒排索引的建立 三、整体代码⭕index.hpp 一、模块概述 这个模块我们定义了一个名为Index的C类&#xff0c;用于构建和维护一个文档索引系统。该系…

AI python

AI python 软件方面程序上的人工智能&#xff0c;和物理那种能跑机器人没关系

emmet语法---快速生成css样式

前言 本文是对emmet语法生成css样式的整理&#xff0c;emmet语法就相当于快捷键一样&#xff0c;只需要我们输入简单的缩写&#xff0c;然后按下tab键即可生成麻烦的css代码。 emmet语法生成css代码 其实&#xff0c;特别简单。比html还要简单。 先上案例&#xff1a; 我们输…

ControllerAdvice用法

ControllerAdvice用法 ControllerAdvice是一个组件注解&#xff0c;它允许你在一个地方处理整个应用程序控制器的异常、绑定数据和预处理请求。这意味着你不需要在每个控制器中重复相同的异常处理代码&#xff0c;从而使得代码更加简洁、易于管理。 主要特性 全局异常处理&a…

Python单元测试框架—pytest常用测试报告类型

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 先前博客有介绍pytest测试框架的安装及使用&#xff0c;现在来聊…

Stacked Hourglass Networks for Human Pose Estimation 用于人体姿态估计的堆叠沙漏网络

Stacked Hourglass Networks for Human Pose Estimation 用于人体姿态估计的堆叠沙漏网络 这是一篇关于人体姿态估计的研究论文&#xff0c;标题为“Stacked Hourglass Networks for Human Pose Estimation”&#xff0c;作者是 Alejandro Newell, Kaiyu Yang, 和 Jia Deng&a…

CADMap3D2024 2023下载地址及安装教程

CAD Map 3D是由Autodesk开发的一款专业的地图制作和GIS&#xff08;地理信息系统&#xff09;软件。它是AutoCAD系列软件的一个扩展&#xff0c;提供了一系列特定于地理数据的工具和功能。 CAD Map 3D主要用于处理和管理与地理空间相关的数据&#xff0c;在地图制作、城市规划…

数据结构学习之路--实现带头双向循环链表的详解(附C源码)

嗨嗨大家~本期带来的内容是&#xff1a;带头双向循环链表的实现。在上期文章中我们提到过带头双向循环链表&#xff0c;那么它的实现又是怎样的呢&#xff1f;今天我们来一探究竟&#xff01; 目录 前言 一、认识带头双向循环链表 1 认识双向链表 2 带头双向循环链表的定…

这 6 个探索性数据分析(EDA)工具,太实用了!

当进行数据分析时&#xff0c;探索性数据分析(EDA)是一个至关重要的阶段&#xff0c;它能帮助我们从数据中发现模式、趋势和异常现象。而选择合适的EDA工具又能够极大地提高工作效率和分析深度。 在本文中&#xff0c;我将介绍6个极其实用的探索性数据分析(EDA)工具&#xff0…

UTONMOS元宇宙游戏特点

在元宇宙的世界里&#xff0c;游戏不再只是一种娱乐方式&#xff0c;而是一种全新的生活体验。UTONMOS元宇宙游戏带你穿越虚拟与现实的边界&#xff0c;开启一段前所未有的冒险之旅。 在这个充满无限可能的UTONMOS元宇宙游戏中&#xff0c;你将成为自己游戏世界的主角。可以自…

Java(多线程)

一、基本概念 进程&#xff1a;一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元&#xff0c;在传统的操作系统中&#xff0c;进程既是基本的分配单元&#xff0c;也是基本的执行单元。线程&#xff1a;操作系统中能够进行运算的最…

蓝桥杯 2019 省A 糖果 动态规划/二进制

#include <bits/stdc.h> // 包含标准库中的所有头文件 using namespace std;int main() {int n,m,k; // 定义变量n&#xff08;糖果包数&#xff09;、m&#xff08;口味数&#xff09;、k&#xff08;每包糖果的个数&#xff09;cin>>n>>m>>k; // 输入…

院子里种点什么树风水好呢?

植物本身是一个丰富的生活领域&#xff0c;有着强烈的视觉暗示。其实&#xff0c;在家中养植物&#xff0c;是有许多好处的&#xff0c;它不仅能够装点庭院的环境让家更美丽&#xff0c;还能调节室内的空气质量&#xff0c;对家人的运势也有着非常大的帮助。 不过&#xff0c;并…

Android 四大组件启动

service: startService启动过程分析 - Gityuan博客 | 袁辉辉的技术博客 在整个startService过程&#xff0c;从进程角度看服务启动过程 Process A进程&#xff1a;是指调用startService命令所在的进程&#xff0c;也就是启动服务的发起端进程&#xff0c;比如点击桌面App图标…

Java 中文官方教程 2022 版(四十九)

原文&#xff1a;docs.oracle.com/javase/tutorial/reallybigindex.html JAXB 示例 原文&#xff1a;docs.oracle.com/javase/tutorial/jaxb/intro/examples.html 以下部分描述如何使用包含在 JAXB RI 捆绑包中的示例应用程序。JAXB RI 捆绑包可从jaxb.java.net获取。下载并安装…

华为云配置安全组策略开放端口

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…

文件上传【2】--靶场通关

1.前端禁用js绕过 上传文件&#xff0c;进行抓包&#xff0c;没有抓到&#xff0c;说明这里的验证是前端js验证跳出的弹窗 禁用js后&#xff0c;php文件上传成功。 2.文件上传.htaccess 上传png木马后连接不上 代码中存在.htaccess&#xff0c;判断此时应该就是需要用到.htac…

单细胞RNA测序(scRNA-seq)cellranger count的细胞定量和aggr整合

单细胞RNA测序(scRNA-seq)基础知识可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分 单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控 细胞定量…

[大模型]Qwen1.5-7B-Chat FastApi 部署调用

Qwen1.5-7B-Chat FastApi 部署调用 环境准备 在 Autodl 平台中租赁一个 3090 等 24G 显存的显卡机器&#xff0c;如下图所示镜像选择 PyTorch–>2.0.0–>3.8(ubuntu20.04)–>11.8&#xff08;11.3 版本以上的都可以&#xff09;。 接下来打开刚刚租用服务器的 Jupyt…

yolov9训练自己的数据—vehicle 4类

yolov9训练自己的数据 1 conda环境安装指定版本torch 2 预训练模型测试3 训练自己的数据集3.1 制作数据3.2 创建模型配置文件3.3 创建数据加载配置文件3.4 使用ClearML跟踪训练日志3.5 训练3.6 模型测试3.7 转换成TensorRT模型 4 参考文档 1 conda环境 下载yolov9代码&#xf…