任务说明(二选一):
一、实现模块判断传入的身份证号码的正确性;
二、实现模块判断传入的电子邮箱账号的正确性;
实现要求:
一、实现功能模块;
二、针对所实现的模块编写对应的单元测试代码;
三、需要按PSP流程进行工作量估算,填写任务清单工作量估算表。
#include<iostream>
#include<string>
using namespace std;
int cal(string a)
{
return (a[0] - '0') * 7 + (a[1] - '0') * 9 + (a[2] - '0') * 10 + (a[3] - '0') * 5 + (a[4] - '0') * 8 + (a[5] - '0') *4 + (a[6] - '0') * 2 + (a[7] - '0') * 1 + (a[8] - '0') * 6 +(a[9] - '0') * 3 + (a[10] - '0') * 7 + (a[11] - '0') * 9 + (a[12] - '0') * 10 + (a[13] - '0') * 5 + (a[14] - '0') * 8 + (a[15] - '0') * 4 +(a[16] - '0') * 2;
}
char s(string a)
{
int k = cal(a) % 11;
if (k == 0)
return '1';
else if (k == 1)
return '0';
else if (k == 2)
return 'X';
else
return '0'+12-k;
}
int main()
{
printf("请输入身份证号:
");
string number;
while ((cin >> number) && number != "-1")
{
if (number[17] == s(number))
cout << "正确的身份证号
" << endl;
else
cout << "错误的号码
" << endl;
}
system("pause");
return 0;
}
任务清单工作量估算表:
PSP阶段 |
时间估算(小时) |
实际实际(小时) |
|
计划 |
估计每个阶段的时间成本 |
1 |
1 |
开发 |
需求分析 |
0.8 |
0.6 |
系统设计 |
0.4 |
0.3 |
|
设计复审 |
0.5 |
0.5 |
|
代码实现 |
0.6 |
0.5 |
|
代码复审 |
0.3 |
0.2 |
|
测试 |
0.2 |
0.2 |
|
报告 |
测试报告 |
0.3 |
0.3 |
总结 |
0.5 |
0.5 |