2014-09-30 62 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