C#-Kurs zur objektorientierten Programmierung Experiment 3: Name des Experiments: C#-Arrays und -Sammlungen
Inhalt des Experiments: C#-Arrays und -Sammlungen
1. Zweck des Experiments
Experimenteller Zweck und Anforderungen
- (1) Master-Array-Deklaration und -Erzeugung;
- (2) Beherrsche die Referenz und Initialisierung von Arrays;
- (3) den Debugger verwenden, um die logischen Fehler des Programms zu korrigieren;
2. Experimentelle Umgebung
Microsoft Visual Studio 2008
3. Experimenteller Inhalt und Schritte
3.1.1 Versuchsinhalt
- Definieren Sie ein Array, um die eingegebenen Testergebnisse von 10 Schülern zu speichern, berechnen und geben Sie das durchschnittliche Ergebnis, das höchste und das niedrigste Ergebnis und ihre entsprechenden Array-Indizes aus.
- Der Projektname ist XT5-2, und die laufende Schnittstelle des Programms ist in der Abbildung dargestellt. (Frage 3.2 auf Seite 140 von Kapitel 5 des Lehrbuchs)
Berücksichtigen Sie die folgenden Situationen:
①Verarbeitung, wenn die Eingabepunktzahl außerhalb des Bereichs von 0-100 liegt.
②Falls der eingegebenen Note ein Satzzeichen wie ein Semikolon folgt, kann auch gefiltert werden.
③Bei mehreren identischen Höchst- oder Tiefstwerten können diese auch separat angezeigt werden.
3.1.2 Experimentelle Schritte
Der experimentelle Ablauf ist wie folgt:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 实验三_1_
{
class Program
{
static double Average(int[] Scores)
{
double total = 0;
for (int i = 0; i < Scores.GetLength(0); i++)
total += Scores[i];
return (double)(total / Scores.GetLength(0));
}
static void Main(string[] args)
{
int[] Scores = new int[10];
for (int i = 0; i < Scores.Length; i++)
{
int a;
Console.Write("请输入第{0}个学生成绩 :", i);
a = int.Parse(Console.ReadLine());
Scores[i] = a;
}
int a1 = 0;
int high = 0;
for (int i = 0; i < 10; i++)
{
if (Scores[i] > high)
{
high = Scores[i];
a1 = i;
}
}
int a2 = 0;
int low =100;
for (int j = 0; j < 10; j++)
{
if (Scores[j] < low)
{
low = Scores[j];
a2 = j;
}
}
Console.WriteLine("平均成绩: {0}", Average(Scores));
Console.WriteLine("最高成绩: {0},下标是: {1}",high ,a1);
Console.WriteLine("最低成绩: {0},下标是: {1}",low ,a2);
Console.ReadLine();
}
}
}
Berücksichtigen Sie die folgenden Situationen:
- ①Verarbeitung, wenn die Eingabepunktzahl außerhalb des Bereichs von 0-100 liegt.
Sie können die Anweisung nach diesera = int.Parse(Console.ReadLine());
Anweisung
if (a < 0 || a > 100)
{
Console.WriteLine("输入错误");
a = a - 1;
}
else
Scores[i] = a;
- ②Falls der eingegebenen Note ein Satzzeichen wie ein Semikolon folgt, kann auch gefiltert werden.
a = Console.ReadLine();
a = Regex.Replace(a,@"[^\d]*", "");
Verwenden Sie Regex.Replace, um die Interpunktion in Zeichen umzuwandeln.
Verwenden Sie int.Parse zum Konvertieren in eine ganze Zahl.
- ③Bei mehreren identischen Höchst- oder Tiefstwerten können diese auch separat angezeigt werden.
int high = 0;
for (int i = 0; i < 10; i++)
{
If (Scores[i] > high)
high = Scores[i];
}
Console.Write("最高成绩为{0},下标是", high);
for (i = 0; i < 10; i++)
{
if (a[i] == high)
Console.Write(",{0}", high +1);
}
- Auf diese Weise können mehrere identische Highscores separat angezeigt werden. Auf die gleiche Weise verwendet auch die niedrigste Punktzahl dieselbe Idee.
Der Laufeffekt des Experiments ist wie folgt:
3.2.1 Experimenteller Inhalt
- Definieren Sie ein zweidimensionales 4X5-Array, machen Sie den Elementwert zum Produkt aus Zeilen- und Spaltennummer, geben Sie dann diese Matrix aus und berechnen Sie den Durchschnittswert jeder Spalte.
- Der Projektname ist xt5-4, und die laufende Schnittstelle des Programms ist in der Abbildung dargestellt. (Frage 3.4 auf Seite 140 von Kapitel 5 des Lehrbuchs).
3.2.2 Experimentelle Schritte
Der experimentelle Ablauf ist wie folgt:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 实验三_2_
{
class Program
{
static void Main(string[] args)
{
double[] aver1 = new double[5];
double [] aver2=new double [4];
int[,] arr = new int[4, 5];
for (int i = 0; i < 4; i++)
for (int j = 0; j < 5; j++)
arr[i, j] = (i + 1) * (j + 1);
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 5; j++)
Console.Write("{0}\t", arr[i, j]);
Console.WriteLine();
}
for (int i = 0; i < 4; i++)
{
aver2[i] = 0;
for (int j = 0; j < 5; j++)
{
aver2[i] += arr[i, j];
}
aver2[i] /= 5 * 1.0;
}
for (int i = 0; i < 4; i++)
{
Console.WriteLine("第" + (i + 1) + "行的平均值为: {0}", aver2[i]);
}
Console.WriteLine();
for (int i = 0; i < 5; i++)
{
aver1[i] = 0;
for (int j = 0; j < 4; j++)
{
aver1[i] += arr[j, i];
}
aver1[i] /= 4 * 1.0;
}
for (int i = 0; i < 5; i++)
{
Console.WriteLine("第" + (i + 1) + "列的平均值为: {0}", aver1[i]);
}
Console.ReadLine();
}
}
}
Der Laufeffekt des Experiments ist wie folgt:
4. Experimentelle Zusammenfassung
- 1. Durch dieses Experiment wurde die Methode der Ein- und Ausgabe des Arrays gemeistert.
- 2. Beherrschen Sie den zugehörigen Programmalgorithmus von C#-Array.
- 3. Nachdem Sie die Length-Eigenschaft des Arrays gemeistert haben, können Sie die Länge des Arrays usw. ermitteln.