![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Nolan |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Пожалуйста, помогите исправить ошибки в программе. Условия задачи таковы: В деканате ВУЗа хранятся сведения о студентах: ФИО, форма обучения (очная, вечерняя, заочная), факультет, специальность, номер группы, домашний адрес и адрес родителей, дата поступления в ВУЗ, курс. Создать СУБД «Диплом». СУБД должна выдавать следующие сведения: список студентов по номеру группы; список студентов на заочной форме обучения; сведения о студенте по введенным ФИО. Обязательные процедуры в СУБД: 1. Создание БД. 2. Вывод БД. 3. Добавление записей. 4. Корректировка сведений в БД. 5. Печать сведений из БД по запросу. 6. Функциональное меню. Вот исходник: Код program sema35;program sema35; uses crt; const cr=13; upkey=72; downkey=80; esc=27; cur_text=yellow; cur_ground=red; text=white; ground=blue; points: array[0..9] of string = ('Menu', '1. Enter BD', '2. Print BD', '3. Add student', '4. Correct BD', '5. Create File', '6. Spisok po gruppe', '7. Studenti na zaochn', '8. Inf abt student', 'End Menu'); type Diplom = record Fam: string[14]; Name: string[11]; Otch: string[12]; Form: string[10]; Facult: string[10]; Spez: string[12]; Grnumb: integer; Homadr: string[15]; Padr: string[15]; Entdate: string[13]; Kurs:string[1]; end; tF = File of Diplom; var G : tF; aBD : Diplom; sym:integer; y:byte; Function getkey:integer; var s: integer; begin getkey:=ORD(readkey); if s=0 then getkey:=ORD(readkey); end; procedure cursor(y,txt,ground:byte); var s: string; i: byte; begin gotoxy(1,y); textcolor(txt); textbackground(ground); s:=points[y]; write(s); end; Procedure menu(y:byte); var i:byte; begin window(1,1,80,25); textbackground(black); clrscr; window(30,10,53,17); textbackground(ground); clrscr; textcolor(text); for i:=0 to 6 do writeln(points[i]); window(30,11,53,16); cursor(y,cur_text,cur_ground); end; Function up(y:byte):byte; begin if y > 1 then y:= y - 1 else y:=5; up:=y; end; Function down(y:byte):byte; begin if y < 5 then y:= y+1 else y:=1; down:=y; end; procedure Createf(var aG:tF); var st:string[8]; begin clrscr; writeln('Vvedite imya faila'); readln(st); assign(aG,st); readln; end; Procedure Enterform (Var aG:tF); Var aBD : Diplom; fm:string[10]; o:string[7]; z:string[9]; v:string[10]; begin o:='ochnaya'; z:='zaochnaya'; v:='vechernaya'; Writeln ('Vvedite formu obucheniya studenta'); Writeln ('Ochnaya - vvedite "ochnaya"'); Writeln ('Zaochnaya - vvedite "zaochnaya"'); Writeln ('Vechernaya - vvedite "vechernaya"'); Readln (fm); If fm <> o then begin If fm <> z then begin If fm <> v then Writeln ('Oshibka pri vvode'); end; end; aBD:=fm; End; Procedure CreateBD(var aG : tF); var aBD : Diplom; st : string; begin window(1,1,80,25); gotoxy(1,1); rewrite(aG); st := 'y'; repeat clrscr; Writeln('Vvedite dannye po studentu'); writeln; writeln('Familiya'); readln(aBD.fam); writeln('Imya'); readln(aBD.Name); writeln('Otchestvo'); readln(aBD.Otch); Procedure Enterform(Var aG:tF); writeln('Fakultet'); readln(aBD.Facult); writeln('Spezialnost'); readln(aBD.spez); writeln('Nomer gruppi'); readln(aBD.Grnumb); writeln('Domashnii adres'); readln(aBD.Homadr); writeln('Adres roditelei'); readln(aBD.Padr); writeln('Data postupleniya'); readln(aBD.Entdate); writeln('Kurs obycheniya'); readln(aBD.Kurs); writeln; writeln; writeln('Vvesty dannie ob eshe odnom stydente ? (y/n)'); readln(st); write(aF,aBD); until st = 'n'; close(aG); end; Procedure AddBD (var aG : tF); var aBD : Diplom; Reset (aG); Seek (G, filesize); clrscr; Writeln('Vvedite dannye po studentu'); writeln; writeln('Familiya'); readln(aBD.fam); writeln('Imya'); readln(aBD.Name); writeln('Otchestvo'); readln(aBD.Otch); Procedure Enterform(Var aG:tF); writeln('Fakultet'); readln(aBD.Facult); writeln('Spezialnost'); readln(aBD.spez); writeln('Nomer gruppi'); readln(aBD.Grnumb); writeln('Domashnii adres'); readln(aBD.Homadr); writeln('Adres roditelei'); readln(aBD.Padr); writeln('Data postupleniya'); readln(aBD.Entdate); writeln('Kurs obycheniya'); readln(aBD.Kurs); close(aG); end; Procedure PrintBD (var aG : tF); var aBD : Diplom; Reset (aG); writeln(& #39;____________________________________________________________________________ ___________'); writeln(& #39;|___________Familiya___________|__________Imya__________|__________Otchestvo ___________|'); While not EOF (G) do Begin Read (G,aBD); writeln('|', aBD.fam:16,'|', aBD.Name:13,'|', aBD.Otch:14,'|'); writeln(& #39;|______________________________|________________________|___________________ ___________|'); end; Close (G): End; procedure findByGroup(var aG : tF); var kod : integer; flag : boolean; begin clrscr; reset(aF); Writeln('Vvedite nomer gruppi'); readln(kod); flag:= true; writeln('____________________________Spisok studentov gruppi N',kod,'___________________________'); while not EOF(G) do begin read(aF,aBD); if aBD.Grnumb = kod then begin writeln(& #39;____________________________________________________________________________ ___________'); writeln(& #39;|___________Familiya___________|__________Imya__________|__________Otchestvo ___________|'); writeln('|', aBD.fam:16,'|', aBD.Name:13,'|', aBD.Otch:14,'|'); writeln(& #39;|______________________________|________________________|___________________ ___________|'); readln; Flag:=true; end; Close (G); If flag then writeln(‘Studentov iz gruppi’,kod,’ne naideno’); end; procedure ZaochGr (var aG : tF); var flag : boolean; begin clrscr; reset(aF); flag:= true; writeln('____________________________Spisok studentov na zaochnoi forme obucheniya___________________________'); while not EOF(G) do begin read(aF,aBD); if aBD.Form = 'zaochnaya' then begin writeln(& #39;____________________________________________________________________________ ___________'); writeln(& #39;|___________Familiya___________|__________Imya__________|__________Otchestvo ___________|'); writeln('|', aBD.fam:16,'|', aBD.Name:13,'|', aBD.Otch:14,'|'); writeln(& #39;|______________________________|________________________|___________________ ___________|'); readln; Flag:=true; end; Close (G); If flag then writeln('Studentov na zaochnoi forme obucheniya ne naideno'); end; Procedure Inf_FIO(var aG : tF); var flag : boolean; stfam : string [16]; stname : string[15]; stotch : string [13]; begin clrscr; reset(aF); Writeln('Vvedite familiu studenta'); readln(stfam); Writeln('Vvedite imya studenta'); readln(stname); Writeln('Vvedite otchestvo studenta'); readln(stotch); flag:= true; writeln('____________________________’Informacia o studente’___________________________'); while not EOF(G) do begin read(aF,aBD); if (aBD.fam = stfam) and (aBD.Name = stname)and (aBD.Otch = stotch) then begin writeln(& #39;____________________________________________________________________________ ___________'); writeln('|___________Gruppa___________|__________Kurs__________|__________Forma obucheniya___________|'); writeln('|', aBD.Grnumb:5,'|', aBD.Kurs:3,'|', aBD.Form:12,'|'); writeln(& #39;|______________________________|________________________|___________________ ___________|'); readln; Flag:=true; end; Close (G); If flag then writeln('Studentov s dannim FIO ne naideno'); end; procedure call(y:byte); begin window(1,1,80,25); textbackground(black); clrscr; textcolor(white); gotoxy(20,5); Case y of 1: Createf (G); 2: Enterform (G); 4: CreateBD(G); 3: Procedure AddBD (G); 5: PrintBD (G); 6: FindByGroup (G); 7: ZaochGr (G); 8: Inf_FIO (G); end; delay(6000); end; begin clrscr; y:=1; menu(y); repeat sym := getkey; case sym of cr: begin Call(y); menu(y); end; upkey: begin cursor(y,text,ground); y:=up(y); cursor(y,cur_text,cur_ground); end; downkey:begin cursor(y,text,ground); y:=down(y); cursor(y,cur_text,cur_ground); end; esc:; end; until sym = esc; end. Сообщение отредактировано: Nolan - 16.12.2005 2:18 |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 6:49 |