QUESTION
You are required to create a student management system that will allow you to store and
update student records. Each student record should consist of an id, a name (fist name
and last name), date of birth, address, telephone number and the program being pursued.
Assume 10 records will be stored.
1. Create and populate an array of records. Store records into file
2. Allow user to update a record. Note, the user should only manipulate the data
structure. All changes to the data structure should then be use to overwrite the
file.
3. Allow user to search for a record from the data structure.
4. Print all records from the structure.
NB. The students should create appropriate functions to solve the problem.
Three Questionss
1. Why when it is printed i get rubbish?
2. When i search for the ID, how can i display the entire information for that ID?
3. Im lost to how i am suppose to update the file
4. Is the loading function done correctly
PHP Code:
#include <stdio.h>
#include <ctype.h>
struct Student
{
int ID;
char LastName[32];
char FirstName[32];
int DateOfBirth; // This could be of the form YYYYMMDD. For example someone born on December 21st, 1990 would have a value of 19901221
char Address[32];
char TelephoneNumber[11]; // a 10-digit string
char ProgramPursued[32];
};
struct Student students[10]={
{234,"Spencer", "Sochelle", 220587, "29_Decent_Village", "528-5214", "Business"},
{345,"Dobson", "Dwayne", 890583, "263_Far Park Blvd", "457-2014", "Computer"},
{456,"Clarke", "Dave", 110181, "87_Rasta_Village", "354-5874", "Law"},
{567,"Currie", "Nickeisha", 230491, "26_Waterground_rd", "898-6578", "Nurse"},
{678,"Blackwood", "Mariann", 10490, "3_St_Johns_road", "256-1458", "Art"},
{789,"Hall", "Wesley", 101086, "3_Bayfarm_road", "236-1028", "Science"},
{891,"Hall", "Bouki", 251285, "67_pimpim_drive", "887-9910", "Engineer"},
{912,"Paul", "Shawn", 231180, "25_glasco_Close", "567-1996", "Law"},
{101,"Able", "Frank", 100591, "1_Camp_road", "528-1235", "Business"},
};
char GetUserOption();
int GetIDFromUser();
void LetUserSearchForStudent();
void UpdateStudents(Student students[]);
void PrintStudents(Student students[]);
void LoadStudents(Student students[]);
void SaveStudents(Student students[]);
char GetUserOption()
{
char option = 'I'; // 'I' for Invalid
while(option == 'I')
{
// Print the menu items
printf("\n");
printf("Choose one of the following options:\n[u]pdate [P]rint [S]earch [E]xit\n");
scanf("%c", &option);
switch(toupper(option))
{
case 'U':
case 'P':
case 'S':
case 'E':
break;
default:
option = 'I';
break;
}
}
return option;
}
int GetIDFromUser()
{
int id = 0;
printf("Enter the ID: ");
scanf("%d", &id);
return id;
}
void LetUserSearchForStudent()
{
// Getting the ID from the user to search for
int id = GetIDFromUser();
}
// students must hold 10 students
void UpdateStudents(Student students[])
{
}
// students must hold 10 students
void PrintStudents(Student students[])
{
FILE *fp ;
char ch ;
fp = fopen ( "records.txt", "rb" ) ;
while ( 1 )
{
ch = fgetc ( fp) ;
if ( ch == EOF )
break ;
printf ( "%c", ch ) ;
}
fclose ( fp ) ;
}
// students must hold 10 students
void LoadStudents(Student students[])
{
FILE *fp;
fp=fopen("records.txt","a+");
}
// students must hold 10 students
void SaveStudents(Student students[])
{
int i;
// Open the file for writing
FILE *fp = fopen("records.txt", "wb");
if(fp == NULL) return;
// Loop through each student
for(i = 0; i < 10; ++i)
{
// Write the student to the file....here we will use comma-separated values
fprintf(fp, "%d,%s,%s,%d,%s,%s,%s\r\n",
students[i].ID,
students[i].LastName,
students[i].FirstName,
students[i].DateOfBirth,
students[i].Address,
students[i].TelephoneNumber,
students[i].ProgramPursued
);
}
// Close the file
fclose(fp);
}
int main()
{
Student students[10];
int looping = 1;
// Load the students from the file
LoadStudents(students);
// Loop until exit
while(looping)
{
char option = GetUserOption();
switch(option)
{
case 'U':
UpdateStudents(students);
break;
case 'P':
PrintStudents(students);
break;
case 'S':
LetUserSearchForStudent();
break;
case 'E':
looping = 0; // exit the loop
break;
}
}
// Save the students to the file
SaveStudents(students);
return 0;
}


