C# 程序生成学生成绩单
csharpserver side programmingprogramming更新于 2025/9/18 8:49:00
简介
有很多方法可以为学生生成成绩单。今天我们将学习其中一种。在本文中,我们将学习一个 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("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+");
}
}
}
输出
输入学生的学号: 7 输入学生姓名: Leo 输入第一门科目的成绩: 10 输入第二门科目的成绩: 30 输入第三门科目的成绩: 21 输入第四门科目的成绩: 7 输入第五门科目的成绩: 11 Leo 的最终成绩为: 总分:79 百分比:15.8 Grade : F
现在还有另一种方法,如果科目数量不固定,并且随着每个学生而变化,那么我们可以使用数组的概念。
示例
// C# 程序生成学生的成绩单
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class tpt{
static void Main(string[] args) {
// 声明变量以收集不同数据
int rollnum, subnum, totalmark=0;
int[] marksub=new int[25];
// 声明百分比变量
float stud_percent;
// 声明字符串变量以存储学生姓名
string name;
// 获取学生的学号
Console.WriteLine("输入学生的学号:");
rollnum = Convert.ToInt32(Console.ReadLine());
// 获取学生的姓名
Console.WriteLine("输入学生的姓名:");
name = Console.ReadLine();
// 获取科目数
Console.WriteLine("输入科目数:");
subnum = Convert.ToInt32(Console.ReadLine());
//获取学生的科目分数
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("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+");
}
}
}
输出
输入学生的学号: 7 输入学生姓名: Cris 输入科目数: 2 输入 1 门科目的分数: 89 输入 2 门科目的分数: 77 Cris 的最终成绩为: 总分:166 百分比:83 Grade:A
时间复杂度
第一个已知科目数的代码没有循环,数据大小固定,因此时间复杂度为 O(1)。
第二个代码有一个用于存储科目数的数组。因此,输入科目数后,循环运行以获取科目的分数并将其添加到用户输入的科目数中,即 n 次。因此,时间复杂度为 O(N)。现在,让我们总结一下这篇文章。
结论
在本文中,我们学习了编写一个 C# 程序,以两种不同的方式生成学生的成绩单。一种是已知科目数,另一种是未知科目数。因此,我们以此结束本文。我们希望本文能增强您对 C# 的了解。

