• 【C#】上机实验六


    1. 定义Car类,练习Lambda表达式拍序
    (1)Car类中包含两个字段:name和price;
    (2)Car类中包含相应的属性、构造函数及ToString方法;
    (3)在Main方法中定义Car数组,并实例化该数组;
    (4)在Main方法中,按姓名排序输出Car数组所有元素。
    (5)在Main方法中,先按姓名后按价格排序输出Car数组所有元素。
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace Myproject
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             Car[] cars = new Car[4];
    14 
    15             cars[0] = new Car("B", 80);
    16             cars[1] = new Car("A", 90);
    17             cars[2] = new Car("C", 70);
    18             cars[3] = new Car("b", 80);
    19 
    20             List<Car> List_Car = new List<Car> { cars[0], cars[1], cars[2] ,cars[3] };
    21             Console.WriteLine( "待排序序列 :");
    22             foreach (var item in List_Car )
    23             {
    24                 Console.WriteLine(item);
    25             }
    26 
    27             List_Car.Sort((u, v) =>
    28             {
    29                int t = u.Price - v.Price;
    30                if (t == 0)
    31                {
    32                    return u.Name.CompareTo(v.Name);
    33                }
    34                else
    35                {
    36                    return -t;
    37                }
    38             });
    39 
    40             Console.WriteLine("已排序序列 :");
    41             foreach (var item in List_Car)
    42             {
    43                 Console.WriteLine(item);
    44             }
    45 
    46         }
    47     }
    48     class Car
    49     {
    50         string name;
    51         int price;
    52 
    53         public string Name { get { return name; } set { name = value; } }
    54         public int Price { get { return price; } set { price = value; } }
    55 
    56         public Car (string name ,int price)
    57         {
    58             this.name = name;
    59             this.price = price; 
    60         }
    61         public Car() : this("", 0) { }
    62 
    63         public override string ToString()
    64         {
    65             return string.Format("{0} : {1}",name ,price );
    66         }
    67 
    68     }
    69 }
    Lambda表达式排序
      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 namespace CarCode
      6 {
      7     class Program
      8     {
      9         static void Main(string[] args)
     10         {
     11             Console.WriteLine("Hello World!");
     12 
     13             Car[] car = new Car[5];
     14             car[0] = new Car("A", 90);
     15             car[1] = new Car("S", 100);
     16             car[2] = new Car("B", 80);
     17             car[3] = new Car("c", 80);
     18             car[4] = new Car("b", 80);
     19 
     20             Console.WriteLine("++++++++++++++");
     21             foreach (var item in car)
     22             {
     23                 Console.WriteLine(item);
     24             }
     25 
     26 
     27             Console.WriteLine("++++++++++++++");
     28             car = car.OrderBy(rhs => rhs.Name).ToArray<Car>();
     29             foreach (var item in car)
     30             {
     31                 Console.WriteLine(item);
     32             }
     33 
     34 
     35 
     36             Console.WriteLine("++++++++++++++");
     37             car = car.OrderBy(rhs => rhs.Price).ThenBy(rhs => rhs.Name).ToArray<Car>();
     38             foreach (var item in car)
     39             {
     40                 Console.WriteLine(item);
     41             }
     42 
     43 
     44             Console.WriteLine("++++++++++++++");
     45             Array.Sort(car, 0, 5);
     46             foreach (var item in car)
     47             {
     48                 Console.WriteLine(item);   
     49             }
     50         }
     51     }
     52     public class Car : IComparable
     53     {
     54         string name;
     55         int price;
     56 
     57         public string Name { get => name; set => name = value; }
     58         public int Price { get { return price; } set { price = value; } }
     59 
     60         public Car(){
     61             name = "";
     62             price = 0;
     63         }
     64 
     65         public Car(string N, int P){
     66             name = N;
     67             price = P;
     68         }
     69 
     70         public override string ToString()
     71         {
     72             return string.Format("{0} : {1}", name, price);
     73         }
     74 
     75         public int CompareTo( object obj)
     76         {
     77             int r = 0; 
     78             if( obj == null)
     79             {
     80                 return r;
     81             }
     82 
     83             Car rhs = obj as Car;
     84             if (rhs == null)
     85             {
     86                 throw new ArgumentException("Object is not a Car");
     87             }
     88             else
     89             {
     90                 r = this.price.CompareTo(rhs.price);
     91                 if (r == 0)
     92                 {
     93                     return this.name.CompareTo(rhs.name);
     94                 }
     95                 else
     96                 {
     97                     return r;
     98                 }
     99             }
    100         }
    101     }
    102 }
    Lambda表达式
    2. 将下方给定的字符串根据分隔符拆分成字符串数组,
    数组每个元素均为一个单词。将该字符串数组按升序排序,
    并输出该字符串数组的内容。
        With Microsoft Azure, you have a gallery of 
    open source options. Code in Ruby, Python, Java, PHP, 
    and Node.js. Build on Windows, iOS, Linux, and more.
     
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace Myproject2
     7 {
     8     class Program
     9     {
    10         static void Main(string[] args)
    11         {
    12             string str = "With Microsoft Azure, you have a gallery of open source options. Code in Ruby, Python, Java, PHP, and Node.js. Build on Windows, iOS, Linux, and more.";
    13             string[] s = str.Split(new char[] { ',', ' ', '.' }, StringSplitOptions.RemoveEmptyEntries);
    14             
    15             int len = s.Length ;
    16             List<string> s_List = new List<string>(s);
    17 
    18             Console.WriteLine("待排序的字符串");
    19             foreach (var item in s_List)
    20             {
    21                 Console.WriteLine(item);
    22             }
    23 
    24             s_List.Sort((u, v) => {
    25                 return u.CompareTo(v);
    26             });
    27             Console.WriteLine("已排序好的字符串");
    28             foreach (var item in s_List)
    29             {
    30                 Console.WriteLine(item);
    31             }
    32         }
    33     }
    34 }
    String排序
    3、设计一个控制台应用程序,使用泛型类集合List<T>存储一周七天,并实现添加、排序,插入、删除、输出集合元素。具体要求如下:
    (1)创建一个空的List<string>,并使用Add方法添加一些元素。
    (2)测试List<string>的Count属性和Capacity属性。
    (3)使用Contains方法测试元素是否存在。
    (4)测试Insert的功能,将元素插入到List<string>中的指定索引处。
    (5)利用索引检索List<string>中的元素。
    (6)测试Remove的功能,删除List<string>中的元素。
    (7)遍历List<string>中的所有元素。
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace Myproject3
     7 {
     8     class Program
     9     {
    10         static void Main(string[] args)
    11         {
    12             //创造一个空的List
    13             List<string> list = new List<string> ();
    14             
    15             //测试Add
    16             list.Add("Monday");
    17             list.Add("Tuesday");
    18             list.Add("Wednesday");
    19             list.Add("Thursday");
    20             list.Add("Friday");
    21             list.Add("Saturday");
    22             list.Add("Sunday");
    23 
    24             //测试Count,Capacity属性 
    25             
    26             Console.WriteLine("Count : {0} , Capacity :{1}",list.Count ,list.Capacity);
    27             Console.WriteLine("
    ---------
    ");
    28 
    29 
    30             //测试Contain
    31             if( list.Contains("Monday") ){
    32                 Console.WriteLine("# # Monday # #");
    33             }
    34             if( !list.Contains("D") ){
    35                 Console.WriteLine("Not exists D");
    36             }
    37             Console.WriteLine("
    ---------
    ");
    38 
    39 
    40             //测试Insert(Index , "string" )
    41             list.Insert(1,"{M} ### {T}");
    42             foreach (var item in list)
    43             {
    44                 Console.Write("{0} ",item);
    45             }
    46             Console.WriteLine();
    47             Console.WriteLine("
    ---------
    ");
    48 
    49 
    50             //测试list[index]
    51             Console.WriteLine("Index {0}: {1}",list.IndexOf(list[4]),list[4]);
    52             Console.WriteLine("
    ---------
    ");
    53 
    54 
    55             //测试Remove
    56             list.Remove("{M} ### {T}");
    57 
    58 
    59             //遍历所有元素
    60             foreach (var item in list)
    61             {
    62                 Console.Write("{0} ", item);
    63             }
    64             Console.WriteLine();
    65             Console.WriteLine("
    ---------
    ");
    66 
    67         }
    68     }
    69 }
    集合List
    4、设计一个控制台应用程序,模拟管理车牌相关信息,
    例如姓名和车牌号码,能够添加、修改、查找、删除、输出车牌信息。
    (使用Dictionary<>类完成)
      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 using System.Threading.Tasks;
      6 
      7 namespace Myproject
      8 {
      9     class Program
     10     {
     11         static void Main(string[] args)
     12         {
     13             Dictionary<string, string> dict = new Dictionary<string, string>();
     14 
     15             while (true)
     16             {
     17                 Show_Mean();
     18                 int opt = int.Parse(Console.ReadLine());
     19                 switch (opt)
     20                 {
     21                     case 1: Add(dict); break;
     22                     case 2: Modify(dict); break;
     23                     case 3: Find(dict); break;
     24                     case 4: Delete(dict); break;
     25                     case 5: Show_Car(dict); break;
     26                     default: break;
     27                 }
     28                 Console.WriteLine("---请按回车键继续---");
     29                 string t = Console.ReadLine();
     30                 Console.Clear();
     31             }
     32         }
     33         
     34         public static void Add(Dictionary<string, string> dict)
     35         {
     36             Console.WriteLine("请输入车牌号");
     37             string key = Console.ReadLine();
     38 
     39             Console.WriteLine("请输入车主姓名");
     40             string value = Console.ReadLine();
     41 
     42             dict.Add(key, value);
     43             Console.WriteLine("Succsee add :({0} , {1})",key,value);
     44         }
     45         public static void Modify(Dictionary<string, string> dict)
     46         {
     47             Console.WriteLine("请输入车牌号码");
     48             string key = Console.ReadLine();
     49             
     50             if( dict.ContainsKey(key) )
     51             {
     52                 Console.WriteLine("请输入车主信息");
     53                 string value = Console.ReadLine();
     54                 dict[key] = value;
     55                 Console.WriteLine("Succsee Modify :({0} , {1})", key, value);
     56             }
     57             else
     58             {
     59                 Console.WriteLine("无法查询到对应的车牌号.");
     60             }
     61             
     62         }
     63         public static void Find(Dictionary<string, string> dict)
     64         {
     65             Console.WriteLine("请输入车牌号");
     66             string key = Console.ReadLine();
     67             if( dict.ContainsKey(key))
     68             {
     69                 Console.WriteLine(dict[key]);
     70             }
     71             else
     72             {
     73                 Console.WriteLine("无法查询到对应的车牌号.");
     74             }
     75         }
     76         public static void Delete(Dictionary<string, string> dict)
     77         {
     78             Console.WriteLine("请输入车牌号");
     79             string key = Console.ReadLine();
     80             if (dict.ContainsKey(key))
     81             {
     82                 dict.Remove(key);
     83                 Console.WriteLine("Key {0} Delete",key);
     84             }
     85             else
     86             {
     87                 Console.WriteLine("无法查询到对应的车牌号.");
     88             }
     89         }
     90         public static void Show_Car(Dictionary<string, string> dict)
     91         {
     92             foreach (KeyValuePair<string,string>item in dict)
     93             {
     94                 Console.WriteLine("车牌号 :{0} , 车主信息 :{1}",item.Key,item.Value);
     95             }
     96         }
     97         public static void Show_Mean()
     98         {
     99             //Console.Clear();
    100             Console.WriteLine("##### 车牌管理系统 #####");
    101             Console.WriteLine("1.添加车牌号");
    102             Console.WriteLine("2.修改车牌号");
    103             Console.WriteLine("3.查找车牌号");
    104             Console.WriteLine("4.删除车牌号");
    105             Console.WriteLine("5.输出车牌信息");
    106 
    107         }
    108     }
    109     
    110 }
    Dictionary-汽车
  • 相关阅读:
    LeetCode OJ combine 3
    LeetCode OJ 229. Majority Element II
    Install Qualcomm Development Environment
    更改 terminal 開啟時,預設的路徑
    Establishing Android Build Environment
    Definition vs declaration
    declaration specifier, declarator, type specifier
    echo
    sed
    電路板上的 0Ω 電阻作用
  • 原文地址:https://www.cnblogs.com/Osea/p/11765493.html
Copyright © 2020-2023  润新知