Unit modul; interface uses Crt; var c: char; {type} Type users = record id : integer; name : string[20]; rating : integer; end; Type Q = record id : integer; name : string[50]; v1,v2,v3,v4 : string[20]; v11,v22,v33,v44: string[1]; end; {/type} {~} Procedure Privet; Procedure Menu_users; Procedure Menu2_users; Procedure Add_user; Procedure Del_user; Procedure Dir_user; Procedure Author; Procedure Menu2_quest; Procedure Menu_quest; Procedure Add_quest; Procedure Del_quest; Procedure Test_menu; Procedure Test_menu2; Procedure Test; {~} implementation Procedure Privet; Begin clrscr; writeln(' '); writeln(' '); writeln(' Ŀ ۲'); writeln(' 㢠 '); writeln(' '); writeln(' ۲۲ ߲۲۲ '); writeln(' ۲ ۲ '); writeln(' ۲ ߲۲ '); writeln(' ۲ 1. 㢠 ۲ '); writeln(' ۲ 2. 㢠 ۲ '); writeln(' ۲ 3. ⠭ ۲ '); writeln(' ۲ 4. ॣ i ۲ '); writeln(' 5. () ۲ '); writeln(' 6. i ߲ '); writeln(' '); writeln(' ߲ '); writeln(' ߲۲ ۲ '); writeln(' '); writeln(' ۲ '); writeln(' '); writeln; End; Procedure menu2_users; Begin ClrScr; writeln(' '); writeln(' ͸'); writeln(' ۳ 1 㢠 '); writeln(' ;'); writeln(' ۱'); writeln(' '); writeln(' ͸'); writeln(' ۳ 2 i箣 㢠 '); writeln(' ;'); writeln(' ۱'); writeln(' '); writeln(' ͸'); writeln(' ۳ 3 <<< । '); writeln(' ;'); writeln(' ۱'); writeln(' '); end; Procedure Menu_users; Begin menu2_users; repeat c:= readkey; case c of '1' :add_user; '2' :del_user; '3' : ; end; until c = '3'; end; Procedure Add_user; var f1,f2 : file of users; a,b : users; i : integer; Begin clrscr; Assign(f1,'users.dat'); Assign(f2,'users.old'); reset(f1); rewrite(f2); {from users.dat to users.old coping} while not Eof(f1) do begin read(f1,a); write(f2,a); end; Close(f1); Close(f2); {/1} {2} Assign(f1,'users.dat'); Assign(f2,'users.old'); rewrite(f1); reset(f2); writeln(' 㢠 '); writeln(''); while not Eof(f2) do begin read(f2,a); write(f1,a); end; writeln(' i 㢠 '); writeln(''); readln(a.name); { 㢠} a.id:=a.id+1; a.rating:=0; write(f1,a); {rec main to file} Close(f1); Close(f2); writeln(''); writeln(''); writeln('Ŀ'); writeln(' 㢠 ! i i Enter '); writeln(''); readkey; clrscr; menu2_users; End; Procedure Del_user; var f1,f2 : file of users; a,b : users; i : integer; kkk,kk:integer; v_st,v_st2 :string; Begin ClrScr; {1} Assign(f1,'users.dat'); Assign(f2,'users.old'); reset(f1); rewrite(f2); writeln(' 㢠i '); writeln(''); writeln; writeln('Ŀ'); writeln(' ID I 㢠 ।i '); writeln(''); while not Eof(f1) do begin read(f1,a); {i 浪} str(a.id,v_st); kk:=length(v_st); for kkk:=kk to 10 do v_st:=' '+v_st; v_st:=v_st+' '; kk:=length(a.name); for kkk:=kk to 35 do a.name:=a.name+' '; a.name:=a.name+' '; str(a.rating,v_st2); kk:=length(v_st2); for kkk:=kk to 7 do v_st2:=' '+v_st2; writeln(v_st,a.name,v_st2); {Dir} {```} write(f2,a); end; Close(f1); Close(f2); {/1} {2} Assign(f1,'users.dat'); Assign(f2,'users.old'); rewrite(f1); reset(f2); writeln(''); writeln(': id 㤥 i, 㢠 㤥 !'); Writeln(' 㢠 ? (ID)'); Readln(b.id); {DELTE!} { 㤠 㢠 } while not Eof(f2) do begin read(f2,a); if a.id<>b.id then begin write(f1,a); end; end; writeln(''); writeln('Ŀ'); writeln(' i i᭥ ! i i Enter '); writeln(''); readkey; clrscr; menu2_users; end; Procedure Dir_user; var f1 : file of users; a : users; kkk,kk:integer; v_st,v_st2 :string; Begin Clrscr; writeln(' ॣ 㢠i '); writeln(''); writeln; writeln('Ŀ'); writeln(' ID I 㢠 ।i '); writeln(''); Assign(f1,'users.dat'); reset(f1); while not Eof(f1) do begin read(f1,a); {i 浪} str(a.id,v_st); kk:=length(v_st); for kkk:=kk to 10 do v_st:=' '+v_st; v_st:=v_st+' '; kk:=length(a.name); for kkk:=kk to 35 do a.name:=a.name+' '; a.name:=a.name+' '; str(a.rating,v_st2); kk:=length(v_st2); for kkk:=kk to 7 do v_st2:=' '+v_st2; writeln(v_st,a.name,v_st2); {Dir} {```} end; Close(f1); writeln(''); writeln('Ŀ'); writeln(' i i᭥ ! i i Enter '); writeln(''); readkey; clrscr; menu2_users; end; Procedure Author; Begin Clrscr; writeln(' ۲ ۲ '); writeln(' ۲۲ ۲ '); writeln(' ۲۲'); writeln(' ۲۲۲ ۲۲'); writeln(' ۲۲۲ ۲'); writeln(' ۲ ۲۲߲'); writeln(' ۲ ۲۲ '); writeln(' ۲ ۲ '); writeln(' ߲ ۲ '); writeln(' ܲ '); writeln(' ۲ ߲ ۲ ۲ ߲ ܲ ߲ '); writeln(' ۲ ߲ ۲ ۲ ߲'); writeln(' ۲ ۲ '); writeln(' ۲ ܲ ۲ ܲ'); writeln(' ۲ ܲ Ŀ ߲ ܲ'); writeln(' ߲ ࠪ筠 P #2 ܲ'); writeln(' i i砳 '); writeln(' ஭i쪠 ii ߲'); writeln(' ۲ ߲'); writeln(' ߲ ۲ ۲ ܲ'); writeln(' ۲ ܲ Ŀ ۲۲ ۲ '); writeln(' ߲ ۲ STORM ۲۲ ۲ '); writeln(' ۲ ۲۲۲ ۲۲ '); writeln(' ۲۲۲ ۲ '); writeln(' ۲ ۲ ۲۲߲'); writeln(' ۲ ۲۲ '); writeln(' ۲ '); writeln(' ߲ ۲'); readkey; end; Procedure menu2_quest; Begin ClrScr; writeln(' '); writeln(' ͸'); writeln(' ۳ 1 ⠭ '); writeln(' ;'); writeln(' ۱'); writeln(' '); writeln(' ͸'); writeln(' ۳ 2 ⠭ '); writeln(' ;'); writeln(' ۱'); writeln(' '); writeln(' ͸'); writeln(' ۳ 3 <<< । '); writeln(' ;'); writeln(' ۱'); writeln(' '); end; Procedure Menu_quest; Begin menu2_quest; repeat c:= readkey; case c of '1' :Add_quest; '2' :del_quest; '3' : ; end; until c = '3'; end; Procedure Add_quest; var f1,f2 : file of Q; a,b : Q; i,o : integer; Begin ClrScr; Assign(f1,'q.dat'); Assign(f2,'q.old'); reset(f1); rewrite(f2); {from questions.dat to questions.old coping} while not Eof(f1) do begin read(f1,a); write(f2,a); end; Close(f1); Close(f2); {/1} {2} Assign(f1,'q.dat'); Assign(f2,'q.old'); rewrite(f1); reset(f2); writeln(' ⠭ '); writeln(''); while not Eof(f2) do begin read(f2,a); write(f1,a); end; writeln(' i ⭭? '); writeln(''); readln(a.name); { ⠭} writeln(''); writeln('i 1 i iii?'); readln(a.v1); writeln(''); writeln('i 2 i iii?'); readln(a.v2); writeln(''); writeln('i 3 i iii?'); readln(a.v3); writeln(''); writeln('i 4 i iii?'); readln(a.v4); writeln(''); { writeln('');} writeln(': ࠢ쭨 i iii 猪 ii i.'); writeln('ਪ: 3 i i୨, i : 3'); writeln(''); writeln('i ࠢ쭨 i iii? '); readln(o); {***} if o=1 then a.v11:='T' else a.v11:='F'; if o=2 then a.v22:='T' else a.v22:='F'; if o=3 then a.v33:='T' else a.v33:='F'; if o=4 then a.v44:='T' else a.v44:='F'; {***} a.id:=a.id+1; write(f1,a); {rec main to file} Close(f1); Close(f2); writeln(''); writeln(''); writeln('Ŀ'); writeln(' ⠭ ! i i Enter '); writeln(''); readkey; clrscr; menu2_quest; end; Procedure Del_quest; var f1,f2 : file of Q; a,b : Q; i : integer; kkk,kk:integer; v_st :string; Begin ClrScr; {1} Assign(f1,'q.dat'); Assign(f2,'q.old'); reset(f1); rewrite(f2); writeln(' ⭭ '); writeln(''); writeln; writeln('Ŀ'); writeln(' ID ⠭ '); writeln(''); while not Eof(f1) do begin read(f1,a); {i 浪} str(a.id,v_st); kk:=length(v_st); for kkk:=kk to 10 do v_st:=' '+v_st; v_st:=v_st+' '; kk:=length(a.name); for kkk:=kk to 35 do a.name:=a.name+' '; a.name:=a.name+' '; writeln(v_st,a.name); {Dir} {```} write(f2,a); end; Close(f1); Close(f2); {/1} {2} Assign(f1,'q.dat'); Assign(f2,'q.old'); rewrite(f1); reset(f2); writeln(''); writeln(': id 㤥 i, ⠭ 㤥 !'); Writeln(' ⠭ ? (ID)'); Readln(b.id); {DELTE!} { 㤠 ⠭ } while not Eof(f2) do begin read(f2,a); if a.id<>b.id then begin write(f1,a); end; end; writeln(''); writeln('Ŀ'); writeln(' i i᭥ ! i i Enter '); writeln(''); readkey; clrscr; menu2_quest; end; Procedure Test_menu; Begin test_menu2; repeat c:= readkey; case c of '1' :Test; '2' :; end; until c = '2'; end; Procedure Test_menu2; Begin ClrScr; writeln(' '); writeln(' ͸'); writeln(' ۳ 1 㢠 '); writeln(' ;'); writeln(' ۱'); writeln(' '); writeln(' ͸'); writeln(' ۳ 2 <<< । '); writeln(' ;'); writeln(' ۱'); writeln(' '); end; Procedure Test; var f1,f2,f4,f5 : file of users; a,aa : users; kkk,kk : integer; v_st,v_st2 : string; i,ii : integer; f3 : file of Q; b : Q; vopros : string; kor : string[20]; Begin ClrScr; writeln(' '); writeln(''); {user} writeln; writeln(' 㢠i '); writeln('Ŀ'); writeln(' ID I 㢠 ।i '); writeln(''); Assign(f1,'users.dat'); reset(f1); while not Eof(f1) do begin read(f1,a); {i 浪} str(a.id,v_st); kk:=length(v_st); for kkk:=kk to 10 do v_st:=' '+v_st; v_st:=v_st+' '; kk:=length(a.name); for kkk:=kk to 35 do a.name:=a.name+' '; a.name:=a.name+' '; str(a.rating,v_st2); kk:=length(v_st2); for kkk:=kk to 7 do v_st2:=' '+v_st2; writeln(v_st,a.name,v_st2); {Dir} {```} end; writeln(''); Writeln('i ᪠ 㢠 ? ()'); writeln(''); readln(kor); Close(f1); Assign(f1,'users.dat'); reset(f1); while not Eof(f1) do begin read(f1,a); if kor=a.name then begin {***********************************} a.rating:=0; Assign(f3,'q.dat'); reset(f3); while not eof(f3) do begin read(f3,b); clrscr; writeln(' '); writeln(''); writeln('ࠢ: '); writeln('1. ᪫ ⠭ i 4 i iii 쮣'); writeln('2. ࠢ ii i ⠭ ਬ 5 i'); writeln('3. ii 猪 ii i iii'); writeln(''); kk:=length(b.name); for kkk:=kk to 35 do b.name:=b.name+' '; b.name:=b.name; writeln(' ⠭ '); writeln('Ŀ'); writeln(' ',b.name,' '); writeln(''); writeln('ia ii:'); {writeln(b.name);} kk:=length(b.v1); for kkk:=kk to 20 do b.v1:=b.v1+' '; b.v1:=b.v1; writeln('Ŀ'); writeln(' 1 ',b.v1,' '); writeln(''); kk:=length(b.v2); for kkk:=kk to 20 do b.v2:=b.v2+' '; b.v2:=b.v2; writeln('Ŀ'); writeln(' 2 ',b.v2,' '); writeln(''); kk:=length(b.v3); for kkk:=kk to 20 do b.v3:=b.v3+' '; b.v3:=b.v3; writeln('Ŀ'); writeln(' 3 ',b.v3,' '); writeln(''); kk:=length(b.v4); for kkk:=kk to 20 do b.v4:=b.v4+' '; b.v3:=b.v4; writeln('Ŀ'); writeln(' 4 ',b.v3,' '); writeln(''); readln(ii); if (ii=1) and (b.v11='T') then a.rating:=a.rating+5; if (ii=2) and (b.v22='T') then a.rating:=a.rating+5; if (ii=3) and (b.v33='T') then a.rating:=a.rating+5; if (ii=4) and (b.v44='T') then a.rating:=a.rating+5; end; Close(f3); {rec raring usera to test.dat} Assign(f4,'test.dat'); rewrite(f4); aa.id:=a.id; aa.name:=a.name; aa.rating:=a.rating; write(f4,aa); Close(f4); {/rec rating usera to test.dat} end; end; Close(f1); {***********************************} {1 backup} Assign(f1,'users.dat'); Assign(f2,'users.old'); reset(f1); rewrite(f2); while not Eof(f1) do begin read(f1,a); write(f2,a); end; Close(f1); Close(f2); {/1 backup} {2 delete } Assign(f1,'users.dat'); Assign(f2,'users.old'); rewrite(f1); reset(f2); { 㤠 㢠 } while not Eof(f2) do begin read(f2,a); if a.id<>aa.id then begin write(f1,a); end; end; Close(f1); Close(f2); Assign(f1,'users.dat'); Assign(f2,'users.old'); reset(f1); rewrite(f2); {from users.dat to users.old coping} while not Eof(f1) do begin read(f1,a); write(f2,a); end; Close(f1); Close(f2); {////} {ADD} Assign(f1,'users.dat'); Assign(f2,'users.old'); rewrite(f1); reset(f2); while not Eof(f2) do begin read(f2,a); write(f1,a); end; a.id:=aa.id; a.name:=aa.name; a.rating:=aa.rating; write(f1,a); {rec main to file} Close(f1); Close(f2); {/user} clrscr; writeln(''); writeln('Ŀ'); writeln(' i祭 ! i i Enter '); writeln(''); Readkey; Test_menu2; End; end.