Dear Sir,

This is the 3rd part of the question, I want to find and list the finalists.

Cheers,

First you have to create a 1,new file then 2,add member then 3,open and read then 4, you can change the phone number then 5, you can find only 3 finalists(sorry exchange the number in the code)and last 6 exit from the main program.... :)
This program is written in Turbo Pascal 7.0 by me.
Sorry for the missing comments :'(
Good day. :D

Program Solution01;

Uses Crt;

Type
   TString = String[30];

   TRecord = Record
               FirstName  :TString;
               LastName   :TString;
               PhoneNumber:LongInt;
            End;


Const TheFile = 'C:\Record.dat';


Var User_Choice,Rnd:Integer;
    Bag:Set Of Byte;
    All:Array[0..99]Of TRecord; {max 100 member}
    A:Array[1..10]Of TRecord;
    F:File Of TRecord;
    i,aindex,bindex,cindex,counter,FS,CF:Byte;


Procedure MainMenu;Forward;

Procedure Terminate; {6. option}
Begin
   WriteLn;
   Write('Press enter to quit.');
   ReadLn;
   ReadLn;
   Halt;
End;

Procedure CreateNew;{1. option}
Begin
   ClrScr;
   Assign(F,TheFile);
   Rewrite(F);
   Close(F);
   WriteLn('The file is empty.');
   WriteLn('File created: ',TheFile);
   WriteLn('Now you can add members to this file.');
   Write('Press enter to continue.');
   ReadLn;
   MainMenu;
End;

Procedure AddNewMember; {2. option}
Begin
   Assign(F,TheFile);
   ClrScr;
   WriteLn;
   WriteLn('How many guy do you want to add,max 10 members?');
   Write('Your Choice is: ');
   ReadLn(FS);
   For i:=1 to Fs Do Begin
      WriteLn('---');
      Write(i,'. First Name: ');
      ReadLn(A[i].FirstName);
      Write('   Last Name: ');
      ReadLn(A[i].LastName);
      Write('   Phone: ');
      ReadLn(A[i].PhoneNumber);
      If (i=FS) Then WriteLn('---');
   End;
   WriteLn;
   Reset(F);
   FileMode:=2;
   Seek(F,FileSize(F));
   For i:=1 to FS Do Write(F,A[i]);
   Close(F);
   Write('Writting is success.Press enter to continue.');
   ReadLn;
   MainMenu;
End;

Procedure OpenAndRead;{3. option}
Begin
   ClrScr;
   Assign(F,TheFile);
   Reset(F);
   aindex:=0;
   While (EoF(F)=False)Do Begin
      Read(F,All[aindex]);
      WriteLn('-',aindex,'-');
      WriteLn('First Name: ',All[aindex].FirstName);
      WriteLn('Last Name: ', All[aindex].LastName);
      WriteLn('Phone: ',All[aindex].PhoneNumber);
      Inc(aindex);
   End;
   WriteLn;
   Write('Press enter to Main menu.');
   ReadLn;
   MainMenu;
End;

Procedure ChangePhone; {4. option}
Begin
  ClrScr;
  Write('Please give me the member''s number: ');
  ReadLn(CF);
  Assign(F,TheFile);
  Reset(F);
  bindex:=0;
  While (EoF(F)=False) Do Begin
     Read(F,All[bindex]);
     If (EoF(F)=True) Then Break;
     Inc(bindex,1);
  End;
  If (CF>bindex) Then Begin
     Write('Too big number entered.Can''t change.');
     ReadLn;
     MainMenu;
  End;
  WriteLn(CF,'. First Name: ',All[CF].FirstName);
  WriteLn('Last Name: ',All[CF].LastName);
  WriteLn('Last entered phone number: ',All[CF].PhoneNumber);
  Write('The new phone number: ');
  ReadLn(All[CF].PhoneNumber);
  Seek(F,CF);
  Write(F,All[CF]);
  Close(F);
  Write('Press enter to continue.');
  ReadLn;
  MainMenu;
End;

Procedure FindThree;{5. option}
Begin
   ClrScr;
   Assign(F,TheFile);
   Reset(F);
   cindex:=0;
   While (EoF(F)=False) Do Begin
     Read(F,All[cindex]);
     If(EoF(F)=True)Then Break;
     Inc(cindex);
   End;
   If (cindex<=3) Then Begin
     Write('The members are too few.');
     ReadLn;
     MainMenu;
   End;
   Randomize;
   Bag:=[];{empty}
   For i:=1 To 3 Do Begin
     Rnd:=Random(cindex);
     If (Rnd In Bag) Then i:=i-1
     Else Begin
        Bag:=Bag+[Rnd];
        WriteLn(i,'. First Name: ',All[Rnd].FirstName);
        WriteLn('Last Name: ',All[Rnd].LastName);
        WriteLn('Phone: ',All[Rnd].PhoneNumber);
     End;
   End;
   Close(F);
   ReadLn;
   MainMenu;
End;


Procedure MainMenu;{0. option}
Begin
   ClrScr;
   WriteLn;
   WriteLn('Select one number between 0 and 6.');
   WriteLn;
   WriteLn('    0.Refresh.');
   WriteLn;
   WriteLn('    1.Create a new file.');
   WriteLn;
   WriteLn('    2.Add new member.');
   WriteLn;
   WriteLn('    3.Open and read an existing file.');
   WriteLn;
   WriteLn('    4.Change phone number for one person.');
   WriteLn;
   WriteLn('    5.Find the 3 finalist.');
   WriteLn;
   WriteLn('    6.Exit.');
   WriteLn;
   Write('Your Choice is : ');
   {$I-}
   ReadLn(User_Choice);
   {$I+}
   If IoResult<>0 Then Terminate;
   Case (User_Choice) Of
      0:MainMenu;
      1:CreateNew;
      2:AddNewMember;
      3:OpenAndRead;
      4:ChangePhone;
      5:FindThree;
      6:Terminate;
   End;

End;


Begin {main}

   MainMenu;

End.{end of main}
{
-=Created By FlamingClaw=-
-=2009.04.28=-
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.