c#控制台程序编程题!求答案 谢谢!

2025-03-26 15:46:43
推荐回答(1个)
回答1:

using System;
using System.IO;
using System.Collection.Generic;
using System.Linq;

class Program
{
public static void Main(string[] args)
{
int classStudentCounts = 0;
List classStudentScores = new List();
// -- 读取班级总人数部分
string _classStudentCounts;
do
{
do

{
Console.Write(_classStudentCounts != null ? "请输入班级总人数:" : "请重新输入班级总人数:(格式:"[+]正整数",范围:1 ~ 200)");
_classStudentCounts = Console.ReadLine();
} while(String.IsNullOrWhiteSpace(_classStudentCounts) || !Regex.IsMatch(@"%s*[+]?%d+%s*", _classStudentCounts);
classStudentCounts = int.Parse(_classStudentCounts.Trim());
} while(0 == classStudentCounts > 200);
// -- 读取班级所有学生分数部分
string _classStudentScore;
for(int i = 0; i < classStudentCounts; ++i)
{
do
{
do
{
Console.Write(_classStudentScore != null ? "请输入第 {0} 位班级学生的分数:" : "请重新输入第 {0} 位班级学生的分数:(格式:"[+]正整数",范围:0 ~ 100)", i + 1);
_classStudentScore = Console.ReadLine();
} while(String.IsNullOrWhiteSpace(_classStudentScore) || !Regex.IsMatch(@"%s*[+]?%d+%s*", _classStudentScore);
classStudentScores.Add(int.Parse(_classStudentScore.Trim()));
} while(classStudentScores[i] > 100);
}
// -- 输出班级学生分数相关信息部分
Console.WriteLine("全班最高分:{0}", classStudentScores.Max());
Console.WriteLine("全班最低分:{0}", classStudentScores.Min());
Console.WriteLine("分数为 0 ~ 59 范围总人数:{0}({1}%)", classStudentScores.Count((item) => { 0 <= item <= 59; }), classStudentScores.Count((item) => { 0 <= item <= 59; }) / classStudentScores.Count * 100);
Console.WriteLine("分数为 60 ~ 69 范围总人数:{0}({1}%)", classStudentScores.Count((item) => { 60 <= item <= 69; }), classStudentScores.Count((item) => { 60 <= item <= 69; }) / classStudentScores.Count * 100);

Console.WriteLine("分数为 70 ~ 79 范围总人数:{0}({1}%)", classStudentScores.Count((item) => { 70 <= item <= 79; }), classStudentScores.Count((item) => { 70 <= item <= 79; }) / classStudentScores.Count * 100);

Console.WriteLine("分数为 80 ~ 89 范围总人数:{0}({1}%)", classStudentScores.Count((item) => { 80 <= item <= 89; }), classStudentScores.Count((item) => { 80 <= item <= 89; }) / classStudentScores.Count * 100);

Console.WriteLine("分数为 90 ~ 100 范围总人数:{0}({1}%)", classStudentScores.Count((item) => { 90 <= item <= 100; }), classStudentScores.Count((item) => { 90 <= item <= 100; }) / classStudentScores.Count * 100);

}
}