zoukankan      html  css  js  c++  java
  • 软件项目管理第一次作业

    一 自我简介

      我叫高宇,来自吉林辽源,虽然本科阶段接触过一些小的项目,但是除了本科毕设还没有独立完成过一个比较系统的项目,对于编程自认为能力不强,从毕业到现在写过的代码更是寥寥无几,通过这门课的学习,也是对自己的一种提升,会尽自己最大努力跟下来,也想看看自己在这方面到底能不能坚持下来,能积累一点是一点。

    二 github学习  

         我和曹春娇共同完成的,上传代码分为客户端直接上传,还有命令行上传(我使用的是命令行上传),由于没有成功建立仓库(邮件验证不成功,问题截图如下)

    ,所以代码还没有上传成功,

    词频统计代码如下:

    #include <string>
    #include "Word.h"
    #include <regex>
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    bool sortByNum(Word* w1, Word* w2)
    {
        if (w1 && w2) {
            return w1->getNum() > w2->getNum();
        }
        return true;
    }
    
    void sortVector(std::vector<Word*> vec)
    {
        std::sort(vec.begin(), vec.end(), sortByNum);
    }
    
    void printAllObject(std::vector<Word*> vec)
    {ortVector(vec);
        for (auto p : vec) {
            if (p) {
                std::cout << p->getWord() << " : " << p->getNum() << endl;
            }
        }
    }
    
    void delectAllObject(std::vector<Word*> vec)
    {
        for (int i = 0; i < vec.size(); ++i) {
            auto p = vec.at(i);
            if (p) {
                delete p;
            }
        }
    }
    
    int main(int argc, const char * argv[]) {
        const char* filename = "/Users/ericwang/Desktop/WordsFrequency/WordsFrequency/word.txt";        //绝对文件路径
        char* buffer;
        long size;
        ifstream file(filename, ios::in|ios::binary|ios::ate);      //打开文件
        size = file.tellg();        //获取文件长度
        file.seekg(0, ios::beg);
        buffer = new char[size];
        file.read(buffer, size);        
        file.close();
        
        std::vector<Word*> vec;       
        
        
        const std::regex pattern("\w+");               //正则表达式匹配模式  
        std::string target = buffer;
        const std::sregex_token_iterator end;
        for (std::sregex_token_iterator i (target.begin(), target.end(), pattern); i != end; ++i) {             
            std::string s = *i;                 
            Word* p = new Word();      
            p->setWord(*i);                
            p->setNum();                       
            bool isExist = false;            
            for (auto p: vec) {                 //快速遍历vector 用来查看是否已经存在该单词 , auto 是自动获取vector里面存储的对象类型. p代表取出一个对象
                if (p && (p->getWord() == *i)) {            //如果取出的p不为空并且p的单词是当前匹配到的*i
                    isExist = true;                                       //把isExist设置为true代表已经存在该单词
                    p->setNum();                                       //把该单词的使用次数加1
                    break;                                                    //已经找到该单词结束快速遍历
                }
            }
            if (!isExist) {                             //如果快速遍历结束, isExist的值还是false, 代表这是个新找到的单词, 需要存到vector里面
                vec.push_back(p);            //push到vector的最后一个位置
            }
        }
        
        printAllObject(vec);    //输出结果
        delectAllObject(vec);       //删除所有创建的对象
        delete buffer;          //删除缓冲字符串
        return 0;
    }
    
    
    
    
    #include <stdio.h>
    #include "Word.h"
    
    Word::Word():
    word("")
    ,num(0)
    {
    }
    Word::~Word()
    {
        
    }
    void Word::setWord(std::string s)
    {
        word = s;
    }
    std::string Word::getWord()
    {
        return word;
    }
    void Word::setNum()
    {
        ++num;
    }
    uint16_t Word::getNum()
    {
        return num;
    }
    bool Word::operator > (const Word& pinfo) const
    {
        return num > pinfo.num;
    }
    
    bool Word::operator < (const Word& pinfo) const
    {
        return num < pinfo.num;
    }
    
    
    
    
    #ifndef WordsFrequency_Word_h
    #define WordsFrequency_Word_h
    
    #include <iostream>
    using namespace std;
    
    class Word {
    public:
        Word();
        ~Word();
        void setWord(std::string s);
        std::string getWord();
        void setNum();
        uint16_t getNum();
        bool operator > (const Word& pinfo) const;
        bool operator < (const Word& pinfo) const;
    private:
        std::string word;
        uint16_t num;
    };
    
    #endif
    

      

    还需要继续完成代码上传功能。

  • 相关阅读:
    第k小元素学习记录
    线段树学习笔记
    数论方面的知识积累
    javascript 例子
    数据绑定以及Container.DataItem的具体分析
    C#委托和事件
    C#中的特性(Attributes)(翻译)
    gridview和repeater中取得行的序号
    理解 Ajax 及其工作原理,构建网站的一种有效方法
    JS数组对象参考
  • 原文地址:https://www.cnblogs.com/gaogaoupc/p/5259824.html
Copyright © 2011-2022 走看看