zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#编程基础第七章:面向对象编程

c#基础编程 面向对象编程 第七章
2023-09-14 09:07:50 时间

一、类与对象

类是对象的抽象(学生),对象是类的实例(张三),万物皆为对象。类是泛指,对象是特指。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;

namespace ConsoleApplication19
{
    /// <summary>
    /// 学生类
    /// </summary>

    public class Student
    {
        public string name;  //姓名
        public int age;   //年龄
        //方法
        public void show()
        {
            Console.WriteLine("大家好,我是"+name+",年龄"+age);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //对象,实例化一个对象
            Student cht = new Student();
            cht.name = "曹桓滔";  //设置属性值
            cht.age = 16;
            cht.show();  //调用对象中的方法

            Student wx = new Student();
            wx.name = "王夕";
            wx.age = 17;
            wx.show();

            Console.WriteLine(wx.name);

            //学生集合
            List<Student> students = new List<Student>();
            students.Add(cht);  //将学生对象添加到集合中
            students.Add(wx);
            foreach (var s in students)  //遍历
            {
                s.show();
            }
        }
    }
}

二、集合

集合是特定的数据结构,数组是集合。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication20
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建集合对象
            List<int> ids = new List<int>();
            //向集合中添加元素
            ids.Add(198);
            ids.Add(975);
            ids.Add(177);
            //取出元素
            Console.WriteLine(ids[1]);
            //移除
            ids.Remove(975);  //根据对象删除
            ids.RemoveAt(0);  //根据索引删除
            //全部取出,遍历
            foreach (var item in ids)
            {
                Console.WriteLine(item);
            }
        }
    }
}

 输出结果:

三、图书管理

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication21
{
    /// <summary>
    /// 图书类
    /// </summary>
    public class Book
    {
        public int id;  //编号
        public string name;  //名称
        public double price;  //价格

        public void Show()
        {
            Console.WriteLine(id + "\t\t" + name + "\t\t" + price);
        }

    }


    class Program
    {
        static void Main(string[] args)
        {
            List<Book> books = new List<Book>();

            Book book1 = new Book();
            book1.id = 1;
            book1.name = "C#编程";
            book1.price = 78.5;
            books.Add(book1);

            Book book2 = new Book();
            book2.id = 2;
            book2.name = "Java编程";
            book2.price = 65.9;
            books.Add(book2);

            Book book3 = new Book();
            book3.id = 3;
            book3.name = "Python编程";
            book3.price = 99.7;
            books.Add(book3);

            Console.Write("请输入图书名称:");
            String name = Console.ReadLine();
            foreach (var item in books)
            {
                if (item.name == name)
                {
                    Console.WriteLine("--------------------------------查找--------------------------------");
                    item.Show();
                }
            }

            Console.Write("请输入要删除的图书名称:");
            name = Console.ReadLine();
            foreach (var item in books)
            {
                if (item.name == name)
                {
                    Console.WriteLine("--------------------------------删除--------------------------------");
                    books.Remove(item);
                    break;
                }
            }

            Console.Write("请输入要修改的图书名称:");
            name = Console.ReadLine();
            foreach (var item in books)
            {
                if (item.name == name)
                {
                    Console.Write("请输修改后图书名称:");
                    string newname = Console.ReadLine();
                    item.name = newname;
                    Console.Write("请输修改后图书价格:");
                    double price =Convert.ToDouble(Console.ReadLine());
                    item.price = price;
                    break;
                }
            }

            Console.WriteLine("--------------------------------展示所有--------------------------------");
            foreach (var item in books)
            {

                item.Show();
            }



        }
    }
}

 四、汽车管理系统示例

4.1、添加汽车类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}",id,name);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

 4.2、菜单定义

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}",id,name);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            Menu();
        }

        public static int Menu()
        {
            Console.WriteLine("******************************************");
            Console.WriteLine("汽车管理系统");
            Console.WriteLine("1、添加汽车");
            Console.WriteLine("2、修改汽车");
            Console.WriteLine("3、查询汽车");
            Console.WriteLine("4、删除汽车");
            Console.WriteLine("5、打印列表");
            Console.WriteLine("6、退出系统");
            Console.WriteLine("******************************************");
            Console.Write("请选择(1-6):");
            return Convert.ToInt32(Console.ReadLine());
        }
    }
}

 4.3、响应菜单 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}", id, name);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            int index;
            do
            {
                index = Menu();
                if (index == 1)
                {
                    Console.WriteLine("添加汽车");
                }
                else if (index == 2)
                {
                    Console.WriteLine("修改汽车");
                }
                else if (index == 3)
                {
                    Console.WriteLine("查询汽车");
                }
                else if (index == 4)
                {
                    Console.WriteLine("删除汽车");
                }
                else if (index == 5)
                {
                    Console.WriteLine("打印列表");
                }
                else if (index == 6)
                {
                    Console.WriteLine("退出系统");
                    break;
                }
                else
                {
                    Console.WriteLine("输入错误");
                }
                Console.WriteLine("按任意键继续....");
                Console.ReadLine();
            } while (index != 6);  //不为6就继续
        }

        public static int Menu()
        {
            Console.Clear();  //清屏
            Console.WriteLine("******************************************");
            Console.WriteLine("汽车管理系统");
            Console.WriteLine("1、添加汽车");
            Console.WriteLine("2、修改汽车");
            Console.WriteLine("3、查询汽车");
            Console.WriteLine("4、删除汽车");
            Console.WriteLine("5、打印列表");
            Console.WriteLine("6、退出系统");
            Console.WriteLine("******************************************");
            Console.Write("请选择(1-6):");
            return Convert.ToInt32(Console.ReadLine());
        }
    }
}

 4.4、添加汽车

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}", id, name);
        }
    }



    class Program
    {
        public static List<Car> cars = new List<Car>();  //汽车集合

        public static void AddCar()
        {
            Car car = new Car();  //实例化一个汽车对象
            Console.Write("请输入编号:");
            car.id = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入名称:");
            car.name = Console.ReadLine();
            //将汽车对象添加到集合中
            cars.Add(car);
            Console.WriteLine("添加成功!");
        }

        static void Main(string[] args)
        {
            int index;
            do
            {
                index = Menu();
                if (index == 1)
                {
                    AddCar();
                }
                else if (index == 2)
                {
                    Console.WriteLine("修改汽车");
                }
                else if (index == 3)
                {
                    Console.WriteLine("查询汽车");
                }
                else if (index == 4)
                {
                    Console.WriteLine("删除汽车");
                }
                else if (index == 5)
                {
                    Console.WriteLine("打印列表");
                }
                else if (index == 6)
                {
                    Console.WriteLine("退出系统");
                    break;
                }
                else
                {
                    Console.WriteLine("输入错误");
                }
                Console.WriteLine("按任意键继续....");
                Console.ReadLine();
            } while (index != 6);  //不为6就继续
        }

        public static int Menu()
        {
            Console.Clear();  //清屏
            Console.WriteLine("******************************************");
            Console.WriteLine("汽车管理系统");
            Console.WriteLine("1、添加汽车");
            Console.WriteLine("2、修改汽车");
            Console.WriteLine("3、查询汽车");
            Console.WriteLine("4、删除汽车");
            Console.WriteLine("5、打印列表");
            Console.WriteLine("6、退出系统");
            Console.WriteLine("******************************************");
            Console.Write("请选择(1-6):");
            return Convert.ToInt32(Console.ReadLine());
        }
    }
}

 4.5、展示汽车列表

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}", id, name);
        }
    }



    class Program
    {
        public static List<Car> cars = new List<Car>();  //汽车集合

        public static void AddCar()
        {
            Car car = new Car();  //实例化一个汽车对象
            Console.Write("请输入编号:");
            car.id = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入名称:");
            car.name = Console.ReadLine();
            //将汽车对象添加到集合中
            cars.Add(car);
            Console.WriteLine("添加成功!");
        }

        public static void ListCar()
        {
            foreach (var item in cars)
            {
                item.Show();
            }
        }

        static void Main(string[] args)
        {
            int index;
            do
            {
                index = Menu();
                if (index == 1)
                {
                    AddCar();
                }
                else if (index == 2)
                {
                    Console.WriteLine("修改汽车");
                }
                else if (index == 3)
                {
                    Console.WriteLine("查询汽车");
                }
                else if (index == 4)
                {
                    Console.WriteLine("删除汽车");
                }
                else if (index == 5)
                {
                    ListCar();
                }
                else if (index == 6)
                {
                    Console.WriteLine("退出系统");
                    break;
                }
                else
                {
                    Console.WriteLine("输入错误");
                }
                Console.WriteLine("按任意键继续....");
                Console.ReadLine();
            } while (index != 6);  //不为6就继续
        }

        public static int Menu()
        {
            Console.Clear();  //清屏
            Console.WriteLine("******************************************");
            Console.WriteLine("汽车管理系统");
            Console.WriteLine("1、添加汽车");
            Console.WriteLine("2、修改汽车");
            Console.WriteLine("3、查询汽车");
            Console.WriteLine("4、删除汽车");
            Console.WriteLine("5、打印列表");
            Console.WriteLine("6、退出系统");
            Console.WriteLine("******************************************");
            Console.Write("请选择(1-6):");
            return Convert.ToInt32(Console.ReadLine());
        }
    }
}

 4.6、修改汽车

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}", id, name);
        }
    }



    class Program
    {
        public static List<Car> cars = new List<Car>();  //汽车集合

        public static void AddCar()
        {
            Car car = new Car();  //实例化一个汽车对象
            Console.Write("请输入编号:");
            car.id = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入名称:");
            car.name = Console.ReadLine();
            //将汽车对象添加到集合中
            cars.Add(car);
            Console.WriteLine("添加成功!");
        }

        public static void ListCar()
        {
            foreach (var item in cars)
            {
                item.Show();
            }
        }

        static void Main(string[] args)
        {
            int index;
            do
            {
                index = Menu();
                if (index == 1)
                {
                    AddCar();
                }
                else if (index == 2)
                {
                    XiugaiQiChe();
                }
                else if (index == 3)
                {
                    Console.WriteLine("查询汽车");
                }
                else if (index == 4)
                {
                    Console.WriteLine("删除汽车");
                }
                else if (index == 5)
                {
                    ListCar();
                }
                else if (index == 6)
                {
                    Console.WriteLine("退出系统");
                    break;
                }
                else
                {
                    Console.WriteLine("输入错误");
                }
                Console.WriteLine("按任意键继续....");
                Console.ReadLine();
            } while (index != 6);  //不为6就继续
        }

        private static void XiugaiQiChe()
        {
            ListCar();
            Console.Write("请输入要修改的汽车编号:");
            int id = Convert.ToInt32(Console.ReadLine());
            Car car = null; //要找的车
            //根据汽车编号查找汽车
            foreach (var item in cars)
            {
                if (item.id == id)
                {
                    car = item;
                    break;
                }
            }

            if (car == null)
            {
                Console.WriteLine("您要修改的汽车不存在");
            }
            else
            {
                Console.Write("请输入名称:");
                car.name = Console.ReadLine();
                Console.WriteLine("修改成功!");
            }

        }


        public static int Menu()
        {
            Console.Clear();  //清屏
            Console.WriteLine("******************************************");
            Console.WriteLine("汽车管理系统");
            Console.WriteLine("1、添加汽车");
            Console.WriteLine("2、修改汽车");
            Console.WriteLine("3、查询汽车");
            Console.WriteLine("4、删除汽车");
            Console.WriteLine("5、打印列表");
            Console.WriteLine("6、退出系统");
            Console.WriteLine("******************************************");
            Console.Write("请选择(1-6):");
            return Convert.ToInt32(Console.ReadLine());
        }
    }
}

 4.6、查询汽车

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}", id, name);
        }
    }



    class Program
    {
        public static List<Car> cars = new List<Car>();  //汽车集合

        public static void AddCar()
        {
            Car car = new Car();  //实例化一个汽车对象
            Console.Write("请输入编号:");
            car.id = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入名称:");
            car.name = Console.ReadLine();
            //将汽车对象添加到集合中
            cars.Add(car);
            Console.WriteLine("添加成功!");
        }

        public static void ListCar()
        {
            foreach (var item in cars)
            {
                item.Show();
            }
        }

        static void Main(string[] args)
        {
            int index;
            do
            {
                index = Menu();
                if (index == 1)
                {
                    AddCar();
                }
                else if (index == 2)
                {
                    XiugaiQiChe();
                }
                else if (index == 3)
                {
                    Chaxunqiche();
                }
                else if (index == 4)
                {
                    Console.WriteLine("删除汽车");
                }
                else if (index == 5)
                {
                    ListCar();
                }
                else if (index == 6)
                {
                    Console.WriteLine("退出系统");
                    break;
                }
                else
                {
                    Console.WriteLine("输入错误");
                }
                Console.WriteLine("按任意键继续....");
                Console.ReadLine();
            } while (index != 6);  //不为6就继续
        }

        private static void Chaxunqiche()
        {
            Console.Write("请输入要查询的汽车名称(支持模糊查询):");
            String name = Console.ReadLine();
            foreach (var item in cars)
            {
                if (item.name.Contains(name))
                {
                    item.Show();
                }
            }
        }

        private static void XiugaiQiChe()
        {
            ListCar();
            Console.Write("请输入要修改的汽车编号:");
            int id = Convert.ToInt32(Console.ReadLine());
            Car car = null; //要找的车
            //根据汽车编号查找汽车
            foreach (var item in cars)
            {
                if (item.id == id)
                {
                    car = item;
                    break;
                }
            }

            if (car == null)
            {
                Console.WriteLine("您要修改的汽车不存在");
            }
            else
            {
                Console.Write("请输入名称:");
                car.name = Console.ReadLine();
                Console.WriteLine("修改成功!");
            }

        }


        public static int Menu()
        {
            Console.Clear();  //清屏
            Console.WriteLine("******************************************");
            Console.WriteLine("汽车管理系统");
            Console.WriteLine("1、添加汽车");
            Console.WriteLine("2、修改汽车");
            Console.WriteLine("3、查询汽车");
            Console.WriteLine("4、删除汽车");
            Console.WriteLine("5、打印列表");
            Console.WriteLine("6、退出系统");
            Console.WriteLine("******************************************");
            Console.Write("请选择(1-6):");
            return Convert.ToInt32(Console.ReadLine());
        }
    }
}

 4.7、删除汽车

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}", id, name);
        }
    }



    class Program
    {
        public static List<Car> cars = new List<Car>();  //汽车集合

        public static void AddCar()
        {
            Car car = new Car();  //实例化一个汽车对象
            Console.Write("请输入编号:");
            car.id = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入名称:");
            car.name = Console.ReadLine();
            //将汽车对象添加到集合中
            cars.Add(car);
            Console.WriteLine("添加成功!");
        }

        public static void ListCar()
        {
            foreach (var item in cars)
            {
                item.Show();
            }
        }

        static void Main(string[] args)
        {
            int index;
            do
            {
                index = Menu();
                if (index == 1)
                {
                    AddCar();
                }
                else if (index == 2)
                {
                    XiugaiQiChe();
                }
                else if (index == 3)
                {
                    Chaxunqiche();
                }
                else if (index == 4)
                {
                    DelCar();
                }
                else if (index == 5)
                {
                    ListCar();
                }
                else if (index == 6)
                {
                    Console.WriteLine("退出系统");
                    break;
                }
                else
                {
                    Console.WriteLine("输入错误");
                }
                Console.WriteLine("按任意键继续....");
                Console.ReadLine();
            } while (index != 6);  //不为6就继续
        }

        /// <summary>
        /// 删除汽车
        /// </summary>
        private static void DelCar()
        {
            ListCar();  //先展示所有汽车
            Console.Write("请输入要删除的汽车编号:");
            int id = Convert.ToInt32(Console.ReadLine());
            bool sfzd = false;  //树旗,是否删除成功,默认不成功
            //循环遍历所有汽车
            foreach (var item in cars)
            {
                if (item.id == id)  //当前汽车的编号是否与要删除的一致
                {
                    cars.Remove(item);  //从集合中删除当前汽车
                    sfzd = true;  //删除成功标记
                    break;
                }
            }

            if (sfzd)
            {
                Console.WriteLine("删除成功!");
            }else
            {
                Console.WriteLine("删除失败!");
            }

        }

        private static void Chaxunqiche()
        {
            Console.Write("请输入要查询的汽车名称(支持模糊查询):");
            String name = Console.ReadLine();
            foreach (var item in cars)
            {
                if (item.name.Contains(name))
                {
                    item.Show();
                }
            }
        }

        private static void XiugaiQiChe()
        {
            ListCar();
            Console.Write("请输入要修改的汽车编号:");
            int id = Convert.ToInt32(Console.ReadLine());
            Car car = null; //要找的车
            //根据汽车编号查找汽车
            foreach (var item in cars)
            {
                if (item.id == id)
                {
                    car = item;
                    break;
                }
            }

            if (car == null)
            {
                Console.WriteLine("您要修改的汽车不存在");
            }
            else
            {
                Console.Write("请输入名称:");
                car.name = Console.ReadLine();
                Console.WriteLine("修改成功!");
            }

        }


        public static int Menu()
        {
            Console.Clear();  //清屏
            Console.WriteLine("******************************************");
            Console.WriteLine("汽车管理系统");
            Console.WriteLine("1、添加汽车");
            Console.WriteLine("2、修改汽车");
            Console.WriteLine("3、查询汽车");
            Console.WriteLine("4、删除汽车");
            Console.WriteLine("5、打印列表");
            Console.WriteLine("6、退出系统");
            Console.WriteLine("******************************************");
            Console.Write("请选择(1-6):");
            return Convert.ToInt32(Console.ReadLine());
        }
    }
}

4.8、序列化

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    [Serializable]   //可序列化的特性
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}", id, name);
        }
    }



    class Program
    {
        public static List<Car> cars = new List<Car>();  //汽车集合

        public static void AddCar()
        {
            Car car = new Car();  //实例化一个汽车对象
            Console.Write("请输入编号:");
            car.id = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入名称:");
            car.name = Console.ReadLine();
            //将汽车对象添加到集合中
            cars.Add(car);
            Console.WriteLine("添加成功!");
        }

        public static void ListCar()
        {
            foreach (var item in cars)
            {
                item.Show();
            }
        }

        static void Main(string[] args)
        {
            int index;
            do
            {
                index = Menu();
                if (index == 1)
                {
                    AddCar();
                }
                else if (index == 2)
                {
                    XiugaiQiChe();
                }
                else if (index == 3)
                {
                    Chaxunqiche();
                }
                else if (index == 4)
                {
                    DelCar();
                }
                else if (index == 5)
                {
                    ListCar();
                }
                else if (index == 6)
                {
                    save();
                }
                else if (index == 7)
                {
                    
                }
                else if (index == 8)
                {
                    Console.WriteLine("退出系统");
                    break;
                }
                else
                {
                    Console.WriteLine("输入错误");
                }
                Console.WriteLine("按任意键继续....");
                Console.ReadLine();
            } while (index != 6);  //不为6就继续
        }

        /// <summary>
        /// 保存
        /// </summary>
        private static void save()
        {
            //创建文件流,指定文件位置,模式为创建
            FileStream fs = new FileStream("cars.bin", FileMode.Create);
            //创建二进制格式化器
            BinaryFormatter bf = new BinaryFormatter();
            //将cars对象序列化成二进制到car.bin文件中
            bf.Serialize(fs, cars);
            //关闭文件流
            fs.Close();
            Console.WriteLine("保存成功!");
        }

        /// <summary>
        /// 删除汽车
        /// </summary>
        private static void DelCar()
        {
            ListCar();  //先展示所有汽车
            Console.Write("请输入要删除的汽车编号:");
            int id = Convert.ToInt32(Console.ReadLine());
            bool sfzd = false;  //树旗,是否删除成功,默认不成功
            //循环遍历所有汽车
            foreach (var item in cars)
            {
                if (item.id == id)  //当前汽车的编号是否与要删除的一致
                {
                    cars.Remove(item);  //从集合中删除当前汽车
                    sfzd = true;  //删除成功标记
                    break;
                }
            }

            if (sfzd)
            {
                Console.WriteLine("删除成功!");
            }else
            {
                Console.WriteLine("删除失败!");
            }

        }

        private static void Chaxunqiche()
        {
            Console.Write("请输入要查询的汽车名称(支持模糊查询):");
            String name = Console.ReadLine();
            foreach (var item in cars)
            {
                if (item.name.Contains(name))
                {
                    item.Show();
                }
            }
        }

        private static void XiugaiQiChe()
        {
            ListCar();
            Console.Write("请输入要修改的汽车编号:");
            int id = Convert.ToInt32(Console.ReadLine());
            Car car = null; //要找的车
            //根据汽车编号查找汽车
            foreach (var item in cars)
            {
                if (item.id == id)
                {
                    car = item;
                    break;
                }
            }

            if (car == null)
            {
                Console.WriteLine("您要修改的汽车不存在");
            }
            else
            {
                Console.Write("请输入名称:");
                car.name = Console.ReadLine();
                Console.WriteLine("修改成功!");
            }

        }


        public static int Menu()
        {
            Console.Clear();  //清屏
            Console.WriteLine("******************************************");
            Console.WriteLine("汽车管理系统");
            Console.WriteLine("1、添加汽车");
            Console.WriteLine("2、修改汽车");
            Console.WriteLine("3、查询汽车");
            Console.WriteLine("4、删除汽车");
            Console.WriteLine("5、打印列表");
            Console.WriteLine("6、保存数据");
            Console.WriteLine("7、加载数据");
            Console.WriteLine("8、退出系统");
            Console.WriteLine("******************************************");
            Console.Write("请选择(1-6):");
            return Convert.ToInt32(Console.ReadLine());
        }
    }
}

4.9、反序列化

 

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;

namespace ConsoleApplication22
{
    /// <summary>
    /// 汽车类
    /// </summary>
    [Serializable]   //可序列化的特性
    public class Car
    {
        public int id;  //编号
        public string name;  //车名
        public void Show()  //展示方法
        {
            Console.WriteLine("{0}\t{1}", id, name);
        }
    }



    class Program
    {
        public static List<Car> cars = new List<Car>();  //汽车集合

        public static void AddCar()
        {
            Car car = new Car();  //实例化一个汽车对象
            Console.Write("请输入编号:");
            car.id = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入名称:");
            car.name = Console.ReadLine();
            //将汽车对象添加到集合中
            cars.Add(car);
            Console.WriteLine("添加成功!");
            save();
        }

        public static void ListCar()
        {
            foreach (var item in cars)
            {
                item.Show();
            }
        }

        static void Main(string[] args)
        {
            int index;
            load();
            do
            {
                index = Menu();
                if (index == 1)
                {
                    AddCar();
                }
                else if (index == 2)
                {
                    XiugaiQiChe();
                }
                else if (index == 3)
                {
                    Chaxunqiche();
                }
                else if (index == 4)
                {
                    DelCar();
                }
                else if (index == 5)
                {
                    ListCar();
                }
                else if (index == 6)
                {
                    save();
                }
                else if (index == 7)
                {
                    load();
                }
                else if (index == 8)
                {
                    Console.WriteLine("退出系统");
                    break;
                }
                else
                {
                    Console.WriteLine("输入错误");
                }
                Console.WriteLine("按任意键继续....");
                Console.ReadLine();
            } while (index != 6);  //不为6就继续
        }

        /// <summary>
        /// 加载数据
        /// </summary>
        private static void load()
        {
            //创建文件流,指定文件位置,模式为打开
            FileStream fs = new FileStream("cars.bin", FileMode.Open);
            //创建二进制格式化器
            BinaryFormatter bf = new BinaryFormatter();
            //反序列化文件流并强制转换成目标类型
            cars = (List<Car>)bf.Deserialize(fs);
            fs.Close();  //关闭文件流
            Console.WriteLine("加载成功!");
            ListCar();
        }

        /// <summary>
        /// 保存
        /// </summary>
        private static void save()
        {
            //创建文件流,指定文件位置,模式为创建
            FileStream fs = new FileStream("cars.bin", FileMode.Create);
            //创建二进制格式化器
            BinaryFormatter bf = new BinaryFormatter();
            //将cars对象序列化成二进制到car.bin文件中
            bf.Serialize(fs, cars);
            //关闭文件流
            fs.Close();
            Console.WriteLine("保存成功!");
        }

        /// <summary>
        /// 删除汽车
        /// </summary>
        private static void DelCar()
        {
            ListCar();  //先展示所有汽车
            Console.Write("请输入要删除的汽车编号:");
            int id = Convert.ToInt32(Console.ReadLine());
            bool sfzd = false;  //树旗,是否删除成功,默认不成功
            //循环遍历所有汽车
            foreach (var item in cars)
            {
                if (item.id == id)  //当前汽车的编号是否与要删除的一致
                {
                    cars.Remove(item);  //从集合中删除当前汽车
                    sfzd = true;  //删除成功标记
                    break;
                }
            }

            if (sfzd)
            {
                Console.WriteLine("删除成功!");
            }else
            {
                Console.WriteLine("删除失败!");
            }

        }

        private static void Chaxunqiche()
        {
            Console.Write("请输入要查询的汽车名称(支持模糊查询):");
            String name = Console.ReadLine();
            foreach (var item in cars)
            {
                if (item.name.Contains(name))
                {
                    item.Show();
                }
            }
        }

        private static void XiugaiQiChe()
        {
            ListCar();
            Console.Write("请输入要修改的汽车编号:");
            int id = Convert.ToInt32(Console.ReadLine());
            Car car = null; //要找的车
            //根据汽车编号查找汽车
            foreach (var item in cars)
            {
                if (item.id == id)
                {
                    car = item;
                    break;
                }
            }

            if (car == null)
            {
                Console.WriteLine("您要修改的汽车不存在");
            }
            else
            {
                Console.Write("请输入名称:");
                car.name = Console.ReadLine();
                Console.WriteLine("修改成功!");
            }

        }


        public static int Menu()
        {
            Console.Clear();  //清屏
            Console.WriteLine("******************************************");
            Console.WriteLine("汽车管理系统");
            Console.WriteLine("1、添加汽车");
            Console.WriteLine("2、修改汽车");
            Console.WriteLine("3、查询汽车");
            Console.WriteLine("4、删除汽车");
            Console.WriteLine("5、打印列表");
            Console.WriteLine("6、保存数据");
            Console.WriteLine("7、加载数据");
            Console.WriteLine("8、退出系统");
            Console.WriteLine("******************************************");
            Console.Write("请选择(1-6):");
            return Convert.ToInt32(Console.ReadLine());
        }
    }
}

 五、内部测试

1、请完成一个学生管理系统(StudentMIS),实现如下功能:

添加学生(学号、姓名,性别,年龄,班级,电话)Student

打印列表(显示所有学生)

删除学生(输入学号,执行删除)

计算器

保存

加载

六、考试复习

机试下载

笔试下载

机试模拟考试