任务说明(二选一):
一、实现模块判断传入的身份证号码的正确性;
二、实现模块判断传入的电子邮箱账号的正确性;
实现要求:
一、实现功能模块;
(1)应实现身份证号码的位数是否正确。
(2)应验证身份证号码是否属于中国的各大省份。
(3)应实现对身份证号码最后一个位数字和X的验证。
(4)能够根据身份号码输出相应的信息。(省份,出生年月,性别)
二、针对所实现的模块编写对应的单元测试代码;
#include <stdio.h> #include <stdlib.h> #include <string.h>
char arr[19];//要验证的身份证号码
int brr[17]={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,5, 8, 4, 2};//身份证前17位的系数
char crr[11]={1, 0, -1, 9, 8, 7, 6, 5, 4, 3, 2}; //身份证第18位验证码
int sum=0;
int loop=0;
printf("请输入您的身份证号码\n");
scanf("%s",arr);
for(loop;lopp<17;loop++)
sum=sum+(arr[loop]-‘0’)*brr[loop];
if(sum%11==2){
if(arr[17]=='X')
printf("合法\n");
else
printf("不合法\n");
}
else{
if((arr[17]-'0')==crr[sum%11])
printf("合法\n");
else
printf("不合法\n");
return 0;
}
} printf("\a您输入的身份证号为,n此身份证号有效,具体信息如下:); printf("所在地:"); switch(area) { case 110000: printf("北京市");break; case 120000: printf("天津市");break; case 130000: printf("河北省");break; case 140000: printf("山西省");break; case 150000: printf("内蒙古自治区");break; case 210000: printf("辽宁省");break; case 220000: printf("吉林省");break; case 230000: printf("黑龙江省");break; case 310000: printf("上海市");break; case 320000: printf("江苏省");break; case 330000: printf("浙江省");break; case 340000: printf("安徽省");break; case 350000: printf("福建省");break; case 360000: printf("江西省");break; case 370000: printf("山东省");break; case 410000: printf("河南省");break; case 420000: printf("湖北省");break; case 430000: printf("湖南省");break; case 440000: printf("广东省");break; case 450000: printf("广西壮族自治区");break; case 460000: printf("海南省");break; case 500000: printf("重庆市");break; case 510000: printf("四川省");break; case 520000: printf("贵州省");break; case 530000: printf("云南省");break; case 540000: printf("西藏自治区");break; case 610000: printf("陕西省");break; case 620000: printf("甘肃省");break; case 630000: printf("青海省");break; case 640000: printf("宁夏回族自治区");break; case 650000: printf("新疆维吾尔自治区");break; } printf("\n"); printf("出生日期:%d%d%d%d年%d%d月%d%d日\n", a[7],a[8],a[9],a[10], a[11],a[12], a[13],a[14]); if(a[17]%2==0) printf("性别:女\n"); else printf("性别:男\n"); printf("\n"); printf("\n"); system("pause"); return 0; }
三、需要按PSP流程进行工作量估算,填写任务清单工作量估算表。
任务清单工作量估算表:
PSP阶段 |
时间估算(小时) |
实际实际(小时) |
|
计划 |
估计每个阶段的时间成本 |
0.3 |
0.2 |
开发 |
需求分析 |
0.5 |
0.5 |
系统设计 |
0.6 |
1 |
|
设计复审 |
0.5 |
0.5 |
|
代码实现 |
1 |
0.8 |
|
代码复审 |
0.6 |
0.7 |
|
测试 |
0.2 |
0.2 |
|
报告 |
测试报告 |
1 |
0.8 |
总结 |
0.6 |
0.6 |