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
[68284] c++ 클래스 질문있습니다.
ㄴㅂㄴㅂ [] 1370 읽음    2012-09-28 22:13
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 1362 2012/10/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.