问答题
以下是某C++程序,用来判定用户口令,请仔细阅读程序并完成要求。
//**********************************************************//
// 口令检验程序 //
// 文件名:password_check. cpp //
//**********************************************************//
#include<iostream. h>
#include<string. h>
//**********************************************************//
// 主函数 //
//**********************************************************//
void main(void)
{
char password[128]={'/0/};
cout<<“请输入您的口令:";
cout. flush();
while(true){
cin. getline(password,128,'/n');
if(strlen(password)<6) //口令长度少于6位
{
cout<<"您的用户口令少于6个字符!"<<endl;
cout<<"请重新输入:";
cout. flush();
}else{
bool capital=false; //检验是否有大写字母
bool lowercase=false; //检验是否有小写字母
bool digit=false; //检验是否有数字
for(unsigned int i=0;i<strlen(password);i++){
if(password[i]>='A'&&password[i]<='Z')
capital=true;
if(passwordEi]>="a"&&password[i]<='Z')
lowercase=true;
if(password[i]>='0'&&password[i]<='9')
digit=true;
}
//判断用户输入的口令中缺少哪中字符
if(capital){
cout<<"您的用户口令中没有大写字母!"<<endl;
cout<<"请重新输入:";
}else if(lowercase){
cout<<"您的用户口令中没有小写字母!"<<endl;
cout<<"请重新输入:";
}else if(digit){
cout<<"您的用户口令中没有数字!"<<endl;
cout<<"请重新输入:";
}else{
cout<<"您的口令满足要求!"<<endl;
break;
}
}
}
}
问答题
画出此程序主函数的控制流程图。
【正确答案】
【答案解析】程序控制流程图如下。
问答题
设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%,需说明理由。
【正确答案】
【答案解析】测试用例设计如下 分几种情况考虑:第一要满足所有条件,例如as123CD;第二要都不满足条件,例如#¥%%@¥&;第三要长度小于6,例如Sal;第四要有错误的输入,例如空输入,cin. getline无法获取回车符。 测试用例为: as123CD #¥%%@¥& Sal (回车符,空输入)