用字典实现学生信息的录入及按成绩排序输出

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 学生信息录入及排序
{
    class Program
    {//用字典实现学生 信息的录入,然后按成绩从高到低排序输出.
        static void Main(string[] args)
        {
            //定义一个字典用于存储学生的姓名和成绩。
            Dictionary<string, int> dic = new Dictionary<string, int>();
            int Num, score;
            string name;
            Console.Write("请输入学生人数:");
            //用户输入的不是数字则要求重新输入。
            while (!int.TryParse(Console.ReadLine(), out Num))
            {
                Console.Write("输入不正确,请重新输入:");
            }
            //根据用户输入的学生人数一次让用户输入姓名和成绩
            for (int i = 1; i <= Num; i++)
            {
                Console.Write("请输入第{0}/{1}个学生姓名:", i, Num);
                name = Console.ReadLine();
                Console.Write("请输入第{0}/{1}个学生成绩:", i, Num);
                // 如果输入不是数字且不在1-100之间则要求用户从新输入。
                while (!int.TryParse(Console.ReadLine(), out score) || score > 100 || score < 0)
                {
                    Console.Write("输入有误,请重新输入第{0}/{1}个学生的成绩:", i, Num);
                }
                //将学生成绩加入字典集合。
                dic.Add(name, score);
            }
            //将学生信息按照学生成绩从高到低进行排序。
            var r = from p in dic orderby p.Value descending select p;
            Console.WriteLine("学生信息如下:");
            //打印输入排序后学生信息。
            foreach (var i in r)
            {
                Console.WriteLine("姓名:{0},成绩:{1}", i.Key, i.Value);
            }
            Console.ReadKey();
        }
    }
}

 

posted @ 2012-10-17 14:30  duguao  阅读(1011)  评论(0编辑  收藏  举报