БД с операциями: добавление новой строки, удаление строки, редактирование имеющейся строки - 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.

Объяснение кода листинга программы

  1. Типы данных и объявление переменных:
    • arr: массив строк (строковый массив), в котором хранятся данные о студентах.
    • DataBase: структура данных, представляющая информацию о студенте (ФИО, возраст, группа, номер телефона).
    • quantity: количество студентов, введенное пользователем.
    • i: счетчик, используемый в цикле.
    • a: экземпляр структуры DataBase, который используется для ввода данных о студенте.
  2. Функция поиска: Функция search() используется для поиска строки, содержащей указанный запрос, в массиве arr. Функция возвращает индекс найденной строки.
  3. Функция заполнения массива: Функция fillarr() используется для ввода данных о студенте в экземпляр структуры DataBase. Введенные данные сохраняются в соответствующих полях структуры.
  4. Процедура добавления данных: Процедура add() используется для добавления данных о студенте в конец массива arr. Для этого сначала вызывается функция fillarr(), чтобы заполнить структуру DataBase, а затем полученные данные добавляются в конец массива.
  5. Процедура изменения данных: Процедура change() используется для изменения данных о студенте в массиве arr. Пользователю предлагается ввести номер или ФИО студента, данные которого нужно изменить. Затем вызывается функция search(), чтобы найти индекс студента, и полученные данные заменяются новыми данными, введенными пользователем.
  6. Процедура удаления данных: Процедура DeleteStr() используется для удаления данных о студенте из массива arr. Пользователю предлагается ввести номер или ФИО студента, данные которого нужно удалить. Затем вызывается функция search(), чтобы найти индекс студента, и этот элемент массива удаляется. После этого массив сортируется и переворачивается.
  7. Процедура вывода базы данных: Процедура WriteBD() используется для вывода данных из массива arr. Сначала выводится номер студента, а затем его данные.
  8. Основной код: В основном коде программы сначала пользователю предлагается ввести количество студентов, затем заполняется массив arr с помощью функции fillarr(). После этого вызываются функции add(), change(), delete(), и writebd(), чтобы добавить, изменить, удалить и вывести данные о студентах.

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы