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

Posted on 2018-03-16 10:20  大家嘿  阅读(96)  评论(0编辑  收藏  举报

任务说明(二选一):

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

二、实现模块判断传入的电子邮箱账号的正确性;

实现要求:

一、实现功能模块;

(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