2014-09-30 61 views
-1

我已經創建了一個名爲employee的結構,「emp.id」是員工ID。我需要驗證該員工ID是否唯一

當用戶輸入一個id時,它不應該與之前輸入的以前的ID相匹配。

這只是主程序的一個功能,它驗證員工ID是唯一的。

代碼正在工作,但在打印時,它將ID的最後一個值分配給所有ID。

請幫忙。

void uniqueid() 
{ 
    int check=1; 
    string code; 
    string tempemp1; 

    cout<< "enter id"; 
    while(check) { 
    cin >> code; 
    check = 0; 
    for (int i = 0; i < num; ++i) { 
     if (emp[i].id.compare(code)==0) { 
     check = 1; 
     cout << "enter id again"; 
     break; 
     } 
    } 

    if (check==0) { 
     emp[i].id=code; 
    } 
    } 
} 
+0

請在格式中加入一些努力。額外的空白行是不必要的,並分散注意力。還要注意「代碼示例」按鈕(看起來像'{}')。 – Adam 2014-09-30 21:48:32

+1

[程序需要用戶輸入非重複數字C++]的可能重複(http://stackoverflow.com/questions/26129214/program-requires-user-to-enter-non-duplicate-numbers-c) – Nevin 2014-09-30 21:55:06

+0

這不是一個重複的問題。我建議OP根據前一個進展開展一個新問題。 – quamrana 2014-10-01 07:35:02

回答

0

在您的示例中似乎存在一些不重要的代碼量;即其中numemp定義,等...

但是,從一個粗略的檢查,似乎缺少了什麼是num得到增加,後成功添加一個新員工。

另外,也許你還沒有學到它,但在涉及唯一性的情況下,std::set將成爲你的朋友;但是在你描述的那種情況下,你最終可能會使用std::map