База данных в консоли (не SQL, не WinForms) - C#
Формулировка задачи:
Написать программу для работы с БД "Студенты":
Структура БД:
- № (номер записи)
- ФИО
- Дата рождения (дд.мм.гг)
- Факультет
- Группа
- Курс
- Средний балл
Работа БД:
~ добавление, изменение, удаление записи (элемента) БД
~ сортировка по полям: ФИО, Дата рождения
~ поиск элемента по полям: ФИО, Дата рождения
~ нахождение Max, Min, среднего значения и суммы по полю: Средний балл.
Ввод/вывод данных в файл, ввод/вывод информации и т.д. - меню.
Данные БД хранятся в файле.
Что-то отдаленно напоминающее идею без практической реализации:
7 столбцов постоянно ( № | ФИО | Дата рождения | Институт | Группа | Курс | Средний балл ) неизвестное кол-во студентов (строк) цикл на ввод строки строка - элемент "массива" (или коллекции??) И еще оформление... но это пока не самое главное. У кого есть опыт такого создания БД в КОНСОЛИ(е-мае! эксперименты для университетского предмета)
, отпишитесь, любые идеи приветствуются! Решение задачи: «База данных в консоли (не SQL, не WinForms)»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.IO; namespace Лабораторная2 { class Students { public int num; public string FIO; public DateTime Birthday; public string Institute; public string Group; public int Step; public double Ball; } class Program { public static void Main() { Students Student = new Students(); List<Students> Note = new List<Students>(); FileStream file = new FileStream("ListofStudents.txt", FileMode.Open, FileAccess.ReadWrite); StreamReader reader = new StreamReader(file, Encoding.UTF8); StreamWriter writer = new StreamWriter(file, Encoding.UTF8); string row; do { row = reader.ReadLine(); string[] mas = new string[7]; mas = row.Split(' '); Student.num = Convert.ToInt32(mas[0]); Student.FIO = mas[1]; Student.Birthday = Convert.ToDateTime(mas[2]); Student.Institute = mas[3]; Student.Group = mas[4]; Student.Step = Convert.ToInt16(mas[5]); Student.Ball = Convert.ToDouble(mas[6]); Note.Add(Student); Student = new Students(); } while (reader.EndOfStream == false); Console.WriteLine("База данных:"); for (int i = 0; i < Note.Count; i++) { Console.WriteLine(Note[i].num + "\t" + Note[i].FIO + "\t" + Note[i].Birthday + "\t" + Note[i].Institute + "\t" + Note[i].Group + "\t" + Note[i].Step + "\t" + Note[i].Ball); } Console.ReadKey(); Console.Write("Выберите действие:\n 1) Добавить запись; \n 2) Удалить запись \n 3)Изменить запись \n 4) Прямая сортировка \n 5) Обратная сортировка; \n 6) Поиск эл-та \n 7) Переход к пункту меню: Средний балл \n"); int choose = Convert.ToInt32(Console.ReadLine()); switch (choose) { case 1: { try { Student = new Students(); string plus = Console.ReadLine(); string[] masPlus = plus.Split(' '); Student.num = Convert.ToInt32(masPlus[0]); Student.FIO = masPlus[1]; Student.Birthday = Convert.ToDateTime(masPlus[2]); Student.Institute = masPlus[3]; Student.Group = masPlus[4]; Student.Step = Convert.ToInt16(masPlus[5]); Student.Ball = Convert.ToDouble(masPlus[6]); Note.Add(Student); Console.WriteLine("Изменённый список:"); for (int i = 0; i < Note.Count; i++) { Console.WriteLine(Note[i].num + "\t" + Note[i].FIO + "\t" + Note[i].Birthday + "\t" + Note[i].Institute + "\t" + Note[i].Group + "\t" + Note[i].Step + "\t" + Note[i].Ball); } Console.ReadKey(); } catch (System.FormatException) { Console.WriteLine("Проверьте правильность введенных данных"); Console.ReadKey(); break; } break; } //////////////////////////////////////////////////осткод//////////////////////////////////////////////////
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д