Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ I';我有一个Qt作业,我只能';我好像没有开始工作。这里';以下是任务描述:_C++ - Fatal编程技术网

C++ I';我有一个Qt作业,我只能';我好像没有开始工作。这里';以下是任务描述:

C++ I';我有一个Qt作业,我只能';我好像没有开始工作。这里';以下是任务描述:,c++,C++,编写一个Qt图形用户界面(GUI)程序来生成用户名和初始值 密码指定了用户的全名。 下面给出了生成有效用户名的规则: •由5个小写字符组成。 •用户名是通过将名字的前4个字符与第一个字符组合而成的 姓氏的特征。 •如果名字没有4个字符,则从姓氏中提取更多字符 组成用户名。 •如果名字和姓氏中的字符总数小于5,则添加 足够多的0来创建用户名。 初始密码由从完整密码中随机选择的5个字符组合而成 用户的名称。 注意,用户名或密码中不允许有空格。 用户输入应通过一个对话框获得。您可以将全名作为 单个字符

编写一个Qt图形用户界面(GUI)程序来生成用户名和初始值 密码指定了用户的全名。 下面给出了生成有效用户名的规则: •由5个小写字符组成。 •用户名是通过将名字的前4个字符与第一个字符组合而成的 姓氏的特征。 •如果名字没有4个字符,则从姓氏中提取更多字符 组成用户名。 •如果名字和姓氏中的字符总数小于5,则添加 足够多的0来创建用户名。 初始密码由从完整密码中随机选择的5个字符组合而成 用户的名称。 注意,用户名或密码中不允许有空格。 用户输入应通过一个对话框获得。您可以将全名作为 单个字符串,其中每个单词用空格分隔。例如:迈克·威廉 欧文。输出(用户名和密码)应使用QMessageBox显示。 您不需要对用户输入进行任何验证。您可以假设用户将在 对话中至少有两个单词。假设输入的第一个字是第一个名字 名称中的最后一个单词是姓氏——例如,对于示例输入Mike William Owen,Mike应读作名字,Owen应读作姓氏和姓氏 生成的用户名应为mikeo

我无法解决的问题是-•如果名字和姓氏中的字符总数少于5,则添加 足够多的0来创建用户名。这是我的密码:

#include <QtGui>
#include <QDebug>
#include <QtWidgets>
#include <QStringList>

int randInt(int low, int high)
{
   return qrand() % ((high + 1) - low) + low;
}

int main (int argc, char* argv[])
{

   QApplication app(argc, argv);
   QString userFullName = QInputDialog::getText(0, "User Name", "Enter name and surname (First, middle and last name)");
   QStringList userInfo = userFullName.split(" ");
   QString password;
   //QString DisplayName;

   QString firstName = userInfo.first();
   QString lastName = userInfo.last();

   QString DisplayName = userInfo.join(" ");

   QString FullName = firstName.toLower() + lastName.toLower();

   if (FullName.size() < 5)
   {
       FullName.insert(4,"0");
   }

   qsrand(QTime::currentTime().msec());


   int userL = FullName.length();

   for (int i = 0; i < 5; i++)
   {
       int num = randInt(0,userL);
       password[i] = FullName[num];
   }

   if(userInfo.size() >= 2)
   {
       QString lastNameChars;
       QString firstNameChars;

       if (lastName.size() >= 4)
       {
           QString firstL = QString(lastName.at(0));
           firstL.toUpper();
           QString secondL = QString(lastName.at(1));
           secondL.toLower();
           QString thirdL = QString(lastName.at(2));
           thirdL.toLower();
           QString fourthL = QString(lastName.at(3));
           fourthL.toLower();
           lastNameChars = firstL + secondL + thirdL + fourthL;
           firstNameChars = QString(firstName.at(0));
       }
       else if (lastName.size() == 3)
       {
           QString firstL = QString(lastName.at(0));
           firstL.toUpper();
           QString secondL = QString(lastName.at(1));
           secondL.toLower();
           QString thirdL = QString(lastName.at(2));
           thirdL.toLower();
           lastNameChars = firstL + secondL + thirdL;
           firstNameChars = QString(firstName.at(0)) +
           QString(firstName.at(1));
       }
       else if (lastName.size() == 2 )
       {
           QString firstL = QString(lastName.at(0));
           firstL.toUpper();
           QString secondL = QString(lastName.at(1));
           secondL.toLower();
           lastNameChars = firstL + secondL;
           firstNameChars = QString(firstName.at(0)) + QString(firstName.at(1)) + QString(firstName.at(2));
       }
       else if (lastName.size() == 1 )
       {
           QString firstL = QString(lastName.at(0));
           firstL.toUpper();
           lastNameChars = firstL;
           firstNameChars = QString(firstName.at(0)) + QString(firstName.at(1)) + QString(firstName.at(2)) + QString(firstName.at(3));
       }

       QString UserName = lastNameChars + firstNameChars.toLower();

       QString response = QString("The user: %3\nUsername: %2\nPassword: %1\n").arg(password).arg(UserName).arg(DisplayName);
       QMessageBox::information(0, "Results", response);
   }
   else
   {
       QMessageBox::information(0, "Error", "Incorrect input data");
   }

   return 0;
}
#包括
#包括
#包括
#包括
整数和整数(整数低,整数高)
{
返回qrand()((高+1)-低)+低;
}
int main(int argc,char*argv[])
{
QApplication应用程序(argc、argv);
QString userFullName=QInputDialog::getText(0,“用户名”,“输入姓名和姓氏(名字、中间名和姓氏)”);
QStringList userInfo=userFullName.split(“”);
QString密码;
//QString显示名;
QString firstName=userInfo.first();
QString lastName=userInfo.last();
QString DisplayName=userInfo.join(“”);
QString FullName=firstName.toLower()+lastName.toLower();
if(FullName.size()<5)
{
全名。插入(4,“0”);
}
qsrand(QTime::currentTime().msec());
int userL=FullName.length();
对于(int i=0;i<5;i++)
{
int num=randInt(0,userL);
密码[i]=全名[num];
}
如果(userInfo.size()>=2)
{
QString lastNameChars;
QString firstNameChars;
如果(lastName.size()>=4)
{
QString firstL=QString(lastName.at(0));
firstL.toUpper();
QString secondL=QString(lastName.at(1));
第二,托洛尔();
QString thirdL=QString(lastName.at(2));
第三,托洛尔();
QString fourthL=QString(lastName.at(3));
第四,托洛尔();
lastNameChars=firstL+secondL+thirdL+fourthL;
firstNameChars=QString(firstName.at(0));
}
else if(lastName.size()==3)
{
QString firstL=QString(lastName.at(0));
firstL.toUpper();
QString secondL=QString(lastName.at(1));
第二,托洛尔();
QString thirdL=QString(lastName.at(2));
第三,托洛尔();
lastNameChars=firstL+secondL+thirdL;
firstNameChars=QString(firstName.at(0))+
QString(firstName.at(1));
}
else if(lastName.size()==2)
{
QString firstL=QString(lastName.at(0));
firstL.toUpper();
QString secondL=QString(lastName.at(1));
第二,托洛尔();
lastNameChars=firstL+secondL;
firstNameChars=QString(firstName.at(0))+QString(firstName.at(1))+QString(firstName.at(2));
}
else if(lastName.size()==1)
{
QString firstL=QString(lastName.at(0));
firstL.toUpper();
lastNameChars=firstL;
firstNameChars=QString(firstName.at(0))+QString(firstName.at(1))+QString(firstName.at(2))+QString(firstName.at(3));
}
QString UserName=lastNameChars+firstNameChars.toLower();
QString response=QString(“用户:%3\n用户名:%2\n密码:%1\n”).arg(密码).arg(用户名).arg(显示名称);
QMessageBox::信息(0,“结果”,响应);
}
其他的
{
QMessageBox::信息(0,“错误”,“输入数据不正确”);
}
返回0;
}

首先隔离
全名是否超过5个字符

  • 如果
    FullName
    的字符数超过5个,我们将检查两种结果:

    • 如果
      firstName
      的字符数超过5个,则
      UserName
      仅为
      firstName
      的前4个字母和
      lastName
      的第一个字母

    • 如果小于此值,
      UserName
      则为所有
      firstName
      以及从
      lastName
      中提取的少于5个字符数

  • 否则,
    FullName
    的字符数不超过5个,我们循环并附加一个
    0
    ,因为
    FullName
    的字符数不足5个,这就变成了
    用户名
以下是一个例子:

    ...
    if(userInfo.size() >= 2)
    {
       QString lastNameChars;
       QString firstNameChars;
       QString UserName;

       if (FullName.size() > 5)
       {
            if (firstName.size() > 5)
            {
                UserName = firstName.left(4) + lastName.left(1);
            }
            else
            {
                UserName = firstName.left(firstName.size()) +
                           lastName.left(5 - firstName.size());
            }
       }
       else
       {
           UserName = FullName;
           for (int i = 0; i < 5 - FullName.size(); i++)
           {
               UserName += "0";
           }
       }
    ...
。。。
如果(userInfo.size()>=2)
{
QString lastNameChars;
QString firstNameChars;
QString用户名;
if(FullName.size()>5)
{
如果(firstName.size()>5)
{
UserName=firstName.left(4)+lastName.left(1);
}
其他的
{
UserName=firstName.left(firstName.size())+
姓氏。左(5)