C++程序 生成车辆号码
在本文中,我们将创建一个简单的 Java 程序来生成一个唯一的车牌号码。为此,让我们了解一下可以生成号码牌的格式。
车辆的号码牌由 4 部分组成:
- 状态代码: 前两个字母代表车辆注册所在的状态或联合领土。
- 区县代码: 一个两位数分配给所在州或联合领土内的一个区县。
- 单个或多个字母: 这表示号码牌的唯一字母。
- 1 到 9999 之间的编号: 它按顺序分配,并对每个注册都是唯一的。
注意: 我们将考虑这种生成号码牌的标准方法,根据国家,它可能有某些变化。
所以让我们开始实现吧:
第一步: 我们将创建一个列表,其中将包含所有州的列表。
第二步: 基于选定的州,我们将在所有区县可用范围内生成一个数字。
第三步: 在这里,我们将生成一个唯一的字母和一个介于 1 到 9999 之间的数字。
第四步: 在这里,我们将把所有的东西合并到一个单一的变量中以打印出来。
显示带有其代码的州数据的表
让我们创建一个映射,它将把州名作为键,总可用区县数作为值。
用于构建号码牌的元素
州名称+区县代码(在州内随机生成)+唯一生成字母+随机数字
例如:
古吉拉特邦有 33 个区县,因此键将是 GJ,值将是 37(生成 1 到 37 的任意数字)
让我们分解一下格式以理解。
例如: GJ 01 BC 0000
举个例子: 我们已经在该州使用了 1-37 的随机数字作为区县号码,但如果您想使用,则需要创建另一个嵌套映射,其中我们将存储所有区县的名称并将其与区县代码关联起来。
// C++程序,用于实现
// 车牌分配
#include <bits/stdc++.h>
using namespace std;
void states_information(
unordered_map<string, string>& states)
{
states.insert({ "Andhra Pradesh", "AD" });
states.insert({ "Arunachal Pradesh", "AR" });
states.insert({ "Assam", "AS" });
states.insert({ "Bihar", "BR" });
states.insert({ "Chattisgarh", "CG" });
states.insert({ "Delhi", "DL" });
states.insert({ "Goa", "GA" });
states.insert({ "Gujarat", "GJ" });
states.insert({ "Haryana", "HR" });
states.insert({ "Himachal Pradesh", "HP" });
states.insert({ "Jammu and Kashmir", "JK" });
states.insert({ "Jharkhand", "JH" });
states.insert({ "Karnataka", "KA" });
states.insert({ "Kerala", "KL" });
states.insert({ "Lakshadweep Islands", "LD" });
states.insert({ "Madhya Pradesh", "MP" });
states.insert({ "Maharashtra", "MH" });
states.insert({ "Manipur", "MN" });
states.insert({ "Meghalaya", "ML" });
states.insert({ "Mizoram", "MZ" });
states.insert({ "Nagaland", "NL" });
states.insert({ "Odisha", "OD" });
states.insert({ "Pondicherry", "PY" });
states.insert({ "Punjab", "PB" });
states.insert({ "Rajasthan", "RJ" });
states.insert({ "Sikkim", "SK" });
states.insert({ "Tamil Nadu", "TN" });
states.insert({ "Telangana", "TS" });
states.insert({ "Tripura", "TR" });
states.insert({ "Uttar Pradesh", "UP" });
states.insert({ "Uttarakhand", "UK" });
states.insert({ "West Bengal", "WB" });
states.insert({ "Andaman and Nicobar Islands", "AN" });
states.insert({ "Chandigarh", "CH" });
states.insert({ "Dadra & Nagar Haveli and Daman & Diu",
"DNHDD" });
states.insert({ "Ladakh", "LA" });
}
int main()
{
// 声明Map以存储州和状态代码
unordered_map<string, string> states;
// 调用函数更新数据
states_information(states);
string number_allotted = "";
// 输入州名称
string place;
cout << "输入你的州名称:";
cin >> place;
string temp = to_string((rand() % 31) + 10);
char char1 = (rand() % 26) + 64;
char char2 = (rand() % 26) + 64;
int last_digits = rand() % 9999;
cout << "恭喜,你得到的号码是: \n";
// 计算分配的号码
number_allotted = states[place] + " " + temp + " "
+ char1 + char2 + " "
+ to_string(last_digits);
cout << number_allotted << endl;
return 0;
}
// 实现号牌分配的Java程序
import java.util.*;
public class Main {
public static HashMap<String, String> state_code;
// 更新state和state_code的函数
public static void
state_data(HashMap<String, String> states)
{
states.put("Andhra Pradesh", "AD");
states.put("Arunachal Pradesh", "AR");
states.put("Assam", "AS");
states.put("Bihar", "BR");
states.put("Chattisgarh", "CG");
states.put("Delhi", "DL");
states.put("Goa", "GA");
states.put("Gujarat", "GJ");
states.put("Haryana", "HR");
states.put("Himachal Pradesh", "HP");
states.put("Jammu and Kashmir", "JK");
states.put("Jharkhand", "JH");
states.put("Karnataka", "KA");
states.put("Kerala", "KL");
states.put("Lakshadweep Islands", "LD");
states.put("Madhya Pradesh", "MP");
states.put("Maharashtra", "MH");
states.put("Manipur", "MN");
states.put("Meghalaya", "ML");
states.put("Mizoram", "MZ");
states.put("Nagaland", "NL");
states.put("Odisha", "OD");
states.put("Pondicherry", "PY");
states.put("Punjab", "PB");
states.put("Rajasthan", "RJ");
states.put("Sikkim", "SK");
states.put("Tamil Nadu", "TN");
states.put("Telangana", "TS");
states.put("Tripura", "TR");
states.put("Uttar Pradesh", "UP");
states.put("Uttarakhand", "UK");
states.put("West Bengal", "WB");
states.put("Andaman and Nicobar Islands", "AN");
states.put("Chandigarh", "CH");
states.put("Dadra & Nagar Haveli and Daman & Diu",
"DNHDD");
states.put("Ladakh", "LA");
}
public static void main(String[] args)
{
HashMap<String, String> states = new HashMap<>();
Random rand = new Random();
Scanner scn = new Scanner(System.in);
state_data(states);
int no_of_states = states.size();
// 随机获取一个数组列表中的索引
int random_index = rand.nextInt(no_of_states);
String number = String.valueOf(
rand.nextInt(9999)); // 0到9999
System.out.println(
"输入从给定图像中给出的州名:");
String str2 = scn.nextLine();
String selected_State = states.get(str2);
// 现在根据所选的州,我们将它与所有可用行政区划的哈希映射
// 生成一个城市号牌号码
// 为所选州的可用总城市号牌号码范围内
String selected_District_Code
= String.valueOf(rand.nextInt(37));
// 如果行政区划代码小于9,则在前缀中添加0
selected_District_Code
= (Integer.parseInt(selected_District_Code)
< 10)
? "0" + selected_District_Code
: selected_District_Code;
// 现在我们将生成2个唯一的字母
char c = (char)('A' + rand.nextInt(26));
char c2 = (char)('A' + rand.nextInt(26));
// 将所有事物组合起来
String vehicle_NumberPlate
= selected_State + " " + selected_District_Code
+ "" " + c + c2 + " " + number;
System.out.println(
"恭喜您分配的号码是:");
System.out.println(vehicle_NumberPlate);
}
}
输出:
程序的输出结果