C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[68289] Re:c++ 클래스 질문있습니다.
Nibble [gameover] 1361 읽음    2012-10-01 14:21
숙제는 self. 질문은 상세하고 부분적으로. 학습이 과다하게 필요할땐 학원이나 다른 강좌 사이트를 참조 바랍니다.

ㄴㅂㄴㅂ 님이 쓰신 글 :
: 1. 사원에 관한 기본 자료는 다음과 같으며, employee.dat 파일에 저장되어 있다.
:   id , name , ssn , hire_date

: 2. 사원에 대한 봉급은 다음의 레코드 구조를 갖는 급여대장(payroll.2012.09) 파일에 저장한다.
:  id , salary_class(호봉) , pay(봉급)

: 3. 사원의 호봉은 아래의 산식에 따라 산정하고, 봉급은 호봉별로 급급표에 의해 계산하며, 지급 기준일은 25일이다.

:   1) 호봉 계산 : 입사와 동시에 1호봉을 부여하고, 1년에 1호봉씩 올라간다.
:       예 ) 입사일  : 2001 .3 . 15 , 급여계산일: 2007 . 12. 25인 경우에 호봉은 7호봉이 된다.
:   2) 봉급표 (단위: 만원)
:  호봉  기본급
:     1      120
:     2      130
:     3      140
:     4      150
:     5      160
:     6      170
:     7      180
:     8      190
:     9      200
:     10     210
:     11     220
:     12     230
:     13     240
:     14    250
:     15     260
:     16    270
:     17    280
:     18    290
:     19    300
:   20이상 300

: 4. 자료 출력 형식은 다음과 같다.

:                                      xxxx년 xx월 급여대장
: 사번       성명       주민번호     입사일       호봉      봉급       비고
:  xxx         xxx           xxxx         x
<
<
xxx.xx.xx      xx       xxx,xxx


: [제한 조건]
: 1. 자료 입출력을 담당하는 클래스와 봉급 계산을 담당하는 클래스는 별도로 독립시킬 것
: 2. 그 외의 클래스는 필요한 만큼 만들 것.

: [참고 사항]
: 1. main() 함수는 다음의 골격을 참고하라.

: int main(void)
: {
:     //get year & month
:    // read data for payroll from employee.dat
:    // compute payment
:     // save payroll
:
: 이게 문제입니다.
: =============================================================================================================
:
: 지금까지 코딩한 자료입니다.
: 그런데 class step과 class list에 있는 변수들을 서로 참조를 하려고 하는데 어떻게 해야하나요??
: 전방선언을 하면된다는데 어떻게 해야되는지 잘 모르겠습니다.....
:
:
: #include <iostream>
: #include <fstream>
: #include <string>
:
: using namespace std;
:
: int i;                                             // employee.dat파일의 라인수 저장하기위한 전역변수 //
:
: void head()
: {
:     cout<<"                           2012년9월 급여대장        "<<endl;
:     cout<<"사번"<<" 성명"<<"          주민번호   "<<"    입사일  "<<"    호봉   "<<"  봉급    "<<"    비고    "<<endl;
: }
: //id, 이름, 주민번호, 입사일, 호봉, 급여를 선언하기 위한 구조체//
: typedef struct information
: {
:     int id;                     //id
:     string name;                //이름
:     string ssn;                 //주민번호
:     string hire_date;           //입사일
:     int step;                   //호봉   
:     int pay[100];               //봉급
:     int year;
:     int month;
:     int day;
: }info;
:
:
: class step;                         //step 클래스를 전방선언
:
: // 파일 입출력 클래스//
: class list                          //파일 출력
: {
: private:
:     info info[100];
:     step getstep;
:     int i;
:     int num;
:     int carrer;
:     step don;
:
: public:
:     int getyear[100];                                       //입사년도
:     int getmonth[100];                                      //입사월
:     int getday[100];                                        //입사일
:
:     void open();
:
:     void save();
:    
:     friend class step;
: };
:
:
: //봉급 계산을 위한 클래스//
: class step                                     //봉급계산
: {
: private:
:     int pay[100];
:     int carrer;
:     int n;
:     int grade_year[20];
:     int grade_month[20];
:     int grade_day[20];
:     list people;
:     info info;
:
:
: public:
:     int computestep()
:     {
:         // 입사년도별 호봉을 계산하기 위한 for문//
:         for(n=0 ; n20) : carrer=19; : : // step.salaryclass(carrer); //봉급 계산 : } : return carrer; : } : void salaryclass(int carrer) : { : int i=0; : int money=120; : int paycheck; : for(i=0 ; i<19 ; i++) //호봉별 월급 계산 : { : pay[i]=money; : money+=10; : } : for(i=19 ; i<50 ; i++) : pay[i]=300; : if(pay[carrer]<1) : { : cout<<"잘못된 입력"<>info[num].id >> info[num].name >> info[num].ssn >> info[num].hire_date; : const char* p2 = info[num].hire_date.c_str(); : sscanf(p2,"%d.%d.%d", &getyear[num],&getmonth[num],&getday[num]); // string함수인 hire_date를 int형으로 변환시킨 후 년도, 월, 일로 나눔 : : num++; : if(fileopen.eof()) : break; : } : : for(i=0 ; i>info.year; : cout<>info.month; : : head(); //자료출력 형식 : : list people; : step step; : : people.open(); //read data for payroll from employee.dat : : : : : : people.save(); : : return 0; : }

+ -

관련 글 리스트
68284 c++ 클래스 질문있습니다. ㄴㅂㄴㅂ 1370 2012/09/28
68289     Re:c++ 클래스 질문있습니다. Nibble 1361 2012/10/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.