void Manager::magReservation() { int limit = 0; cout << "请输入游览时段(格式为YYYY-MM-DD 时间段(1-上午,2-下午,3-晚上)):"; string time; cin >> time; cout << "请输入最大游客数:"; cin >> limit; //将预约信息保存到容器 reservation[time] = limit; //信息-》文件 ofstream ofs; ofs.open("
时间: 2024-01-27 17:03:36 浏览: 30
Reservation.txt", ios::app); if (!ofs) { cout << "文件打开失败!" << endl; return; } ofs << time << " " << limit << endl; ofs.close(); cout << "预约成功!" << endl; }
这段代码是什么作用?
相关问题
改进以下代码:void addMedicine() { int count; cout << "请输入要增加的药品个数:"; cin >> count; for (int i = 0; i < count; i++) { Medicine medicine; cout << "请输入药品编号:"; cin >> medicine.id; if (findMedicineById(medicine.id) != -1) { cout << "该编号已存在,请重新输入!" << endl; i--; continue; } cout << "请输入药品名称:"; cin >> medicine.name; cout << "请输入生产厂家:"; cin >> medicine.manufacturer; cout << "请输入定价:"; cin >> medicine.price; cout << "请输入生产日期(格式:yyyy-mm-dd):"; cin >> medicine.productionDate; cout << "请输入药品功效:"; cin >> medicine.efficacy; medicines[medicineCount++] = medicine; } saveMedicines(); cout << "添加成功!" << endl; }
改进后的代码如下:
void addMedicine() {
int count;
cout << "请输入要增加的药品个数:";
cin >> count;
for (int i = 0; i < count; i++) {
Medicine medicine;
bool isExist;
do {
isExist = false;
cout << "请输入药品编号:";
cin >> medicine.id;
for (int j = 0; j < medicineCount; j++) {
if (medicines[j].id == medicine.id) {
isExist = true;
break;
}
}
if (isExist) {
cout << "该编号已存在,请重新输入!" << endl;
}
} while (isExist);
cout << "请输入药品名称:";
cin >> medicine.name;
cout << "请输入生产厂家:";
cin >> medicine.manufacturer;
cout << "请输入定价:";
cin >> medicine.price;
cout << "请输入生产日期(格式:yyyy-mm-dd):";
cin >> medicine.productionDate;
cout << "请输入药品功效:";
cin >> medicine.efficacy;
medicines[medicineCount++] = medicine;
}
saveMedicines();
cout << "添加成功!" << endl;
}
改进内容:
1. 添加循环判断,确保输入的药品编号不存在重复。
2. 将查找药品编号的操作封装为 findMedicineById 函数,降低了代码的耦合性。
3. 优化了代码的可读性,将 isExist 变量名改为更加直观的 bool 类型的变量名。
#include <iostream> using namespace std; int main() { int n; double pi = 0; int flag = 1; cout << "请输入迭代次数:"; cin >> n; for (int i = 0; i < n; i++) { pi += flag * 1.0 / (2 * i + 1); flag *= -1; } pi *= 4; cout << "π的值为:" << pi << end1; return 0; }
这段代码也是用来计算π的值的,和之前的实现方式类似,主要区别在于这里加入了用户输入迭代次数 n,使得程序的灵活度更高。代码实现思路和之前的类似,不再赘述,以下是对代码的一些建议:
- 第9行代码中应该是 `endl`,而不是 `end1`。
- 第14行代码中应该是 `endl`,而不是 `end1`。
- 在进行除法运算时,需要将其中一个操作数强制转换为浮点型,可以写成 `1.0 / (2 * i + 1)`,这样可以避免除法运算的精度问题。
- 变量名可以更加直观,例如 `sum` 可以更改为 `pi`,`f` 可以更改为 `flag`。
修改后的代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
double pi = 0;
int flag = 1;
cout << "请输入迭代次数:";
cin >> n;
for (int i = 0; i < n; i++) {
pi += flag * 1.0 / (2 * i + 1);
flag *= -1;
}
pi *= 4;
cout << "π的值为:" << pi << endl;
return 0;
}
```
这样的代码更加规范和易读,更符合 C++ 的编码规范。