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
[68848] Re:missing ')' before '!=' 좀 해결부탁 드립니다...
송신영 [palindrome] 1385 읽음    2012-12-20 13:41
코드의  {} 가 좀 이상합니다.
그리고 while(evaluation!=NULL)  이 부분에서
evaluation 는 class 이름이지 인스턴스가 아닙니다.

evaluation * ptr = xxxx;
while(ptr  != NULL)

이런식으로 수정해야할듯...

김동석 님이 쓰신 글 :
: #include "stdafx.h"
: #include "stdio.h"                //text파일로 출력을 위해서는 헤더파일에 stdio.h파일이 있어야한다.
:
: struct score                    //score라는 구조체를 만들었습니다.
: {
:     char* name[100];
:     char* sub[5];                //sub라는 변수의 내용은 char형태이고 이 포인터는 다른 함수에서 내용을 참조할 수 있습니다. 배열크기는 과목이 5개이므로 5를 주었습니다.
:     int data[5];                //data는 점수이고 정수이므로 int형태이다. 이 역시 과목 5개 대한 점수를 입력하기 위해 크기를 5로 주었습니다.
:     char* grade[5];                //grade는 학점이고 변수내용은 char형태이입니다. 이 역시 포인터를 사용해 다른함수에서 내용을 참조할 수 있습니다. 이것을 설정한 이유는 나중에 텍스트파일 출력에 사용하기 위해서 입니다.
: };
:
: class evaluation                //evaluation 이라는 class를 만들었습니다. class는 struct의 확장적 의미입니다.
: {
:     public:                        //타입은 public타입을 사용하였으며, public경우 모든 곳에서 접근할 수 있습니다.
:
:     struct score sc;            //class안에 위에 설정한 score라는 struct를 설정하였습니다.
:     void input();                //멤버함수를 쓰기위해 void타입으로 나중에 입력할 input과 학점을 넣을 project도 선언하였습니다.
:     void project(int i);        //이때, input에서는 아직 입력받은게 없으므로 ()가 비었지만 project는 input에서 입력받은 점수를 가지고 학점을 매기므로 int i를 넣었습니다.
: };
:
: void evaluation::input()        //evaluation class의 input라는 멤버함수를 만들었습니다.
: {
:     int i, j, temp;                        //이 경우는 선택정렬입니다. 인터넷을 통해 소스를 다운받았습니다.
:     char* tempa;   
:
:     sc.sub[0] = "C";            //이때, 구조체서 만든 과목sub의 배열의 값을 각각 지정해주었습니다.
:     sc.sub[1] = "CPP";
:     sc.sub[2] = "DB";
:     sc.sub[3] = "CAD";
:     sc.sub[4] = "CATIA";
:
:     printf("이름을 입력해 주세요.");
:     scanf("%s", &sc.name);
:
:     printf("\n");
:     for(i=0; i<5; i++)
:     {
:         printf("%s의 점수를 입력하시오. ", sc.sub[i]);
:         scanf("%d", &sc.data[i]);            //이때 각 점수는 그 배열에 맞게 놓여지도록 설정하였습니다.
:     }
:
:        
:     printf("[\n%s의 성적\n]", sc.name);
:     //이때 점수에 따라 높은 것부터 낮은 것으로 정렬시키게 만드는 것이고
:     for(i=0; i<4; i++)                    //거기에 따라 프린트 되어지는 문자도 같이 정렬되게 만들었습니다.
:     {                                    //변수를 두개 지정하고 정수에 관한 temp도 지정해주었습니다, 그리고 점수에 따른 문자도 이동해야하므로 tempa도 사용해주었습니다.
:         for(j=i+1; j<5; j++)            //선택정렬을 sc.sub[0]의 점수를 기준으로 했을시 sc.sub[1]의 점수가 sc.sub[0]보다 높으면 높은게 앞쪽으로 오도록 하고
:         {                                //만약 점수가 같거가 sc.sub[0]가 더 클시에는 그냥 그대로 위치하도록 해놓는 것을 말합니다.
:             if(sc.data[i]<sc.data[j])
:             {
:                 temp=sc.data[i];        //점수에 맞게 이동하고 난뒤에, 문자도 역시 이동해야하므로 temp와 tempa를 이용하여 만들었습니다.
:                 sc.data[i]=sc.data[j];
:                 sc.data[j]=temp;
:
:                 tempa=sc.sub[i];        //그리고 점수 입력을 5번하므로 for문이 4번 반복되도록 설정했습니다.
:                 sc.sub[i]=sc.sub[j];
:                 sc.sub[j]=tempa;
:             }
:         }
:     }
:
: }
:
: void evaluation::project(int i)            //evaluation class의 input라는 멤버함수를 만들었습니다. int i는 scanf 받은 점수를 가지고 학점을 매기기 위해 넣었습니다.
: {
:     int score;
:
:     score = sc.data[i];                        //이때 C라는 것을 구조체의 점수배열로 만들었습니다.
:
:
:     if(score >= 90 && score <= 100)                //그리고 if와 else if를 사용해 점수때별 학점을 매기게 만들었습니다.
:     {
:         sc.grade[i] = "A";                //이때 아까 위에 학점 grade의 배열을 5칸 만들어서 점수 5번 입력시 학점도 저장할 수 있도록 배열로 받았습니다.
:     }
:     else if(score >= 80 && score < 90)
:     {
:         sc.grade[i] = "B";
:     }
:     else if(score >= 70 && score < 80)
:     {
:         sc.grade[i] = "C";
:     }
:     else if(score >= 60 && score < 70)
:     {
:         sc.grade[i] = "D";
:     }
:     else if(score < 60)
:     {
:         sc.grade[i] = "F";
:     }
:
:     printf("%s\t%d\t<%s>\n", sc.sub[i], score, sc.grade[i]);        //그리고 프린트 f서 먼저 과목명과 점수, 학점이 뜨도록 printf를 설정하였으며 이때 줄간격을 맞추기 위해 tab기호인 \t를 썼습니다.
: }
:
:
: int main(int argc, char* argv[])    //마지막으로 메인문에다가 이때까지 만든 class와 멤버함수를 인식시켜야합니다.
: {
:     int i;
:
: ret:
:     printf("원하시는 모드를 선택해 주십시오.\n1.성적 입력 모드\n2.성적 조회 모드\n3.프로그램 종료\n");
:     scanf("%d", &i);
:     switch(i)
:     {
:         case(1):
:             goto insert;
:         case(2):
:             goto search;
:         case(3):
:             goto exit;
:         default:
:             printf("잘못 입력하셨습니다 다시 입력해 주십시오.\n");
:             goto ret;
:     }
:
: insert:
:
:     evaluation ev;                    //evaluation라는 class를 넣었습니다.
:     ev.input();                        //그리고 class의 멤버함수인 input을 넣었습니다.
:     printf("과목명\t점수\t학점\n");
:     for(
:         i=0; i<5; i++)            //project 멤버함수도 넣는데 이경우 점수를 5번입력하므로 그 입력한 값에 대한 각각의 학점이 다 나와야 하므로 for문을 이용하여 5번 반복시켰습니다.
:     {
:         ev.project(i);
:     }
:    
:
: search:
:
:
:    
:     int* name;
:     printf("조회하려는 학생의 이름을 입력하시오.(처음으로 되돌아가려면 0을 입력) : ");
:     scanf("%s", name);
:
:     if(name[0]=='0')
:         goto ret;
:    
:         while(evaluation!=NULL)
:         {
:         if(strcmp(evaluation->sub,name) == 0)
:         {
:             printf("%s의 성적\n", evaluation->grade);
:             printf("과목명  점수  학점\n");
:             for(i=0; i<5; i++)
:             {
:                 printf("%s %d %c\n", evaluation->sub[i], evaluation->data[i], evaluation->grade[i]);
:             }
:         }
:         evaluation = evaluation->link;
:
:    
:    
:     char fname[100] = "grade.txt";
:    
:     FILE *f;
:     int cnt = 0;
:
:     while (!feof(stdin))
:     {
:         fprintf(f,"%d",++cnt);
:         fputs(name,f);
:         fgets(name,100,stdin);
:     }
:     fclose(f);
:    
:    
:    
:
:     }
:
:
:
:
:    
:
: exit:
:     return 0;
: }
:
<
<
<
<
<
<


+ -

관련 글 리스트
68847 missing ')' before '!=' 좀 해결부탁 드립니다... 김동석 1480 2012/12/20
68848     Re:missing ')' before '!=' 좀 해결부탁 드립니다... 송신영 1385 2012/12/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.