C++写的一个计算器程序的源代码
根据给定的文件信息,我们可以总结出以下关于C++编程语言和计算器程序的知识点: ### 1. C++标准库的使用 在源代码中,我们看到了多个C++标准库的引入,包括`iostream.h`、`stdio.h`、`cstdlib`、`stdlib.h`和`math.h`。这些头文件提供了丰富的功能,例如输入输出操作(`iostream.h`)、基本的数学函数(`math.h`)等,是C++程序设计中不可或缺的部分。 ### 2. 函数的定义与使用 代码中包含了多个自定义函数,如`max`用于求最大公约数、`min`用于求最小公倍数,以及`add`、`jian`、`cheng`和`chu`用于分数的加减乘除运算。这些函数遵循了C++的函数定义规则,包括返回类型、参数列表和函数体,并且通过友元函数的方式在类外对类成员进行访问和操作。 ### 3. 类和对象的实现 `Frac`类被定义用于处理分数运算,其包含私有成员变量`Nume`(分子)和`Deno`(分母),并提供了一系列的公共成员函数来执行分数的基本运算。类的实例化即创建对象的过程,可以使用类来封装数据和行为,提高代码的可读性和可维护性。 ### 4. 控制流程结构 代码中使用了多种控制流程语句,如条件语句(`if`)、循环语句(`while`)和转移语句(`goto`)。这些语句用于根据不同的条件或情况执行特定的代码块,是程序逻辑控制的基础。 ### 5. 异常处理和用户交互 程序中使用了异常处理机制,比如检测分母是否为零的情况,若为零则提示错误并重新输入。此外,通过菜单显示和用户输入,实现了与用户的交互,增强了程序的可用性和友好性。 ### 6. 系统调用和屏幕清除 代码中调用了`system("cls")`函数来清除屏幕,这依赖于操作系统提供的命令,通常用于Windows环境下的命令行界面。这种系统调用虽然方便,但可能降低程序的跨平台兼容性。 ### 7. 数据类型和运算符的使用 在代码中,可以看到整型数据类型`int`的频繁使用,以及算术运算符(如`+`、`-`、`*`、`/`)的应用,这些都是C++编程的基础元素,用于实现数值计算和逻辑判断。 通过上述分析,可以看出这段C++源代码涉及了C++语言的多个核心概念和编程技术,包括但不限于标准库的使用、函数定义、类和对象的实现、控制流程、异常处理、用户交互和系统调用。这些知识对于学习和掌握C++编程语言至关重要。
#include<stdio.h>
#include <cstdlib>
#include<stdlib.h>
#include<math.h>
int max(int m,int n) //求两个整型数的最大公约数
{
int max,i;
if(m==0||n==0)
{cout<<"数据错误,求最大公约数的两个数都不能为零.";exit(1);}
if ( m % n == 0 )
{
max = n ;
goto end ;
}
else if ( n % m == 0)
{
max = m ;
goto end ;
}
while(n!=0)
{
i=m%n;
m=n;
n=i;
}
max=m;
end:return max;
}
int min(int m,int n) //求两个整型数的最小公倍数
{
int t=m*n;
int p=max(m,n);
int min=t/p;
return min;
}
void menu() //输出菜单
{
printf(" ***********************************欢迎使用**********************************\n");
printf(" *============================本计算器功能菜单如下:==========================*\n");
printf(" * 输入'a': 进行加法运算 输入'f':进行平方运算 *\n");
printf(" * 输入'b': 进行减法运算 输入'g':进行开方运算 *\n");
printf(" * 输入'c': 进行乘法运算 输入'\\':清除无用数据 *\n");
printf(" * 输入'd': 进行除法运算 输入't':退出循环 *\n");
printf(" * 输入'e': 进行约分 *\n");
printf(" * *\n");
printf(" * *\n");
printf(" * 请您在上述功能中选择您要使用的功能: *\n");
printf(" *****************************************************************************\n");
}
void qingchu() //清除屏幕上无用的数据并输出菜单
{
system("cls");
menu();
}
void tui1()
剩余9页未读,继续阅读
- wjb199201122012-11-26基本功能已实现,感觉还不错。
- 粉丝: 2
- 资源: 16
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 校园失物招领网站:设计与实现的全流程解析
- 基于java的公司固定资产管理系统.doc
- 基于java+springboot+vue+mysql的学科竞赛管理系统 源码+数据库+论文(高分毕业设计).zip
- 人工智能领域计算断层成像技术研究最新进展综述
- 微藻检测10-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 快速排序算法在Rust语言的实现及其优化
- 2024年超融合网络架构研究与实践报告.pdf
- 埃森哲:2024年360°价值报告(英文版).pdf
- ISACA中国社区2024女性职业现状调查报告.pdf
- 如何看待“适度宽松”的货币政策.pdf
- 双目立体匹配三维重建点云C++ 本工程基于网上开源代码进行修改,内容如下: 1.修改为 VS2015 Debug win32 版本,支持利用特征点和 OpenCV 立体匹配算法进行进行三维重建及显示
- 华为云AI数字人生态赋能千行百业高效发展.pdf
- 金融业数据安全发展与实践报告.pdf
- 候鸟生命线—共筑候鸟迁徙保护网络.pdf
- 2024年全国统一电力市场建设情况及展望报告.pdf
- 2018-2023年粤港澳、京津冀、长三角三大区域高校本科专业调整趋势.pdf