Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/47: Рейтинг темы: голосов - 47, средняя оценка - 4.72
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77

База данных в консоли (не SQL, не WinForms)

25.11.2016, 20:23. Показов 9196. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам

Кликните здесь для просмотра всего текста
Написать программу для работы с БД "Студенты":

Структура БД:
- № (номер записи)
- ФИО
- Дата рождения (дд.мм.гг)
- Факультет
- Группа
- Курс
- Средний балл

Работа БД:
~ добавление, изменение, удаление записи (элемента) БД
~ сортировка по полям: ФИО, Дата рождения
~ поиск элемента по полям: ФИО, Дата рождения
~ нахождение Max, Min, среднего значения и суммы по полю: Средний балл.

Ввод/вывод данных в файл, ввод/вывод информации и т.д. - меню.

Данные БД хранятся в файле.

Уважаемые форумчане, выручайте огромного нуба!
Не знаю с чего начать эту работу. Пока есть только имена переменных -_-
Хотелось начать делать с помощью многомерных массивов, т.к. мне немного известно про метод <List>, но говорят, он намного проще, ведь коллекцию можно перевести в массив....

Что-то отдаленно напоминающее идею без практической реализации:
7 столбцов постоянно ( № | ФИО | Дата рождения | Институт | Группа | Курс | Средний балл )
неизвестное кол-во студентов (строк)
цикл на ввод строки
строка - элемент "массива" (или коллекции??)

И еще оформление... но это пока не самое главное.

У кого есть опыт такого создания БД в КОНСОЛИ (е-мае! эксперименты для университетского предмета), отпишитесь, любые идеи приветствуются!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2016, 20:23
Ответы с готовыми решениями:

База данных, основанная на службах vs База данных SQL Server
Доброго времени суток. Делал я, значит, Data Access Layer для ASP.NET MVC проекта. Создал обычную библиотеку классов, моделей туда...

Импорт данных из Excel в MS SQL через приложение WinForms
Всем привет. В приложение С# WinForms нужно добавить возможность импорта данных из Excel в MS SQL. Пользователь просто выбирает нужный...

Как подключиться к базе данных на Wpf. База данных Sql Server
Раньше работал с Windows Worms, и то не долго. Щас хочу перейти на WPF. Я в этом деле еще новичок. Не могли бы вы объяснить как...

45
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77
25.11.2016, 20:52  [ТС]
Может без SQL вообще создать БД невозможно, не знаю. Нас не учили с этим работать, а защитить лабораторную без знания нюансов работы с SQL мне нереально...
По идее, если это будет массив, то нужно а) изощриться с его заполнением
б) использовать приемы типа перевода в char, Parse всякий и т.д.
...список можно продолжать бесконечно
мозг кипит
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
25.11.2016, 21:03
Данные обязательно в текстовом файле должны быть? Если нет, то можно просто создать класс, описывающий студента Student, и хранить экземпляры этого класста в списке List<Student>. Для загрузки/сохранения списка использовать сериализацию (бинарную, XML и т.д. на выбор).
0
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77
25.11.2016, 21:21  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
Данные обязательно в текстовом файле должны быть?
такое вот условие в л/р...
Цитата Сообщение от Someone007 Посмотреть сообщение
Если нет, то можно просто создать класс, описывающий студента Student, и хранить экземпляры этого класста в списке List<Student>.
Someone007, мхмм. надо разибраться в методе List, значит
Цитата Сообщение от Someone007 Посмотреть сообщение
Для загрузки/сохранения списка использовать сериализацию (бинарную, XML и т.д. на выбор).
то, что попроще... скорее не XML, т.к. я этого не знаю.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
25.11.2016, 21:43
Цитата Сообщение от stodeer Посмотреть сообщение
такое вот условие в л/р...
Ну у вас написано просто в файле, файлы разные могут быть, если конечно тот пример на скриншоте не подразумевает как этот файл должен выглядеть. С текстом немного сложнее работать, т.к. придется вручную разбирать все по строкам... Использовать сериализацию намного проще было бы.
0
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77
26.11.2016, 09:16  [ТС]
Someone007, конечно, это вывод файла в идеале.
Битовая сериализация 'проще', чем XML?
0
 Аватар для 1231231ghacking
102 / 106 / 62
Регистрация: 19.11.2015
Сообщений: 380
26.11.2016, 09:38
Я сейчас сделаю, подожди немного...скину
0
 Аватар для 1231231ghacking
102 / 106 / 62
Регистрация: 19.11.2015
Сообщений: 380
26.11.2016, 10:59
Лучший ответ Сообщение было отмечено stodeer как решение

Решение

Вот держи...
Сделал большую часть, думаю сам доделаешь...
Сделал сохранение/загрузку XML,сделал добавление/удаление/просмотр студентов, сериализацию..Так же сделал меню..
Вложения
Тип файла: rar ConsoleApplication2.rar (30.4 Кб, 226 просмотров)
2
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77
26.11.2016, 12:06  [ТС]
Цитата Сообщение от 1231231ghacking Посмотреть сообщение
Вот держи...
Сделал большую часть, думаю сам доделаешь...
Сделал сохранение/загрузку XML,сделал добавление/удаление/просмотр студентов, сериализацию..Так же сделал меню..
Спасибо! это серьезно просто великолепно

но препод не разрешил использовать xml, сказал, что такое используют только продвинутые
0
 Аватар для 1231231ghacking
102 / 106 / 62
Регистрация: 19.11.2015
Сообщений: 380
26.11.2016, 12:14
Цитата Сообщение от stodeer Посмотреть сообщение
Спасибо! это серьезно просто великолепно

но препод не разрешил использовать xml, сказал, что такое используют только продвинутые
так скажи ему, что ты продвинутый)

Добавлено через 1 минуту
если нужно,могу переделать без xml)
1
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77
26.11.2016, 12:48  [ТС]
Цитата Сообщение от 1231231ghacking Посмотреть сообщение
так скажи ему, что ты продвинутый)
не пройдет, мне пока далеко до вашего, например, уровня D:
Цитата Сообщение от 1231231ghacking Посмотреть сообщение
если нужно,могу переделать без xml)
было б круто, если вам несложно
0
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77
30.11.2016, 20:47  [ТС]

почему не робит?:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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;
                    }
//////////////////////////////////////////////////осткод//////////////////////////////////////////////////
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
30.11.2016, 21:01
потому что в mass[2] инициалы, а не дата
1
30.11.2016, 21:20  [ТС]

Не по теме:

Diamante, ок

0
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77
30.11.2016, 21:30  [ТС]
Diamante, вот такую фиговину выдает
что где нужно сделать с кодировкой текста?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
30.11.2016, 21:45
C#
1
Encoding.Default
1
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77
30.11.2016, 22:06  [ТС]
Diamante, не подскажете, как не выводить часы/секунды в моем случае?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
30.11.2016, 22:22
C#
1
2
3
            var dt = DateTime.Now;
            Console.WriteLine(dt.ToString("dd.MM.yyyy"));
            Console.ReadKey(true);
Добавлено через 11 минут
или dt.ToShortDateString() , но первый вариант гибчее
1
 Аватар для stodeer
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 77
30.11.2016, 22:55  [ТС]
Diamante, что-то я не пойму как это интегрировать
C#
1
                Student.Birthday = Convert.ToDateTime(mas[2]);
↑ вот такое чтение, никак без ввода новой переменной не обойтись?
и такой вывод ↓
C#
1
2
3
4
5
6
 Console.WriteLine("База данных:");
            for (int i = 0; i < Note.Count; i++)
            {
                Console.WriteLine(Note[i].num + "\t" + Note[i].FIO + "\t" + Note[i].Birthdayl);
            }
            Console.ReadKey();
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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.Default);
            StreamWriter writer = new StreamWriter(file, Encoding.Default);
            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();
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
01.12.2016, 01:28
C#
1
Note[i].Birthday.ToString("dd.MM.yyyy")
точки можешь заменить на что хошь / , . / | \ < > { } [ ] } { и тд, и тп.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2016, 01:28
Помогаю со студенческими работами здесь

Обработка данных через запросы SQL внутри приложения (виртуальная база данных)
Есть данные, которые с точки зрения удобства написания кода, проще всего обрабатывать запросами SQL. Возможно ли сделать это внутри...

База данных в SQL
Ребята, спасайте...срочно нужно создать базу данных. Кто может сделать? Сама не очень понимаю, да и времени почти нет. Буду очень...

База данных в MS SQL
Создал базу в MS SQL, делаю связи вышла ошибка.помогите исправить Таблица &quot;Ингредиенты&quot; сохранена успешно таблица &quot;Состав...

Легкая база данных SQL
Можете помочь создать базу данных лёгкую на SQL

База данных в SQL Developer
Здравствуйте. Подскажите пожалуйста. Создал базу в sql developer, (username &quot;system&quot;). Таблицы и прочее. Захожу в APEX (Oracle...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru