Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач 2 семестр / Пермский государственный технический университет.doc
Скачиваний:
25
Добавлен:
10.12.2013
Размер:
252.93 Кб
Скачать

5 Инструкция пользователю

Программа предназначена для использования на компьютерах с операционной системой Windows XP.

Чтобы запустить программу нужно два раза щёлкнуть мышкой по файлу с разрешением ехе. Для выхода из программы нажать клавишу еsc.

Она может храниться на любом носителе (флеш памяти, диске, жестком диске…) объёмом не менее 2мб + совсем немного дополнительного места для сохранённых текстовых файлов.

После включения программы сразу же появится у пользователя сразу же будет выбор работать со старой базой данных или создать новую в зависимости от того что он выберет с той базой он и будет работать. Для дальнейшей работы нужно просто следовать указаниям которые виде текста выводятся на экране.

Заключение

В этой курсовой работе была выполнена задача, которую я перед собой ставил. То есть создана база данных, в которой хранится информация о музыкальных группах, причём можно найти группу в базе, добавить группу, удалить её, записать эту базу в файл и при выходе из программы, данные в нем сохраняются.

Приложения

Текст программы:

program My_Curse;

uses dos,graph,crt;

type group=record

Group:string[30];

Style:string[30];

Country:string[30];

Albums:1..15;

RLabel:string[30];

Rating:1..5;

end;

const t:array[1..7] of string[15]=('Добывить группу','Просмотр базы','Поиск группы',

'Удалить группу','Редактирование данных','Сортировка',

'Выход из программы');

var Reg : Registers;

f:file of group;

a:array[1..1000] of ^group;

gd,gm:integer;

i,y,xm,ym:integer;

procedure MoveMouse(var X, Y: Integer);

begin

repeat

Reg.AX:=$05;

Reg.BX:=$00;

Intr($33,Reg);

until Reg.BX = 1;

X:=Reg.CX;

Y:=Reg.DX;

end;

procedure ShowCursor;

begin

Reg.AX:=$01;

Intr($33, Reg);

end;

procedure CloseCursor;

begin

Reg.AX:=$02;

Intr($33, Reg);

end;

procedure setmouserange(x1,y1,x2,y2:integer);

begin

x1:=x1*2;

x2:=x2*2;

Reg.ax:=$07;

Reg.cx:=x1;

Reg.dx:=x2;

intr($33,Reg);

Reg.ax:=$08;

Reg.cx:=y1;

Reg.dx:=y2;

intr($33,Reg);

end;

procedure swap(var a,b:group);

var c:group;

begin c:=a; a:=b; b:=c;

end;

function ravno(s,t:string):boolean;

var i:integer;

begin ravno:=true;

for i:=1 to length(s) do

if s[i]<>t[i] then ravno:=false

end;

procedure vvod;

var i,j,n:integer;ch:char;

Begin

closegraph;

writeln('********************************');

writeln('*Добывление новой группы в базу*');

writeln('********************************');

writeln;

reset(f);

i:=0;

while not eof(f) do

begin

inc(i);

new(a[i]);

read(f,a[i]^);

end;

repeat

inc(i);

new(a[i]);

write('Название: ');

readln(a[i]^.group);

write('Стиль: ');

readln(a[i]^.style);

write('Страна: ');

readln(a[i]^.country);

write('Количесво альбомов: ');

readln(a[i]^.albums);

write('Лейбл: ');

readln(a[i]^.Rlabel);

write('Рейтинг: ');

readln(a[i]^.Rating);

writeln;

write('Ввести еще? (y/n): ');

readln(ch);

until ch='n';

n:=i;

for j:=1 to n do

for i:=1 to n-j do

if a[i]^.group > a[i+1]^.group then swap(a[i]^,a[i+1]^);

rewrite(f);

for i:=1 to n do write(f,a[i]^);

close(f);

End;

procedure vew;

var i,n:integer;ch:char;

Begin

closegraph;

writeln('***************');

writeln('*Просмотр базы*');

writeln('***************');

writeln;

reset(f);

i:=0;

while not eof(f) do

begin

inc(i);

new(a[i]);

read(f,a[i]^);

end;

n:=i;

i:=0;

repeat

inc(i);

writeln('Название: ',a[i]^.group);

writeln('Стиль: ',a[i]^.style);

writeln('Страна: ',a[i]^.country);

writeln('Количество альбомов: ',a[i]^.albums);

writeln('Лейбл: ',a[i]^.Rlabel);

writeln('Рейтинг: ',a[i]^.Rating);

writeln;

if i<>n then begin

write('показать следующую? (y/n): ');

readln(ch);end

else ch:='n';

writeln;

until (ch='n');

Write('Нажмите любую клавишу для выхода в главное меню');

readln;

End;

procedure poisk;

var s:string; i,n:integer; ch:char;

Begin

closegraph;

writeln('**************************');

writeln('*Поиск группы по названию*');

writeln('**************************');

writeln('Примечание: по вводе названия искомой группы, вводте каждое отдельное слово с заглавной группы');

writeln;

reset(f);

i:=0;

while not eof(f) do

begin

inc(i);

new(a[i]);

read(f,a[i]^);

end;

n:=i;

repeat

writeln;

write('Введите название группы: ');

readln(s);

writeln;

i:=0;

repeat

inc(i);

until ravno(s,a[i]^.group) or (i=n);

if not ravno(s,a[i]^.group) then writeln('Такой группы в базе нет');

if ravno(s,a[i]^.group) then

begin

writeln('Название: ',a[i]^.group);

writeln('Стиль: ',a[i]^.style);

writeln('Страна: ',a[i]^.country);

writeln('Количество альбомов: ',a[i]^.albums);

writeln('Лейбл: ',a[i]^.Rlabel);

writeln('Рейтинг: ',a[i]^.rating);

end;

writeln;

write('Искать еще? (y/n): ');

readln(ch)

until (ch='n')

End;

procedure del;

var s:string; i,j,n:integer; ch:char;

Begin

closegraph;

writeln('************************');

writeln('*Удалить группу из базы*');

writeln('************************');

writeln('Примечание: по вводе названия удаляемой группы, вводте каждое отдельное слово с заглавной группы');

writeln;

reset(f);

i:=0;

while not eof(f) do

begin

inc(i);

new(a[i]);

read(f,a[i]^);

end;

n:=i;

repeat

write('Введите название удаляемой группы: ');

readln(s);

writeln;

i:=0;

repeat

inc(i);

until ravno(s,a[i]^.group) or (i=n);

if not ravno(s,a[i]^.group) then writeln('Такой группы нет');

if ravno(s,a[i]^.group) then

begin

writeln('Название: ',a[i]^.group);

writeln('Стиль: ',a[i]^.style);

writeln('Страна: ',a[i]^.country);

writeln('Количество альбомов: ',a[i]^.albums);

writeln('Лейбл: ',a[i]^.Rlabel);

writeln('Рейтинг: ',a[i]^.rating);

writeln;

write('Удалить? (y/n): ');

readln(ch);

if ch='y' then

begin

for j:=i to n-1 do

a[j]^:=a[j+1]^;

if j=n then

Dispose(a[j]);

end;

end;

writeln;

write('Удалить еще? (y/n): ');

readln(ch)

until ch='n';

rewrite(f);

for i:=1 to n-1 do write(f,a[i]^);

close(f)

End;

procedure edit;

var s:string; i,j,n,kod:integer; ch:char;

p:array[1..8] of string[30];

Begin

closegraph;

writeln('***********************');

writeln('*Редактирование данных*');

writeln('***********************');

writeln('Примечание: по вводе названия редактируемой группы, вводте каждое отдельное слово с заглавной группы');

writeln;

reset(f);

i:=0;

while not eof(f) do

begin

inc(i);

new(a[i]);

read(f,a[i]^);

end;

n:=i;

repeat

writeln;

write('Введите название группы: ');

readln(s);

writeln;

i:=0;

repeat

inc(i);

until ravno(s,a[i]^.group) or (i=n);

if not ravno(s,a[i]^.group) then writeln('Такой группы в базе нет');

if ravno(s,a[i]^.group) then

begin

writeln('Название: ',a[i]^.group);

write('Введие новую информацию или нажмите <ENTER>: ');

readln(p[1]);

writeln('Стиль: ',a[i]^.style);

write('Введие новую информацию или нажмите <ENTER>: ');

readln(p[2]);

writeln('Страна: ',a[i]^.country);

write('Введие новую информацию или нажмите <ENTER>: ');

readln(p[3]);

writeln('Количество альбомов: ',a[i]^.albums);

write('Введие новую информацию или нажмите <ENTER>: ');

readln(p[4]);

writeln('Лейбл: ',a[i]^.Rlabel);

write('Введие новую информацию или нажмите <ENTER>: ');

readln(p[5]);

writeln('Рейтинг: ',a[i]^.Rating);

write('Введие новую информацию или нажмите <ENTER>: ');

readln(p[6]);

writeln;

write('Сохранить изминения? (y/n): ');

readln(ch);

if ch='y' then

begin

if p[1]<>'' then a[i]^.group:=p[1];

if (p[2]<>'') then a[i]^.style:=p[2];

if p[3]<>'' then a[i]^.country:=p[3];

if (p[4]<>'') and ((p[4,1] in ['1'..'9']) or ((p[4,1]='1') and (p[4,2] in ['0'..'5']))) then

val(p[4],a[i]^.albums,kod);

if p[5]<>'' then a[i]^.Rlabel:=p[5];

if (p[6]<>'') and (p[6,1] in ['1'..'5']) then val(p[6,1],a[i]^.rating,kod);

end;

end;

writeln;

write('Редактировать еще? (y/n): ');

readln(ch)

until ch='n';

for j:=1 to n do

for i:=1 to n-j do

if a[i]^.group>a[i+1]^.group then swap(a[i]^,a[i+1]^);

rewrite(f);

for i:=1 to n do write(f,a[i]^);

close(f)

End;

procedure cort;

var i,j,n:integer; q:group; s:byte; ok:boolean;

Begin

closegraph;

writeln('******************************');

writeln('*Сортировка по заданному полю*');

writeln('******************************');

writeln;

write('Введтите ключ сортировки (Стиль-1, Страна-2, Лейбл-3, Рейтинг-4): ');

readln(s);

reset(f);

i:=0;

while not eof(f) do

begin

inc(i);

new(a[i]);

read(f,a[i]^);

end;

n:=i;

for i:=n-1 downto 1 do

for j:=1 to i do

begin

case s of

1:ok:=a[j]^.style>a[j+1]^.style;

2:ok:=a[j]^.country>a[j+1]^.country;

3:ok:=a[j]^.Rlabel>a[j+1]^.Rlabel;

4:ok:=a[j]^.Rating>a[j+1]^.Rating;

end;

if ok then begin

q:=a[j]^;

new(a[j]);a[j]^:=a[j+1]^;

new(a[j+1]);a[j+1]^:=q;

end;end;

rewrite(f);

for i:=1 to n do write(f,a[i]^);

close(f);

End;

BEGIN

textcolor(15);

Writeln(' Курсовая работа ');

Writeln(' По информатике ');

Writeln(' Студента группы АТ-07-1 ');

Writeln(' Электротехнического факультета ПГТУ ');

textcolor(4);

Writeln(' Малькова Вячеслава Сергеевича ');

textcolor(15);

Writeln;

Writeln(' Тема курсавой работы: ');

textcolor(4);

Writeln(' База данных ');

textcolor(15);

Writeln;Writeln;Writeln;Writeln;

writeln(' Программа: ROCK BASE vol. 1.0 ');

Writeln;Writeln;Writeln;Writeln;Writeln;Writeln;Writeln;Writeln;Writeln;

textcolor(14);

Write(' Для начала работы нажмите любую клавишу ');

textcolor(15);

readkey;

gd:=0;

(f,'data.pas');

setmouserange(0,0,320,480);

gd:=0;

repeat

initgraph(gd,gm,'');

cleardevice;

rectangle(0,0,150,50);

floodfill(1,1,15);

setcolor(0);

outtextXY(5,20,'ROCK BASE vol. 1.0');

setcolor(15);

y:=40;

for i:=1 to 7 do

begin

rectangle(220,y,420,y+40);

outtextxy(220+(200-length(t[i])*8) div 2,y+20,t[i]);

y:=y+60

end;

showcursor;

movemouse(xm,ym);

closecursor;

if (ym>40) and (ym<80) then vvod;

if (ym>100) and (ym<140) then vew;

if (ym>160) and (ym<200) then poisk;

if (ym>220) and (ym<260) then del;

if (ym>280) and (ym<320) then edit;

if (ym>340) and (ym<380) then cort;

until (ym>400) and (ym<440);

closegraph;

END.