C#程序生成学生的成绩单
简介
有很多方法可以为学生生成成绩单。今天我们将学习其中之一。在本文中,我们将学习一种C#程序生成学生成绩单的方法。让我们先学习算法。
算法
让我们讨论编写生成学生成绩单的程序的算法。学生必须将输入提供给系统,然后生成成绩单。
步骤1 – 首先我们声明整数变量来存储不同的数据,例如学生的学号和科目的成绩。
步骤2 – 接下来,我们声明一个浮点变量来存储学生的百分比。
步骤3 – 接下来,我们声明一个字符串变量来存储学生的姓名。
步骤4 – 现在我们从用户那里获取输入,即学生的学号,姓名和科目成绩。
步骤5 – 然后我们添加科目的成绩并计算学生的百分比。我们使用Convert.ToInt32()进行显式转换,将输入转换为32位有符号整数。
步骤6 – 现在,我们将百分比与等级表进行比较,并告诉学生的等级并关闭程序。
现在,是时候看看算法的代码了。
示例
//C#程序生成学生成绩单
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class tpt
{
static void Main(string[] args) {
//变量声明以收集不同的数据
int rollnum, marksub1, marksub2, marksub3, marksub4, marksub5, totalmark;
//声明百分比变量
float stud_percent;
//声明字符串变量来存储学生的姓名
string name;
//获取学生的学号
Console.WriteLine("输入学生的学号:");
rollnum = Convert.ToInt32(Console.ReadLine());
//获取学生的姓名
Console.WriteLine("输入学生的姓名:");
name = Console.ReadLine();
//获取学生的第一个科目成绩
Console.WriteLine("输入第一个科目的成绩:");
marksub1 = Convert.ToInt32(Console.ReadLine());
//获取学生的第二个科目成绩
Console.WriteLine("输入第二个科目的成绩:");
marksub2 = Convert.ToInt32(Console.ReadLine());
//获取学生的第三个科目成绩
Console.WriteLine("输入第三个科目的成绩:");
marksub3 = Convert.ToInt32(Console.ReadLine());
//获取学生的第四个科目成绩
Console.WriteLine("输入第四个科目的成绩:");
marksub4 = Convert.ToInt32(Console.ReadLine());
//获取学生的第五个科目成绩
Console.WriteLine("输入第五个科目的成绩:");
marksub5 = Convert.ToInt32(Console.ReadLine());
// 计算学生总分
totalmark = marksub1 + marksub2 + marksub3 + marksub4 + marksub5;
// 计算学生的百分比
stud_percent = totalmark / 5.0f;
// 显示学生的总分和百分比
Console.WriteLine("最终成绩为{0}:", name);
Console.WriteLine("总分:" + totalmark);
Console.WriteLine("百分比:" + stud_percent);
// 块以计算学生的等级
if (stud_percent <= 35) {
Console.WriteLine("等级:F");
}
else if (stud_percent >= 34 && stud_percent <= 39) {
Console.WriteLine("等级:D");
}
else if (stud_percent >= 40 && stud_percent <= 59) {
Console.WriteLine("等级:C");
}
else if (stud_percent >= 60 && stud_percent <= 69) {
Console.WriteLine("等级:B");
}
else if (stud_percent >= 70 && stud_percent <= 79) {
Console.WriteLine("等级:B+");
}
else if (stud_percent >= 80 && stud_percent <= 90) {
Console.WriteLine("等级:A");
}
else if (stud_percent >= 91) {
Console.WriteLine("等级:A+");
}
}
}
输出
输入学生的学号:
7
输入学生的姓名:
Leo
输入第一门科目的成绩:
10
输入第二门科目的成绩:
30
输入第三门科目的成绩:
21
输入第四门科目的成绩:
7
输入第五门科目的成绩:
11
Leo的最终结果是:
总分:79
百分比:15.8
等级: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("输入学生的学号:");
rollnum = Convert.ToInt32(Console.ReadLine());
// Getting the student’s name
Console.WriteLine("输入学生的姓名:");
name = Console.ReadLine();
// Getting the number of subjects
Console.WriteLine("输入科目数量:");
subnum = Convert.ToInt32(Console.ReadLine());
//Getting the student’s subject marks
for(int i=1; i<=subnum; i++) {
Console.WriteLine("输入第{0}门科目的成绩:",+i);
marksub[i] = Convert.ToInt32(Console.ReadLine());
totalmark=totalmark+marksub[i];
}
// 计算学生成绩百分比
stud_percent = totalmark / subnum;
// 显示学生的总分和百分比
Console.WriteLine(" {0} 的最终结果是:", name);
Console.WriteLine("总分数:" + totalmark);
Console.WriteLine("百分比:" + stud_percent);
// 计算学生的等级
if (stud_percent <= 35) {
Console.WriteLine("等级:F");
}
else if (stud_percent >= 34 && stud_percent <= 39) {
Console.WriteLine("等级:D");
}
else if (stud_percent >= 40 && stud_percent <= 59) {
Console.WriteLine("等级:C");
}
else if (stud_percent >= 60 && stud_percent <= 69) {
Console.WriteLine("等级:B");
}
else if (stud_percent >= 70 && stud_percent <= 79) {
Console.WriteLine("等级:B+");
}
else if (stud_percent >= 80 && stud_percent <= 90) {
Console.WriteLine("等级:A");
}
else if (stud_percent >= 91) {
Console.WriteLine("等级:A+");
}
}
}
## 输出结果
```csharp
输入学生的学号:
7
输入学生的姓名:
Cris
输入学科数目:
2
输入第一个科目的分数:
89
输入第二个科目的分数:
77
Cris 的最终结果是:
总分数:166
百分比:83
等级:A
时间复杂度
第一个代码中,学科数目已知,没有循环,数据规模是固定的,所以时间复杂度是O(1)。
第二个代码中,有一个学科数目的数组。所以,在输入学科数目后,循环会N次(N为用户输入的学科数),获取科目分数并将分数加到用户输入的学科数目总和中。因此,时间复杂度是O(N)。现在,我们总结一下文章。
结论
在本文中,我们学习了两种不同的方法编写C#程序,以生成学生的成绩单。一种是已知学科数目,另一种是未知学科数目。因此,我们结束了这篇文章。我们希望本文可以增加您关于C#的知识。