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
[71104] Re:C++ 함수 프로토타입 수정 도움 좀 부탁드려요ㅠㅠ
아루스 [tinydew4] 2982 읽음    2014-03-26 11:09
본인이 작성하신 코드가 맞다면 작성된 코드의 내용으로 보아 수정내용을 다 수행할 수 있을 것으로 보입니다.
"과제를 해주세요" 가 아닌 "이 부분이 모르겠어요" 정도의 질문을 해주셔야 할 듯 합니다.
그런데 아무리 보아도 로직은 다 만들어진 상태에서 코드의 위치만 바꾸는 정도의 작업이 어려운 이유를 모르겠습니다.



전성훈 님이 쓰신 글 :
: 안녕하세요. C++ 코드 함수 프로토타입 변형에 관련되어 애로가 많아 질문드립니다.
:
: 현재 문제에서 주어진 요구사항을 출력시키는데는 전혀 문제가 없지만
:
: 문제가 제시한 상세 사항(함수)을 충족시키려하는데 어려움이 많아 도움을 구해보고 싶습니다.
:
: 요구 사항은 다 제대로 작동하기에 함수 프로토타입 요구 조건만 충족시켜서 첨삭해주실 고수 분 찾아봐요ㅜㅜ...
:
: =========================================================================================
:
: 1. 개인 학생의 교과목 평균 평점을 구할 때 사용하는 코드를 묶어 CalcAveGPA()라는 함수를 구현
:
: 함수의 프로토타입 : float CalcAveGPA(Subject* Sub, int SubjectNum);
:
: // Sub : 교과목 정보가 담긴 Subject 포인터 변수
:
: // SubjectNum : 과목 수
:
:
: 2. 개인의 신상 정보와 성적 정보를 출력하는 PrintOneData()라는 함수를 구현
:
: Student 구조체 매개변수 인자는 반드시 레퍼런스로...
:
: 함수의 프로토타입 : void PrintOneData(const Student& rSt);
:
: // rSt : 학생 정보가 담긴 Student 레퍼런스 변수
:
:
: 3. 전체 학생의 신상 정보와 성적 정보를 출력하는 부분을 PrintAllData()라는 함수를 구현
:
: 이 함수는 개인의 학생 정보를 출력하는 PrintOneData() 함수를 호출하여 사용
:
: 함수의 프로토타입 : void PrintAllData(const Student* pSt, int StudentNum);
:
: // pSt : 학생 정보가 담긴 Student 포인터 변수
:
: // StudentNum : 전체 학생 수
:
: // 모든 학생의 정보를 출력하기 위해 학생 개인의 정보를 출력하는 PrintOneData() 함수 호출
:
:
: 4. 특정 학생의 이름을 검색하여 해당 학생 정보가 있는 주소를 리턴하는 기능을 가진 StdSearch()라는 함수를 구현
:
: 특정 학생의 이름을 사용자로부터 입력받고, 해당되는 학생이 있는지 검색한 후, 검색에 성공하면 해당 학생의 정보가 있는 곳의 주소를, 성공하지 못하면 NULL을 리턴받고 에러 메시지 출력.
:
: 함수의 프로토타입 : Student* StdSearch(Student *pSt);
:
: // pSt : 학생정보가 담긴 Student 포인터 변수
:
: // 리턴값 : 해당 학생의 정보가 있는 곳의 주소
:
:
:
: #include <iostream>
: #include <iomanip>
: using namespace std;
:
: const char jumsu[8][3] = { "D0", "D+", "C0", "C+", "B0", "B+", "A0", "A+" };
: typedef struct subject
: {
:    char subName[30];
:    int hakjum;
:    char grade[10];
:    float gpa;
: }SubJect;
:
: typedef struct student
: {
:    char stdName[20];
:    int hakbun;
:    SubJect sub[3];
:    float ave_gpa;
: }Student;
:
: void PrintMenu(void)
: {
:    cout << "===== 메뉴 =====" << endl;
:    cout << "1. 학생 성적 입력" << endl;
:    cout << "2. 전체 학생 성적 보기" << endl;
:    cout << "3. 학생 이름 검색" << endl;
:    cout << "4. 프로그램 종료" << endl << endl;
:    cout << "원하는 기능을 입력하세요 : ";
: }
:
: float average(int hakjum, char* grade)
: {
:    for (int i = 0; i < 9; i++)
:    {
:       if (strcmp(jumsu[i], grade) == 0)
:       return hakjum * ((i * 0.5f) + 1);
:    }
:    return 0;
: }
:
: void CalcGPA(SubJect& Sub)
: {
:    cout << "교과목명 : ";
:    cin >> Sub.subName;
:    cout << "과목 학점수 : ";
:    cin >> Sub.hakjum;
:    cout << "과목등급(A+ ~ F) : ";
:    cin >> Sub.grade;
:    Sub.gpa = average(Sub.hakjum, Sub.grade);
:    cout << endl;
: }
:
: void PrintAllData(Student* stu)
: {
:    cout << "이름 : " << stu->stdName << "  학번 : " << stu->hakbun << endl;
:    cout.width(10); cout << "========================================================" << endl;
:    cout.width(20); cout << "과목명";
:    cout.width(10); cout << "과목학점";
:    cout.width(10); cout << "과목등급";
:    cout.width(10); cout << "과목평점" << endl;
:    for (int j = 0; j < 3; j++)
:    {
:       cout.width(20); cout << stu->sub[j].subName;
:       cout.width(7); cout << stu->sub[j].hakjum;
:       cout.width(10); cout << stu->sub[j].grade;
:       cout.width(11); cout << stu->sub[j].gpa << endl;
:    }
:    cout << "========================================================" << endl;
:    stu->ave_gpa = (stu->sub[0].gpa + stu->sub[1].gpa + stu->sub[2].gpa) / 3;
:    cout.width(46); cout << "평균평점 : " << stu->ave_gpa << endl;
:    cout << endl << endl;
: }
:
: void StdSearch(char* inname, student *pSt)
: {
:    if (strcmp(inname, pSt->stdName) == 0)
:    PrintAllData(pSt);
: }
:
: int main(void)
: {
:    bool check = true;
:    int menu_input = 0;
:    int student_num = 0;
:    Student stu[10];
:    cout.setf(ios::fixed, ios::floatfield);
:    cout.precision(2);
:    while (check)
:    {
:       PrintMenu();
:       cin >> menu_input;
:       switch (menu_input)
:       {
:          case 1:
:          student_num++;
:          cout << endl << "* " << student_num << "번째 학생 이름과 학번을 입력하세요." << endl;
:          cout << "이름 : ";
:          cin >> stu[student_num - 1].stdName;
:          cout << "학번 : ";
:          cin >> stu[student_num - 1].hakbun;
:          cout << endl << "* 수강한 과목 3개와 각 교과목명, 과목학점, 과목등급을 입력하세요." << endl;
:          for (int i = 0; i < 3; i++)
:          CalcGPA(stu[student_num - 1].sub[i]);
:          break;
:          case 2:
:          cout << "전체 성적 보기" << endl;
:          cout << "========================================================" << endl;
:          for (int i = 0; i < student_num; i++)
:          PrintAllData(&stu[i]);
:          system("pause");
:          break;
:          case 3:
:          cout << endl << endl << endl << endl;
:          char inname[20];
:          cout << "검색 할 학생 이름 : ";
:          cin >> inname;
:          for (int i = 0; i < student_num; i++)
:          StdSearch(inname, &stu[i]);
:          system("pause");
:          break;
:          case 4:
:          check = false;
:          break;
:          default:
:          break;
:       }
:       system("cls");
:    }
:    cout << "프로그램을 종료합니다." << endl;
:    return 0;
: }  
:

+ -

관련 글 리스트
71102 C++ 함수 프로토타입 수정 도움 좀 부탁드려요ㅠㅠ 전성훈 3605 2014/03/26
71104     Re:C++ 함수 프로토타입 수정 도움 좀 부탁드려요ㅠㅠ 아루스 2982 2014/03/26
71111         Re:Re:C++ 함수 프로토타입 수정 도움 좀 부탁드려요ㅠㅠ 전성훈 2970 2014/03/26
71113             Re:Re:Re:C++ 함수 프로토타입 수정 도움 좀 부탁드려요ㅠㅠ 빌더초보 2982 2014/03/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.