조선공학도인데 C++ 프로그래밍을 하고있습니다. 일주일 매달리면 충분히 하겠지! 했는데 저에겐 무지 어려운 작업이였습니다. 내일 오전이 마감인데 지금도 하지 못해서 답답해서 여러방면으로 도움을 요청하고 있습니다. 전공이 조선공학이라 제 주변엔 요청할 사람이 없어서 이렇게 온라인으로 도움을 구합니다. 사실 이 글은 네이버 지식인에 방금 올렸습니다. 하지만 워낙 급하고, 여러사람의 도움을 받고자 이 글을 오유에도 올립니다.
==========================================================================================================
안녕하세요 프로그래밍을 할 일이 생겨서 일주일동안 끙끙거렸지만 공부가 부족하여 도저히 못 만들고 있는 상태입니다. 너무 답답해서 지식인에 문의하려고 합니다.
제가 짜고 싶은 프로그램은
선명 | 총톤수 | 충돌 상대의 크기 비율 | 속도(노트) | 상대속도 | 결과 |
경동프론티어호 | 1587 | 0.441713926 | 8 | 18 | 손상 |
해양호 | 701 | 2.263908702 | 10 | 18 | 손상 |
제이호 | 149 | 0.021677852 | 9 | 10 | 긁힘 |
대용호 | 3.23 | 46.13003096 | 1 | 10 | 손상 |
96신현호 | 149 | 0.019932886 | 8.8 | 13.8 | 손상 |
한진호 | 2.97 | 50.16835017 | 5 | 13.8 | 전복 |
제7해창호 | 147 | 0.020816327 | 8 | 16 | 긁힘 |
영해호 | 3.06 | 48.03921569 | 8 | 16 | 파손 |
제2청해호 | 1041 | 54.9932757 | 11 | 21 | 파손 |
현대중공업 1689호 | 57248 | 0.018184041 | 10 | 21 | 손상 |
광양가스호 | 3901 | 0.725711356 | 10.2 | 22.3 | 손상 |
제15주경호 | 2831 | 1.377958319 | 12.1 | 22.3 | 파손 |
제1삼진호 | 864 | 0.00849537 | 10.5 | 11.5 | 긁힘 |
하나호 | 7.34 | 117.7111717 | 1 | 11.5 | 파손 |
제11흥국호 | 2722 | 0.002421014 | 10.5 | 18.5 | 긁힘 |
제102영성호 | 6.59 | 413.0500759 | 8 | 18.5 | 파손 |
승해호 | 5914 | 0.686675685 | 10 | 16.8 | 파손 |
정양호 | 4061 | 1.456291554 | 6.8 | 16.8 | 파손 |
포스브레이버리호 | 110593 | 0.508938179 | 7 | 9 | 손상 |
모닝익스프레스 | 56285 | 1.964875189 | 2 | 9 | 파손 |
청해진고속훼리1호 | 3872 | 0.811983471 | 14 | 34 | 긁힘 |
주연호 | 3144 | 1.231552163 | 20 | 34 | 손상 |
제15흥국호 | 4481 | 0.262441419 | 13 | 25 | 손상 |
1동명호 | 1176 | 3.81037415 | 12 | 25 | 손상 |
시버드호 | 1470 | 0.006122449 | 10.5 | 19 | 손상 |
세일호 | 9 | 163.3333333 | 8.5 | 19 | 파손 |
이러한 txt데이터나 엑셀 데이터가 있습니다.
제가 만들고 싶은 것은 이러한 사고 데이터를 통해서 두 선박이 충돌했을 때 결과를 추측해보는 그러한 프로그램입니다.
예를 들면 제가 입력한 값에서 구한 충돌 상대의 크기와 상대속도가 0.006, 19라면 이 경우는 시버드호의 사고와 유사합니다. 그래서 이런경우에는 배가 '손상'이 되겠구나 하고 예측하는 것입니다.
제가 한 구상은
======================================================================
int main()
{
char name1[100];
char name2[200];
std::cout<<"1번 선박 이름: ";
std::cin>>name1;
double val12;
std::cout<<"1번 선박 총톤수: ";
std::cin>>val12;
double val13;
std::cout<<"충돌시 1번 선박의 속도: ";
std::cin>>val13;
std::cout<<"2번 선박 이름: ";
std::cin>>name2;
double val22;
std::cout<<"2번 선박 총톤수: ";
std::cin>>val22;
double val23;
std::cout<<"충돌시 2번 선박의 속도: ";
std::cin>>val23;
========================================================================
이런식으로 시작해서
1. 먼저 두 선박의 정보를 입력합니다.
2. 아래의 식을 이용해서 입력한 두 선박의 충돌상대의 크기와 상대속도를 구합니다.
충돌상대의 크기 = 상대방의 톤수/나의 톤수
상대속도 = 상대방의 속도 + 나의 속도
3. 이렇게 구해진 충돌상대의 크기와 상대속도를 이용해서 data에서 가장 유사한 경우를 아래와 같이 찾습니다.
입력한 선박의 충돌 상대의 크기 - data선박의 충돌상대의 크기 = A
입력한 선박의 상대속도 - data선박의 충돌상대의 크기 = B
A+B값이 가장 작은 경우 => 가장 비슷한 Case
4. 가장 비슷한 Case의 사고 결과를 결론이라고 예측합니다.
쉬운개념인것 같은데도 전공자가 아니라서 정말 많은 어려움을 겪고 있습니다. 지금 현재도 짜보려고 굉장히 노력하고 있습니다. 프로그래밍에 능숙하신분들 부디 도움을 요청합니다