zoukankan      html  css  js  c++  java
  • 面向对象1

      今天,首先我把之前学习的结构体的内容进行了一下复习,通过一个小的实例。

      

    项目要求:
    一、连续输入5个学生的信息,每个学生都有以下4个内容:
    1、序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1,第二个是2,以此类推
    2、学号 - 必填,如:S001,S002... 以此类推
    3、姓名 - 必填
    4、成绩 - 大于等于0,小于等于100

    以上内容必须按照要求填写,请写好相应的验证,如果没填写正确,则重复填写到正确为止

    二、5个学生信息都输入完毕后,按照分数从高到低的顺序将学生信息展示出来
    显示格式如下:

    ==============学生成绩展示=================
    序号 学号 姓名 成绩
    3 S003 张三 100
    1 S001 李四 99
    2 S002 王五 98
    ...
    ...

    class student
    {
    public int number;
    public string code;
    public string name;
    public decimal score;
    }

    //1.添加学生信息
    #region
    ArrayList al=new ArrayList();//放置全部学生信息的集合

    Console.WriteLine("请输入班级人数:");
    int n=int.Parse(Console.ReadLine());
    for (int i = 1; i <= n;i++ )
    {
    student s = new student();
    s.number = i;
    #region 学生学号输入
    while(true)
    {
    Console.WriteLine("请输入第{0}个学生的学号:",i);
    s.code = Console.ReadLine();
    if(s.code=="")
    {
    Console.WriteLine("学号不能为空!");
    }
    else
    {
    break;
    }
    }
    #endregion
    #region 学生姓名输入
    while (true)
    {
    Console.WriteLine("请输入第{0}个学生的姓名:", i);
    s.name = Console.ReadLine();
    if (s.name == "")
    {
    Console.WriteLine("姓名不能为空!");
    }
    else
    {
    break;
    }
    }
    #endregion
    #region 学生成绩输入
    while (true)
    {
    Console.WriteLine("请输入第{0}个学生的成绩:",i);
    try
    {
    s.score = int.Parse(Console.ReadLine());
    if(s.score>=0&&s.score<=100)
    {
    break;
    }
    else
    {
    Console.WriteLine("成绩必须在0~100之间!");
    }
    }
    catch
    {
    Console.WriteLine("成绩输入有误!请输入数字!");
    }
    }
    #endregion
    al.Add(s);
    Console.WriteLine("-----------------------------------------------");
    }
    #endregion
    //2.冒泡排序
    #region 冒泡排序
    for (int i = 0; i < al.Count-1;i++ )
    {
    for (int j = i + 1; j < al.Count;j++ )
    {
    student s1=(student)al[i];
    student s2=(student)al[j];
    if(s1.score<s2.score)
    {
    student zhong=(student)al[i];
    al[i] = al[j];
    al[j] = zhong;
    }
    }
    }
    #endregion
    //3.输出
    #region 打印显示
    Console.WriteLine("==============学生成绩展示===============");
    Console.WriteLine("序号 学号 姓名 成绩");
    for (int i = 0; i < al.Count; i++)
    {
    student ss=(student)al[i];
    Console.WriteLine(ss.number+" "+ss.code+" "+ss.name+" "+ss.score);
    }
    #endregion
    Console.ReadLine();

      接下来,我学习了面向对象的思想。

      面向对象有三大特性:封装性、继承性、多态性。面向对象就是将现实生活中的实际存在的东西,抽象提取成程序中的类,对类进行统一的操作,它都是以“类”为基本单元。

      利用面向对象,可以让程序的结构非常清晰;易于维护,便于功能扩展;让程序更加健壮。

      类主要包括两部分内容:用户定义的成员变量,以及由C#中的函数构成的成员方法。

      我所理解的面向对象是,世间的万事万物都可以将其看为一个对象。假如我们将一个公司看为一个对象,它之下的人事部、销售部、策划部等多个部门都可以看成是其中的类,每一个类负责自己部门相应的职能,各个部门之间相互独立。当某一个部门出现问题时,只需要去找相应的部门即可,其它部门没有任何责任。这样做,避免了很多重复的工作,大大提高了工作的效率。

  • 相关阅读:
    老了老了呜呜呜呜
    我们的焦点在哪里
    visual studio 2010
    饥饿游戏2 影评
    两个极端
    关于怀旧
    进程 线程 碎角料
    拥塞控制
    [zz] 几种类间关系:继承、实现、依赖、关联、聚合、组合及UML实现图
    Markdown 的使用
  • 原文地址:https://www.cnblogs.com/hongsen3/p/5849350.html
Copyright © 2011-2022 走看看