机动车违章识别系统-题解

描述

随着机动车数量的增长, 一些城市为了缓解交通压力, 采取了错峰限行的措施。 错峰限行, 即划定区域在工作日的上下班高峰时段内, 禁止挂有外地车牌和车牌尾号是某些数字的本地车牌的车辆行驶。 某城市( 车牌城市代码为某B )在工作曰的 7:00—9:00、 16:30—18:30 内, 周一限行数字尾号 1 和9, 周二限行数字尾号2和8,周三限行数字尾号3和7,周四限行数字尾号4和6,周五限行数字尾号5和0, 外地车牌全部限行。 现有某个路口一周的车辆通行信息, 部分信息如下表所示。 请编写程序, 输出违章车辆的车牌号码和车主姓名。

车牌号码 车主姓名 日期 星期
城B.2D6AF 何一 3月15日 1
城B.3B09D 王立 3月15日 1
城B.2D3A2 杨子 3月17日 3
城B.36A87 杨子 3月18日 4
城B.1F0AB 李三 3月19日 5
城B.3E6B8 邵东 3月20日 6

输入描述

一个整数n,表示有n条车辆能行的记录。(n<=100)

每行一条通行记录,包括车版号码、车主姓名、日期、星期。

输出描述

输出若干行违章的记录(按输入的记录从上往下依次输出)。

格式开头加一行:license number owner’s name

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <bits/stdc++.h>
using namespace std;

int main() {
int n;
cin >> n;
cout << "license number owner's name" << endl;
for (int i = 0; i < n; i++) {
string a, b, c;
int x;
cin >> a >> b >> c >> x;
if (x > 5) {
continue;
}
bool waidi = (a.substr(0, 6) == "cityB.");

if (!waidi) {
cout << a << " " << b << endl;
} else {
char y = '\0';
for (int j = a.size() - 1; j >= 0; j--) {
if (isdigit(a[j])) {
y = a[j];
break;
}
}
bool ans = false;
switch (x) {
case 1:
if (y == '1' || y == '9') ans = true;
break;
case 2:
if (y == '2' || y == '8') ans = true;
break;
case 3:
if (y == '3' || y == '7') ans = true;
break;
case 4:
if (y == '4' || y == '6') ans = true;
break;
case 5:
if (y == '5' || y == '0') ans = true;
break;
}

if (ans) {
cout << a << " " << b << endl;
}
}
}

return 0;
}

机动车违章识别系统-题解
https://chenxi-tijie.pages.dev/2025/07/机动车违章识别系统-题解/
作者
chenxi
发布于
2025年7月4日
许可协议