亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 dataGridView 的 WindowsForm c# 中查找通過率?

如何在 dataGridView 的 WindowsForm c# 中查找通過率?

C#
婷婷同學_ 2022-11-13 14:26:51
我是 C# 新手,所以請原諒我的愚蠢問題。所以。我有一個程序可以提示用戶輸入他們的姓名和成績。到目前為止,我可以在 dataGridView 中找到給定成績的平均成績和最高成績。這是平均和最大代碼:    dataGridView1.Rows.Add(txt_name.Text, txt_grade.Text);    private void btn_calculate_Click(object sender, EventArgs e)    {        int[] columnData = (from DataGridViewRow row in dataGridView1.Rows                            where row.Cells[1].FormattedValue.ToString()!= string.Empty                            select Convert.ToInt32(row.Cells[1].FormattedValue)).ToArray();        lbl_average.Text = "Average grade is: " + columnData.Average().ToString();        lbl_highest.Text = "Highest grade is: " + columnData.Max().ToString();    }我現在需要得到通過率。例如,通過率為 50 分。如果 5 名學生中有 2 名得分 50 或更高,則通過率應為 40%,并應顯示在我的 lbl_passrate 上。
查看完整描述

1 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

看起來列是每個班級,而行是每個學生,具體取決于您如何進行平均和最大值。如果是這樣,那么您將需要一些內部變量來保持通過閾值,在您的示例中為 50 分。因此,您可以使用 Linq 輕松獲得所需的內容。您可能需要檢查除以零錯誤,但這是它的要點:


dataGridView1.Rows.Add(txt_name.Text, txt_grade.Text);


private void btn_calculate_Click(object sender, EventArgs e)

{

    int passingMarks = 50;


    int[] columnData = (from DataGridViewRow row in dataGridView1.Rows

                        where row.Cells[1].FormattedValue.ToString()!= string.Empty

                        select Convert.ToInt32(row.Cells[1].FormattedValue)).ToArray();



    lbl_average.Text = "Average grade is: " + columnData.Average().ToString();

    lbl_highest.Text = "Highest grade is: " + columnData.Max().ToString();

    var passingStudents = columnData.AsQueryable().Where(g=>g >= passingMarks).Count();

    var passingRate = ((double)passingStudents / columnData.Length) * 100;


    lbl_passrate.Text = String.Format("Pass Rate = {0}%", passingRate);

}


查看完整回答
反對 回復 2022-11-13
  • 1 回答
  • 0 關注
  • 100 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號