任务说明(二选一):
一、实现模块判断传入的身份证号码的正确性;
二、实现模块判断传入的电子邮箱账号的正确性;
实现要求:
一、实现功能模块;
二、针对所实现的模块编写对应的单元测试代码;
三、需要按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("请输入身份证号:\n");
string number;
while ((cin >> number) && number != "-1")
{
if (number[17] == s(number))
cout << "正确的身份证号\n" << endl;
else
cout << "错误的号码\n" << 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 |