コード例 #1
0
        static void Main(string[] args)
        {
            int choice = 0;

            do
            {
                Console.WriteLine("Выберите пункт");
                Console.WriteLine("1 - Просмотр таблицы");
                Console.WriteLine("2 - Добавить запись");
                Console.WriteLine("3 - Удалить запись");
                Console.WriteLine("4 - Обновить запись");
                Console.WriteLine("5 - Поиск записей");
                Console.WriteLine("6 - Просмотреть лог");
                Console.WriteLine("7 - Выход");
                choice = int.Parse(Console.ReadLine());
                switch (choice)
                {
                case WATCH_TABLE:
                    Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Вид транспорта", "№ маршрута", "Протяженность маршрута (км) ", "Время в дороге (мин)");
                    for (int list_item = 0; list_item < list.Count; list_item++)
                    {
                        HRD t = list[list_item];
                        Console.WriteLine("----------------------------------------------------------------------------\n");
                        t.ShowTable(t.Transport, t.number, t.Length, t.RoadTime);
                    }

                    string textFromFile = FileExpert.ReadFromRelativePath("lab.dat");
                    Console.WriteLine(textFromFile);
                    Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица");
                    break;

                case ADD_RAW:
                    HRD t1;
                    Console.WriteLine("Введите Вид транспорта");
                    t1.Transport = Console.ReadLine();
                    Console.WriteLine("Введите Номер маршрута");
                    t1.number = Console.ReadLine();

Found1:
                    Console.WriteLine("Введите Протяженность маршрута (км) ");
                    try
                    {
                        int enter_length = Convert.ToInt32(Console.ReadLine());     //вводим данные, и конвертируем в целое число
                        t1.Length = enter_length;
                        if ((enter_length <= 0) || (enter_length >= 250))
                        {
                            Console.WriteLine("Error. (Введите повторно)");
                            goto Found1;
                        }
                    }
                    catch (FormatException)
                    {
                        t1.Length = 000;
                        Console.WriteLine("Error. (Введите повторно)");
                        goto Found1;
                    }
                    Pos pro;
Found3:
                    Console.WriteLine("Время в дороге (мин)");
                    try
                    {
                        string enter_length3 = Console.ReadLine();
                        t1.RoadTime = enter_length3;
                        pro         = (Pos)Enum.Parse(typeof(Pos), enter_length3);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error. (Введите повторно)");
                        pro = Pos.None;
                        goto Found3;
                    }

                    list.Add(t1);
                    Console.WriteLine("Строка была добавлена!");
                    Console.WriteLine();
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!");
                    break;

                case REMOVE_RAW:


                    Console.WriteLine("Введите номер строки, которую хотите удалить");
                    int number = int.Parse(Console.ReadLine());
                    try
                    {
                        list.RemoveAt(number - 1);
                    }
                    catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); }
                    Console.WriteLine();
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка удалена!");
                    break;

                case UPDATE_RAW:
                    Console.WriteLine("Введите номер строки, которую хотите изменить");
                    int UpdateIndex = int.Parse(Console.ReadLine());
                    try
                    {
                        HRD t2 = list[UpdateIndex - 1];

                        //Выводим старые значения

                        t2.ShowTable(t2.Transport, t2.number, t2.Length, t2.RoadTime);


                        //Вводим новые значения

                        Console.WriteLine("Введите новый вид транспорта");
                        t2.Transport = Console.ReadLine();
                        Console.WriteLine("Введите новый № маршрута ");
                        t2.number = Console.ReadLine();
                        Console.WriteLine("Введите новую протяженность маршрута (км) ");
Found2:
                        t2.Length = int.Parse(Console.ReadLine());
                        try
                        {
                            int enter_length2 = Convert.ToInt32(Console.ReadLine());     //вводим данные, и конвертируем в целое число
                            t2.Length = enter_length2;
                            if ((enter_length2 < 1895) || (enter_length2 > 2030))
                            {
                                Console.WriteLine("Error. (Введите повторно)");
                                goto Found2;
                            }
                        }
                        catch (FormatException)
                        {
                            t2.Length = 000;
                            Console.WriteLine("Error. (Введите повторно)");
                            goto Found2;
                        }
                        Console.WriteLine("Введите новый Тип");
                        Pos pro2;
Found4:
                        try
                        {
                            string enter_length4 = Console.ReadLine();
                            t2.RoadTime = enter_length4;
                            pro2        = (Pos)Enum.Parse(typeof(Pos), enter_length4);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Error. (Введите повторно)");
                            pro2 = Pos.None;
                            goto Found4;
                        }
                        list[UpdateIndex - 1] = t2;
                    }
                    catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); }
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!");
                    break;

                case FIND_RAW:
                    Console.WriteLine("Введите фамилию");
                    string text = Console.ReadLine();
                    HRD    FindRaw;
                    for (int item_list = 0; item_list < list.Count; item_list++)
                    {
                        FindRaw = list[item_list];
                        if (FindRaw.Transport.ToLower().Equals(text.ToLower()))
                        {
                            Console.Write("{0,10}", FindRaw.Transport);
                            Console.Write("{0,10}", FindRaw.number);
                            Console.Write("{0,10}", FindRaw.Length);
                            Console.Write("{0,10}", FindRaw.RoadTime);
                            Console.WriteLine();
                        }
                    }
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!");
                    break;

                case SHOW_LOG:
                    Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!");
                    Logging.ShowInfo();
                    break;

                case EXIT:

                    String file = string.Empty;
                    foreach (var t in list)
                    {
                        file += "----------------------------------------------------------------------------";
                        file += t.Transport + "\t" + t.number + "\t" + t.Length + "\t" + t.RoadTime;
                    }
                    //for (int list_item = 0; list_item < list.Count; list_item++)
                    //{
                    //    HRD t = list[list_item];
                    //    write.WriteLine("----------------------------------------------------------------------------");
                    //    write.WriteLine("{0,10} {1,10} {2,10} {3,10}" , t.Transport, t.number, t.Length, t.RoadTime);
                    // }

                    FileExpert.SaveToRelativePath("lab.dat", file);
                    break;
                }
            } while (choice != 7);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: HoJluK/laba6
        static void Main(string[] args)
        {
            int choice = 0;

            do
            {
                Console.WriteLine("Выберите пункт");
                Console.WriteLine("1 - Просмотр таблицы");
                Console.WriteLine("2 - Добавить запись");
                Console.WriteLine("3 - Удалить запись");
                Console.WriteLine("4 - Обновить запись");
                Console.WriteLine("5 - Поиск записей");
                Console.WriteLine("6 - Просмотреть лог");
                Console.WriteLine("7 - Выход");
                choice = int.Parse(Console.ReadLine());
                string path = @"D:\lab.dat";
                switch (choice)
                {
                case WATCH_TABLE:
                    Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Фамилия", "Должность", "Год рождения", "Оклад");
                    for (int list_item = 0; list_item < list.Count; list_item++)
                    {
                        HRD t = list[list_item];
                        Console.WriteLine("----------------------------------------------------------------------------");
                        t.ShowTable(t.Name, t.Postion, t.Yers, t.Salary);
                    }
                    FileStream fstream = File.OpenRead(path);

                    // преобразуем строку в байты
                    byte[] array = new byte[fstream.Length];
                    // считываем данные
                    fstream.Read(array, 0, array.Length);
                    // декодируем байты в строку
                    string textFromFile = System.Text.Encoding.Default.GetString(array);
                    Console.WriteLine(textFromFile);
                    Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица");
                    break;

                case ADD_RAW:
                    HRD t1;
                    Console.WriteLine("Введите Фамилию");
                    t1.Name = Console.ReadLine();
                    Console.WriteLine("ВведитеДолжность");
                    t1.Postion = Console.ReadLine();

Found1:
                    Console.WriteLine("Введите год рождения");
                    try
                    {
                        int blabla = Convert.ToInt32(Console.ReadLine());     //вводим данные, и конвертируем в целое число
                        t1.Yers = blabla;
                        if ((blabla < 1895) || (blabla > 2030))
                        {
                            Console.WriteLine("Error. (Введите повторно)");
                            goto Found1;
                        }
                    }
                    catch (FormatException)
                    {
                        t1.Yers = 000;
                        Console.WriteLine("Error. (Введите повторно)");
                        goto Found1;
                    }
                    Pos pro;
Found3:
                    Console.WriteLine("Введите оклад");
                    try
                    {
                        string blabla3 = Console.ReadLine();
                        t1.Salary = blabla3;
                        pro       = (Pos)Enum.Parse(typeof(Pos), blabla3);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error. (Введите повторно)");
                        pro = Pos.None;
                        goto Found3;
                    }

                    list.Add(t1);
                    Console.WriteLine("Строка была добавлена!");
                    Console.WriteLine();
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!");
                    break;

                case REMOVE_RAW:


                    Console.WriteLine("Введите номер строки, которую хотите удалить");
                    int number = int.Parse(Console.ReadLine());
                    try
                    {
                        list.RemoveAt(number - 1);
                    }
                    catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); }
                    Console.WriteLine();
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка удалена!");
                    break;

                case UPDATE_RAW:
                    Console.WriteLine("Введите номер строки, которую хотите изменить");
                    int UpdateIndex = int.Parse(Console.ReadLine());
                    try
                    {
                        HRD t2 = list[UpdateIndex - 1];

                        //Выводим старые значения

                        t2.ShowTable(t2.Name, t2.Postion, t2.Yers, t2.Salary);


                        //Вводим новые значения

                        Console.WriteLine("Введите новое фамилию");
                        t2.Name = Console.ReadLine();
                        Console.WriteLine("Введите новую должность");
                        t2.Postion = Console.ReadLine();
                        Console.WriteLine("Введите новый год рождения");
Found2:
                        t2.Yers = int.Parse(Console.ReadLine());
                        try
                        {
                            int blabla2 = Convert.ToInt32(Console.ReadLine());     //вводим данные, и конвертируем в целое число
                            t2.Yers = blabla2;
                            if ((blabla2 < 1895) || (blabla2 > 2030))
                            {
                                Console.WriteLine("Error. (Введите повторно)");
                                goto Found2;
                            }
                        }
                        catch (FormatException)
                        {
                            t2.Yers = 000;
                            Console.WriteLine("Error. (Введите повторно)");
                            goto Found2;
                        }
                        Console.WriteLine("Введите новый Тип");
                        Pos pro2;
Found4:
                        try
                        {
                            string blabla4 = Console.ReadLine();
                            t2.Salary = blabla4;
                            pro2      = (Pos)Enum.Parse(typeof(Pos), blabla4);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Error. (Введите повторно)");
                            pro2 = Pos.None;
                            goto Found4;
                        }
                        list[UpdateIndex - 1] = t2;
                    }
                    catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); }
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!");
                    break;

                case FIND_RAW:
                    Console.WriteLine("Введите фамилию");
                    string text = Console.ReadLine();
                    HRD    FindRaw;
                    for (int item_list = 0; item_list < list.Count; item_list++)
                    {
                        FindRaw = list[item_list];
                        if (FindRaw.Name.ToLower().Equals(text.ToLower()))
                        {
                            Console.Write("{0,10}", FindRaw.Name);
                            Console.Write("{0,10}", FindRaw.Postion);
                            Console.Write("{0,10}", FindRaw.Yers);
                            Console.Write("{0,10}", FindRaw.Salary);
                            Console.WriteLine();
                        }
                    }
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!");
                    break;

                case SHOW_LOG:
                    Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!");
                    Logging.ShowInfo();
                    break;

                case EXIT:

                    StreamWriter write = new StreamWriter(@"D:\lab.dat");
                    for (int list_item = 0; list_item < list.Count; list_item++)
                    {
                        HRD t = list[list_item];
                        write.WriteLine("----------------------------------------------------------------------------");
                        write.WriteLine("{0,10} {1,10} {2,10} {3,10}", t.Name, t.Postion, t.Yers, t.Salary);
                    }

                    write.Close();
                    break;
                }
            } while (choice != 7);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: HoJluK/lab_9
            private static void ex1()
            {
                Console.WriteLine("Введите номер подзадания (1 или 2) , который хотите увидеть  ");
                int tmp = Convert.ToInt32(Console.ReadLine());

                if (tmp == 1)
                {
                    int choice = 0;
                    do
                    {
                        Console.WriteLine("Выберите пункт");
                        Console.WriteLine("1 - Просмотр таблицы");
                        Console.WriteLine("2 - добавить запись");
                        Console.WriteLine("3 - Удалить запись");
                        Console.WriteLine("4 - обновить запись");
                        Console.WriteLine("5 - поиск записей");
                        Console.WriteLine("6 - просмотреть лог");
                        Console.WriteLine("7 - Выход");
                        choice = int.Parse(Console.ReadLine());
                        switch (choice)
                        {
                        case WATCH_TABLE:
                            Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Фамилия", "Должность", "Год рождения", "Оклад");
                            for (int list_item = 0; list_item < list.Count; list_item++)
                            {
                                HRD t = list[list_item];
                                Console.WriteLine("----------------------------------------------------------------------------");
                                t.ShowTable(t.Name, t.Postion, t.Yers, t.Salary);
                            }
                            Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица");
                            break;

                        case ADD_RAW:
                            HRD t1;
                            Console.WriteLine("Введите Фамилию");
                            t1.Name = Console.ReadLine();
                            Console.WriteLine("Введите Должность");
                            t1.Postion = Console.ReadLine();

Found1:
                            Console.WriteLine("Введите год рождения");
                            try
                            {
                                int blabla = Convert.ToInt32(Console.ReadLine());     //вводим данные, и конвертируем в целое число
                                t1.Yers = blabla;
                                if ((blabla < 1895) || (blabla > 2030))
                                {
                                    Console.WriteLine("Error. (Введите повторно)");
                                    goto Found1;
                                }
                            }
                            catch (FormatException)
                            {
                                t1.Yers = 000;
                                Console.WriteLine("Error. (Введите повторно)");
                                goto Found1;
                            }
                            Pos pro;
Found3:
                            Console.WriteLine("Введите оклад");
                            try
                            {
                                string blabla3 = Console.ReadLine();
                                t1.Salary = blabla3;
                                pro       = (Pos)Enum.Parse(typeof(Pos), blabla3);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine("Error. (Введите повторно)");
                                pro = Pos.None;
                                goto Found3;
                            }

                            list.Add(t1);
                            Console.WriteLine("Строка была добавлена!");
                            Console.WriteLine();
                            Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!");
                            break;

                        case REMOVE_RAW:
                            Console.WriteLine("Введите номер строки, которую хотите удалить");
                            int number = int.Parse(Console.ReadLine());
                            try
                            {
                                list.RemoveAt(number - 1);
                            }
                            catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); }
                            Console.WriteLine();
                            Logging.Add(DateTime.Now, Operations.ADD, "Строка удалена!");
                            break;

                        case UPDATE_RAW:
                            Console.WriteLine("Введите номер строки, которую хотите изменить");
                            int UpdateIndex = int.Parse(Console.ReadLine());
                            try
                            {
                                HRD t2 = list[UpdateIndex - 1];

                                //Выводим старые значения

                                t2.ShowTable(t2.Name, t2.Postion, t2.Yers, t2.Salary);


                                //Вводим новые значения

                                Console.WriteLine("Введите новое фамилию");
                                t2.Name = Console.ReadLine();
                                Console.WriteLine("Введите новую должность");
                                t2.Postion = Console.ReadLine();
                                Console.WriteLine("Введите новый год рождения");
Found2:
                                t2.Yers = int.Parse(Console.ReadLine());
                                try
                                {
                                    int blabla2 = Convert.ToInt32(Console.ReadLine());     //вводим данные, и конвертируем в целое число
                                    t2.Yers = blabla2;
                                    if ((blabla2 < 1895) || (blabla2 > 2030))
                                    {
                                        Console.WriteLine("Error. (Введите повторно)");
                                        goto Found2;
                                    }
                                }
                                catch (FormatException)
                                {
                                    t2.Yers = 000;
                                    Console.WriteLine("Error. (Введите повторно)");
                                    goto Found2;
                                }
                                Console.WriteLine("Введите новый Тип");
                                Pos pro2;
Found4:
                                try
                                {
                                    string blabla4 = Console.ReadLine();
                                    t2.Salary = blabla4;
                                    pro2      = (Pos)Enum.Parse(typeof(Pos), blabla4);
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("Error. (Введите повторно)");
                                    pro2 = Pos.None;
                                    goto Found4;
                                }
                                list[UpdateIndex - 1] = t2;
                            }
                            catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); }
                            Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!");
                            break;

                        case FIND_RAW:
                            Console.WriteLine("Введите фамилию");
                            string text = Console.ReadLine();
                            HRD    FindRaw;
                            for (int item_list = 0; item_list < list.Count; item_list++)
                            {
                                FindRaw = list[item_list];
                                if (FindRaw.Name.ToLower().Equals(text.ToLower()))
                                {
                                    Console.Write("{0,10}", FindRaw.Name);
                                    Console.Write("{0,10}", FindRaw.Postion);
                                    Console.Write("{0,10}", FindRaw.Yers);
                                    Console.Write("{0,10}", FindRaw.Salary);
                                    Console.WriteLine();
                                }
                            }
                            Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!");
                            break;

                        case SHOW_LOG:
                            Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!");
                            Logging.ShowInfo();
                            break;

                        case EXIT:
                            break;
                        }
                    } while (choice != 7);
                }
                if (tmp == 2)
                {
                    int choice = 0;
                    do
                    {
                        var logOfSession = new DoublyLinkedList <Log>();
                        var table        = new DoublyLinkedList <WR>();
                        int salary;
                        int year;
                        Console.WriteLine("Выберите пункт");
                        Console.WriteLine("1 - Просмотр таблицы");
                        Console.WriteLine("2 - добавить запись");
                        Console.WriteLine("3 - Удалить запись");
                        Console.WriteLine("4 - обновить запись");
                        Console.WriteLine("5 - поиск записей");
                        Console.WriteLine("6 - просмотреть лог");
                        Console.WriteLine("7 - Выход");
                        choice = int.Parse(Console.ReadLine());
                        switch (choice)
                        {
                        case WATCH_TABLE:
                            Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Фамилия", "Должность", "Год рождения", "Оклад");
                            for (int list_item = 0; list_item < list.Count; list_item++)
                            {
                                foreach (var item in table)
                                {
                                    item.showTable();
                                }
                            }
                            Log newLog;
                            newLog.time      = DateTime.Now;
                            newLog.operation = "Просмотр таблицы";
                            logOfSession.Add(newLog);
                            break;

                        case ADD_RAW:
                            string name;
                            Pos    position = new Pos();
                            Console.WriteLine("Введите Фамилию");
                            name = Console.ReadLine();
                            Console.WriteLine("Введите Должность");
                            string pos = Console.ReadLine();
                            if (pos == "П")
                            {
                                position = Pos.П;
                            }
                            else if (pos == "С")
                            {
                                position = Pos.С;
                            }
                            else if (pos == "А")
                            {
                                position = Pos.А;
                            }
                            else
                            {
                                Console.WriteLine("УПС!\n-_-");
                            }
Found1:
                            Console.WriteLine("Введите год рождения");
                            try
                            {
                                int blabla = Convert.ToInt32(Console.ReadLine());     //вводим данные, и конвертируем в целое число
                                year = blabla;
                                if ((blabla < 1895) || (blabla > 2030))
                                {
                                    Console.WriteLine("Error. (Введите повторно)");
                                    goto Found1;
                                }
                            }
                            catch (FormatException)
                            {
                                year = 000;
                                Console.WriteLine("Error. (Введите повторно)");
                                goto Found1;
                            }
                            Pos pro;
Found3:
                            Console.WriteLine("Введите оклад");
                            try
                            {
                                int blabla3 = Convert.ToInt32(Console.ReadLine());
                                salary = blabla3;
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine("Error. (Введите повторно)");
                                pro = Pos.None;
                                goto Found3;
                            }
                            WR newWr;
                            newWr.name     = name;
                            newWr.position = position;
                            newWr.salary   = salary;
                            newWr.year     = year;
                            Console.WriteLine("Строка была добавлена!");
                            Console.WriteLine();

                            newLog.time      = DateTime.Now;
                            newLog.operation = "Строка добавлена";
                            logOfSession.Add(newLog); break;

                        case REMOVE_RAW:
                            Console.WriteLine("Введите номер строки, которую хотите удалить");
                            int number = int.Parse(Console.ReadLine());
                            try
                            {
                                list.RemoveAt(number - 1);
                            }
                            catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); }
                            Console.WriteLine();
                            newLog.time      = DateTime.Now;
                            newLog.operation = "Строка delet";
                            logOfSession.Add(newLog);  break;

                        case UPDATE_RAW:
                            Console.WriteLine("Введите номер строки, которую хотите изменить");
                            int UpdateIndex = int.Parse(Console.ReadLine());
                            try
                            {
                                HRD t2 = list[UpdateIndex - 1];

                                //Выводим старые значения

                                t2.ShowTable(t2.Name, t2.Postion, t2.Yers, t2.Salary);


                                //Вводим новые значения

                                Console.WriteLine("Введите новое фамилию");
                                t2.Name = Console.ReadLine();
                                Console.WriteLine("Введите новую должность");
                                t2.Postion = Console.ReadLine();
                                Console.WriteLine("Введите новый год рождения");
Found2:
                                t2.Yers = int.Parse(Console.ReadLine());
                                try
                                {
                                    int blabla2 = Convert.ToInt32(Console.ReadLine());     //вводим данные, и конвертируем в целое число
                                    t2.Yers = blabla2;
                                    if ((blabla2 < 1895) || (blabla2 > 2030))
                                    {
                                        Console.WriteLine("Error. (Введите повторно)");
                                        goto Found2;
                                    }
                                }
                                catch (FormatException)
                                {
                                    t2.Yers = 000;
                                    Console.WriteLine("Error. (Введите повторно)");
                                    goto Found2;
                                }
                                Console.WriteLine("Введите новый Тип");
                                Pos pro2;
Found4:
                                try
                                {
                                    string blabla4 = Console.ReadLine();
                                    t2.Salary = blabla4;
                                    pro2      = (Pos)Enum.Parse(typeof(Pos), blabla4);
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("Error. (Введите повторно)");
                                    pro2 = Pos.None;
                                    goto Found4;
                                }
                                list[UpdateIndex - 1] = t2;
                            }
                            catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); }
                            newLog.time      = DateTime.Now;
                            newLog.operation = "Строка обновлена";
                            logOfSession.Add(newLog); break;

                        case FIND_RAW:
                            Console.WriteLine("Введите фамилию");
                            string text = Console.ReadLine();
                            HRD    FindRaw;
                            for (int item_list = 0; item_list < list.Count; item_list++)
                            {
                                FindRaw = list[item_list];
                                if (FindRaw.Name.ToLower().Equals(text.ToLower()))
                                {
                                    Console.Write("{0,10}", FindRaw.Name);
                                    Console.Write("{0,10}", FindRaw.Postion);
                                    Console.Write("{0,10}", FindRaw.Yers);
                                    Console.Write("{0,10}", FindRaw.Salary);
                                    Console.WriteLine();
                                }
                            }
                            newLog.time      = DateTime.Now;
                            newLog.operation = "Строка найдена";
                            logOfSession.Add(newLog);                                 newLog.time = DateTime.Now;
                            newLog.operation = "Логи просмотрены";
                            logOfSession.Add(newLog);
                            break;

                        case EXIT:
                            break;
                        }
                    } while (choice != 7);
                }
            }
コード例 #4
0
ファイル: Program.cs プロジェクト: HoJluK/laba7
        static void Main(string[] args)
        {
            int choice = 0;

            do
            {
                var table = new List <HRD>();
                Console.WriteLine("\n Выберите пункт");
                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("9 - Выход");
                choice = int.Parse(Console.ReadLine());
                string path = @"D:\lab.dat";
                switch (choice)
                {
                case WATCH_TABLE:

                    for (int list_item = 0; list_item < list.Count; list_item++)
                    {
                        HRD t = list[list_item];
                        Console.WriteLine("----------------------------------------------------------------------------");
                        t.ShowTable(t.Name, t.Postion, t.Yers, t.Salary);
                    }
                    StreamReader fstream = new StreamReader(path);
                    string       line;
                    while (!fstream.EndOfStream)
                    {
                        line = fstream.ReadLine();
                        Console.Write(line);
                    }
                    fstream.Close();
                    Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица");
                    break;

                case ADD_RAW:
                    HRD t1;
                    Console.WriteLine("Введите Фамилию");
                    t1.Name = Console.ReadLine();
                    Console.WriteLine("ВведитеДолжность");
                    t1.Postion = Console.ReadLine();

Found1:
                    Console.WriteLine("Введите год рождения");
                    try
                    {
                        int blabla = Convert.ToInt32(Console.ReadLine());     //вводим данные, и конвертируем в целое число
                        t1.Yers = blabla;
                        if ((blabla < 1895) || (blabla > 2030))
                        {
                            Console.WriteLine("Error. (Введите повторно)");
                            goto Found1;
                        }
                    }
                    catch (FormatException)
                    {
                        t1.Yers = 000;
                        Console.WriteLine("Error. (Введите повторно)");
                        goto Found1;
                    }
                    Pos pro;
Found3:
                    Console.WriteLine("Введите оклад");
                    try
                    {
                        string blabla3 = Console.ReadLine();
                        t1.Salary = blabla3;
                        pro       = (Pos)Enum.Parse(typeof(Pos), blabla3);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error. (Введите повторно)");
                        pro = Pos.None;
                        goto Found3;
                    }

                    list.Add(t1);
                    Console.WriteLine("Строка была добавлена!");
                    Console.WriteLine();
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!");
                    break;

                case REMOVE_RAW:
                    string       linel = String.Empty;
                    string       delet = Console.ReadLine();
                    StreamReader sr    = new StreamReader(path);
                    while (sr.Peek() >= 0)
                    {
                        String temp = sr.ReadLine();
                        if (temp.IndexOf(delet) != -1)
                        {
                        }
                        else
                        {
                            linel += temp;
                        }
                    }
                    sr.Close();
                    StreamWriter sw = new StreamWriter(path);
                    sw.Write(linel);
                    sw.Close();
                    Logging.Add(DateTime.Now, Operations.ADD, "строка удалена!");
                    break;

                case UPDATE_RAW:
                    StreamReader readf    = new StreamReader(path);
                    string       surname  = readf.ReadLine();
                    string       pos      = readf.ReadLine();
                    var          position = Pos.None;
                    if (pos == "П")
                    {
                        position = Pos.П;
                    }
                    else if (pos == "С")
                    {
                        position = Pos.С;
                    }
                    else if (pos == "А")
                    {
                        position = Pos.А;
                    }
                    int    year   = int.Parse(readf.ReadLine());
                    string salary = readf.ReadLine();
                    HRD    newWorker;
                    newWorker.Name    = surname;
                    newWorker.Postion = Convert.ToString(position);
                    newWorker.Yers    = year;
                    newWorker.Salary  = salary;
                    table.Add(newWorker);
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!");
                    break;

                case FIND_RAW:
                    Console.WriteLine("Введите фамилию");
                    string text = Console.ReadLine();
                    HRD    FindRaw;
                    for (int item_list = 0; item_list < list.Count; item_list++)
                    {
                        FindRaw = list[item_list];
                        if (FindRaw.Name.ToLower().Equals(text.ToLower()))
                        {
                            Console.Write("{0,10}", FindRaw.Name);
                            Console.Write("{0,10}", FindRaw.Postion);
                            Console.Write("{0,10}", FindRaw.Yers);
                            Console.Write("{0,10}", FindRaw.Salary);
                            Console.WriteLine();
                        }
                    }
                    Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!");
                    break;

                case SHOW_LOG:
                    Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!");
                    Logging.ShowInfo();
                    break;

                case ADD_WRITE:
                    var encod = System.Text.Encoding.GetEncoding(1251);

                    //Для чтения текста из файла:
                    var    Reader = new StreamReader(path, encod);
                    String text1  = Reader.ReadToEnd();
                    String text2  = Reader.ReadToEnd();
                    Reader.Close();

                    StreamWriter write      = new StreamWriter(@"D:\lab.dat");
                    int          list_item1 = 0;
                    HRD          d          = list[list_item1];
                    write.WriteLine("{0,10} {1,10} {2,10} {3,10}", d.Name, d.Postion, d.Yers, d.Salary);
                    list_item1++;
                    write.Close();
                    //Для записи в файл:
                    var Writer = new StreamWriter(path, true, encod);
                    if (text1 != text2)
                    {
                        Writer.Write(text1);
                    }
                    Writer.Close();

                    Logging.Add(DateTime.Now, Operations.ADD, "Запись в файл");

                    break;

                case Sort:
                    for (int i = 0; i < list.Count; i++)
                    {
                        int j   = i - 1;
                        var tmp = list[i];
                        while (j >= 0 && tmp.Yers < list[j].Yers)
                        {
                            list[j + 1] = list[j];
                            j--;
                        }
                        list[j + 1] = tmp;
                    }
                    using (StreamWriter newText = new StreamWriter(path, false))
                    {
                        for (int i = 0; i < list.Count; i++)
                        {
                            newText.WriteLine("{0,10} {1,10} {2,10} {3,10}", list[i].Name, list[i].Postion, list[i].Yers, list[i].Salary);
                        }
                    }
                    Console.WriteLine("Таблица готова");
                    Logging.Add(DateTime.Now, Operations.ADD, "Сортировка");

                    break;

                case EXIT:

                    break;
                }
            } while (choice != 9);
        }