Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROGRAM cityResidents;
- USES
- Crt;
- CONST
- userMax = 10;
- TYPE
- typeResident = RECORD
- name, nameNach, strasse, nummer, city: string;
- plz: longint;
- usage: integer;
- END;
- typeResidentArray = ARRAY[1..userMax] OF typeResident;
- VAR
- i,n, userSelection: integer;
- residentArray: typeResidentArray;
- rememberMe: typeResident;
- optionChoice: char;
- PROCEDURE inputInteger(name: string);
- BEGIN
- write('Eingabe ',name,' = ');
- readln(n);
- END;
- PROCEDURE inputResidents(VAR userArray: typeResidentArray);
- BEGIN
- clrScr;
- write('Eingabe ');
- FOR i := 1 TO n DO BEGIN
- writeln('<Anwohner ',i,'>');
- writeln;
- write('Name: ');
- readln(userArray[i].name);
- write('Nachname: ');
- readln(userArray[i].nameNach);
- write('Strasse: ');
- readln(userArray[i].strasse);
- write('Hausnummer: ');
- readln(userArray[i].nummer);
- write('Postleitzahl: ');
- readln(userArray[i].plz);
- write('Stadt: ');
- readln(userArray[i].city);
- writeln;
- userArray[i].usage := 1;
- END;
- END;
- PROCEDURE outputResidents(VAR userArray: typeResidentArray);
- BEGIN
- FOR i := 1 TO n DO BEGIN
- gotoXY(1,i+3);
- write(userArray[i].name,' ',userArray[i].nameNach);
- gotoXY(26,i+3);
- write(userArray[i].strasse,' ',userArray[i].nummer);
- gotoXY(52,i+3);
- write(userArray[i].plz,' ',userArray[i].city);
- END;
- END;
- PROCEDURE outputPreset;
- BEGIN
- gotoXY(1,1);
- write('Name / Nachname');
- gotoXY(26,1);
- write('Strasse / Hausnummer');
- gotoXY(52,1);
- write('PLZ / Stadt');
- END;
- PROCEDURE gotoInput(inputName: string);
- BEGIN
- gotoXY(1,24);
- writeln(inputName);
- write('> ');
- END;
- PROCEDURE selectResidentPlace(userArray: typeResidentArray);
- BEGIN
- gotoInput('Einwohner hinzufügen an letzter Stelle? Y | N');
- REPEAT optionChoice := upcase(readKey) UNTIL optionChoice IN ['Y','N'];
- IF optionChoice = 'Y' THEN
- FOR i := 1 TO n DO BEGIN
- IF userArray[i].usage = 0 THEN
- { CHECK FOR LAST USED ARRAY }
- END;
- PROCEDURE selectResident(userArray: typeResidentArray);
- BEGIN
- IF userArray[i].usage = 0 THEN
- write('Keine Einwohner verfügbar')
- ELSE BEGIN
- write('Verfuegbare Einwohner: ');
- FOR i := 1 TO n DO
- IF userArray[i].usage = 1 THEN
- write(i,'(',userArray[i].nameNach,'), ');
- gotoInput('Auswahl Benutzer');
- readln(userSelection);
- END;
- END;
- PROCEDURE addResident(userArray: typeResidentArray);
- BEGIN
- selectResidentPlace(userArray);
- END;
- PROCEDURE removeResident(userArray: typeResidentArray);
- BEGIN
- selectResident(userArray);
- END;
- PROCEDURE editResident(userArray: typeResidentArray);
- BEGIN
- selectResident(userArray);
- END;
- PROCEDURE switchResident(userArray: typeResidentArray);
- BEGIN
- selectResident(userArray);
- END;
- PROCEDURE Options;
- BEGIN
- writeln;
- gotoInput('A Add | R Remove | E Edit | S Switch | X Close');
- REPEAT optionChoice := upcase(readKey) UNTIL optionChoice IN ['A','R','E','S','X'];
- CASE optionChoice OF
- 'A': addResident(residentArray);
- 'R': removeResident(residentArray);
- 'E': editResident(residentArray);
- 'S': switchResident(residentArray);
- END;
- END;
- BEGIN
- clrScr;
- inputInteger('Einwohnerzahl');
- clrScr;
- inputResidents(residentArray);
- readln;
- clrScr;
- outputPreset;
- outputResidents(residentArray);
- Options;
- END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement