Работа с главным меню системы Turbo Pascal. Программирование с использованием массивов. Методы сортировки (Отчет по лабораторной работе № 15)

Страницы работы

Содержание работы

Министерство образования Республики Беларусь

Учреждение образования «Гомельский государственный университет имени

Франциска Скорины»

Физический факультет

Кафедра радиофизики и электроники

Отчет

по лабораторной работе № 15

ОСНОВЫ ПРОГРАММИРОВАНИЯ В СИСТЕМЕ

TURBO PASCAL.

РАБОТА С ГЛАВНЫМ МЕНЮ СИСТЕМЫ.

ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ МАССИВОВ.

МЕТОДЫ СОРТИРОВКИ

Выполнил

студент группы Ф-11                                                                 В.Ю. Курьян

Проверил

доцент кафедры общей физики                                                В. В. Свиридова

2012

uses

  crt;

type

  vibor = (cena, kol);

  tabl = record

    nazvanie: string[65];

     case cm: vibor of

         cena:(suma: longint);

         kol:(summa: integer);

  end;

  str = string[65];

var

  n: byte;

  fl: file of tabl;

  nfl: string[65];

procedure createfile(nfile: str);

var

  inf: tabl;

  otvet, otv: integer;

  fl: file of tabl;

begin

  assign(fl, nfile);

  rewrite(fl);

  repeat

    with inf do

    begin

      write('vvedite nazvanie modeli gestcogo diska ');

      readln(nazvanie);

      writeln('vvedite 1-cena, 2-kolichestvo diskov na sklade ');

      readln(otvet);

      case otvet of

        1:

          begin

            cm := cena;

            write('vvedite cenu na disk');

            readln(suma);

          end;

        2:

          begin

            cm := kol;

            write('vvedite kolichestvo modelei kotorbi estb na sklade ');

            readln(summa);

          end;

      end;

    end;

        {end with inf}

    write(fl, inf);

    writeln('esli hotite zapolnit escho zapisb, nazmite 1');

    readln(otv);

  until otv <> 1;

  close(fl);

end;

procedure editfile(nfile: str);

var

  inf, inf1: tabl;

  fl: file of tabl;

  n, m, noz: byte;

  nq: str;

  cq: longint;

  kq: integer;

begin

  assign(fl, nfile);

  reset(fl);

  writeln('1-izmenit zapis, 2-izmenit otdelnoe pole');

  readln(n);

  case n of

    1:

      begin

        writeln('Vvedite nomer zapisi');

        readln(noz);

        seek(fl, noz);

        read(fl, inf);

        begin

          write('Vvedite nazvanie diska ');

          readln(inf1.nazvanie);

          writeln('Vvedite 1-cena, 2-kolichestvo diskov na sklade ');

          readln(m);

          case m of

            1:

              begin

                inf1.cm := cena;

                write('Vvedite cenu na monitor');

                readln(inf1.suma);

              end;

            2:

              begin

                inf1.cm := kol;

                write('vvedite kolichestvo modelei kotorbi estb na sklade ');

                readln(inf1.summa);

              end;

          end;

        end;

        inf := inf1;

        seek(fl, noz);

        write(fl, inf);

      end;

    2:

      begin

        writeln('Vvedite nomer zapisi');

        readln(noz);

        writeln('1-izmenit nazvanie,2-izmenit cenu, 3-izmenit kolichestvo');

        readln(m);

        case m of

          1:

            begin

              writeln('Vvedite novoe nazvanie');

              readln(nq);

              seek(fl, noz);

              read(fl, inf);

              inf.nazvanie := nq;

              seek(fl, noz);

              write(fl, inf);

            end;

          2:

            begin

              inf.cm := cena;

              writeln('Vvedite novyu cenu');

              read(cq);

              seek(fl, noz);

              read(fl, inf);

              inf.suma := cq;

              seek(fl, noz);

              write(fl, inf);

            end;

          3:

            begin

              inf.cm := kol;

              writeln('Vvedite kolichestvo');

              readln(kq);

              seek(fl, noz);

              read(fl, inf);

              inf.summa := kq;

              seek(fl, noz);

              write(fl, inf);

            end;

        end;

      end;

  end;

end;

procedure vievfile(nfile: str);

var

  fl: file of tabl;

  j, k: integer;

  inf: tabl;

begin

  assign(fl, nfile);

  reset(fl);

  j := 1;

  while not eof(fl) do

  begin

    read(fl, inf);

    for k := 1 to 25 - length(inf.nazvanie) do

      inf.nazvanie := inf.nazvanie + ' ';

    {endfork}

    writeln('__________________________|_______________|________________');

    case inf.cm of

      cena: writeln('¦', inf.nazvanie, '¦', inf.suma:15, '¦               ¦');

      kol: writeln('¦', inf.nazvanie, '¦               ¦', inf.summa:15, '¦');

    end;

    j := j + 1;

  end;

  {end while}

  writeln('__________________________|_______________|________________');

  close(fl);

  readln;

end;

begin

  repeat

    clrscr;

    writeln('1 - sozdanie faila');

    writeln('2 - izmenenie faila');

    writeln('3 - prosmotr faila');

    writeln('0 - vblhod iz programmy');

    readln(n);

    if n = 0 then exit;

    clrscr;

    writeln('Vvedite imya(ili putb) faila');

    readln(nfl);

    case n of

      1: createfile(nfl);

      2: editfile(nfl);

      3: vievfile(nfl);

    end;

  until n = 0;

end.

Похожие материалы

Информация о работе