0

我需要帮助获取此代码以显示数组,但代码结构必须保持不变。我创建了两个数组,我需要从单独的方法中显示它们,我还需要搜索并显示输入的学生的分数这是我完成的第一个代码,真的需要帮助,谢谢

class Program
{
    static void Main()
    {
        collectStudentDetails();
        promptForStudentQuery();
        printStudentsmarks();
        Console.ReadLine();
    }

    public static void collectStudentDetails()
    {
        Console.WriteLine("Please Specifiy How Many Student Details You Wish To     Enter");
        Console.WriteLine("");
        int n = SafeReadInteger(0);
        int[] StudentMarks = new int[n];
        string[] StudentNames = new string[n];

        for (int i = 0; i < StudentNames.Length; i++)
        {
            Console.WriteLine("Enter Name for student {0}", i + 1);
            StudentNames[i] = SafeReadString(null);
            Console.WriteLine("Enter Mark for Student {0}: ", i + 1);
            StudentMarks[i] = SafeReadInteger(0);
        }
    }

    static void findStudentmark()
    {
        bool foundStudent = false;
        Console.WriteLine("Please Enter The Students Name To Find Their Marks");
        Console.WriteLine("Please Press Enter To Continue");
        Console.ReadLine();
    }

    static void printStudentsmarks()
    {
        Console.WriteLine("\nStudent Mark List");
        Console.WriteLine("Please Press Enter To Continue");
        Console.ReadLine();
        promptForStudentQuery();
    }

    static bool promptForStudentQuery()
    {
        bool promptAgain = true;
        Console.WriteLine();
        Console.WriteLine(" 1.  find a student's mark   ");
        Console.WriteLine(" 2.  print all student marks");
        Console.WriteLine(" 3.  exit    ");
        Console.WriteLine();
        int choice = SafeReadInteger(0);
        if (choice == 1)
        {
            findStudentmark();
        }
        else if (choice == 2)
        {
            printStudentsmarks();
        }
        else if (choice == 3)
        {
            Environment.Exit(0);
        }
        else if (choice == 0)
        {
            Console.WriteLine("you entered an invalid option try again");
        }
        return promptAgain;
    }

    public static int SafeReadInteger(int defaultVal)
    {
        try
        {
            return int.Parse(System.Console.ReadLine());
        }
        catch
        {
            return defaultVal;
        }
    }

    public static string SafeReadString(string defaultVal)
    {
        string temp = "";
        temp = Console.ReadLine();
        while (temp == "")
        {
            Console.WriteLine("You have entered nothing. Please enter a correct value.");
            temp = Console.ReadLine();
        }
        return temp;
    }

    static void DisplayArray(int[] inputarray)
    {
        foreach (int x in inputarray)
        {
            Console.Write(" {0} ", x);
        }
        Console.WriteLine("");
    }

    static void DisplayArray2(string[] inputarray)
    {
        foreach (string x in inputarray)
        {
            Console.Write(" {0} ", x);
        }
        Console.WriteLine("");
    }
}
4

1 回答 1

1

下面可能是一个粗略的方法。首先在类级别定义StudentNameand 。StudentMarks

class Program
{
    static int[] StudentMarks;
    static string[] StudentNames;
    static void Main()
    {

        collectStudentDetails();
        promptForStudentQuery();
        printStudentsmarks();
        Console.ReadLine();
    }

您需要更新方法printStudentsmarks()findStudentmark()作为:

static void findStudentmark()
{
    Console.WriteLine("Please Enter The Students Name To Find Their Marks");
    Console.WriteLine("Please Press Enter To Continue");
    string stdName = Console.ReadLine();
    int i = 0;
    for (i = 0; i < StudentNames.Length; i++)
    {
        if (string.Compare(stdName, StudentNames[i], true)==0)
        {
            break;
        }
    }
    Console.WriteLine(StudentNames[i]);
    Console.WriteLine(StudentMarks[i]);
}
    static void printStudentsmarks()
    {

        Console.WriteLine("\nStudent Mark List");

        for (int i = 0; i < StudentNames.Length; i++)
        {
            Console.Write("Name: ");
            Console.WriteLine(StudentNames[i]);
            Console.WriteLine("Marks: ");
            Console.WriteLine(StudentMarks[i]);
            Console.WriteLine("______________________________");
        }

        Console.WriteLine("Please Press Enter To Continue");
        Console.ReadLine();
        promptForStudentQuery();

    }
于 2012-05-08T10:48:07.547 回答