任务说明(二选一):

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

实现要求:

一、实现功能模块;

(1)用于检查身份证是否有效

第18位检验位:

将身份证号码17位数分别乘以不同系数,为7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
将这17位数字相加除以11,得到余数。
余数只可能为0-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的数为1-0-X-9-8-7-6-5-4-3-2。而这个数就是最后一位身份证号码。

生日格式的检验:

生日不能的月份不能大于1,且日期不能大约3。

 (2)检查出生日期是否大于2018年3月

输入的第7位到第11位将它们数值化然后于201803相比大于的为超出时间.

(3)判断身份证地址

输入的第1位和第2位将它们于对应的省份代号进行对比.

(4)显示出生日期

将分别代表出生年月日的第七位到第十四位显示。

(5)显示性别

第17位单数为男双数为女由此来显示。

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

# include <stdio.h>
# include <stdlib.h>
# include <windows.h>int main(void) {int i, a[20], sum=0, b, m=0 ,day;char c;long area;printf("\n");printf("查询的身份证号:");for(i=1; i<=17; i++) {scanf("%1d", &a[i]);day=a[7]*100000+ a[8]*10000+a[9]*1000+a[10]*100+a[11]*10+a[12];}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[11]>1||a[13]>3) {printf("\n\n\n");printf("\a输入的不是有效的身份证!!!\n\n");getchar();getchar();}//    用于判断出人是否出生于2018年03月之后 if(day>20183) {printf("\n\n\n");printf("\a此人未出生!!!\n\n");getchar();getchar();}//     用于判断身份证地址 area = a[1]*10+ a[2];printf("\n\n\n");printf("身份证地址:");switch(area) {case 11: printf("北京");break;case 12: printf("天津");break;case 13: printf("河北");break;case 14: printf("山西");break;case 15: printf("内蒙");break;case 21: printf("辽宁");break;case 22: printf("吉林");break;case 23: printf("黑龙江");break;case  31: printf("上海");break;case 32: printf("江苏");break;case 33: printf("浙江");break;case 34: printf("安徽");break;case 35: printf("福建");break;case 36: printf("江西");break;case 37: printf("山东");break;case 41: printf("河南");break;case 42: printf("湖北");break;case 43: printf("湖南");break;case 44: printf("广东");break;case 45: printf("广西");break;case 46: printf("海南");break;case 51: printf("四川");break;case 52: printf("贵州");break;case 53: printf("云南");break;case 54: printf("西藏");break;case 61: printf("陕西");break;case 62: printf("甘肃");break;case 63: printf("青海");break;case 64: printf("宁夏");break;case 65: 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");elseprintf("性别:男\n");printf("\n\n\n");system("pause");return 0;
}

三、需要按PSP流程进行工作量估算,填写任务清单工作量估算表。

任务清单工作量估算表:

PSP阶段

时间估算(小时)

实际实际(小时)

计划

估计每个阶段的时间成本

0.8

0.7

开发

需求分析

0.7

0.9

系统设计

0.4

0.4

设计复审

0.5

0.5

代码实现

1

1.2

代码复审

0.8

0.4

测试

0.4

0.4

报告

测试报告

0.3

0.5

总结

0.5

0.3 

 

转载于:https://www.cnblogs.com/linhui0822/p/8576110.html

软工作业PSP与单元测试训练 15100231相关推荐

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

    一.实现模块判断传入的身份证号码的正确性: 二.针对所实现的模块编写对应的单元测试代码: import java.text.ParseException; import java.text.Simpl ...

  2. 软工作业 5:词频统计——增强功能

    一.基本信息 1.1 编译环境.项目名称.作者 1 #编译环境:python3.6 2 #项目名称:软工作业5-词频统计-增强功能 3 #作者:1613072055 潘博 4 # 1613072056 ...

  3. 第三次软工作业——实现最大字段和算法并进行判定条件覆盖

    第三次软工作业 实现最大子段和的算法并进行条件组合覆盖测试 (一)什么是最大子段和? 我自己的理解: 一个数组可以若干个子数组,包含自身.每一个字数组都有一个数组元素之和,求这些和之间的最大值. 最朴 ...

  4. 第一次软工作业展示——潘学

    第一次软工作业完成啦! 回首这个作业的完成过程,我是很有收获.这个作业有几个难点:1.在给定目录下读取TXT文件的内容:2.从读到的内容中分析出单词:3.统计单词的出现频率并输出. 我之前只学习过C和 ...

  5. 第一次软工作业(构建之法)

    第一次软工作业(构建之法) 关于构建之法的若干个问题 1.第一章32页,原文:"有人认为,"中文编程",是解决程序员编程效率的一个秘密武器,请问它是一个"银弹& ...

  6. 第一次软工作业(数独)

    第一次软工作业(数独) 1.该项目的github地址: https://github.com/514DNA/sudoku 2.各个模块耗费的时间: PSP2.1 Personal Software P ...

  7. 软工作业阅读计算机前辈的随笔有感

    荣誉是时间的女儿. -- 阿兰. --记第一次随笔有感. 我为什么选择计算机? 一直到高考志愿报考前,我都没认真去思考过我未来的职业,我甚至都没有构想过我的未来,在我的印象中,我应该就考上个大学,毕业 ...

  8. 2019/3/14 软工作业

    自我介绍 2017xxxxx1066:我是骆树仁:我的爱好是揉白泽球: 我的码云个人主页是:https://gitee.com/sturdast/events 我的第一个项目地址是:https://g ...

  9. 【软工作业思考】关于软工的一些概念性理解暨第一次阅读作业

    概述 项目 内容 本次作业所属课程 2019BUAA软件工程 周二班 本次作业要求 第1次个人作业 当然,比这个更重要百倍的还是实实在在的思考,这也是标题如此命名的原因 我在本课程的目标 在原有实践经 ...

  10. 软工作业No.3--团队作业:甜美女孩出击!

    队名:甜美女孩 队员包括: 姓名 学号 身份 曾祎祺 3216005211 队长 邓画月 3216005212 队员 何颖琪 3216005213 队员 梁沛诗 3216005214 队员 梁子君 3 ...

最新文章

  1. html 下拉框字体,怎么把select下拉菜单里的文字设置成左右滚动效果
  2. 《研磨设计模式》chap14 迭代器模式(1)简介
  3. 第四天:规划范围管理
  4. phpstorm-有关设置
  5. 【华为云技术分享】云小课 | 磁盘容量不够用?小课教你来扩容!
  6. 限制只允许某个进程调用库
  7. H3C 初级综合实验
  8. awr报告 解读_关于AWR报告的解析
  9. Bridge桥的简介-从零开始学RouterOS系列14
  10. Android webview调用本地文件选择失败解决
  11. 鸡兔同笼头吃20脚56c语言,数学课件《鸡兔同笼》
  12. 关于EA和ED的区别
  13. UEFI电脑安装Win7并激活
  14. Android Dialog之间的层级设置(WindowManager.LayoutParams)
  15. 光猫及二级路由器Openwrt均开启IPv6,满足双层网络内IPv6的获取
  16. (原创推荐文章)kerberos服务器端与客户端
  17. SD/SDHC/SDXC区别
  18. Building designing
  19. 【Error】西部数据磁盘插上不显示盘符
  20. Flask报错及其相关解决方法汇总

热门文章

  1. 虚拟机Windows 2003忘记密码怎么办
  2. NodeJs 实现 WebSocket 即时通讯(简单版)
  3. Don't Panic! KRACK 没你想象的那么糟
  4. Oracle之外键(Foreign Key)使用方法具体解释(二)- 级联删除(DELETE CASCADE)
  5. 搜索题,留着以后慢慢刷
  6. UIView动画设置
  7. C#4.0新特性:可选参数,命名参数,Dynamic
  8. Java事务之八——分布式事务(Spring+JTA+Atomikos+Hibernate+JMS)
  9. 想做Bezier动画,可惜弄出来这个差远了。
  10. 浏览器输入网址回车发生的事情?--