写个收费程序怎么写好看

时间:2025-01-28 09:48:37 单机游戏

编写一个收费程序,无论是用于停车收费还是其他类型的收费,都需要考虑以下几个方面来确保其易读性和功能性:

清晰的输入和输出

程序应该有一个简单的用户界面,让用户能够轻松输入必要的信息,如车型、进场和出场时间。

输出应该清晰显示计算结果,包括停车费用和其他相关信息。

合理的计算逻辑

根据不同的车型和时间段,程序应该能够正确计算停车费用。

对于时间段跨越白天和夜晚的情况,需要有明确的计算规则,例如不足15分钟或2小时的部分如何收费。

错误处理和提示

程序应该能够处理无效的输入,并给出相应的错误提示。

对于可能的异常情况,如时间格式错误、无效的车型等,需要有健壮的错误处理机制。

代码结构和注释

代码应该结构清晰,易于理解和维护。

添加必要的注释,解释每个函数和关键步骤的作用,提高代码的可读性。

文档和测试

编写详细的文档,说明程序的使用方法和注意事项。

进行充分的测试,确保程序在各种情况下都能正确运行。

```c

include

include

include

// 定义收费标准

const float SMALLCAR_RATE_DAY = 2.5; // 白天每15分钟收费

const float SMALLCAR_RATE_NIGHT = 1.0; // 夜间每2小时收费

const float BIGCAR_RATE_DAY = 5.0; // 白天每15分钟收费

const float BIGCAR_RATE_NIGHT = 2.0; // 夜间每2小时收费

// 计算停车费用

float calculate_fee(const char *model, const char *entry_time, const char *exit_time) {

int entry_hour = atoi(entry_time);

int exit_hour = atoi(exit_time);

int duration_hours = exit_hour - entry_hour;

int duration_minutes = (duration_hours % 1) * 60;

float fee = 0.0;

if (strcmp(model, "小型车") == 0) {

if (duration_hours <= 1) {

fee = SMALLCAR_RATE_DAY * duration_minutes / 15.0;

} else {

fee = SMALLCAR_RATE_DAY * 60 + SMALLCAR_RATE_NIGHT * (duration_hours - 1);

}

} else if (strcmp(model, "大型车") == 0) {

if (duration_hours <= 1) {

fee = BIGCAR_RATE_DAY * duration_minutes / 15.0;

} else {

fee = BIGCAR_RATE_DAY * 60 + BIGCAR_RATE_NIGHT * (duration_hours - 1);

}

} else {

printf("无效的车型\n");

exit(1);

}

return fee;

}

int main() {

char model;

char entry_time;

char exit_time;

printf("请输入车型: ");

scanf("%s", model);

printf("请输入进场时间 (格式: MM-DD-YYYY HH:MM): ");

scanf("%s", entry_time);

printf("请输入出场时间 (格式: MM-DD-YYYY HH:MM): ");

scanf("%s", exit_time);

float fee = calculate_fee(model, entry_time, exit_time);

printf("停车费用: %.2f 元\n", fee);

return 0;

}

```

这个程序包含了基本的输入输出、计算逻辑和错误处理。你可以根据需要进一步扩展和优化,例如添加更多的车型、时间段或收费规则。