定义class,对数组降序输出

C#定义一个class,如何对数组降序输出

实验内容:要求输入自定义的数目学生的姓名,性别,身高,体重,然后按身高降序输出。

using System;

namespace 简单的class使用
{
     class Student
    {
        public int sxuhao;
        public string sname;
        public string ssex;
        public double shight;
        public double sweight; 

        public void AddData(string name,string sex,double hight,double weight)//添加数据方法
        {
            sname = name;
            ssex = sex;
            shight = hight;
            sweight = weight;
        }


    }
     class Program
     {
        //struct Student
        //{
        //    public int xuhao;
        //    public string name;
        //    public string sex;
        //    public double hight;
        //    public double weight;
        //}
        static void Main(string[] args)
         {
            int i, j;
            string name=null, sex=null;
            double hight=0, weight=0;
            Student x = new Student();//类名后面的“()”提供初始化列表,这实际上就是提供给构造函数的参数,系统根据这个初始化列表的参数个数、类型和顺序调用不同的重载版本,           
            Console.Write("请输入班级人数:");
            int num = int.Parse(Console.ReadLine());//从控制台接受学生人数并且转换成int类型
            Student[] stu = new Student[num];//根据学生总人数动态创建对象
            for (i = 0; i < num; i++)//对Student类的对象数组进行初始化
                stu[i] = new Student();
            for (i = 0; i < num; i++)
            {
                //Console.WriteLine("请输入第{0}个学生姓名: ",i+1);
                //name = Console.ReadLine();
                //Console.WriteLine("请输入第{0}个学生性别: ",i+1);
                //sex = Console.ReadLine();
                x.sxuhao = i + 1;
                for (; ; )//输入姓名,并且判断错误
                {
                    Console.Write("请输入第{0}个学生的姓名:", i + 1);
                    name = Console.ReadLine();
                    if (name != "")
                    {
                        x.sname = name;
                        break;
                    }
                    else
                    {
                        Console.WriteLine("输入姓名不能为空,请重新输入!");
                        continue;
                    }
                }
                for (; ; )//输入性别,并且判断错误
                {
                    Console.Write("请输入第{0}个学生的性别:", i + 1);
                    sex = Console.ReadLine();
                    if (sex != "")
                    {
                        x.ssex = sex;
                        break;
                    }
                    else
                    {
                        Console.WriteLine("输入性别不能为空,请重新输入!");
                        continue;
                    }
                }
                for (; ; )//输入身高,并且异常处理
                {
                    Console.Write("请输入第{0}个学生的身高:", i + 1);
                    try
                    {
                        hight = double.Parse(Console.ReadLine());
                        if (hight >= 0)
                        {
                            x.shight = hight;
                            break;
                        }
                    }
                    catch
                    {
                        Console.WriteLine("身高输入有误!");
                        continue;
                    }
                }
                for (; ; )
                {
                    Console.Write("请输入第{0}个学生的体重:", i + 1);
                    try
                    {
                        weight = Convert.ToDouble(Console.ReadLine());
                        if (weight > 0)
                        {
                            x.sweight = weight;
                            break;
                        }
                    }
                    catch
                    {
                        Console.WriteLine("体重输入有误!");
                    }
                }
                stu[i].AddData(name, sex, hight, weight);//将当前输入的学生信息存入对象数组内
            }
            for (i = 0; i < stu.Length - 1; i++)//根据身高排序
            {
                for (j = i + 1; j < stu.Length; j++)
                {
                    Student s1 = (Student)stu[i];
                    Student s2 = (Student)stu[j];
                    if (s1.shight < s2.shight)
                    {
                        Student zjz = (Student)stu[i];
                        stu[i] = stu[j];
                        stu[j] = zjz;
                    }
                }
            }
            Console.WriteLine("==============学生信息展示=================");
            Console.WriteLine("姓名" + "\t" + "性别" + "\t" + "身高" + "\t" + "体重" + "\t");
            for (i = 0; i < stu.Length; i++)//输出表格
            {
                Console.WriteLine(stu[i].sname + "\t" + stu[i].ssex + "\t" + stu[i].shight + "\t" + stu[i].sweight);
               // Console.WriteLine(((Student)[i]).sxuhao + "\t" + ((Student)al[i]).sname + "\t" + ((Student)stu[i]).ssex + "\t" + ((Student)al[i]).shight + "\t" + ((Student)al[i]).sweight);
            }

            Console.ReadLine();
        }
     } 
} 
实验结果
![实验结果](https://img-blog.csdnimg.cn/20210419230117640.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ4NjA3MTYx,size_16,color_FFFFFF,t_70#pic_center)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中定义class(类)的关键字为class,其后需要紧跟着类名,并使用冒号(:)表示类定义的开始。紧接着类名的下一行通常是类的说明(docstring)。 在类定义中,可以定义类的属性和方法。属性即类的变量,可以是类变量(在所有实例中共享)或实例变量(每个实例单独拥有)。方法即类的函数,可以是类方法(与类绑定,可以通过类名调用)或实例方法(与实例绑定,只能通过实例调用)。 实现一个最基本的类,需要在类的定义中实现__init__(构造函数)方法。__init__方法用于初始化类实例的属性。在__init__方法中,需要定义一个self参数,它在类的实例化过程中被自动传递,并代表实例本身。通过self可以实现对实例变量的访问。 为了方便类外部使用类的方法,Python提供了@property修饰符,它可以将一个方法转换成一个只读属性,这样外部代码就可以通过调用属性的方式访问方法的返回值了。 例如,实现一个简单的人类(Person)类: ```python class Person: def __init__(self, name): self.name = name @property def hello(self): return f"Hello, my name is {self.name}." ``` 上述代码定义了一个Person类,其中__init__方法用于初始化Person实例的name属性,hello方法用于返回Person实例的问候语。使用@property修饰符将hello方法转换成了只读属性。这样,就可以通过以下方式使用这个类: ```python p = Person("Tom") print(p.hello) # 输出 "Hello, my name is Tom." ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

の月光の

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值