1 / 10

SFTW241 Group A4 Presentation of Grouping Process

SFTW241 Group A4 Presentation of Grouping Process. Idea of the Grouping Process (I). Create the student records. Randomly select four students from the global student file.

alia
Télécharger la présentation

SFTW241 Group A4 Presentation of Grouping Process

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SFTW241Group A4Presentation of Grouping Process

  2. Idea of the Grouping Process (I) • Create the student records. • Randomly select four students from the global student file. • Assign these four students into four different groups and those students will become the member of their corresponding group. • For each group, recall back the last selection of group member, and according to his/her first choice, pick up the desired member from the remaining student records.

  3. Idea of the Grouping Process (II) • Check whether the desired student has already been chosen or not. • If he/she has not been chosen, insert his/her student file into the group. • Otherwise, choose another student according to the lower choices of previous student record and perform the same process again. • If the selection of students from the remaining choices have already been grouped, the only case is to randomly select a student from the remaining student records and assign his/her student file into the corresponding group. • Remember that the previous student record is required to push back into the group. ( Since it has recalled from the group )

  4. Idea of the Grouping Process (III) • When a student has been assigned to a group, the right for selecting another student shifts to the adjacent group. That means the group has to queue until the remaining groups have chosen their own members. • This grouping process will be terminated until there are no more remaining student record in the student file.

  5. Pseudo code of Grouping Process • Students First, we need build up a data type for each Student and it is used for creating the global student file. Struct { longint Student_ID; char Student_Name[30]; longint First, Second, Third; int Choose = 0; } student_type ;

  6. Implementation of grouping process (Pseudo Code) I int main() { Stack S[4] ; /* Here the stack will have the structure of Student type */ /* And this represent we have build up 4 stacks. */ Student_type Students[Stundent_Size]; int remain = Stundent_Size , lcv = 1 ; longint result; S[1] = CreateStack_and_MakeEmpty(); S[2] = CreateStack_and_MakeEmpty(); S[3] = CreateStack_and_MakeEmpty(); S[4] = CreateStack_and_MakeEmpty(); Input_Student_Record( Students );

  7. Implementation of grouping process (Pseudo Code) II /* This function is used to randomly select four person from the global student list and put these four person into four different stacks.*/ for ( i starts from 1 to 4 ) { result = Randomize(); Student[result].Choose = 1; Push( S[I] , Student[result] ) ; remain-- ; /* This is used to denote the remaining number of students.*/ }

  8. Implementation of grouping process (Pseudo Code) III while( remain ) { FindNext(Pop( S[lcv] ) , S[ lcv ] , Students , Stundent_Size ) ; remain -- ; if ( lcv == 4 ) lcv = 1 ; /*Reset the next input into the 1st stack.*/ else lcv ++ ; } return 0 ; } //end of program

  9. The function FindNext (I) void FindNext( student_type Temp_Src ,Stack Src_Stack ,Student_type Students[] , int Size) { longint tmp ; Push( Src_Stack , Temp_Src ) ; /* * because Temp_Src had been Popped before the function call * we need to Push it back to the Stack. */

  10. The function FindNext (II) /* * tmp = Temp_Src.First ; * Check the student with this student ID is still available or not * if available then Skip the remain process * else{ * tmp = Temp_Src.Second ; * If available then Skip the remain process * else{ * tmp = Temp_Src.Third ; * If available then Skip the remain process * else { do{ * tmp = Randomize(); * }while (Student[tmp].Choose = 1) * } * } * } * Student[tmp].Choose = 1; * Push(Src_Stack , Student[tmp]. ) ; */ }

More Related