source

WHIT 반복구조와 SWITCH 선택구조를 구현하여 메뉴 구동 어플리케이션을 만들고 있습니다.txt 데이터 표시

manysource 2022. 10. 25. 17:58

WHIT 반복구조와 SWITCH 선택구조를 구현하여 메뉴 구동 어플리케이션을 만들고 있습니다.txt 데이터 표시

#include <stdio.h>
#include <stdlib.h>

#define Size_MainFuncArray 5            // Constant

                                 // Data that needs to be inside my txt file:
                                // StudentData.txt: Jane 55 51 78
struct Student {                        // Lungelo 69 84 75
    char StudentName[10];               // Greg 51 44 52
    int StudentMarks[3];                // Thando 23 78 61
    float StudentAverage;               // Bret 44 33 29
};

typedef struct Student Student;

                      // Function Prototypes
int DisplayMenu(void);
void Read_Data(Student Arr[], int Size);
void Calculate_StudentAverage(Student Arr[], int Size);
void Display_Data(Student Arr[], int Size);
void Write_Graph(Student Arr[], int Size);  // I am not being able to identify

                                               // The type like: int, flot etc.
                               // All are just specified as Student Arr[].
                               // My lecture wants it like this

                         // Main Function
int
main(void)
{
    int choice;
    Student ESG206B[Size_MainFuncArray];    // How do I use this array?

    choice = DisplayMenu();

    printf("\nPress any key to continue...\n");
    getch();
    system("cls");

    return 0;
}

     // Function Definitions
int
DisplayMenu(void)
{
    int Select;

    printf("************************************\n");
    printf("*    Welcome to Student Stats      *\n");
    printf("*    Student Number: 123456789     *\n");
    printf("************************************\n");

    printf("\n1. Load Data and Calculate Average\n");
    printf("2. Dispaly Student Data\n");
    printf("3. Save Graph\n");
    printf("4. Exit\n");
    printf("Choice: ");
    fflush(stdin);
    scanf("%d", &Select);

    return Select;
}

void
Read_Data(Student Arr[], int Size)      // I am not being able to finish this
{                                       // functions definition

}

void
Calculate_StudentAverage(Student Arr[], int Size)
{

}

void
Display_Data(Student Arr[], int Size)
{

}

void
Write_Graph(Student Arr[], int Size)
{

}

메뉴 선택지를 포장할 수 있습니다.'printf그리고.scanf에 있어서do...whileloop: 입력이 유효한지 여부를 확인할 수 있습니다).1 <= input <= 4).

예:

int DisplayMenu(void)
{
    int Select;

    printf("************************************\n");
    printf("*    Welcome to Student Stats      *\n");
    printf("*    Student Number: 123456789     *\n");
    printf("************************************\n");

    do
    {
        printf("\n1. Load Data and Calculate Average\n");
        printf("2. Dispaly Student Data\n");
        printf("3. Save Graph\n");
        printf("4. Exit\n");
        printf("Choice: ");
        fflush(stdin);
        scanf("%d", &Select);
        if (Select < 1 || Select > 4)
        {
            printf("Please select a valid choice.\n");
        }
    } while (Select < 1 || Select > 4);

    return Select;
}

그 다음에,switch다양한 선택지를 분리하는 구조입니다.

예:

choice = DisplayMenu();
switch (choice)
{
case 1:
    // do smth for 1
    break;
case 2:
    // do smth for 2
    break;
case 3:
    // do smth for 3
    break;
case 4:
    // do smth for 4
    break;
default:
    break;
}

당신은 "a"를 원했다.while()실장"무한 루프를 사용하여 사용자와 대화하는 예를 다음에 나타냅니다.

메뉴 항목에 대한 프로그램 응답에 "메뉴"를 가까이 두는 것이 좋습니다.판독자는 메뉴 항목 #2가 적절한 함수를 호출하는 것처럼 보이는 것을 비교할 수 있습니다.

이 코드에는 몇 가지 다른 코멘트가 있습니다.

int
main(void)
{
    Student ESG206B[Size_MainFuncArray];

    printf("************************************\n");
    printf("*    Welcome to Student Stats      *\n");
    printf("*    Student Number: 123456789     *\n");
    printf("************************************\n");

    while( 1 ) { // infinite loop, ends with user input = 4
        putchar( '\n' );
        printf("1. Load Data and Calculate Average\n");
        printf("2. Dispaly Student Data\n");
        printf("3. Save Graph\n");
        printf("4. Exit\n");
        printf("Choice: ");
        // fflush(stdin); // DO NOT DO This!

        int choice = 0; // declare variables close to their use
        scanf( "%d", &choice );
        // should check return value from scanf

        switch( choice ) {
            case 1:
                Read_Data( ESG206B, Size_MainFuncArray );
                Calculate_StudentAverage( ESG206B, Size_MainFuncArray );
                break;

            case 2:
                Display_Data( ESG206B, Size_MainFuncArray );
                break;

            case 3:
                Write_Graph( ESG206B, Size_MainFuncArray );
                break;

            case 4:
                printf( "Bye-bye\n" );
                return 0; // program ends

            default:
                printf( "Invalid selection\n" );
                break;
        }
    }

    return 0;
}

/*
 * The unwritten code is still yours to write.
 */

언급URL : https://stackoverflow.com/questions/73594644/i-am-stuck-on-implementing-the-while-repetition-structure-and-switch-selection-s