네 번째 쌍의 프로그래밍 작업

프로젝트 주소 창고 주소
팀 파트너 결과 [첸 YUHONG]
PSP2.1 개인 소프트웨어 프로세스의 단계 예상 시간이 소요 (분) 실제 시간이 많이 소요 (분)
계획 계획 (20) (40)
견적 이 작업을 필요로 얼마나 많은 시간 추정 480 600
개발 개발 (40) (45)
분석 분석 (새로운 기술을 학습 포함) 필요 (20) (15)
디자인 사양 설계 문서를 생성 (60) (60)
설계 검토 설계 검토 (동료는 설계 문서를 검토) (20) (30)
코딩 고안된 표준 코드 사양 (현재 개발을위한 적절한 규범의 개발) (20) (15)
디자인 특정 디자인 (80) (100)
코딩 특정 코딩 (240) (300)
코드 검토 코드 검토 (120) (120)
테스트 테스트 (자체 테스트, 수정을 제출, 코드를 수정) (240) (200)
보고 보고서 (30) (30)
시험 보고서 시험 보고서 (60) (60)
크기 측정 컴퓨팅 워크로드 (30) (30)
사후 및 프로세스 개선 계획 나중에 요약 및 프로세스 개선 계획 (60) (50)
합계 1,040 1,095

문제 해결 아이디어

아이디어 설명 :
1. 구획 제목, 작은 작업으로 나누어 아래와 같이

는 C ++ 파일 작업이 배운하지 않았기 때문에 대략 파일에서 기본 동작을 배우고, 다음, 온라인 체크인, 그래서 교과서를 보면, (2) 튜토리얼 파일 작업.
3. 코드를 정렬에 관련되어, 나는 데이터 구조의 측면에 대한 지식의 종류에 설정뿐만 아니라 어떻게 코드를 작성 할 수 있습니다.

설계 프로세스

1. 실질적 프로그래밍 방법

2 부씩하고 함수, 클래스 사이의 관계를 분석하고
우리가 각각의 기능에 대략 협상이 너무 깨끗하고 깔끔한이 더 유도하는 기능으로 설계, 디버깅 프로세스는 오류를 찾을 상대적으로 쉽습니다. 그렇다면 우리는 클래스 통계적 특성의 가장 기본적인 특징을 분할 한 다음 클래스로 단어를 분할, 마지막 행의 개수 통계 카테고리로 나누어 구분 그린다. 각 함수는 함수로 설계되어 구현 될 필요가 그렇게 쉽게 기능을 상상할 수있는 클래스로 나누어 져의 우리가 디자인에 넣어 때문에 클래스와 클래스 사이의 가장 중요한 기능은 함수에 포함되어 있습니다.

코드 사양

이 처음이기 때문에 우리 모두는 C ++와 프로젝트를 완료, 그래서 우리는 온라인 코드 사양 C ++를 참조 여부를 알고,이에 대해 알고

코드 검토

검토 모듈 이름
coutword_1

1. 가장 큰 문제

단어 제한 조건은 "숫자로 시작하는"의 생략은 단어 그 상태가 아닌 경우 1. 발견 동반자는 설계 과정에서 누락 된 기능에 출연

2. 두 번째 문제는 I 인해 무한 루프로 표현 부적절한 로직에 사용하는 루프 구조의 단어 수를 계산한다는 것이다.
개정 전 :

void word_count2::read_str()
{
    char ch;//收集每一个文件中字符
    string str_1;//记录每一个规定的字符
    long pos;//记录f_in的位置
    int fir = 0;//判断第一个字符是否为字母
    f_in.clear();
    f_in.seekg(0, ios::beg);

    while (!f_in.eof())
    {
                int read=0;
        f_in.get(ch);
        
                
    
                read++;
                int k;
                f_in.seekg(pos);
                //f_in.get(ch);
                
                for ( k = 1; k < 4; k++)
                    {
                        read++;
                        f_in.get(ch);
                        if ( ch<'A' || (ch > 'Z'&& ch < 'a') || ch>'z' ) break;
                    }
                if (k == 4)
                {
                    f_in.get(ch);
                    while (('a' <= ch && 'z' >= ch) || ('A' <= ch && 'Z' >= ch)|| ( '0' <= ch && ch <= '9'))
                    {
                        f_in.get(ch);
                        read++;
                    }
                    pos = f_in.tellg();
                    f_in.seekg(pos - read);
                    getline(f_in, str_1, ch);
                    store_str(str_1);
                    f_in.seekg(pos);

                }
        

            }
        
    }
}

수정 :

void word_count2::read_str()
{
    char ch;//收集每一个文件中字符
    string str_1;//记录每一个规定的字符
    long pos;//记录f_in的位置
    int fir = 0;//判断第一个字符是否为字母
    f_in.clear();
    f_in.seekg(0, ios::beg);

    while (!f_in.eof())
    {
        f_in.get(ch);
        fir++;
        if (('a' <= ch && 'z' >= ch) || ('A' <= ch && 'Z' >= ch))
        {
            
            int read=1;//记录规定字符创的长度。
                        //-------------------------------------------------->增加代码
            if (fir == 1)
            {
                pos = f_in.tellg();
                
            }
            else
            {

                pos = f_in.tellg();
                f_in.seekg(pos-1);//得到上一个字符
                f_in.get(ch);
            }
            
            if (('0' <= ch && ch <= '9') || ch== '" ')
            {
                f_in.seekg(pos);
                f_in.get(ch);
                while (('a' <= ch && 'z' >= ch) || ('A' <= ch && 'Z' >= ch) || ('0' <= ch && ch <= '9'))
                {
                    f_in.get(ch);
                }
            }//-------------------------------------------------------------------------------------------------------------------
            else
            {
                read++;
                int k;
                f_in.seekg(pos);
                //f_in.get(ch);
                
                for ( k = 1; k < 4; k++)
                    {
                        read++;
                        f_in.get(ch);
                        if ( ch<'A' || (ch > 'Z'&& ch < 'a') || ch>'z' ) break;
                    }
                if (k == 4)
                {
                    f_in.get(ch);
                    while (('a' <= ch && 'z' >= ch) || ('A' <= ch && 'Z' >= ch)|| ( '0' <= ch && ch <= '9'))
                    {
                        f_in.get(ch);
                        read++;
                    }
                    pos = f_in.tellg();
                    f_in.seekg(pos - read);
                    getline(f_in, str_1, ch);
                    store_str(str_1);
                    f_in.seekg(pos);

                }
        }

            }
        
    }
}

2. 검토 심리

우리의 필수 주석, 또는 코드 검토의 중요한 부분에 대한 코드를 작성할 때 큰 영향을 발생합니다. 심지어 코드의 개념을 다시 생각합니다.

성능 향상

성능 향상의 시간 동안
약 120 개
개선 아이디어

성능 분석 차트

유닛 테스트

결과 팀 사진

추천

출처www.cnblogs.com/crystalalamama/p/11631804.html