База данных в консоли (не 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;
- }
- //////////////////////////////////////////////////осткод//////////////////////////////////////////////////
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д