c语言多功能计算软件170

定制魏: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) {                        // 检查除数是否为0result = 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) {                    // 判别式大于0double x1 = (-num2 + sqrt(delta)) / (2 * num1);   // 计算第一个根double x2 = (-num2 - sqrt(delta)) / (2 * num1);   // 计算第二个根printf("方程的根为:%lf, %lf\n", x1, x2);          // 打印结果} else if (delta == 0) {            // 判别式等于0double x = -num2 / (2 * num1);   // 计算唯一根printf("方程的根为:%lf\n", x);  // 打印结果} else {printf("方程无实数根!\n");      // 判别式小于0,打印错误信息}}break;                                  // 结束本次操作default:                                    // 无效选项printf("无效的选择!\n");                 // 打印错误信息}}return 0;       // 返回主函数
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 面试宝典:Redis 的线程模型是怎么样的?

大家好&#xff0c;我是大明哥&#xff0c;一个专注「死磕 Java」系列创作的硬核程序员。 本文已收录到我的技术网站&#xff1a;https://www.skjava.com。有全网最优质的系列文章、Java 全栈技术文档以及大厂完整面经 Redis 的线程模型其实是分两块的&#xff1a; Redis 6.0 …

(学习日记)2024.04.15:UCOSIII第四十三节:任务消息队列

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

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

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

1111111111

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

21 标准错误

标准输出重定向关闭无数据 下面的代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int main() {close(1);i…

超级详细的JDBC和数据库连接池讲解

文章目录 JDBC简介概念本质好处 JDBC快速入门JDBC中API详解DriverManager驱动管理类作用注册驱动获取连接 Connection数据库连接对象作用获取执行SQL的对象事务管理 Statement作用执行SQL语句 ResultSet原理使用步骤 PreparedStatementSQL注入获取对象操作步骤 原理好处 JDBC工…

力扣刷题 二叉树层序遍历相关题目II

NO.116 填充每个节点的下一个右侧节点指针 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;…

redis的主从复制(docker方式快速入门和实战)

目录 一、主从复制简介 二、配置主从服务器 2.1使用配置文件的形式来主从复制 2.2使用纯代码的方式来进行主从复制&#xff1b; 2.3脱离主服务器 三、一些注意事项 一、主从复制简介 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器…

【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器

【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器 文章目录 【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器一、介绍二、联系工作三、方法四、实验结果 Multi-class Token Transformer for Weakly Supervised Semantic Segmentation 本文提出了一种新的基于变换…

尝试在手机上运行google 最新开源的gpt模型 gemma

Gemma介绍 Gemma简介 Gemma是谷歌于2024年2月21日发布的一系列轻量级、最先进的开放语言模型&#xff0c;使用了与创建Gemini模型相同的研究和技术。由Google DeepMind和Google其他团队共同开发。 Gemma提供两种尺寸的模型权重&#xff1a;2B和7B。每种尺寸都带有经过预训练&a…

【动手学深度学习】15_汉诺塔问题

注&#xff1a; 本系列仅为个人学习笔记&#xff0c;学习内容为《算法小讲堂》&#xff08;视频传送门&#xff09;&#xff0c;通俗易懂适合编程入门小白&#xff0c;需要具备python语言基础&#xff0c;本人小白&#xff0c;如内容有误感谢您的批评指正 汉诺塔&#xff08;To…

人员抽烟AI检测算法原理介绍及实际场景应用

抽烟检测AI算法是一种基于计算机视觉和深度学习技术的先进工具&#xff0c;旨在准确识别并监测个体是否抽烟。该算法通过训练大量图像数据&#xff0c;使模型能够识别出抽烟行为的关键特征&#xff0c;如烟雾、手部动作和口部形态等。 在原理上&#xff0c;抽烟检测AI算法主要…

[lesson22]对象的销毁

对象的销毁 对象的销毁 生活中的对象都是被初始化后才上市的 生活中的对象被销毁前会做一些清理工作 一般而言&#xff0c;需要销毁的对象都应该做清理 解决方案 为每个类都提供一个public的free函数对象不在需要时立即调用free函数进行清理 存在的问题 free只是一个普通…

稀碎从零算法笔记Day44-LeetCode:整数转罗马数字

题型&#xff1a;贪心、模拟 链接&#xff1a; 12. 整数转罗马数字 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 …

淘宝批量采集商品详情数据(属性丨详情图丨sku丨价格等)

淘宝批量采集商品详情数据&#xff08;包括属性、详情图、SKU、价格等&#xff09;可以通过以下几种方式实现&#xff1a; 使用淘宝数据抓取工具&#xff1a;这类工具&#xff0c;如某鱼等&#xff0c;能够自动化采集淘宝商品数据&#xff0c;并将其转换成CSV、Excel等格式&am…

【PyQt5】环境配置

PyQt5 环境配置 一、前言1.1 PyQt5介绍1.2 PyCharm集成Pyqt5 二、pyqt5安装三、PyQt5-tools工具包安装四、常用工具环境配置4.1、环境变量配置4。2、验证是否安装成功 五、pycharm中设置Qt工具&#xff08;Qt Designer、PyUIC、PyRcc&#xff09;5.1、配置Qt Designer5.2、配置…

C++11 设计模式4. 抽象工厂(Abstract Factory)模式

问题的提出 从前面我们已经使用了工厂方法模式 解决了一些问题。 现在 策划又提出了新的需求&#xff1a;对于各个怪物&#xff0c;在不同的场景下&#xff0c;怪物的面板数值会发生变化&#xff0c; //怪物分类&#xff1a;亡灵类&#xff0c;元素类&#xff0c;机械类 …

【数据交换格式】网络socket编程温度采集智能存储与上报项目技术------JSON、TLV

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

蓝桥杯物联网竞赛_STM32L071KBU6_全部工程及国赛省赛真题及代码

包含stm32L071kbu6全部实验工程、源码、原理图、官方提供参考代码及国、省赛真题及代码 链接&#xff1a;https://pan.baidu.com/s/1pXnsMHE0t4RLCeluFhFpAg?pwdq497 提取码&#xff1a;q497

【零基础学数据结构】双向链表

1.双向链表的概念 1.1头节点 1.2带头双向循环链表 注意&#xff1a; 哨兵位创建后&#xff0c;首尾连接自己 1.3双链表的初始化 // 双向链表的初始化 void ListInit(ListNode** pphead) {// 给双链表创建一个哨兵位*pphead ListBuyNode(-1); } 2.双向链表的打印 // 双向…