• 第一次个人编程作业


    1.Github项目地址

    https://github.com/lwt09/031702445

    2.psp

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟
    Planning 计划
    · Estimate · 估计这个任务需要多少时间 10 0
    Development 开发
    · Analysis · 需求分析 (包括学习新技术) 240 420
    · Design Spec · 生成设计文档 10 40
    · Design Review · 设计复审 10 10
    · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 10
    · Design · 具体设计 60 30
    · Coding · 具体编码 320 720
    · Code Review · 代码复审 60 30
    · Test · 测试(自我测试,修改代码,提交修改) 60 180
    Reporting 报告
    · Test Repor · 测试报告 60 60
    · Size Measurement · 计算工作量 20 10
    · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30 60
    合计 910 1570


    3.解题思路

    语言的选择###

    讲道理说实话老实说,我是在作业布置后的第三天开始做的。问了几个开始写的朋友,都说C++肝的蛋疼,我就也没有尝试用这个语言写。转头跑去学了一下python的语法(还是肝到要死其实),就开始用这个语言加上现学现卖的正则表达式开始写题目了。


    思考的过程###

    看到题目首先想到的是字符串的切片问题,最开始思考的还是用最基础的字符串加分割判断来把地址切开,不过实践起来感觉有点麻烦。当然百度是个好东西,没有理由不百度一下查阅资料对吧。在摸索过程中了解到了正则表达式这个工具,用于切分查阅大段文字的时候会比较会提供很多便利,就转而去深入了解这个小工具。
    进而,通过筛选于剔除,慢慢把字段切分开来,形成一级一级的省市县等结构进行输出。

    4.解题思路

    |||||||||
    |:--|:--|:--|:--|:--|:--|:--|
    |函数名|getname()|getnum()|getcity()|getqu()|getroad()|print(json1)|
    |功能|获取名字|获取电话|获取城市|获取街头区县|获取街道|要求格式输出|

    5.代码说明

    #getcity()
    listcountry=['北京','上海','天津','重庆']
    if(string[0:2] in listcountry):
           answer.append(string[0:2])
           answer.append(string[0:2]+'市')
           #str1=string[0:2]
           string = string[3:]
           #print(string)
    elif(re.search('省',string)!= None):
           if(re.match('.*省',string) != None):  
                  str1 =re.search('(S)+省',string).group()         #省份
                  string = re.sub('(S)+省','',string)
                  if(str1 != None):
                         answer.append(str1)
                  else:
                         answer.append('')
           
           if(re.match('.*市',string) != None):
                  str2 = re.search('(?!.*省)w+市',string).group()          #市区
                  string = re.sub('(?!.*省)w+市','',string)
                  if(str2 != None):
                         answer.append(str2)
                  else:
                         answer.append('')
    

    一级一级慢慢切分得到输出

    单元测试###

    小陈,广东省东莞市凤岗13965231525镇凤平路13号.
    小美,北京市东15822153326城区交道口东大街1号北京市东城区人民法院.
    王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.
    李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
    阿呆,上海市东15154761026城区A街1号上海市浦东第二影院.
    
    
    {"姓名": "小陈", "手机": "13965231525", "地址": ["广东省", "东莞市", "", "凤岗镇", "凤平路", "13号", ""]}
    {"姓名": "小美", "手机": "15822153326", "地址": ["北京", "北京市", "东城区", "", "交道口东大街", "1号", "北京人民法院"]}
    {"姓名": "王五", "手机": "18960221533", "地址": ["福建省", "福州市", "鼓楼区", "", "五一北路", "123号", "福州鼓楼医院"]}
    {"姓名": "李四", "手机": "13756899511", "地址": ["福建省", "福州市", "鼓楼区", "鼓西街道", "湖滨路", "110号", "湖滨大厦一层"]}
    {"姓名": "阿呆", "手机": "15154761026", "地址": ["上海", "上海市", "东城区", "", "A街", "1号", "上海市浦东第二影院"]}
    

    性能分析###


    Visual Studio 2017 一个测试点情况下的性能分析


    6.总结收获

    总的来说,收获的体验大过知识储备上的增长。
    功能的实现模块化经行会使整个小项目更易于修改与查阅,自己写的也会更舒服。
    代码的调试也真的很烦,一点一点才磨时间。真正这一次体验到了试着熬夜去理解一些代码,去学习一门语言的感受。很多东西不是你感觉都什么学完了都会了,其实是你根本没有了解没有涉略,自己才是有什么自己应该去学的都不知道的无知存在。
    大一大二时光真的过的挺快的,到了大三才真的发现,会很突然地感觉到自己慢慢在荒废时光中被人拉开的差距有多远了。大学呆在学校的时光还有很多,珍惜时间233至少让自己在未来能有选择的空间。

  • 相关阅读:
    Python 42 mysql用户管理 、pymysql模块
    Python 41 多表查询 和 子查询
    Python 41 完整查询语句 和 一堆关键字
    Python 40 数据库-外键约束 、多对一与多对多的处理
    Python 40 数据库-约束
    Python 38 注册和修改密码
    eas之关于编码规则
    eas之界面之间传递参数
    eas之获取集合
    eas之单据删除代码
  • 原文地址:https://www.cnblogs.com/lwthhh/p/11536007.html
Copyright © 2020-2023  润新知