zoukankan      html  css  js  c++  java
  • 第一次个人编程作业

    github

    PSP

    PSP2.1Personal Software
    Process Stages
    预估耗时(min)实际耗时(min)
    Planning 计划 20 30
    Estimate 估计这个任务需要多少时间 20 30
    Development 开发 1710 2310
    Analysis 需求分析
    (包括学习新技术)
    900 1200
    Design Spec 生成设计文档 0 0
    Design Review 设计复审 30 20
    Coding Standard

    代码规范
    (为开发制定合适的规范)

    40 60
    Design 具体设计 60 100
    Coding 具体编码 500 640
    Code Review 代码复审 60 110
    Test 测试
    (自我测试,修改,提交修改)
    120 180
    Reporting 报告 75 75
    Test Report 测试报告 20 30
    Size Measurement 计算工作量 15 15
    Postmortem & Process
    Improvement Plan

    事后总结
    并提出过程改进计划

    40 45
      合计 1805 2415

    计算模块接口的设计与实现过程。

           这次代码的核心是正则表达式。刚开始json文件看的一脸懵,完全没接触过的知识,慢慢的学会它的函数,c++又要让我吐槽的是还得自己配置json的头文件....那过程实在是太曲折了....前期先是了解正则表达式的规则,每一个字符正则代表的意思你都看得懂,但是组合在一起就是妖魔鬼怪!! 而且痛苦的是网上的正则教程十有八九都是java的版本,c++能用的函数实在是太少了。地址要做的第一步处理就是把手机提取出来,下一步开始匹配难度类型,再把名字根据‘,’分割出来,剩下的就是最主要处理的地址了。c++不能一次完成整个字符串的match,所以我采用分开抓出来。先把省份提取出来,如果没有匹配到,则进入省的数组进行匹配,比较特别的是要先提取出直辖市进行对比。接下来再进行市、区等的匹配,与匹配省的过程类似。而c++的中文字符串不能匹配,实在是很坑。这时我去网上参考了一个中文匹配子串的函数。代码如下:

    vector<int> stringToVecInt(const string &str)
    {
        union {
            char c[2];
            int  i;
        } convert;
        // 段位清零
        convert.i = 0;
        vector<int> vec;
        for (unsigned i = 0; i < str.length(); i++) {
            // GBK编码首字符大于0x80
            if ((unsigned)str[i] > 0x80) {
                // 利用union进行转化,注意是大端序
                convert.c[1] = str[i];
                convert.c[0] = str[i + 1];
                vec.push_back(convert.i);
                i++;
            }
            else
                // 小于0x80,为ASCII编码,一个字节
                vec.push_back(str[i]);
        }
        return vec;
    }
    
    bool include(const string &str, const string &msg)
    {
        auto sour = stringToVecInt(str);
        auto find = stringToVecInt(msg);
        return search(sour.begin(), sour.end(), find.begin(), find.end()) != sour.end();
    }

            最痛苦的是,程序写完了上传GitHub的时候把自己的工程sln弄没了...然后自己重新编译原码的时候出现了看不懂的错误...最后挣扎的用python写了代码。思路和c++的是类似的。但唯一感动的就是再也不用烦恼输入输出为UTF-8格式了,也不用烦恼中文在字符串里面的操作了。最后一句python真香....

    计算模块接口部分的性能改进/部分单元测试展示

            百度完一脸懵逼,被代码折磨得脑袋不行的我选择放弃了....

  • 相关阅读:
    鼠标移到某个对象上,显示小手的形状
    前端开发过程中的一些小知识点总结
    滚动新闻插件vticker
    tab选项卡
    给SqlParameter参数指定或不指定:@变量标识符的区别是什么?
    c# 一个记录日志的通用方法
    DataTable和实体类通过反射相互转换
    通过计算获得一个使用最少量充值卡满足充值额度的方案
    动态规划问题
    DFS排列组合问题
  • 原文地址:https://www.cnblogs.com/gallium697/p/11535124.html
Copyright © 2011-2022 走看看