БД с операциями: добавление новой строки, удаление строки, редактирование имеющейся строки - PascalABC.NET
Формулировка задачи:
Нужно создать базу данных в паскале, с операциями: добавление новой строки, удаление строки, редактирование имеющей строки. Желательно с пояснениями для меня, заранее спасибо
Решение задачи: «БД с операциями: добавление новой строки, удаление строки, редактирование имеющейся строки»
textual
Листинг программы
type arr=array of string; DataBase=record fio:string[30]; age:integer; group:string[6]; phone:string[11]; end; //Поиск индекса Function search(Data: arr; Query: string):integer; begin for var i:=0 to Data.Length-1 do if (pos(Query,DATA[i])=1) then result:=i; end; //Ввод данных Function fillarr(stud:DataBase):string; begin with stud do begin writeln('Введите ФИО студента'); readln(fio); writeln('Введите возраст'); readln(age); writeln('Введите группу'); readln(group); writeln('Введите номер телефона'); readln(phone); end; result:=stud.fio + ' ' + stud.age + ' ' + stud.group + ' ' + stud.phone; end; //Добавить данные Procedure add(var massiv:arr); var b:DataBase; begin writeln('Добавление данных'); setlength(massiv,massiv.Length+1); massiv[massiv.Length-1]:= fillarr(b); end; //Изменение данных Procedure change(var masiv:arr); var b: DataBase; chg: string; ch, i: integer; begin writeln('Введите номер или ФИО студента, данные которого хотите отредактировать'); readln(chg); integer.TryParse(chg,ch); if ch=0 then i:= search(masiv,chg) else i:= StrToInt(chg); masiv[i]:= fillarr(b); end; //Удаление данных Procedure DeleteStr(var massiv:arr); var del: string; dl, i: integer; begin writeln('Введите номер или ФИО студента, данные которого хотите удалить'); readln(del); integer.TryParse(del,dl); if dl=0 then i:= search(massiv,del) else i:= StrToInt(del); Delete(massiv[i],1,Length(massiv[i])); sort(massiv); reverse(massiv); setlength(massiv,massiv.Length-1); end; //Вывод базы данных Procedure WriteBD(massiv:arr); var i: integer; index: integer := 1; begin writeln('Вывод данных:'); for i:= 0 to massiv.Length-1 do begin writeln(index,') ',massiv[i]); inc(index); end; end; var mas:arr; a:DataBase; quantity,i:integer; begin writeln('Введите количество студентов'); readln(quantity); setlength(mas,quantity); for i:=0 to mas.Length-1 do mas[i]:= fillarr(a);; write(a.fio); add(mas); change(mas); writeln(mas); DeleteStr(mas); DeleteStr(mas); WriteBD(mas); end.
Объяснение кода листинга программы
- Типы данных и объявление переменных:
- arr: массив строк (строковый массив), в котором хранятся данные о студентах.
- DataBase: структура данных, представляющая информацию о студенте (ФИО, возраст, группа, номер телефона).
- quantity: количество студентов, введенное пользователем.
- i: счетчик, используемый в цикле.
- a: экземпляр структуры DataBase, который используется для ввода данных о студенте.
- Функция поиска: Функция search() используется для поиска строки, содержащей указанный запрос, в массиве arr. Функция возвращает индекс найденной строки.
- Функция заполнения массива: Функция fillarr() используется для ввода данных о студенте в экземпляр структуры DataBase. Введенные данные сохраняются в соответствующих полях структуры.
- Процедура добавления данных: Процедура add() используется для добавления данных о студенте в конец массива arr. Для этого сначала вызывается функция fillarr(), чтобы заполнить структуру DataBase, а затем полученные данные добавляются в конец массива.
- Процедура изменения данных: Процедура change() используется для изменения данных о студенте в массиве arr. Пользователю предлагается ввести номер или ФИО студента, данные которого нужно изменить. Затем вызывается функция search(), чтобы найти индекс студента, и полученные данные заменяются новыми данными, введенными пользователем.
- Процедура удаления данных: Процедура DeleteStr() используется для удаления данных о студенте из массива arr. Пользователю предлагается ввести номер или ФИО студента, данные которого нужно удалить. Затем вызывается функция search(), чтобы найти индекс студента, и этот элемент массива удаляется. После этого массив сортируется и переворачивается.
- Процедура вывода базы данных: Процедура WriteBD() используется для вывода данных из массива arr. Сначала выводится номер студента, а затем его данные.
- Основной код: В основном коде программы сначала пользователю предлагается ввести количество студентов, затем заполняется массив arr с помощью функции fillarr(). После этого вызываются функции add(), change(), delete(), и writebd(), чтобы добавить, изменить, удалить и вывести данные о студентах.