C#控制台程序——打印学生成绩信息表

版权声明:引用请注明作者 https://blog.csdn.net/qq_39072819/article/details/86687611

这里写了一篇简单的控制台程序,用于总结与参考(手动添加学生及录入成绩并且打印成绩表)

所使用到的东西

  • for循环
  • while循环
  • foreach循环
  • List 集合
  • 创建方法
  • 方法重载
  • 方法调用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace @class
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例化
            subject subject = new subject();
            //开始调用方法,这里可以先注释掉table2查看table1
            //subject.table1();
            subject.table2();
        }
    }
    public class subject
    {
        public float Math { set; get; }

        public float English { set; get; }

        public float Chinese { set; get; }

        //提示参考
        //给result赋值需要先给subject的各项赋值
        public void table1()
        {
            Console.WriteLine("*****************************期末成绩表******************************");
            Console.WriteLine("你是老师,现在需要为班级添加学生");


            subject subject1 = new subject();//创建第一组成绩
            subject1.English = 90;
            subject1.Math = 80;
            subject1.Chinese = 70;

            Student student1 = new Student();//创建第一个学生
            student1.stuName = "张三";
            student1.stusex = "男";
            student1.result = subject1;//将第一组成绩赋值给result


            subject subject2 = new subject();//创建第二组成绩
            subject2.English = 80;
            subject2.Math = 90;
            subject2.Chinese = 85;

            Student student2 = new Student();//创建第二个学生
            student2.stuName = "李四";
            student2.stusex = "女";
            student2.result = subject2;//将第二组成绩赋值给result

            //创建一个类型为Student的list集合
            List<Student> students = new List<Student>();
           //给集合添加数据
            students.Add(new Student { stuName = student1.stuName, stusex = student1.stusex, result = student1.result });//这是第一个学生的所有信息
            students.Add(new Student { stuName = student2.stuName, stusex = student2.stusex, result = student2.result });//这是第二个学生的所有信息


            Console.WriteLine("姓名\t性别\t英语\t数学\t语文");//表头

            //循环输出信息
            for (int i = 0; i < students.Count; i++)
            {
                Console.WriteLine(students[i].stuName + "\t" + students[i].stusex + "\t" + students[i].result.English + "\t" + students[i].result.Math + "\t" + students[i].result.Chinese);
            }

            Console.ReadKey();
        }
        //完整方法
        public void table2()
        {
            Console.WriteLine("*****************************期末成绩表******************************");
            Console.WriteLine("你是老师,现在需要为班级添加学生");

            //与上述相同的地方不再赘述
            subject subject = new subject();
            List<Student> students1 = new List<Student>();

            string endstr = "";//匹配输入值
            int num = 1;//定义变量,负责提示学生个数
            //创建while循环,当输入值等于ok时,循环结束,停止创建学生
            while (endstr != "ok")
            {

                Console.WriteLine("请输入第{0}个学生的名字:", num);
                string name = Console.ReadLine();
                Console.WriteLine("请输入{0}的性别:", name);
                string sex = Console.ReadLine();
                students1.Add(new Student { stuName = name, stusex = sex });
                Console.WriteLine("按ok结束输入,继续按空格键");
                string str = Console.ReadLine();
                endstr = str;//重新赋值为当前输入的命令
                num++;
            }
            Console.WriteLine("这是学生信息:");
            //使用foreach循环打印学生的基本信息
            foreach (var item in students1)
            {
                Console.WriteLine(item.stuName + "\t" + item.stusex);
            }



            List<subject> subject2 = new List<subject>();
            //循环添加学生成绩并保存在subject2集合中
            for (int i = 0; i < students1.Count; i++)
            {

                Console.WriteLine("请输入{0}的数学成绩:", students1[i].stuName);
                float math = float.Parse(Console.ReadLine());
                Console.WriteLine("请输入{0}的英语成绩:", students1[i].stuName);
                float english = float.Parse(Console.ReadLine());
                Console.WriteLine("请输入{0}的语文成绩:", students1[i].stuName);
                float chinese = float.Parse(Console.ReadLine());
                subject2.Add(new subject { Math = math, English = english, Chinese = chinese });
            }

            List<Student> students = new List<Student>();
            //for循环将students1的值与subject2的值组合赋值给students
            for (int i = 0; i < students1.Count; i++)
            {
                students.Add(new Student { stuName = students1[i].stuName, stusex = students1[i].stusex, result = subject2[i] });
            }
            Console.WriteLine();
            Console.WriteLine("---------------------------->成绩一览表");

            Console.WriteLine("姓名\t性别\t英语\t数学\t语文\t总分");

            //打印成绩信息表
            for (int i = 0; i < students.Count; i++)
            {
                //调用求和方法并保存在sum中
                float sum = subject.Sum(students[i].result.English, students[i].result.Math, students[i].result.Chinese);
                Console.WriteLine(students[i].stuName + "\t" + students[i].stusex + "\t" + students[i].result.English + "\t" + students[i].result.Math + "\t" + students[i].result.Chinese + "\t" + sum);
            }

            Console.ReadKey();
        }

        //求总分
        public float Sum()//无参
        {
            float sum = 0;
            return sum;
        }
        public float Sum(float a, float b, float c)//重载
        {
            float sum = a + b + c;
            return sum;
        }
    }
    public class Student
    {
        public string stuName { get; set; }
        public string stusex { get; set; }
        public subject result { get; set; }
    }
}

有觉得的需要修改的地方,希望可以提醒一下,大家共同进步。谢谢!

猜你喜欢

转载自blog.csdn.net/qq_39072819/article/details/86687611