在C#控制台应用程序中,对于一个学生类中的语文、数学和英语成绩,如何创建一个输入函数对

2022-07-25 综合 78阅读

你好,软糖帮你写出来了。

程序代码

class Program {
        public class 学生 {
            public decimal 语文成绩;
            public decimal 数学成绩;
            public decimal 英语成绩;
        }
        static void Main(string[] args) {
            Console.WriteLine("// 输入 x 退出本程序");
            //请用户输入人数,循环直到正确输入
            int 输入的人数 = -1;
            while (输入的人数 < 0) {
                Console.BackgroundColor = ConsoleColor.DarkYellow;
                Console.Write("请输入班级人数:  ");
                Console.BackgroundColor = ConsoleColor.Black;
                string 输入内容 = Console.ReadLine();
                if (输入内容.Trim(' ').ToLower() == "x") { Environment.Exit(0); }
                if (输入内容.Trim(' ').ToLower() == "") { continue; }
                输入的人数 = 判断人数是否合法(输入内容);
            }
            int 班级人数 = 输入的人数;
            //创建学生数组,并循环输入每个学生的各科成绩
            学生[] 学生 = new 学生[班级人数];
            for (int i = 0; i < 班级人数; i++) {
                Console.BackgroundColor = ConsoleColor.DarkGreen;
                Console.WriteLine("【开始输入 第 {0} 号学生的 各科成绩】", i + 1);
                Console.BackgroundColor = ConsoleColor.Black;
                学生[i] = new 学生();
                学生[i].语文成绩 = 输入并获取成绩(i + 1, "语文");
                学生[i].数学成绩 = 输入并获取成绩(i + 1, "数学");
                学生[i].英语成绩 = 输入并获取成绩(i + 1, "英语");
            }
            //输入完毕提示
            Console.BackgroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine("班级 {0} 人的各科成绩录入完毕!  ", 班级人数);
            Console.BackgroundColor = ConsoleColor.Black;
            //等待按任意键退出
            Console.BackgroundColor = ConsoleColor.DarkCyan;
            Console.Write("按任意键退出...");
            Console.ReadKey();
        }
        static decimal 输入并获取成绩(int 学号, string 学科名称) {
            bool 正确的输入 = false;
            decimal 获取成绩 = 0;
            while (!正确的输入) {
                Console.Write("请输入第 {0} 号学生的{1}成绩:", 学号, 学科名称);
                string 输入内容 = Console.ReadLine();
                if (输入内容.Trim(' ').ToLower() == "x") { Environment.Exit(0); }
                if (输入内容.Trim(' ').ToLower() == "") { continue; }
                正确的输入 = 判断成绩是否合法(输入内容, out 获取成绩);
            }
            Console.WriteLine("录入 {0} 号{1}成绩 {2} 分。", 学号, 学科名称, 获取成绩);
            return 获取成绩;
        }
        static int 判断人数是否合法(string 输入内容) {
            int 返回值;
            bool 是数字 = int.TryParse(输入内容, out 返回值);
            if (是数字 == false)                 //转换数字失败就再次请求输入正确值。
            { Console.WriteLine("报告老师,这个小伢输个数字都输错!!!!"); return -1; } else if (返回值 <= 0) { Console.WriteLine("人数为零或负数!都是鬼吗!"); return -1; } else if (返回值 > 200) { Console.WriteLine("人数超过了200!?这是班级还是年级???"); return -1; }
            return 返回值;
        }
        static bool 判断成绩是否合法(string 输入内容, out decimal 数值) {
            bool 是数字 = decimal.TryParse(输入内容, out 数值);
            if (是数字 == false)                 //转换数字失败就再次请求输入正确值。
            {
                Console.WriteLine("报告老师,这个小伢输个数字都输错!!!!");
                return false;
            }
            else if (数值 < 0) {
                Console.WriteLine("叫你好好学习!居然连负分数都出来了!");
                return false;
            }
            else if (数值 > 150) {
                Console.WriteLine("你这是神马奇葩试卷,分数超过了150!?");
                return false;
            }
            return true;
        }
    }
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com