软工作业PSP与单元测试训练

本文介绍了一个用于验证身份证号码正确性的C语言模块,并提供了相应的单元测试代码。该模块通过计算身份证号前17位的加权和来验证最后一位校验码的有效性。

1)实现模块判断传入的身份证号码的正确性;

 

 

 

二、针对所实现的模块编写对应的单元测试代码;

# include <stdio.h>

# include <stdlib.h>

# include <windows.h>

 

int main(void) {

 

SetConsoleTitle(L"身份证信息查询系统");

int i, a[20], sum=0, b, m=0;

char c;

long area;

printf("************************\n");

printf("请输入您所查询的身份证号:");

for(i=1; i<=17; i++) {

scanf("%1d", &a[i]);

}

scanf("%c", &c);

sum = a[1]*7 + a[2]*9 + a[3]*10 + a[4]*5 + a[5]*8 + a[6]*4 + a[7]*2

+ a[8]*1 + a[9]*6 + a[10]*3 +a[11]*7 + a[12]*9 + a[13]*10 + a[14]*5

+ a[15]*8 + a[16]*4 + a[17]*2;

b = sum%11;

switch(b) {//1 0 X 9 8 7 6 5 4 3 2

case 0: if(c=='1') m = 1;break;

case 1: if(c=='0') m = 1;break;

case 2: if(c=='X'||c=='x') m = 1;break;

case 3: if(c=='9') m = 1;break;

case 4: if(c=='8') m = 1;break;

case 5: if(c=='7') m = 1;break;

case 6: if(c=='6') m = 1;break;

case 7: if(c=='5') m = 1;break;

case 8: if(c=='4') m = 1;break;

case 9: if(c=='3') m = 1;break;

case 10: if(c=='2') m = 1;break;

}

if(m!=1||a[7]>2||a[11]>1||a[13]>3) {

printf("\n");

printf("\a您输入的不是有效的身份证,请重新输入\n\n");

system("pause");

exit(0);

}

printf("\n");

printf("身份证输入有效\n\n\n");

system("pause");

return 0;

}

三、任务清单工作量估算表:

 

PSP阶段

时间估算(小时)

实际实际(小时)

计划

估计每个阶段的时间成本

 0.6

 0.3

开发

需求分析

 0.7

 0.5

系统设计

 0.4

 0.5

设计复审

 0.6

 0.3

代码实现

 2

 1.5

代码复审

 1

 0.7

测试

 1.5

 1.1

报告

测试报告

 0.3

 0.2

总结

 0.5

 

0.3

 

转载于:https://www.cnblogs.com/zengjingzhao/p/8594824.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值