一、银行账户类
【问题描述】
定义银行账户BankAccount类。
私有数据成员:余额balance(整型)。
公有成员方法:
无参构造方法BankAccount():将账户余额初始化为0;
带参构造方法BankAccount(int m):将账户余额初始化为指定的参数。
int getbalance() 方法:返回账户余额。
void withdraw(int m) 取款方法:从账户余额中提取m指定的款额,如果余额不足,给出" 余额不足"。
void deposit(int m) 存款方法:将m指定的款项存到账户。
在main方法中构造银行账户,对其进行存取款操作。
其中操作类型类型为d表示存款,w表示取款,每次操作后打印账户余额。
【输入形式】账户余额
存取款操作数
操作类型 金额
【输出形式】
操作后的账户余额
cpp
#include <iostream>
using namespace std;
// 定义一个名为BankAccount的类
class BankAccount {
private:
int balance; // 私有成员变量,用于存储余额
public:
// 默认构造函数,将余额初始化为0
BankAccount() {
balance = 0;
}
// 带参数的构造函数,将余额初始化为给定的金额
BankAccount(int m) {
balance = m;
}
// 公有成员函数,用于获取当前余额
int getbalance() {
return balance;
}
// 公有成员函数,用于从账户中取款
void withdraw(int m) {
if (balance < m) { // 检查余额是否足够进行取款
cout << "余额不足。"; // 如果余额不足,则显示错误消息
} else {
balance -= m; // 如果余额足够,则从余额中减去取款金额
}
cout << "余额:" << balance << endl; // 显示更新后的余额
}
// 公有成员函数,用于向账户中存款
void deposit(int m) {
balance += m; // 将存款金额加到余额中
cout << "余额:" << balance << endl; // 显示更新后的余额
}
};
// 主函数
int main() {
int initialBalance, numOps;
cin >> initialBalance >> numOps; // 输入初始余额和操作次数
BankAccount account(initialBalance); // 创建一个具有初始余额的BankAccount对象
char opType;
int amount;
// 循环执行操作
for (int i = 0; i < numOps; i++) {
cin >> opType >> amount; // 输入操作类型和金额
// 根据操作类型执行相应的操作
if (opType == 'w') { // 如果操作类型是取款
account.withdraw(amount); // 调用withdraw方法进行取款
} else if (opType == 'd') { // 如果操作类型是存款
account.deposit(amount); // 调用deposit方法进行存款
}
}
return 0;
}
二、日期时间类
【问题描述】
设计并实现一个日期类,可以:
日期是由日期和时间组成的一个对象。
日期设定(包括年月日)、时间设定(包括时分秒);
日期时间设定(包括年月日时分秒);
利用重载实现键盘输入的数据设定日期时间;
输出日期(格式:yyyy-mm-dd hh:nn:ss)
写main函数应用这个类。
【输入形式】
2021 3 23 9 14 2
【输出形式】
2021-03-23 09:14:02
cpp
#include <iostream>
#include <iomanip> // 引入iomanip头文件,用于格式化输出
using namespace std;
// 定义一个DateTime类
class DateTime {
private:
int year; // 年
int month; // 月
int day; // 日
int hour; // 时
int minute; // 分
int second; // 秒
public:
// 设置日期
void setDate(int y, int m, int d) {
year = y;
month = m;
day = d;
}
// 设置时间
void setTime(int h, int min, int sec) {
hour = h;
minute = min;
second = sec;
}
// 设置日期和时间
void setDateTime(int y, int m, int d, int h, int min, int sec) {
year = y;
month = m;
day = d;
hour = h;
minute = min;
second = sec;
}
// 从输入中设置日期和时间
void setDateTimeFromInput() {
cin >> year >> month >> day >> hour >> minute >> second; // 输入年、月、日、时、分、秒
}
// 输出日期和时间
void printDateTime() {
cout << setfill('0') << setw(4) << year << "-" // 格式化输出年份
<< setw(2) << setfill('0') << month << "-" // 格式化输出月份
<< setw(2) << setfill('0') << day << " " // 格式化输出日期
<< setw(2) << setfill('0') << hour << ":" // 格式化输出小时
<< setw(2) << setfill('0') << minute << ":" // 格式化输出分钟
<< setw(2) << setfill('0') << second << endl; // 格式化输出秒数
}
};
// 主函数
int main() {
DateTime dt; // 创建DateTime对象
dt.setDateTimeFromInput(); // 从输入设置日期和时间
dt.printDateTime(); // 输出日期和时间
return 0;
}
在C++中,setw和setfill是iomanip库中的函数,用于格式化输出。这些函数可以用于设置字段宽度和填充字符,以便在输出时对齐和美化输出结果。
-
setw(n)函数设置字段宽度为n。它影响后续输出操作的字段宽度,使得输出的结果占据指定的字符数。如果输出的内容不够宽度n,将会用空格填充到指定的宽度。
-
setfill(c)函数设置填充字符为c。它指定了在宽度设置后,输出结果不足指定宽度时所使用的填充字符。默认情况下,填充字符是空格。
三、矩形类
【问题描述】
编写程序求长方形的周长和面积
cpp
#include<iostream>
using namespace std;
// 定义矩形类 Rectangle
class Rectangle
{
public:
Rectangle(void); // 默认构造函数声明
Rectangle(float length, float width); // 带参数的构造函数声明
~Rectangle(void); // 析构函数声明
float getArea(); // 计算面积的成员函数声明
float getGirth(); // 计算周长的成员函数声明
private:
float mLength; // 长度私有成员变量
float mWidth; // 宽度私有成员变量
};
// 默认构造函数定义
Rectangle::Rectangle(void)
{
mLength = 0; // 初始化长度为0
mWidth = 0; // 初始化宽度为0
}
// 带参数的构造函数定义
Rectangle::Rectangle(float length, float width)
{
mLength = length; // 初始化长度为给定值
mWidth = width; // 初始化宽度为给定值
}
// 析构函数定义
Rectangle::~Rectangle(void)
{
}
// 计算面积的成员函数定义
float Rectangle::getArea()
{
return mLength * mWidth; // 返回长度乘以宽度的结果
}
// 计算周长的成员函数定义
float Rectangle::getGirth()
{
return 2 * (mLength + mWidth); // 返回周长的计算结果
}
// 主函数
int main()
{
float m, n; // 定义两个浮点数变量 m 和 n,用于存储输入的长度和宽度
cout << "Input the Length and Width: "; // 提示用户输入长度和宽度
cin >> m >> n; // 从标准输入流读取用户输入的长度和宽度
Rectangle r1(m, n); // 创建一个具有给定长度和宽度的矩形对象
cout<<"The Area is: "<<r1.getArea()<<endl; // 输出矩形的面积
Rectangle r2(m, n); // 创建另一个具有给定长度和宽度的矩形对象
cout<<"The Perimeter: "<<r2.getGirth()<<endl; // 输出矩形的周长
return 0; // 返回0,表示程序正常结束
}
四、圆类
【问题描述】
编写程序求圆的周长与面积
cpp
#include<iostream>
using namespace std;
const float PI = 3.14;
class Circle {
private:
float radius;
public:
Circle(float r): radius(r) {}
float getArea() {
return PI * radius * radius;
}
float getGirth() {
return 2 * PI * radius;
}
};
int main()
{
float r;
cout << "请输入半径长度";
cin >> r;
Circle c1(r);
cout<<"圆的面积为:"<<c1.getArea()<<endl;
Circle c2(r);
cout<<"圆的周长为:"<<c2.getGirth()<<endl;
}