【解決方法】このコーディングの間違いを知るにはどうすればよいですか?


問題ベースのタスクの質問があります。あなたのチームは、STAR College の試験部門で使用される簡単なプログラムを開発する必要があります。 このプログラムは、名前、登録番号、および 3 つのコースの結果など、10 人の学生の情報を受け入れることができます。 学生が履修するコースは、データベース設計 (DB)、Python 入門 (IP)、およびネットワーク設計 (ND) です。 プログラムは、以下の図 1 に基づいて各コースの成績を決定できます。
私を助けてください。 ありがとうございました。

私が試したこと:

C++
#include <iostream>
using namespace std;

struct student;
{
    string name[50];
    int regNumber;
    int dbMarks, ipMarks, ndMarks;
}s[10];

int main()
{
    cout << "Enter information of 10 students: " << endl;

    // storing information
    for(int i = 0; i < 10; ++i)
    {
        cout << "Enter name: ";
        cin >> s[i].name;

        cout << "Enter Database Design marks: ";
        cin >> s[i].dbMarks;

        cout << "Enter Introduction to Python marks: ";
        cin >> s[i].ipMarks;

        cout << "Enter Network Design marks: ";
        cin >> s[i].ndMarks;

        cout << endl;
    }

    if(75 <= mark <= 100)
        cout << "A";
    else if(65 <= mark <= 74)
        cout << "B";
    else if(55 <= mark <= 64)
        cout << "C";
    else if(40 <= mark <= 54)
        cout << "D";
    else if(0 <= mark <= 39)
        cout << "E";
    else
        cout << "error message";
    cout << endl;


    cout << "Displaying Information: " << endl;

    // Displaying information
    for(int i = 0; i < 10; ++i)
    {
        cout << "Name: " << s[i].name << endl;
        cout << "Grade of Database Design: " << s[i].db_marks << endl;
        cout << "Grade of Introduction to Python: " << s[i].ip_marks << endl;
        cout << "Grade of Network Design: " << s[i].nd_marks << endl;
    }

    return 0;
}

解決策 2

成績を割り当てるコードを別の関数に配置する必要があります。 試す

C++
#include <iostream>
using namespace std;

enum
{
  eDB,
  eIP,
  eND,
  COURSES,
  STUDENTS = 10,
};

struct Student
{
    string name;
    int regNumber;
    int marks[COURSES];
};

const string grade(int marks );

int main()
{
    Student s[STUDENTS];
    const string CourseTitle[COURSES] = { "Database Design", "Introduction To Python", "Network Design" };

    cout << "Enter information of 10 students: " << endl;

    // storing information
    for(int i = 0; i < STUDENTS; ++i)
    {
        cout << "Enter name: ";
        cin >> s[i].name;
        cout << "Enter registration number: ";
        cin >> s[i].regNumber;

        for ( unsigned n = 0; n < COURSES; ++n)
        {
          cout << "Enter " << CourseTitle[n] << " marks: ";
          cin >> s[i].marks[n];
        }
    }

    cout << "Displaying Information: " << endl;

    // Displaying information
    for(int i = 0; i < STUDENTS; ++i)
    {
        cout << "Name: " << s[i].name << endl;
        cout << "Registration Number" << s[i].regNumber << endl;
        for (unsigned n = 0; n < COURSES; ++n)
        {
          cout << "Grade of " << CourseTitle[n] <<  " " << grade( s[i].marks[n] ) << endl;
        }
    }
    return 0;
}

const string grade(int marks )
{
    if ( marks > 100 || marks < 0)
      return "ERROR";
    else if ( marks > 74)
      return "A";
    else if ( marks > 64)
      return "B";
    else if ( marks > 54)
      return "C";
    else if ( marks> 39 )
      return "D";
    else
      return "E";
}

解決策 1

「学生」という単語の後のセミコロンを削除します。

C++
struct student;
              ^
              |
{
    string name[50];
    int regNumber;
    int dbMarks, ipMarks, ndMarks;
}s[10];

コーディング中に毎日、おそらく 1 日に何度も構文エラーが発生することを予期する必要があります。経験の豊富さに関係なく、誰もがそうです! 変数やキーワードのスペルを間違えることがあります。 文字列やコード ブロックを閉じるのを忘れることがあります。 猫があなたのキーボードの上を歩いて、とても奇妙なことをタイプすることがあります。 メソッド呼び出しに必要なパラメーターの数を忘れてしまうことがあります。

我々はすべての間違いを犯します。

そして、私たちは皆そうしているので、構文エラーを修正する必要があります。他の人が修正してくれるのを待つよりも、方法を学んで自分で修正する方がはるかに迅速です! したがって、エラー メッセージの読み方と、コンパイラが間違っていると言っていることに照らして記述されたコードを解釈する方法を学ぶことに少し時間を費やしてください。

だからこれを読んでください: 問題を解決するコードの書き方、初心者向けガイド パート 2: 構文エラー[^] – 次回コンパイル エラーが発生したときに役立つはずです。

コメント

タイトルとURLをコピーしました