黑马程序员技术交流社区

标题: 这道题你们是怎么做的?我感觉我做的不对, 分享下吧 [打印本页]

作者: 乔利柱    时间: 2012-10-21 20:07
标题: 这道题你们是怎么做的?我感觉我做的不对, 分享下吧
本帖最后由 乔利柱 于 2012-10-24 13:20 编辑

班级学生总成绩和平均成绩计算:      1)让用户输入班级人数
      2)让用户依次输入该班级每个学员的姓名和成绩(0-100之间)
      3)按成绩进行排序,按成绩由高到低依次输出学生的姓名和成绩

作者: 许庭洲    时间: 2012-10-21 21:30
本帖最后由 许庭洲 于 2012-10-21 21:41 编辑


作者: 汪书凯    时间: 2012-10-21 21:48
我是用面向对象做的也能实现你看看。不懂的话问我
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace test9
{
    class Program
    {/*班级学生总成绩和平均成绩计算:

      1)让用户输入班级人数

      2)让用户依次输入该班级每个学员的姓名和成绩(0-100之间)

      3)按成绩进行排序,按成绩由高到低依次输出学生的姓名和成绩

*/
        static void Main(string[] args)
        {
            Console.WriteLine("请输入班级人数");
            int num = Convert.ToInt32(Console.ReadLine());//接收你输入的班级人数
            ArrayList students = new ArrayList();//创建一个动态数组来存储学生对象
            for (int i = 0; i < num; i++)//循环接收
            {
                student st = new student();//实例化一个student对象
                Console.WriteLine("请输入姓名");
                st.Name = Console.ReadLine();//给它的名字属性赋值
                Console.WriteLine("请输入成绩");
                st.Grade1 = Convert.ToInt32(Console.ReadLine());//给它的成绩属性赋值

                students.Add(st);//把对象依次填入到动态数组中

            }
            myEmployeeCompare EmployeeCompare = new myEmployeeCompare();//实例化 myEmployeeCompare类
            students.Sort(EmployeeCompare);//用arraylist.sort方法进行排序
            foreach (object stun in students)//遍历动态数组输出其中对象的值
            {
                student stuforeach = (student)stun;//利用多态实现对象的转换
                Console.WriteLine("{0}{1}", stuforeach.Name, stuforeach.Grade1);//输出名字和成绩
            }


        }
        private class myEmployeeCompare : System.Collections.IComparer//Comparer实现接口System.Collections.IComparer 该接口只有一个成员函数需要实现。
        {
            public int Compare(object x, object y)
            {
                return ((student)y).Grade1 - ((student)x).Grade1;//指定排序的规则是按哪一个数据按哪一个规则进行排序
            }
        }
    }

}
//你用的话要自己在建一个student类我是这样写的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test9
{
  public   class student
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        private int Grade;

        public int Grade1
        {
            get { return Grade; }
            set { Grade = value; }
        }
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2