C#學生成績單生成程式


簡介

生成學生成績單的方法有很多。今天我們將學習其中一種方法。在本文中,我們將學習一個使用C#生成學生成績單的程式。讓我們先學習演算法。

演算法

讓我們討論一下生成學生成績單程式的演算法。學生需要向系統輸入資料,然後生成成績單。

步驟1 − 首先,我們宣告整型變數來儲存不同的資料,例如學生的學號和各科成績。

步驟2 − 接下來,我們宣告一個浮點型變數來儲存學生的百分比。

步驟3 − 接下來,我們宣告一個字串變數來儲存學生的姓名。

步驟4 − 現在我們從使用者那裡獲取輸入,即學生的學號、姓名和各科成績。

步驟5 − 然後我們對各科成績進行求和,計算學生的百分比。我們使用Convert.ToInt32()進行顯式轉換,將輸入轉換為32位有符號整數。

步驟6 − 現在,我們將百分比與等級表進行比較,確定學生的等級,然後關閉程式。

現在,是時候看看演算法的程式碼了。

示例

// C# program to generate the mark sheet of the student
using System;
using System.Collections.Generic; 
using System.Linq;
using System.Text;
class tpt{

   static void Main(string[] args) {

      // Variables declaration for collection of different data
      int rollnum, marksub1, marksub2, marksub3, marksub4, marksub5, totalmark;

      // Declaration of percentage variable
      float stud_percent;

      // Declaration of string variable to store student name
      string name;

      // Getting the student’s roll number
      Console.WriteLine("Enter the roll number of the student :");
      rollnum = Convert.ToInt32(Console.ReadLine());

      // Getting the student’s name
      Console.WriteLine("Enter the name of the student :");
      name = Console.ReadLine();

      // Getting the student’s first subject marks
      Console.WriteLine("Enter the marks of first subject : ");
      marksub1 = Convert.ToInt32(Console.ReadLine());

      //Getting the student’s second subject marks
      Console.WriteLine("Enter the marks of second subject : ");
      marksub2 = Convert.ToInt32(Console.ReadLine());

      // Getting the student’s third subject marks
      Console.WriteLine("Enter the marks of third subject : ");
      marksub3 = Convert.ToInt32(Console.ReadLine());

      // Getting the student’s fourth subject marks
      Console.WriteLine("Enter the marks of fourth subject : ");
      marksub4 = Convert.ToInt32(Console.ReadLine());
      
      // Getting the student’s fifth subject marks
      Console.WriteLine("Enter the marks of fifth subject : ");
      marksub5 = Convert.ToInt32(Console.ReadLine());
      
      // Adding the total marks of the student
      totalmark = marksub1 + marksub2 + marksub3 + marksub4 + marksub5;

      // Calculating the percentage of the student
      stud_percent = totalmark / 5.0f; 
      
      // Displaying the total marks and percentage of the student
      Console.WriteLine("Final result of {0} is : ", name);
      Console.WriteLine("Total Marks : " + totalmark);
      Console.WriteLine("Percentage : " + stud_percent);

      // Block to calculate the grades of the student
      if (stud_percent <= 35) {
         Console.WriteLine("Grade : F");
      }
      else if (stud_percent >= 34 && stud_percent <= 39) {
         Console.WriteLine("Grade : D");
      }
      else if (stud_percent >= 40 && stud_percent <= 59) {
         Console.WriteLine("Grade : C");
      }
      else if (stud_percent >= 60 && stud_percent <= 69) {
         Console.WriteLine("Grade : B");
      }
      else if (stud_percent >= 70 && stud_percent <= 79) {
         Console.WriteLine("Grade : B+");
      }
      else if (stud_percent >= 80 && stud_percent <= 90) {
         Console.WriteLine("Grade : A");
      }
      else if (stud_percent >= 91) {
         Console.WriteLine("Grade : A+");
      }
   }
} 

輸出

Enter the roll number of the student :
7
Enter the name of the student :
Leo
Enter the marks of first subject :
10
Enter the marks of second subject :
30
Enter the marks of third subject :
21
Enter the marks of fourth subject :
7
Enter the marks of fifth subject :
11
Final result of Leo is :
Total Marks : 79
Percentage : 15.8
Grade : F 

如果科目數量不固定,並且每個學生的科目數量都不同,那麼我們可以使用陣列的概念。

示例

// C# program to generate the mark sheet of the student
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class tpt{

   static void Main(string[] args) {

      // Variables declaration for collection of different data
      int rollnum, subnum, totalmark=0;
      int[] marksub=new int[25];
      
      // Declaration of percentage variable
      float stud_percent;
      
      // Declaration of string variable to store student name
      string name;
      
      // Getting the student’s roll number
      Console.WriteLine("Enter the roll number of the student :");
      rollnum = Convert.ToInt32(Console.ReadLine());
      
      // Getting the student’s name
      Console.WriteLine("Enter the name of the student :");
      name = Console.ReadLine();
      
      // Getting the number of subjects 

      Console.WriteLine("Enter the number of subjects : ");
      subnum = Convert.ToInt32(Console.ReadLine());

      //Getting the student’s subject marks
      for(int i=1; i<=subnum; i++) {
         Console.WriteLine("Enter the marks of {0} subject : ",+i);
         marksub[i] = Convert.ToInt32(Console.ReadLine());
         totalmark=totalmark+marksub[i];
      }

      // Calculating the percentage of the student
      stud_percent = totalmark / subnum;

      // Displaying the total marks and percentage of the student
      Console.WriteLine("Final result of {0} is : ", name);
      Console.WriteLine("Total Marks : " + totalmark);
      Console.WriteLine("Percentage : " + stud_percent);

      // Block to calculate the grades of the student
      if (stud_percent <= 35) {
         Console.WriteLine("Grade : F");
      }
      else if (stud_percent >= 34 && stud_percent <= 39) {
         Console.WriteLine("Grade : D");
      }
      else if (stud_percent >= 40 && stud_percent <= 59) {
         Console.WriteLine("Grade : C");
      }
      else if (stud_percent >= 60 && stud_percent <= 69) {
         Console.WriteLine("Grade : B");
      }
      else if (stud_percent >= 70 && stud_percent <= 79) {
         Console.WriteLine("Grade : B+");
      }
      else if (stud_percent >= 80 && stud_percent <= 90) {
         Console.WriteLine("Grade : A");
      }
      else if (stud_percent >= 91) {
         Console.WriteLine("Grade : A+");
      }
   }
}

輸出

Enter the roll number of the student :
7
Enter the name of the student :
Cris
Enter the number of subjects :
2
Enter the marks of 1 subject :
89
Enter the marks of 2 subject :
77
Final result of Cris is :
Total Marks : 166
Percentage : 83
Grade : A 

時間複雜度

在科目數量已知的第一個程式碼中,沒有迴圈,資料大小是固定的,所以時間複雜度是O(1)。

第二個程式碼使用一個數組來儲存科目數量。因此,在輸入科目數量後,迴圈會執行以獲取科目成績並將它們加到使用者輸入的科目數量中,即n次。所以時間複雜度是O(N)。現在,讓我們總結一下這篇文章。

結論

在這篇文章中,我們學習了兩種不同的方法來編寫C#程式生成學生成績單。一種是已知科目數量的方法,另一種是未知科目數量的方法。透過這篇文章,希望能夠提升您對C#的理解。

更新於:2023年4月21日

3K+瀏覽量

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告