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.mzph.cn/news/813380.shtml

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

相关文章

Linux之bpfjit(2)使用分析和mini-tcpdump实现

Linux之bpfjit(2)使用分析和mini-tcpdump实现 Author: Once Day Date: 2024年4月13日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可以参考专栏&#xff1a;…

QT windeployqt打包出现无法正常启动问题

QT 通过windeployqt 打包后出现的问题 原因QT构建选择的是64位的 但是windows下运行的却是32位的 步骤打开32的所在路径 一般在上一级目录会有安装好的64位的MSVC工具 运行打包即可

《乱弹篇(27)回乡祭扫感慨多》

人老了&#xff0c;真的就要记住“好汉不提当年勇&#xff0c;梅花不提前世绣”这话。 忆往昔&#xff0c;中青年时代的笔者精力旺盛&#xff0c;也曾只身一人闯荡江湖&#xff0c;把自己的足迹印到过大半个中国土地上&#xff0c;可如今岁近耄耋残年&#xff0c;清明节想回一…

Python | Leetcode Python题解之第19题删除链表的倒数第N个结点

题目&#xff1a; 题解&#xff1a; class Solution:def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:dummy ListNode(0, head)first headsecond dummyfor i in range(n):first first.nextwhile first:first first.nextsecond second.nextsecond.ne…

gemini1.5 API调用

https://ai.google.dev/pricing?hlzh-cn 查询可用的model https://generativelanguage.googleapis.com/v1beta/models?keyxxx 使用postman调用 https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent?keyxxx https://ai.google…

聊一下HashMap的底层原理

HashMap作为我们熟悉的一种集合&#xff0c;今天就来聊一下它的原理、数据结构。 1.HashMap的数据结构 JDK1.7的数据结构是数组链表&#xff0c;JDK1.7还有人在用&#xff1f;不会吧…… 说一下JDK1.8的数据结构吧&#xff1a; JDK1.8的数据结构是数组链表红黑树。 数据结…

Vue pdfjs

最终效果图 官网 https://mozilla.github.io/pdf.js 下载 放入项目 vue页面嵌入本地下载好的html sessionStorage.setItem(sdfDldj8KJ45SDF, encodeURIComponent(file_url)) <template><div style"height:100%"><iframe:id"1":key"…

阿里云服务器租用费用,这价格可以呀!

2024阿里云服务器租用优惠价格4月最新报价&#xff0c;阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M服务器108元一年、香港30M带宽轻量服务器24元1个月、云服务器4核16G10M带宽30元1个月、90元3个月&#xff0c;云…

【数据分享】中国首套1米分辨率土地覆盖数据(2023年发布)

土地覆盖数据是我们在各项研究中都非常常用的数据&#xff01;本次我们整理的是全国各城市的1米分辨率的土地覆盖数据&#xff01; 武汉大学李卓鸿、何伟等研究者基于深度学习框架和开放数据&#xff0c;具体包括全球土地覆盖&#xff08;GLC&#xff09;数据、OSM地图数据、谷…

每日两题 / 3. 无重复字符的最长子串 84. 柱状图中最大的矩形(LeetCode热题100)

3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 双指针&#xff0c;l和r从字符串最左边开始&#xff0c;保存l和r之间的所有字符 移动r&#xff0c;若新加入的字符和已有字符重复&#xff0c;则不断移动l&#xff0c;直到l和r之间不出现重复字符 注意&#…

【机器学习】深入剖析贝叶斯算法原理及其广泛应用

一、引言 在机器学习的广阔领域中&#xff0c;贝叶斯算法以其独特的概率推理方式占据了重要的地位。它不仅为分类问题提供了有效的解决方案&#xff0c;还在自然语言处理、信息检索、垃圾邮件过滤等诸多领域发挥着不可替代的作用。 贝叶斯算法的基本思想源于贝叶斯定理&#xf…

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

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

Oracle获取对象的DDL创建语句

1.命令行方式&#xff08;如&#xff1a;sqlplus&#xff09; ## 用户 select dbms_metadata.get_ddl(USER,TEST) from dual;## 表 select dbms_metadata.get_ddl(TABLE,TEST,T1) from dual;## 表空间 select dbms_metadata.get_ddl(TABLESPACE,TBS_NAME) from dual;## 索引 s…

【教学类-50-06】20240410“数一数”4类星号图片制作PDF学具

作品展示&#xff1a; 背景需求&#xff1a; 前文遍历四个文件夹&#xff0c;分别将每个文件夹内的10个图片的左上角加入星号&#xff0c;显示难度系数 【教学类-50-05】20240410“数一数”4类图片添加“难度星号”-CSDN博客文章浏览阅读55次&#xff0c;点赞2次&#xff0c;…

Linux: softirq 简介

文章目录 1. 前言2. softirq 实现2.1 softirq 初始化2.1.1 注册各类 softirq 处理接口2.1.2 创建 softirq 处理线程 2.2 softirq 的 触发 和 处理2.1.1 softirq 触发2.1.2 softirq 处理2.1.2.1 在 中断上下文 处理 softirq2.1.2.2 在 ksoftirqd 内核线程上下文 处理 softirq 3.…

麒麟系统(kylin)安装ssh后,无法上传文件

1.赋予文件夹权限 chmod 777 filename 2.修改ssh配置文件 vi /etc/ssh/sshd_config 将Subsystem sftp /xxxxx 改为Subsystem sftp internal-sftp 重启服务 sudo service sshd restart 断开ssh连接&#xff0c;重新连接&#xff0c;即可正常上传文件

Harmony鸿蒙南向外设驱动开发-Touchscreen

功能简介 Touchscreen驱动用于驱动触摸屏使其正常工作&#xff0c;该驱动主要完成如下工作&#xff1a;对触摸屏驱动IC进行上电、配置硬件管脚并初始化其状态、注册中断、配置通信接口&#xff08;I2C或SPI&#xff09;、设定Input相关配置、下载及更新固件等操作。 在HDF&am…

配置交换机 SSH 管理和端口安全

实验1:配置交换机基本安全和 SSH管理 1、实验目的 通过本实验可以掌握&#xff1a; 交换机基本安全配置。SSH 的工作原理和 SSH服务端和客户端的配置。 2、实验拓扑 交换机基本安全和 SSH管理实验拓扑如图所示。 3、实验步骤 &#xff08;1&#xff09;配置交换机S1 Swit…

Android 四大组件启动

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

LeetCode-62. 不同路径【数学 动态规划 组合数学】

LeetCode-62. 不同路径【数学 动态规划 组合数学】 题目描述&#xff1a;解题思路一&#xff1a;动态规划&#xff0c;动规五部曲解题思路二&#xff1a;动态规划&#xff08;版本二&#xff09;解题思路三&#xff1a;数论 题目描述&#xff1a; 一个机器人位于一个 m x n 网…