2012-02-28 49 views
-9

我正在写一个程序来读取一些学生记录。如何限制用户在C++程序中输入冗余数据?

输入的数据应该是唯一的。

我该怎么做?

+0

C++或C++/CLI? – 2012-02-28 09:34:37

+0

使用数据库。用户输入记录后,尝试按唯一的方式读取它。如果它存在显示一条消息。如果不写入数据库。 – 2012-02-28 09:50:08

回答

0

你可以使用std :: map键 - >主键,你的学生类的价值实例,但为了更好的使用某种数据库,它将为你处理它。

+0

嗨,我还不是一个专业的程序员。我是信息科学的学生,这是我讲师的任务。他明确提到我们不应该使用任何数据库应用程序。 – 2012-02-28 10:01:24

+0

然后将你的对象读入地图并将地图写入文件,std :: map会关心你的密钥,所以有两个限制是你不能在std :: map中插入两次相同的密钥。 – AlexTheo 2012-02-28 10:24:12

0

是下列任何好处?:

bool appendUserRecord(int input, std::vector<int>& records) 
{ 
    for (std::vector<int>::iterator _it = records.begin(); 
            _it < records.end(); ++_it) 
    { 
     if (*_it == input) 
      return false; 
    } 
    records.push_back(input); 
    return true; 
} 

当一个独特的“记录”添加的这个函数将返回true,如果它已经存在,否则为false。只需稍作修改就可以用记录类/结构而不是整数来实现这一点。

至于将数据存储在文件中,您只需打开文件流并使用for循环将所有记录以序列化形式传递给它。使用while循环(而不是文件结尾)来检索数据。