c++ 함수 / 전역 변수 / 지역 변수 / 매개 변수

c++ 함수 #include<iostream> #include<stdio.h> int main(){      int itemCnt = 0;      int money = 100;      itemCnt++;      money -= 10;      std::cout << "아이템을 구매했습니다" << std::endl;      std::cout << "아이템 개수"<<itemCnt << std::endl;      std::cout << "잔액" << money << std::endl; } 이렇게 메인 함수에서 쓸수있지만 아이템 수가 많아지고 종류가 많아지면 많아질수록 메인 함수에서는 복잡해서 코드 보기가 용이하지 않을테다 그래서 뭐가 필요하냐? 또 다른 함수가 필요하다 '아이템만 사는 함수'가 필요하다 그래서 어떻게 해주냐면 #include <iostream> #include<stdio.h> void buyItem(); int main(){ } void buyItem(){ } main 함수는 그냥 buyItem이라는 함수를 불러오기만 하고 실행을 시키면 되는것이다 #include <iostream> #include<stdio.h> void buyItem(); int main(){      int itemCnt = 0;      int money = 100; } void buyItem(){      itemCnt++;      money -= 20;      std::cout << "아이템을 구매했습니다" <<std::endl;      std::cout << "아이템 개수 : &q

C++ 마스터마인드 mm1

#include <iostream> #include <cstdlib> #include <ctime> #include <vector> void set_random_seed(); int randn(int n); struct mm_code_maker{     void init(int i_length, int i_num){         length = i_length;         num = i_num;     }         void generate_sequence(){         for(int i = 0; i < length; i++){             sequence.push_back(randn(num));         }     } //플레이어 A는 랜덤으로 n개의 코드를 난수를 섞어내서 플레이어 B한테 맞추라고 한다.         void give_feedback(const std::vector<int>& attempt, int& black_hits, int& white_hits){       }         std::vector<int> sequence;         int length;     int num; }; struct mm_solver{         void init(int i_length, int i_num){         length = i_length;         num = i_num;     }     void create_attempt(std::vector<int>& attempt){         for(int i = 0; i < length; i++){             attempt.push_back(randn(num));         }     } 이 멤버 함수는 그냥 랜덤으로 계속 플레이어A가 생각한 코

c++ 구조체/struct/member data(멤버 데이타)/구조체에 함수 넣기

c++ 구조체 구조체는 객체를 표현하기 위해 하나 이상의 변수가 필요한 프로그래밍을 하기 위해 ㅍ ㅣㄹ요한것이다. 나 를 표현하기 위해서, 나에 대한것, 성별, 키, 몸무게 , 럭키 넘버등등 std::string myName; int myGender int myHeight int myWeight int myLucky number; 이것들은 그룹화 되지 않은 독립 변수들이다. 이러면 진짜 귀찮아진다. 집계 데이터 유형은 여러 개별 변수를 함께 그룹화 하는 데이터 유형이다 가장 단순한 집계 데이터 유형 중 하나는 구조체다. 구조체는 하나 이상의 독립된 변수를 그룹 지어서 새료운 자료로 정의하는것이다. #include <iostream> #include <cmath> struct Point{      double x;      double y; }; point 라는 구조체는 2개의 변수를 포함한다. ( double x , double y) 이 구조체 안에 들어있는 x 와 y 변수를 멤버(member) 또는 필드(field) 라고 한다 이 구조체는 단지 선언에 불과하다. 지금은 어떤 메모리도 할당되지 않았고 그냥 변수들을 묶은 그룹뿐이다. 그래서 이 Point 라는 구조체를 사용할려면 Point 타입의 변수를 선언하면 된다. Point korea; //구조체 Point 타입의 변수를 정의한다.... 0> 해당 변수에 대한 메모리가 할당된다. #include<iostream> #include<cmath> Point korea;// creating Point struct for Korea korea.x = 100;; korea.y=200; 또는 Point korea = {100, 200}; 이렇게 초기화 해줘도 됌 수동으로 초기화를 해야함. 그런데 주소를 치면 10000 10004 로 된다 메모리상에서는

c++ 랜덤 숫자 생성하기 / 컴퓨터 난수 시드 설정

랜덤 넘버를 설정 할려면 cstdlib 이라는 라이버리를 선언하고 rand()이라는 함수를 선언하면 된다. #include <iostream> #include <cstdlib> int main(){ for(int i=0; i<5;i++){ std::cout << rand() << std::endl; } return 0; } 하지만 계속 실행할때마다 같은 값이 나오게 된다. 난수는 생성했지만 그 난수가 실행할때마다 바뀌어야 하는데 계속 똑같은 값이 나오다니.. 그래서 rand함수는 seed라는것을 설정을 해줘야한다 근데 seed가 또 뭐냐? 생각 외로 컴퓨터는 난수를 간단히 만들 수 없다. 컴퓨터는 기본적으로 정해진 입력에 따라 정해진 값을 낼 뿐이다. 컴퓨터는 무의시기이 없기 때문이기땜에, 랜덤한 값을 초래 할 수가 없다. 난수표를 쓰는데 난수표가 정해진 이상 결국 같은 순서로 같은 숫자가 나오게 된다. 이를 해결하기 위해 난수표를 여러개 만들어 놓고 매번 다른 난수표를 읽도록 만드는 것이다. 이 난수표를 선택하는 것을 시드라고 표현한다. 그런데 시드값이 똑같으면 선택되는 난수표도 똑같기 때문에 시드값도 바뀌어야한다. 그럼 딜레마다 난수를 만들려면 난수가 필요하다니!  그래서 보통 시드값으로 현재 시간을 넣어서 해결한다. (ms) 기준으로 그래서 시드를 기반으로 한 랜덤 함수는 왕ㄴ전한 무작위라고 보기가 힘들다. 특정 패턴의 경우 영원히 안나올수도 있다. 그래서 rand 함수는 시드라는 값에 의해 생성되므로 시드 값을 설정을 해주지 않아 같은 시드값으로 실행외 되어 위와같은 현상이 나타난다 이를 해결하기 위해서 srand 함수를 이용하여 시드값을 설정해주어야한다. srand는 호출할때 전달받는 인자를 기반으로 해

(이클립스+오라클) 게시판 만드는법

이미지
먼저 sql에서 테이블을 만든다. create table board( board_num number, board_name varchar2(20), board_pass varchar2(15), board_subject varchar2(50), board_content varchar2(2000), board_file varchar2(50), --중요 -- board_re_ref number, board_re_lev number, board_re_seq number, board_readcount number, board_date date, primary key(board_num) ); 그리고 이클립스에 들어가서 dynamic project을 만들어준다. 그리고 대충 이렇게 만들어 줘야한다. WEB-INF>lib>cos.jar이라는 파일을 꼭 넣어줘야한다. context.xml  <Context>       <Resource name="jdbc/OracleDB"           auth="Container"          type="javax.sql.DataSource"           username="mushroom"           password="mushroom"          driverClassName="oracle.jdbc.driver.OracleDriver"          factory="org.apache.tomcat.dbcp. dbcp2 .BasicDataSourceFactory"          url="jdbc:oracle:thin:@localhost:1521:xe"          maxActive="500"         

(자바)

이미지
web-inf - 외부에서 접근할수 없는 파일들 meta-inf - metadata information 메타 데이타가 들어있는 정보들. 이 두개의 주소들을 인터넷 브라우저에서 치면,  http://localhost/test/document/NewFile.html http://127.0.0.1/test/document/NewFile.html 이렇게 나온다. 외부에서 이 파일을 접속할수있다. 그럼 jsp파일을 인터넷 브라우저에서 접근할수있는가? http://127.0.0.1/test/WEB-INF/NewFile.jsp 아니 접근할 수 없다. 오직 내부 eclipse에서만 접근할수있다. - 자 이제 부터 servlet을 쓸것이다. package->class 가 아니라 package -> servlet 을만든다.  servlet을 좋은 이유는 모든 골격이 다 만들어진다! 우리가 개 노가다 하면서 import 하는거 필요없다 이젠! 이제 웹서블릿이라는 어노테이션 경로를 알아볼 차례다. webservlet annotation Annotation used to declare a servlet @webservlet("/?")  ? 에 들어가는 건 url 주소다 원래 파일이름은 NowServlet 인데, url 주소에는 ? 이 들어가도 접근 가능하다. -

오라클과 자바 연동하기전에 셋팅하는법

이미지
먼저 셋팅 하자 jstl을 다운받자. 1. DBMS driver을 셋팅하자.       2개의 셋팅 방법이 있는데, 모든 프로젝트에서 jstl을 쓸수있게 하는건, 여기에다가 넣으면된다. 어떤 프로젝트 1개만 jstl을 쓰고싶을땐 web content>web-inf>lib>jstl-1.2jar을 넣어주면 된다. jre폴더나 jdk폴더에는 넣지 말자 500에러가 떴다...ㅠ 왜그런지 모르겠지만... 여기에 넣으면 안된당... 2. DB에 연결 정보를얻는다 ->> DBA한테 물어본다      -url       -id (계정 id)      -pw (계정 pw) DB에 대한 url 을 얻는방법 -> protocol, location of computer, port number, pathway 이 필요하다 jdbc:oracle:thin@IPaddress :portnumber:orcl:        오라클 서버에 접속 할려고 함~        이제 연결 할려고함~ ipaddress can be obtained by using cmd -> nslookup(도메인주소) 3. java DAO 클라스 만들기 4. 오라클 드라이버 로딩하기-> Class.forName(); 5.java에 CRUD 메서드를 사용하기  2~5 은 이미 자바연동하기 01~05에 코드 올려놨다