CGPA计算

时间:2014-08-14 05:57:20

标签: c

问题: 该程序应具有允许用户执行以下功能的菜单:

  1. 学期科目计划
  2. 进入科目'等级
  3. 显示主题'学期信息
  4. 程序只应在用户选择退出程序时终止。

    请帮我解决这个问题。

    当我运行此C编程代码时,将出现此错误:

    Error   16  error C2143: syntax error : missing ';' before 'type'   g:\mini project      testing\cgpacalculation\cgpacalculation\cgpacalculation4.c 190
    Error   17  error C2143: syntax error : missing ';' before 'type'   g:\mini project testing\cgpacalculation\cgpacalculation\cgpacalculation4.c  224
    

    请帮我纠正我的编码:

    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    #include <Windows.h>
    
    //declaration
    void userdetail(void);
    void mainmenu(void);
    void menu(void);
    void menu_two(void);
    void lines(void);
    void getSubject(void);
    void getCalculation(void);
    void about(void);
    float gradesToGP(char grades);
    
    //display
    void main()
    {
        mainmenu();
    }
    
    //definition
    void mainmenu(void)
    {
        int select;
    
        lines();
        printf("\t\t\t   CGPA Calculation \n");
    
        lines();
        printf("Enter \"1\" - Student Detail and Subject Information\n");
        printf("Enter \"2\" - About\n");
        printf("Enter \"0\" - Exit\n");
        lines();
        printf("Enter your choice :");
        scanf("%d", &select);
        lines();
    
        if (select == 1)
        {
            userdetail();
            getSubject();
        }
        else if (select == 2)
        {
            about();
            getch();
            menu();
        }
        else if (select == 0)
        {
            system("cls");
            printf("\t\t  THANK YOU FOR USING THIS PROGRAM =D \n");
            getch();
        }
        else
        {
            printf("\a\a WRONG INPUT! \n");
            lines();
            getch();
            system("cls");
            mainmenu();
        }
    }
    
    void menu(void)
    {
        int choice;
        printf("Enter \"1\" - Back to Main Menu\n");
        printf("Enter \"0\" - Exit\n");
    
        lines();
    
        printf("Enter your choice :");
        scanf("%d", &choice);
    
        if (choice == 1)
        {
            system ("cls");
            mainmenu();
        }
        else if (choice == 0)
        {
            system("cls");
            printf("\t\t  THANK YOU FOR USING THIS PROGRAM =D \n");
            getch();
        }
        else
        {
            printf("\a\a WRONG INPUT! \n");
            getch();
            system("cls");
            menu();
        }
    }
    
    
    void lines(void)
    {
        printf("**********************************************************************");
    }
    
    void userdetail(void)
    {
        char name[100][100], id[100][10];
    
        printf("Enter your full name :\n");
        scanf("%s", &name);
        printf("Enter your student ID :\n");
        scanf("%s", &id);
    }
    
    void getSubject(void)
    {
        int loop,numSubject, credit[100];
        float GP[100], TargetCGPA[100];
        char SubjectCode[100][40], grade[100];
        char name[100][100];
        char id[100][40];
        int sumCredit = 0;
        double sumCreditxGP = 0;
    
        system("cls");
    
        lines();
        printf("Enter total subject :");
        scanf("%d", &numSubject);
        lines();
    
        for (loop = 0; loop <= numSubject-1; loop++)
        {
            printf("Subject %d \n", loop+1);
    
            printf("Enter subject code :");
            scanf("%s", &SubjectCode[loop]);
    
            printf("Credit hour :");
            scanf("%d", &credit[loop]);
    
            printf("Enter your grade :");
            scanf("%s", &grade[loop]);
    
            GP[loop] = gradesToGP(grade[loop]);
    
    
            lines();
        }
    
        printf("Enter your targeted CGPA for this semester :");
        scanf("%f", &TargetCGPA);
        lines();
        printf("Press \" ENTER \" or any button");
        getch();
        system("cls");
        menu_two();
    
    
        void menu_two(void);
        {
        int choice;
        printf("Enter \"1\" - CGPA Calculation\n");
        printf("Enter \"0\" - Exit\n");
    
        lines();
    
        printf("Enter your choice :");
        scanf("%d", &choice);
    
        if (choice == 1)
        {
            system ("cls");
            getCalculation();
        }
        else if (choice == 0)
        {
            system("cls");
            printf("\t\t  THANK YOU FOR USING THIS PROGRAM =D \n");
            getch();
        }
        else
        {
            printf("\a\a WRONG INPUT! \n");
            getch();
            system("cls");
            menu_two();
        }
    
        }
    
    
    
        void getCalculation(void);
        {
        system("cls");
    
    
        lines();
        printf("Student Name : %c\n", name);
        printf("Student ID : %c\n", id);
        lines();
    
        printf("No. Subject Code  Credit Hour  Grade  Grade Point");
        lines();
    
        for (loop = 0; loop <= numSubject-1; loop++)
        {
            printf("\n%d %s\t %d\t%s\t%.2f\n", loop+1, SubjectCode[loop], credit[loop], grade[loop], GP[loop]);
        }
    
        for (loop = 0; loop <= numSubject-1; loop++)
        {
            sumCredit = sumCredit + credit[loop];
            sumCreditxGP = sumCreditxGP + credit[loop] * GP[loop];
        }
    
        lines();
        printf("Total credit hour is = %d\n\n", sumCredit);
        printf("Total credit hour X grade point is = %.2f\n\n", sumCreditxGP);
        printf("CGPA is = %.2f", sumCreditxGP / sumCredit);
    
        lines();
        getch();
        menu();
        }
    
    }
    
    
    void about(void)
    {
        system("cls");
    
        lines();
    
        printf("\n\t\t\tMini Project\n");
        lines();
        printf("Develop by: Shah Rezza Bin Jasni\n");
        printf("Institution: Universiti Tenaga Nasional\n\n\n");
        lines();
        printf("COPYRIGHT 2014");
        lines();
    }
    
    float gradesToGP(char grades)
    {
        if (grades == 'A+')
        {
            return(float)4.00;
        }
        else if (grades == 'A')
        {
            return(float)4.00;
        }
        else if (grades == 'A-')
        {
            return(float)3.67;
        }
        else if (grades == 'B+')
        {
            return(float)3.33;
        }
        else if (grades == 'B')
        {
            return(float)3.00;
        }
        else if (grades == 'B-')
        {
            return(float)2.67;
        }
        else if (grades == 'C+')
        {
            return(float)2.33;
        }
        else if (grades == 'C')
        {
            return(float)2.00;
        }
        else if (grades == 'C-')
        {
            return(float)1.67;
        }
        else if (grades == 'D+')
        {
            return(float)1.33;
        }
        else if (grades == 'D')
        {
            return(float)1.00;
        }
        else if (grades == 'E')
        {
            return(float)0.00;
        }
        else
        {
                return(float)0.00;
        }
    } 
    

2 个答案:

答案 0 :(得分:2)

看起来你将函数menu_two放在另一个函数中。您的Visual C ++编译器不接受本地函数。

getCalculation相同的问题。根据你的声明,这些声明应该在全球范围内。

答案 1 :(得分:0)

您的代码几乎没有问题 -

menu_two();
} // here you need to close it

void menu_two(void) // remove the semicolon here

因为本地功能不可接受。不要在另一个函数中包含任何函数。

void getCalculation(void) // remove semicolon here

将上述两个功能作为全局功能。任何尝试将必要的信息传递给该功能并尝试。