diff --git a/README.md b/README.md index bfc0a59..52c9585 100644 --- a/README.md +++ b/README.md @@ -10,19 +10,19 @@ 2. github.com에서 리포를 클론한다. 1. 클론하는 방법은 해당 리포의 클론용 주소(github의 경우 https://github.com으로 시작하거나 git@github.com:으로 시작한다.)를 복사하거나 기억한다. 2. 리포가 저장될 디렉터리로 이동한다. - 3. (git clone 리포주소)를 셸에 입력한다. + 3. `git clone 리포주소`를 셸에 입력한다. * 원하는 디렉터리로 이동해서 클론하는 방법 외에 (git clone 리포주소 원하는디랙터리)를 입력하면 현재 작업 디렉터리에 관계없이 클론할 수 있다. 4. 원하는대로 클론이 잘 되었나 확인한다. 3. vscode의 경우 ^k ^o를 입력하여 클론된 디렉터리를 선택한다. * neovim의 경우 셸에서 클론된 디렉터리로 이동한다. 4. vscode의 경우 좌측의 패널에서 버전관리를 선택한다. 브랜치 모양이고, 초기 설정시에 위에서 3번째에 위치한다. 그 후 열리는 사이드바에서 리포 이름이 있는 곳 근처에 가면 그 줄에 여러 아이콘이 생긴다. 그 중 점 세 개를 눌러 더보기를 연다. 여기서 체크아웃을 선택하여 기존 브랜치나 새 브랜치로 체크아웃하여 커밋이 마스터에 바로 쓰이는 것을 방지한다. - * neovim의 경우 셸에서 git checkout 브랜치를 입력하여 체크아웃한다. 새 브랜치의 경우 체크아웃 전에 git branch 브랜치로 브랜치를 우선 만들어야 한다. + * neovim의 경우 셸에서 `git checkout 브랜치`를 입력하여 체크아웃한다. 새 브랜치의 경우 체크아웃 전에 `git branch 브랜치`로 브랜치를 우선 만들어야 한다. 5. 변경사항을 작성한다. 6. vscode의 경우 버전관리 사이드바에서 커밋 메세지를 입력한 후 ^[Enter]나 체크 버튼을 눌러 커밋한다. - * neovim의 경우 셸에서 git commit을 입력하여 커밋 메세지 입력창으로 전환하거나 git commit -m "메세지"를 입력하여 커밋한다. + * neovim의 경우 셸에서 `git commit`을 입력하여 커밋 메세지 입력창으로 전환하거나 `git commit -m "메세지"`를 입력하여 커밋한다. 7. vscode의 경우 점 세 개를 누른 후 푸시버튼을 눌러 푸시한다. - * neovim의 경우 셸에서 git push를 입력해 푸시한다. - * 새 브랜치의 경우 업스트림이 설정되지 않았다는 에러가 나오는데 git push -u origin 브랜치로 푸시하면 된다. + * neovim의 경우 셸에서 `git push`를 입력해 푸시한다. + * 새 브랜치의 경우 업스트림이 설정되지 않았다는 에러가 나오는데 `git push -u origin 브랜치`로 푸시하면 된다. 8. github 홈페이지에서 해당 리포에 들어간다. 9. 풀 리퀘스트에 들어가서 풀 리퀘스트를 연다. 10. 방금 연 풀 리퀘스트에 들어가면 오른쪽에 리뷰어를 추가하는 부분이 있다. 리뷰어를 추가하고 기다리자. @@ -33,6 +33,16 @@ * 이 코드가 마음에 안든다: 코멘트 작성 후 수정 요청을 제출한다. * 아몰랑 어찌되건 내 알바냐: 그럴거면 왜 시작한건데? 승인되면 아무나 머지하면 된다. 끝! +### 라이브러리 추가하는 방법 +#### 우분투 기준이니 주의 +1. 깃 리포 내부가 아닌 다른 곳에 깃허브에서 xlnt를 찾아 클론한다. +2. cd를 통해 내부로 들어간다. +3. `cmake .`을 한다. +4. `make`를 하여 기나긴 시간동안 빌드를 하는 것을 기다린다. +5. `sudo make install`을 하여 시스템에 라이브러리를 설치한다. +6. 끝! +### 빌드하는 방법 +`g++ -std=c++14(혹은 c++17) source.cpp -Iclnt/include -lxlnt -o binfile.out` ## 규칙 ### 커밋 규칙 1. 각자 수정사항이 있으면 브랜치를 만들고 수정한 후에 마스터에 풀 리퀘스트 할 것. diff --git a/data.xlsx b/data.xlsx new file mode 100644 index 0000000..aed9f8b Binary files /dev/null and b/data.xlsx differ diff --git a/githubtest.cpp b/githubtest.cpp index 25fa0a9..763e147 100644 --- a/githubtest.cpp +++ b/githubtest.cpp @@ -1,4 +1,5 @@ #include +#include #include #include using namespace std; @@ -6,52 +7,73 @@ using namespace std; class lottoData_t { private: - vector> rawData; -}; - -int main(void) -{ - int a; - while(1) - { - int raw[1000][7];//rww data 임시코드. 이것을 포함한 모든 변수는class 정해지면 삭제 또는 수정 예정 - cout << "모드 입력 : "; - cin >> a; - int temp1[45];//(보너스 포함)숫자가 나온 횟수 - vector >temp3;//편차 sort - - switch(a) + vector> rawData;//rawData[n][6] : 보너스번호, rawData[n][0] ~ rawData[n][5] : 당첨번호 +public: + auto normal_predict(int startRange, int endRange)//범위에 따라 단순 예상 { - case 1: + //기범이 파이팅 + vector >temp3;//편차 sort for(int i=0;i<45;i++) { - temp1[i]=std::count(*raw,*(raw+700),i+1); - printf("%d",temp1[i]); + // temp1[i]=std::count(*raw,*(raw+700),i+1); + // printf("%d",temp1[i]); } - for(int i=0;i<45;i++) - temp3.push_back(pair(temp1[i],i+1)); - + temp3.push_back(make_pair(temp1[i],i+1)); sort(temp3.begin(),temp3.end()); - - cout << "추천 로또 번호는 "; - for(int i=44;i>=38;i--) - cout << temp3[i].second < retval; + for (auto i = 0; i < 6; i++) + retval.push_back(temp3[i].second); + sort(retval.begin(), retval.end()); + return retval; + } + auto pattern_predict(int startRange, int endRange)//패턴인식 예상 + { + //성우 파이팅 + } + lottoData_t(string path = "./data.xlsx") + { + xlnt::workbook wb; + wb.load(path); + auto ws = wb.active_sheet(); + for (auto row : ws.rows()) + { + vector temp; + for (auto cell : row) + temp.push_back(stoi(cell.to_string())); + rawData.push_back(temp); + } + } +}; +int main(void) +{ + int a; + while(1) + { + lottoData_t lottoData; + cout << "모드 입력 : "; + cin >> a; + vectortemp; + switch(a) + { + case 1: + temp = lottoData.normal_predict(1, 911); + cout << "추천 로또 번호는 "; + for(auto i : temp) + cout << i << " "; + cout << "입니다." << endl; + break; + case 2: + break; + case 3: + break; + case 4: + break; + default: + cout << "잘못된 명령어입니다." << endl; + break; + } } - } } diff --git a/tags b/tags new file mode 100644 index 0000000..a16958a --- /dev/null +++ b/tags @@ -0,0 +1,13 @@ +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ +!_TAG_PROGRAM_NAME Exuberant Ctags // +!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ +!_TAG_PROGRAM_VERSION 5.9~svn20110310 // +lottoData_t githubtest.cpp /^ lottoData_t()$/;" f class:lottoData_t +lottoData_t githubtest.cpp /^ lottoData_t(string path)$/;" f class:lottoData_t +lottoData_t githubtest.cpp /^class lottoData_t$/;" c file: +main githubtest.cpp /^int main(void)$/;" f +normal_predict githubtest.cpp /^ auto normal_predict(int startRange, int endRange)\/\/범위에 따라 단순 예상$/;" f class:lottoData_t +pattern_predict githubtest.cpp /^ auto pattern_predict(int startRange, int endRange)\/\/패턴인식 예상$/;" f class:lottoData_t +rawData githubtest.cpp /^ vector> rawData;$/;" m class:lottoData_t file: