📅  最后修改于: 2023-12-03 14:55:41.405000             🧑  作者: Mango
本文将介绍两个 C++ 案例,分别是案例 1 和案例 2。
这是一个基本的计算器程序,可以进行加、减、乘、除运算。用户输入两个操作数和一个操作符,程序会输出运算结果。
#include <iostream>
using namespace std;
int main() {
double num1, num2, result;
char op;
cout << "Please input the first number: ";
cin >> num1;
cout << "Please input the second number: ";
cin >> num2;
cout << "Please input the operator: ";
cin >> op;
switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
cerr << "Invalid operator!";
return 1;
}
cout << "Result: " << result << endl;
return 0;
}
上述代码使用了 switch-case
结构,通过用户输入的操作符来选择不同的运算操作。使用了 cerr
来输出错误信息。运行结果截图如下:
这是一个环形缓冲区类,实现了类似于队列的功能。用户可以向环形缓冲区中添加数据,也可以从中读取数据。当环形缓冲区存满时,再添加数据时会覆盖掉最早添加的数据。当环形缓冲区为空时,再读取数据时会返回 0。
class RingBuffer {
public:
RingBuffer(int capacity);
~RingBuffer();
void Add(double value);
double Get();
private:
double *buffer_;
int capacity_, size_, head_, tail_;
};
RingBuffer::RingBuffer(int capacity)
: capacity_(capacity),
size_(0),
head_(0),
tail_(0) {
buffer_ = new double[capacity_];
}
RingBuffer::~RingBuffer() {
delete[] buffer_;
}
void RingBuffer::Add(double value) {
buffer_[tail_] = value;
tail_ = (tail_ + 1) % capacity_;
if (size_ < capacity_)
size_++;
else
head_ = (head_ + 1) % capacity_;
}
double RingBuffer::Get() {
if (size_ == 0)
return 0.0;
double value = buffer_[head_];
head_ = (head_ + 1) % capacity_;
size_--;
return value;
}
上述代码使用了类和指针。定义了环形缓冲区的大小和各种指针。并且添加了返回 0 的语句。可以在自己的代码中根据需要进行修改。