Автор: Пользователь скрыл имя, 13 Декабря 2012 в 12:20, курсовая работа
Современная вычислительная техника позволяет решать большое количество различных задач. Пожалуй, наиболее важным применением ЭВМ стало хранение информации. Удобные и разнообразные средства для этой цели предоставляют технологии баз данных и информационно-справочных систем. Целью данной курсовой работы является приобретение опыта алгоритмизации, конструирования, практической реализации программ и широкого применения ЭВМ, на примере программирования информационно-справочной системы. В качестве языка программирования выбран язык TURBO PASCAL, изучаемый на занятиях по дисциплине “Программирование на языках высокого уровня”.
writeln('╔════════════════════
Writeln('║ Введите данные о ':34,i,'-ом студенте ║':25);
writeln('╚════════════════════
with lineFile do
Begin
writeln('╔════════════════════
writeln('║ Ф.И.О:
writeln('╠════════════════════
writeln('║ Специальность:
writeln('╠════════════════════
Writeln('║ Стипендия:
writeln('╠════════════════════
Writeln('║ Льготы:
writeln('╚════════════════════
russ;
GotoXy(30,5);
Readln(fam);
GotoXy(30,7);
Readln(spec);
GotoXy(34,9);
Readln(stip);
GotoXy(30,11);
Readln(lgot);
End;
Write(Ft,lineFile);
writeln;
clrscr;
End;
clrscr;
MSOK;
close(ft);
End;
End.
{*****************************
{* Модуль
EDITSTR предназначен для редактировании
строки
{* Процедура editstring является основной и используется в главной программе *}
{* входным параметром является n он определяет в какой таблице менять строку *}
{*****************************
unit EditStr;
Interface
Procedure EditString(n:integer);
Implementation
Uses crt;
Type
stud=record
fam:string[21];
grup:string[13];
inf:string[22];
spec:string[7];
end;
st=record
fam:string[80];
spec:string[30];
stip:string[50];
lgot:string[30];
end;
Procedure Russ;
begin
textbackground(11);
GotoXY(2,25);
write(' Для переключения на русский язык используйте клавиши Shift+"Контекстное меню"');
textbackground(7);
end;
Procedure MessageVopros;
var
i:integer;
begin
textcolor(0);
for i:=1 to 6 do
writeln('');
writeln('╔════════════════════
writeln('║ Вы действительно хотите изменть строку? ║':65);
writeln('╠════════════════════
writeln('║ Нажмите Enter для продолжения и ESC для отмены ║':65);
writeln('╚════════════════════
end;
Procedure Okiz;
begin
writeln;
writeln;
writeln('╔════════════════════
writeln('║ Строка успешно изменена! ║':65);
writeln('╠════════════════════
writeln('║ Для продолжения нажмите любую клавишу ║':65);
writeln('╚════════════════════
readkey;
end;
Procedure EditString(n:integer);
Var
i,r,p:integer;
newStr1:stud;
newStr2:st;
f1:file of stud;
f2:file of st;
key:char;
Begin
clrscr;
MessageVopros;
key:=readkey;
if key=#13 then begin
clrscr;
repeat
writeln('╔════════════════════
writeln('║ Введите номер изменяемой строки: ║':65);
writeln('╠════════════════════
writeln('║
writeln('╚════════════════════
gotoXY(45,4);
{$I-}
read(r);
p:=IOResult;
if p<>0 then
begin
writeln;
writeln('╔════════════════════
writeln('║ Неверный формат ввода! Вводите цифры! ║':65);
writeln('╚════════════════════
delay(1000);
end;
clrscr;
until (p=0);
{$I+}
readln;
if n=1
then
begin
with NewStr1 do
begin
writeln('╔════════════════════
writeln('║ Ф.И.О.:
writeln('╠════════════════════
writeln('║ Группа:
writeln('╠════════════════════
Writeln('║ Информация:
writeln('╠════════════════════
Writeln('║ Специальность:
writeln('╚════════════════════
russ;
GotoXY(30,2);
Readln(fam);
GotoXY(30,4);
Readln(grup);
GotoXY(30,6);
Readln(inf);
GotoXY(30,8);
Readln(spec);
GotoXY(30,10);
okiz;
end;
assign(f1,'studentinf.txt');
reset(f1);
seek(f1,r-1);
write(f1,NewStr1);
close(f1);
end;
if n=2
then
begin
with NewStr2 do
Begin
writeln('╔════════════════════
writeln('║ Ф.И.О.:
writeln('╠════════════════════
writeln('║ Специальность:
writeln('╠════════════════════
Writeln('║ Стипендия:
writeln('╠════════════════════
Writeln('║ Льготы:
writeln('╚════════════════════
russ;
GotoXy(30,2);
Readln(fam);
GotoXy(30,4);
Readln(spec);
GotoXy(34,6);
Readln(stip);
GotoXy(30,8);
Readln(lgot);
okiz;
End;
assign(f2,'stip.txt');
reset(f2);
seek(f2,r-1);
write(f2,NewStr2);
close(f2);
end;
end
else exit;
if key=#27 then exit;
end;
end.
{*****************************
{* Модуль GLMENU предназначен для вывода
интерфеса меню
{* Процедура CursorOff – отключает
курсор
{*
Процедура PODMen- прорисовывает надписи
подменю
{*
Процедура GlMen – прорисовывает надписи
подменю
{*
Процедура Scr – заливает фон голубым цветом
{*
Процедура Fon- заливает область под надписью
серым цветом
{*
Процедура Activ- выделяет активный пункт
меню желтым цветом
{* Процедура Text – делает
цвет надписей черными
{* Процедура DrawMenu –прорисовывает
структуру главного меню
{* Процедура DrawPMenu- прорисовывает структуру подменю *}
{* Процедура Vbr- двигает
активную область в меню
{* ПроцедураVbrPM1-двигает активную обл. в подменю и рисует таблицу студенты *}
{* Процедура VbrPM2- двигает активную обл. в подменю и рисует таблицу стипендия *}
{* входным параметром является n он определяет пункт меню *}
{* выходным параметром является K он определяет пункт подменю *}
{*****************************
Unit GlMenu;{модуль прорисовки
interface
Procedure CursorOff;{процедура
Procedure PODMen;{прорисовка пунктов подменю}
Procedure GlMen;{прорисовка пунктов главного меню}
Procedure Scr;{процедура закраски фона голубым цветом}
Procedure Fon;{процедура закраски
области подтекста серым
Procedure Activ;{процедура закраски
выбранного пунка желтым
Procedure Text;{процедура текста}
procedure DrawMenu(n: integer);{рисование главного меню}
procedure DrawPMenu(n: integer);{рисование подменю}
Procedure VbrPM1(var k:integer);{передвижение активного курсора по подменю}
Procedure VbrPM2(var k:integer);{передвижение активного курсора по подменю}
Procedure Vbr(var k:integer);{передвижение активного курсора по меню}
implementation
uses crt,hat;
var C:char;
n,i,w,z:integer;
GM:array[1..5] of string;{массив строк для главного меню}
PM:array[1..7] of string;{массив строк для подменю}
pr:string;
FileName:string;
Procedure CursorOff;Assembler; { Процедура отключения курсора}
Asm
mov ah,1
mov ch,$20
int $10
end;
Procedure PODMen;{процедура прорисовки пунктов подменю}
begin
PM[1]:=' Добавить ';
PM[2]:=' Изменить ';
PM[3]:=' Удалить ';
PM[4]:=' Поиск ';
PM[5]:=' Сортировать ';
PM[6]:=' Распечатать ';
PM[7]:=' Назад ';
end;
Procedure GlMen;{процедура прорисовки пунктов главного меню}
begin
GM[1]:=' СТУДЕНТЫ ';
GM[2]:=' СТИПЕНДИЯ ';
GM[3]:=' СОЗДАТЬ БД ';
GM[4]:=' УДАЛИТЬ БД ';
GM[5]:=' ВЫХОД ';
end;
Procedure Scr;{процедура закраски фона голубым цветом}
begin
textbackground(11);{смена
end;
Procedure Fon;
begin
textbackground(7);{серый цвет}
end;
Procedure Activ;
begin
textbackground(14);{желтый цвет}
end;
Procedure Text;
begin
textcolor(0);{текст черный}
end;
procedure DrawMenu;
var
i:integer;
begin
clrscr;
scr;
fon;
{перемещение главного меню на центр экрана}
for i:=1 to n-1 do
begin
GotoXY(30,10+i);{перемещение на заданную позицию}
Writeln(GM[i]);{вывод массива строк}
end;
Activ;
gotoXY(30,10+n);
writeln(GM[n]);
scr;
fon;
for i:=n+1 to 5 do
begin
GotoXY(30,10+i);
writeln(Gm[i]);
end;
{вывод подсказки на экран}
scr;
fon;
gotoXY(2,25);
write(' Для перемещениями между пунктами меню используйте клавиши ',#24,#25,' ');
end;
Procedure Vbr(var k:integer);{процедура выбора пунктов меню}
var
Counter: integer;
begin
clrscr;
GlMen;
n:=1;
c:=#2;
w:=0;
scr;
text;
DrawMenu(1);
{если не нажат enter}
while c<>#13{обозначение клавиши enter} do
begin
repeat
c:=readkey;
until (c=#13) or (c=#72) or (c=#80);
scr;
clrscr;
fon;
scr;
if (n=1) and (c=#72)
then n:=2;
if (n=5) and (c=#80)
then n:=4;
if c=#80 then
begin
n:=n+1;
if n=7 then n:=1;
DrawMenu(n);
end;
if c=#72 then
begin
dec(n);
if n=0 then n:=6;
DrawMenu(n);
end;
Информация о работе Программирование на языках высокого уровня "Стипендия"