finde Ich habe eine .csv Akte, die Namen, Rolle, Themen entsprechend enthält. Ich analysierte es in eine Datentabelle und ich berechnete die höchste Markierung jedes Themas. Alles, was ich berechnen möchte, ist der Durchschnitt jedes Subjekts. Kann mir jemand dabei helfen !!!!!Wie man Durchschnitt jeder Spalte einer Datentabelle unter Verwendung C#
Das war meine Ausgabe.
Bestnote für ComputerScience:
Name : Manoj
Roll Number : 1212334556
Mark : 94
Bestnote für Biologie:
Name : Sandeep
Roll Number : 1223456477
Mark : 90
Bestnote für Commerce:
Name : BarathRam
Roll Number : 1212345664
Mark : 97
und CSV-Datei enthält Namen, Rollno, Computer, Biologie, Handel.
Jetzt alles, was ich bekommen müssen, ist der Durchschnitt von jedem Fach
Mein Code:
static DataTable table;
static void Main(string[] args)
{
StreamReader r = new StreamReader(@"C:\Users\GOPINATH\Desktop\stud1.csv");
string line = r.ReadLine(); //reads first line - column header
string[] part = line.Split(','); //splits the line by comma
createDataTable(part);
//copy from CSV to DataTable<String,String,int,int,int>
while ((line = r.ReadLine()) != null)
{
try
{
part = line.Split(',');
table.Rows.Add(part[0], part[1], Convert.ToInt32(part[2]), Convert.ToInt32(part[3]), Convert.ToInt32(part[4]));
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
r.Close();
int mark1_index = 0, mark2_index = 0, mark3_index = 0; //initailize index value 0 for highest marks
//finding the index of the highest mark for each subject
for(int i=0 ; i<table.Rows.Count ; i++)
{
if (Convert.ToInt32(table.Rows[i][2]) > Convert.ToInt32(table.Rows[mark1_index][2])) //subject1
{
mark1_index = i;
}
if (Convert.ToInt32(table.Rows[i][3]) > Convert.ToInt32(table.Rows[mark2_index][3])) //subject2
{
mark2_index = i;
}
if (Convert.ToInt32(table.Rows[i][4]) > Convert.ToInt32(table.Rows[mark3_index][4])) //subject3
{
mark3_index = i;
}
}
printmark(table,mark1_index, 2);
printmark(table,mark2_index, 3);
printmark(table,mark3_index, 4);
Console.Read();
}
public static void createDataTable(string[] columnName)
{
//create DataTable<String,String,int,int,int>
table = new DataTable();
table.Columns.Add(columnName[0], typeof(String));
table.Columns.Add(columnName[1], typeof(String));
table.Columns.Add(columnName[2], typeof(int));
table.Columns.Add(columnName[3], typeof(int));
table.Columns.Add(columnName[4], typeof(int));
}
public static void printmark(DataTable t, int rowIndex, int columnIndex)
{
Console.WriteLine("Highest mark for " + t.Columns[columnIndex].ColumnName + ":");
Console.WriteLine("\tName: " + (string)t.Rows[rowIndex][0]);
Console.WriteLine("\tRole Number: " + (string)t.Rows[rowIndex][1]);
Console.WriteLine("\tMark: " + (int)t.Rows[rowIndex][columnIndex]);
}
}
}
wie funktioniert es !!!. Muss ich mein Programm neu strukturieren? – cjgeez
Sie möchten Durchschnitt für jede Spalte finden, richtig? Diese Abfrage berechnet den Durchschnitt für einen gegebenen 'Spaltennamen' –
!! Kannst du genauer sein. Da ich ein Anfänger in C# bin, kann ich die Region nicht finden, wo ich diese Abfrage einfügen muss. Wenn möglich, können Sie Ihre Anfrage in meinem Code senden. Wie finde ich es schwierig zu implementieren. Ich würde mit dem nächsten weitermachen. Vielen Dank !! – cjgeez