using System;

abstract class Student { protected string name; protected int age; public static int total; public Student(string name, int age) { this.name = name; this.age = age; total++; } public string Name { get { return name; } } public abstract string Type { get; } public abstract double GetTotalScore(); public virtual string GetInfo() { return string.Format("Name:{0}, {1}, Age is {2}", name, Type, age); } }

class Pupil:Student { protected double score1, score2; public Pupil(string name, int age, double score1, double score2):base(name, age) { this.score1 = score1; this.score2 = score2; } public override string Type { get { return "pupil"; } } public override double GetTotalScore() { return (score1 + score2) / 2; } public override string GetInfo() { return base.GetInfo() + string.Format(", AvgScore:{0:F2};", GetTotalScore()); } }

class Middle:Student { protected double score1, score2, score3; public Middle(string name, int age, double score1, double score2, double score3):base(name, age) { this.score1 = score1; this.score2 = score2; this.score3 = score3; } public override string Type { get { return "middle school student"; } } public override double GetTotalScore() { return (score1 + score2 + score3) / 3; } public override string GetInfo() { return base.GetInfo() + string.Format(", AvgScore:{0:F2};", GetTotalScore()); } }

class College:Student { protected double credit1, credit2; public College(string name, int age, double credit1, double credit2):base(name, age) { this.credit1 = credit1; this.credit2 = credit2; } public override string Type { get { return "college student"; } } public override double GetTotalScore() { return credit1 + credit2; } public override string GetInfo() { return base.GetInfo() + string.Format(", TotalCredits :{0:F2};", GetTotalScore()); } }

class Program { static void Main(string[] args) { Student[] students = new Student[10]; string line; while ((line = Console.ReadLine()) != "0") { string[] items = line.Split(); if (items.Length != 6) continue; int type = int.Parse(items[0]); if (type < 1 || type > 3) continue; string name = items[1]; int age = int.Parse(items[2]); double score1 = double.Parse(items[3]); double score2 = double.Parse(items[4]); double score3 = double.Parse(items[5]); Student s = null; switch (type) { case 1: s = new Pupil(name, age, score1, score2); break; case 2: s = new Middle(name, age, score1, score2, score3); break; case 3: s = new College(name, age, score1, score2); break; } students[Student.total - 1] = s; } for (int i = 0; i < Student.total; i++) { Console.WriteLine("Total number of student:{0}, {1}", Student.total, students[i].GetInfo()); } }

运用C#语言设计一个学生信息管理控制台应用程序实现对小学生、中学生、大学生个人姓名、年龄及考试课程成绩的输入以及平均成绩的统计和显示。功能要求如下:1每个学生都有姓名和年龄。2小学生有语文、数学成绩。3中学生有语文、数学和英语成绩。4大学生有必修课学分总数和选修课学分总数不包含单科成绩。5学生类提供向外输出信息的方法。6学生类提供统计个人总成绩或总学分的方法。7通过静态成员自动记录学生总人数。8能

原文地址: https://www.cveoy.top/t/topic/eN1X 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录