问题 问答题

以下是某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(password[i]>=’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
(回车符,空输入)

选择题
多项选择题