• 【C#】上机实验三


    实验1:

    定义一个 TimePeiod 类

    包含: hour , minute , second 

    实现时间的在 时分秒上的加法。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace MyProject
     7 {
     8     class Program
     9     {
    10         static void Main(string[] args)
    11         {
    12             // 显示"08:47:00"
    13             TimePeriod time = new TimePeriod(8, 47, 0);
    14             Console.WriteLine( time );
    15 
    16             // 显示"12:00:00"
    17             time.Hour = 10;
    18             time.Minute = 58;
    19             time.Second = 59;
    20             time.Add_Hour(1);
    21             time.Add_Minute(1);
    22             time.Add_Second(1);
    23             Console.WriteLine( time );
    24 
    25             // 显示"01:02:03"
    26             time.Hour = time.Minute = time.Second = 0;
    27             time.Add_Second( 3600 + 120 + 3 );
    28             Console.WriteLine(time);
    29 
    30             // 显示"Day + 1 , 01:02:03"
    31             time.Hour = time.Minute = time.Second = 0;
    32             time.Add_Second(25 * 3600 + 120 + 3);
    33             Console.WriteLine(time);
    34         }
    35     }
    36     class TimePeriod
    37     {
    38         //类中定义 时,分,秒 3个私有字段
    39         private int hour;
    40         private int minute;
    41         private int second;
    42 
    43         //类中定义3个公有属性 分别对应上述3个字段
    44         public int Hour { get { return hour; } set { hour = value; } }
    45         public int Minute { get { return minute; } set { minute = value; } }
    46         public int Second { get { return second; } set { second = value; } }
    47 
    48         //类中定义3个公有方法分别将时间增加n秒,n分,n时.
    49         public void Add_Hour( int hour)
    50         {
    51             this.hour += hour ;
    52             if( this.hour >= 24)
    53             {
    54                 Console.Write( "Day + {0} ," , this.hour/24 );
    55                 this.hour %= 24;
    56             }
    57         }
    58         public void Add_Minute( int minute)
    59         {
    60             this.minute += minute;
    61             if( this.minute >= 60)
    62             {
    63                 Add_Hour(this.minute / 60);
    64                 this.minute %= 60;
    65             }
    66         }
    67         public void Add_Second( int second)
    68         {
    69             this.second += second;
    70             if( this.second >= 60)
    71             {
    72                 Add_Minute(this.second / 60);
    73                 this.second %= 60;
    74             }
    75         }
    76 
    77         //类中定义3个参数的构造函数,初始化3个私有字段
    78         public TimePeriod( int hour , int minute, int second)
    79         {
    80             this.hour = hour;
    81             this.minute = minute;
    82             this.second = second;
    83         }
    84         public TimePeriod() : this(0, 0, 0) { }
    85 
    86         //类中定义公有方法输出:时,分,秒,3个字段的值
    87         public override string ToString()
    88         {
    89             return string.Format( "{0:d2}:{1:d2}:{2:d2}",hour,minute,second);
    90         }
    91     }
    92 }
    时间类的练习

    实验2:

    实现Shape类,以及Box类的继承以及多态的练习

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 
      6 namespace MyProject
      7 {
      8     class Program
      9     {
     10         static void Main(string[] args)
     11         {
     12             #region 测试Shape类及方法
     13             /*  1、默认构造函数 对Length,breadth进行赋值
     14              *  2、利用属性进行输出后,再利用属性进行赋值
     15              *  3、最后利用ToString 输出对应的对象信息 
     16              */
     17             #endregion
     18 
     19             Shape s1 = new Shape(1, 2);
     20             Console.WriteLine("s1->Length:{0} , breadth:{1}",s1.Length,s1.Breadth);
     21             s1.Length = 3;
     22             s1.Breadth = 4;
     23             Console.WriteLine(s1);
     24 
     25             #region 测试Box类及方法
     26             /*  1、默认构造函数 对Length,breadth,height进行赋值
     27              *  2、利用属性进行输出后,再利用属性进行赋值
     28              *  3、最后利用ToString 输出对应的对象信息 
     29              */
     30             #endregion
     31 
     32             Box b1 = new Box(1, 2, 3);
     33             Console.WriteLine("b1->Length :{0}	breadth :{1}	height :{2}",b1.Length,b1.Breadth,b1.Height);
     34             b1.Length = 3;
     35             b1.Breadth = 4;
     36             b1.Height = 5;
     37             Console.WriteLine(b1);
     38 
     39             #region 测试多态
     40             /*
     41              * 多态体现在,父指针,将子类实例化.
     42              */
     43             #endregion
     44             Shape b2 = new Box(2, 3, 4);
     45             Console.WriteLine(b2);
     46 
     47         }
     48     }
     49     
     50     public class Shape
     51     {
     52         private int length;
     53         private int breadth;
     54 
     55         public int Length { get => length; set => length = value; }
     56         public int Breadth { get => breadth; set => breadth = value; }
     57 
     58         public Shape ( int length , int width)
     59         {
     60             this.Length = length;
     61             this.Breadth = Breadth; 
     62         }
     63         public Shape():this(0, 0) { }
     64         public override string ToString()
     65         {
     66             return string.Format("Shape -> length:{0}	 Breadth:{1}", length, Breadth);
     67         }
     68         #region 主要注释
     69         /*
     70          * 类中的字段属性封装
     71          * 构造函数 : 两参数,零参数
     72          * 重载ToString类
     73          */
     74         #endregion
     75     }
     76 
     77     public class Box : Shape
     78     {
     79         private int height;
     80         public int Height { get => height; set => height = value; }
     81         public Box(int length, int Breadth, int height):base(length, Breadth)
     82         {
     83             this.height = height;
     84         }
     85         public Box() : this(0, 0, 0) { }
     86         public override string ToString()
     87         {
     88             return string.Format("Box -> length:{0}	 breadth:{1}	 height:{2}", Length, Breadth, height);
     89         }
     90         #region Box类
     91         /*
     92          *  Box继承了Shape的所有结构
     93          *
     94          *  1、无法直接访问父类的字段,但可通过"属性"间接访问
     95          *  2、在重载 构造函数时,可以直接调用父类的构造函数实现部分字段的赋值
     96          *  
     97          */
     98         #endregion
     99     }
    100 }
    类及继承练习
  • 相关阅读:
    网页HTML到8.20前
    数据库SQLServer
    构建之法读后感
    VS2013 生成安装文件
    工大助手(自动化部署)
    工大助手(用户名、密码错误提示)
    工大助手(验证码错误提示)
    工大助手(加权成绩计算)
    Wireshark插件编写
    微软认知服务——人脸识别
  • 原文地址:https://www.cnblogs.com/Osea/p/11610843.html
Copyright © 2020-2023  润新知