#include <stdio.h>
#include <string.h>
int unique_id( ) {
static int last_id = 0 ;
return ++ last_id;
}
void registerStudent( int n, char ( name) [ n] [ 100 ] , char ( dob) [ n] [ 11 ] , char ( address) [ n] [ 100 ] , char ( contact_no) [ n] [ 11 ] , int student_id[ n] ) {
for ( int i = 0 ; i < n; i++ ) {
printf ( "Enter the details of student %d:\n " , i
+ 1 ) ;
while ( getchar ( ) != '\n ' ) ; // Clear the input buffer
printf ( "Enter the dob (YYYY/MM/DD)(including slash):\n " ) ; while ( getchar ( ) != '\n ' ) ; // Clear the input buffer
printf ( "Enter the address:\n " ) ; scanf ( "%99s" , address
[ i
] ) ; while ( getchar ( ) != '\n ' ) ; // Clear the input buffer
printf ( "Enter the contact no:\n " ) ; scanf ( "%10s" , contact_no
[ i
] ) ; while ( getchar ( ) != '\n ' ) ; // Clear the input buffer
student_id[ i] = unique_id( ) ;
}
}
void student_display( int n, char ( name) [ n] [ 100 ] , char ( dob) [ n] [ 11 ] , char ( address) [ n] [ 100 ] , char ( contact_no) [ n] [ 11 ] , int student_id[ n] )
{
for ( int i = 0 ; i < n; i++ ) {
printf ( "%99s \n " , address
[ i
] ) ; printf ( "%10s \n " , contact_no
[ i
] ) ; printf ( "%d \n " , student_id
[ i
] ) ; }
}
void student_update( int search, int n, char ( name) [ n] [ 100 ] , char ( dob) [ n] [ 11 ] , char ( address) [ n] [ 100 ] , char ( contact_no) [ n] [ 11 ] , int student_id[ n] )
{
int count=- 1 ;
for ( int i= 0 ; i< n; i++ )
{
if ( search== student_id[ i] )
count= i;
}
if ( count>- 1 )
{
printf ( "the student record you wanted to update are found \n " ) ; printf ( "Enter the details of student :\n " ) ;
scanf ( "%99s" , name
[ count
] ) ;
printf ( "Enter the dob (YYYY/MM/DD)(including slash):\n " ) ; scanf ( "%10s" , dob
[ count
] ) ;
printf ( "Enter the address:\n " ) ; scanf ( "%99s" , address
[ count
] ) ;
printf ( "Enter the contact no:\n " ) ; scanf ( "%10s" , contact_no
[ count
] ) ; }
else
printf ( "the student id does not exist" ) ;
}
void student_search( char search[ 100 ] , int n, char name[ n] [ 100 ] , char dob[ n] [ 11 ] , char address[ n] [ 100 ] , char contact_no[ n] [ 11 ] , int student_id[ n] )
{
int count[ 100 ] = { - 1 } ;
int i;
for ( i = 0 ; i < n; ++ i)
{
if ( strcmp ( search
, name
[ i
] ) == 0 ) {
count[ i] = 1 ;
}
}
for ( i= 0 ; i< n; i++ )
{
printf ( "the student details are given by \n " ) ; if ( count[ i] == 1 )
{
printf ( "%99s \n " , address
[ i
] ) ; printf ( "%10s \n " , contact_no
[ i
] ) ; printf ( "%d \n " , student_id
[ i
] ) ; }
}
}
int main( ) {
int max_students, i, id;
printf ( "Enter the total number of students registered this year:" ) ; scanf ( "%d" , & max_students
) ;
// Arrays to store student details
char name[ max_students] [ 100 ] ;
char dob[ max_students] [ 11 ] ;
char address[ max_students] [ 100 ] ;
char contact_no[ max_students] [ 11 ] ;
int student_id[ max_students] ;
char search[ 100 ] ;
char ch;
printf ( "Enter 1 to register the students, 2 for updating a student's details, 3 for searching the number of students with the same name, 4 for displaying the database, and 5 for exiting: " ) ; do {
if ( scanf ( " %c" , & ch
) != 1 ) { continue ;
}
switch ( ch) {
case '1' :
registerStudent( max_students, name, dob, address, contact_no, student_id) ;
break ;
case '2' :
printf ( "Enter the student id to be searched: " ) ; student_update( id, max_students, name, dob, address, contact_no, student_id) ;
break ;
case '3' :
printf ( "Enter the name to be searched:\n " ) ; student_search( search, max_students, name, dob, address, contact_no, student_id) ;
break ;
case '4' :
student_display( max_students, name, dob, address, contact_no, student_id) ;
break ;
default :
if ( ch != '\n ' && ch != ' ' ) {
}
break ;
}
if ( ch != '5' ) {
printf ( "Enter another option (or '5' to exit): " ) ; }
} while ( ch != '5' ) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCB1bmlxdWVfaWQoKSB7CiAgICBzdGF0aWMgaW50IGxhc3RfaWQgPSAwOwogICAgcmV0dXJuICsrbGFzdF9pZDsKfQoKCgoKCnZvaWQgcmVnaXN0ZXJTdHVkZW50KGludCBuLCBjaGFyIChuYW1lKVtuXVsxMDBdLCBjaGFyIChkb2IpW25dWzExXSwgY2hhciAoYWRkcmVzcylbbl1bMTAwXSwgY2hhciAoY29udGFjdF9ubylbbl1bMTFdLCBpbnQgc3R1ZGVudF9pZFtuXSkgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoIkVudGVyIHRoZSBkZXRhaWxzIG9mIHN0dWRlbnQgJWQ6XG4iLCBpICsgMSk7CgogICAgICAgIHByaW50ZigiRW50ZXIgdGhlIG5hbWU6XG4iKTsKICAgICAgICBzY2FuZigiJTk5cyIsIG5hbWVbaV0pOwogICAgICAgIHdoaWxlIChnZXRjaGFyKCkgIT0gJ1xuJyk7IC8vIENsZWFyIHRoZSBpbnB1dCBidWZmZXIKCiAgICAgICAgcHJpbnRmKCJFbnRlciB0aGUgZG9iIChZWVlZL01NL0REKShpbmNsdWRpbmcgc2xhc2gpOlxuIik7CiAgICAgICAgc2NhbmYoIiUxMHMiLCBkb2JbaV0pOwogICAgICAgIHdoaWxlIChnZXRjaGFyKCkgIT0gJ1xuJyk7IC8vIENsZWFyIHRoZSBpbnB1dCBidWZmZXIKCiAgICAgICAgcHJpbnRmKCJFbnRlciB0aGUgYWRkcmVzczpcbiIpOwogICAgICAgIHNjYW5mKCIlOTlzIiwgYWRkcmVzc1tpXSk7CiAgICAgICAgd2hpbGUgKGdldGNoYXIoKSAhPSAnXG4nKTsgLy8gQ2xlYXIgdGhlIGlucHV0IGJ1ZmZlcgoKICAgICAgICBwcmludGYoIkVudGVyIHRoZSBjb250YWN0IG5vOlxuIik7CiAgICAgICAgc2NhbmYoIiUxMHMiLCBjb250YWN0X25vW2ldKTsKICAgICAgICB3aGlsZSAoZ2V0Y2hhcigpICE9ICdcbicpOyAvLyBDbGVhciB0aGUgaW5wdXQgYnVmZmVyCgogICAgICAgIHN0dWRlbnRfaWRbaV0gPSB1bmlxdWVfaWQoKTsKCiAgICB9Cgp9CnZvaWQgc3R1ZGVudF9kaXNwbGF5KGludCBuLCBjaGFyIChuYW1lKVtuXVsxMDBdLCBjaGFyIChkb2IpW25dWzExXSwgY2hhciAoYWRkcmVzcylbbl1bMTAwXSwgY2hhciAoY29udGFjdF9ubylbbl1bMTFdLCBpbnQgc3R1ZGVudF9pZFtuXSkKewpmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHByaW50ZigiJTk5cyBcbiIsIG5hbWVbaV0pOwogICAgICAgIHByaW50ZigiJTEwcyBcbiIsIGRvYltpXSk7CiAgICAgICAgcHJpbnRmKCIlOTlzIFxuIiwgYWRkcmVzc1tpXSk7CiAgICAgICAgcHJpbnRmKCIlMTBzIFxuIiwgY29udGFjdF9ub1tpXSk7CiAgICAgICAgcHJpbnRmKCIlZCBcbiIsc3R1ZGVudF9pZFtpXSk7CiAgICB9ICAgCgp9CnZvaWQgc3R1ZGVudF91cGRhdGUoaW50IHNlYXJjaCxpbnQgbiwgY2hhciAobmFtZSlbbl1bMTAwXSwgY2hhciAoZG9iKVtuXVsxMV0sIGNoYXIgKGFkZHJlc3MpW25dWzEwMF0sIGNoYXIgKGNvbnRhY3Rfbm8pW25dWzExXSwgaW50IHN0dWRlbnRfaWRbbl0pCnsKICAgIGludCBjb3VudD0tMTsgCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgewogICAgICAgIGlmKHNlYXJjaD09c3R1ZGVudF9pZFtpXSkKICAgICAgICBjb3VudD1pOwogICAgfQogICAgaWYoY291bnQ+LTEpCiAgICB7CiAgICAgICAgcHJpbnRmKCJ0aGUgc3R1ZGVudCByZWNvcmQgeW91IHdhbnRlZCB0byB1cGRhdGUgYXJlIGZvdW5kIFxuIik7CiAgICAgICAgcHJpbnRmKCJFbnRlciB0aGUgZGV0YWlscyBvZiBzdHVkZW50IDpcbiIpOwoKICAgICAgICBwcmludGYoIkVudGVyIHRoZSBuYW1lOlxuIik7CiAgICAgICAgc2NhbmYoIiU5OXMiLCBuYW1lW2NvdW50XSk7CiAgICAgICAgd2hpbGUgKGdldGNoYXIoKSAhPSAnXG4nKTsgCgogICAgICAgIHByaW50ZigiRW50ZXIgdGhlIGRvYiAoWVlZWS9NTS9ERCkoaW5jbHVkaW5nIHNsYXNoKTpcbiIpOwogICAgICAgIHNjYW5mKCIlMTBzIiwgZG9iW2NvdW50XSk7CiAgICAgICAgd2hpbGUgKGdldGNoYXIoKSAhPSAnXG4nKTsgCgogICAgICAgIHByaW50ZigiRW50ZXIgdGhlIGFkZHJlc3M6XG4iKTsKICAgICAgICBzY2FuZigiJTk5cyIsIGFkZHJlc3NbY291bnRdKTsKICAgICAgICB3aGlsZSAoZ2V0Y2hhcigpICE9ICdcbicpOyAKCiAgICAgICAgcHJpbnRmKCJFbnRlciB0aGUgY29udGFjdCBubzpcbiIpOwogICAgICAgIHNjYW5mKCIlMTBzIiwgY29udGFjdF9ub1tjb3VudF0pOwogICAgICAgIHdoaWxlIChnZXRjaGFyKCkgIT0gJ1xuJyk7IAogICAgfQogICAgZWxzZQogICAgcHJpbnRmKCJ0aGUgc3R1ZGVudCBpZCBkb2VzIG5vdCBleGlzdCIpOwoKfQp2b2lkIHN0dWRlbnRfc2VhcmNoKGNoYXIgc2VhcmNoWzEwMF0sIGludCBuLCBjaGFyIG5hbWVbbl1bMTAwXSwgY2hhciBkb2Jbbl1bMTFdLCBjaGFyIGFkZHJlc3Nbbl1bMTAwXSwgY2hhciBjb250YWN0X25vW25dWzExXSwgaW50IHN0dWRlbnRfaWRbbl0pCnsKICAgIGludCBjb3VudFsxMDBdID0geyAtMSB9OwogICAgaW50IGk7CgogICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkKICAgIHsKICAgICAgICBpZiAoc3RyY21wKHNlYXJjaCwgbmFtZVtpXSkgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGNvdW50W2ldID0gMTsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaT0wO2k8bjtpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCJ0aGUgc3R1ZGVudCBkZXRhaWxzIGFyZSBnaXZlbiBieSBcbiIpOwogICAgICAgIGlmKGNvdW50W2ldPT0xKQogICAgICAgIHsKICAgICAgICAgICBwcmludGYoIiU5OXMgXG4iLCBuYW1lW2ldKTsKICAgICAgICAgICBwcmludGYoIiUxMHMgXG4iLCBkb2JbaV0pOwogICAgICAgICAgIHByaW50ZigiJTk5cyBcbiIsIGFkZHJlc3NbaV0pOwogICAgICAgICAgIHByaW50ZigiJTEwcyBcbiIsIGNvbnRhY3Rfbm9baV0pOwogICAgICAgICAgIHByaW50ZigiJWQgXG4iLHN0dWRlbnRfaWRbaV0pOyAKICAgICAgICB9CiAgICB9Cn0KCiAgICAKICAKCgoKCmludCBtYWluKCkgewogICAgaW50IG1heF9zdHVkZW50cywgaSxpZDsKICAgIHByaW50ZigiRW50ZXIgdGhlIHRvdGFsIG51bWJlciBvZiBzdHVkZW50cyByZWdpc3RlcmVkIHRoaXMgeWVhcjoiKTsKICAgIHNjYW5mKCIlZCIsICZtYXhfc3R1ZGVudHMpOwoKICAgIC8vIEFycmF5cyB0byBzdG9yZSBzdHVkZW50IGRldGFpbHMKICAgIGNoYXIgbmFtZVttYXhfc3R1ZGVudHNdWzEwMF07CiAgICBjaGFyIGRvYlttYXhfc3R1ZGVudHNdWzExXTsKICAgIGNoYXIgYWRkcmVzc1ttYXhfc3R1ZGVudHNdWzEwMF07CiAgICBjaGFyIGNvbnRhY3Rfbm9bbWF4X3N0dWRlbnRzXVsxMV07CiAgICBpbnQgc3R1ZGVudF9pZFttYXhfc3R1ZGVudHNdOwogICAgY2hhciBzZWFyY2hbMTAwXTsKICAgIGNoYXIgY2g7CiAgICBwcmludGYoIkVudGVyIDEgdG8gcmVnaXN0ZXIgdGhlIHN0dWRlbnRzLCAyIGZvciB1cGRhdGluZyBhIHN0dWRlbnQncyBkZXRhaWxzLCAzIGZvciBzZWFyY2hpbmcgdGhlIG51bWJlciBvZiBzdHVkZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUsIDQgZm9yIGRpc3BsYXlpbmcgdGhlIGRhdGFiYXNlLCBhbmQgNSBmb3IgZXhpdGluZzogIik7CiAgICBkbyB7CiAgICAgICAgCiAgICAgICAgaWYgKHNjYW5mKCIgJWMiLCAmY2gpICE9IDEpIHsKICAgICAgICAgICAgd2hpbGUgKGdldGNoYXIoKSAhPSAnXG4nKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICBzd2l0Y2goY2gpIHsKICAgICAgICAgICAgY2FzZSAnMSc6CiAgICAgICAgICAgICAgICByZWdpc3RlclN0dWRlbnQobWF4X3N0dWRlbnRzLCBuYW1lLCBkb2IsIGFkZHJlc3MsIGNvbnRhY3Rfbm8sIHN0dWRlbnRfaWQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJzInOgogICAgICAgICAgICAgICAgcHJpbnRmKCJFbnRlciB0aGUgc3R1ZGVudCBpZCB0byBiZSBzZWFyY2hlZDogIik7CiAgICAgICAgICAgICAgICBzY2FuZigiJWQiLCAmaWQpOyAKICAgICAgICAgICAgICAgIHdoaWxlIChnZXRjaGFyKCkgIT0gJ1xuJyk7CiAgICAgICAgICAgICAgICBzdHVkZW50X3VwZGF0ZShpZCxtYXhfc3R1ZGVudHMsIG5hbWUsIGRvYiwgYWRkcmVzcywgY29udGFjdF9ubywgc3R1ZGVudF9pZCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnMyc6CiAgICAgICAgICAgICAgICBwcmludGYoIkVudGVyIHRoZSBuYW1lIHRvIGJlIHNlYXJjaGVkOlxuIik7CiAgICAgICAgICAgICAgICBzY2FuZigiJTk5cyIsIHNlYXJjaCk7CiAgICAgICAgICAgICAgICB3aGlsZSAoZ2V0Y2hhcigpICE9ICdcbicpOwogICAgICAgICAgICAgICAgc3R1ZGVudF9zZWFyY2goc2VhcmNoLG1heF9zdHVkZW50cywgbmFtZSwgZG9iLCBhZGRyZXNzLCBjb250YWN0X25vLCBzdHVkZW50X2lkKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICc0JzoKICAgICAgICAgICAgICAgIHN0dWRlbnRfZGlzcGxheShtYXhfc3R1ZGVudHMsIG5hbWUsIGRvYiwgYWRkcmVzcywgY29udGFjdF9ubywgc3R1ZGVudF9pZCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGlmIChjaCAhPSAnXG4nICYmIGNoICE9ICcgJykgeyAKICAgICAgICAgICAgICAgICAgICBwcmludGYoIkluY29ycmVjdCBvcHRpb25cbiIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjaCAhPSAnNScpIHsKICAgICAgICAgICAgcHJpbnRmKCJFbnRlciBhbm90aGVyIG9wdGlvbiAob3IgJzUnIHRvIGV4aXQpOiAiKTsKICAgICAgICB9CiAgICB9IHdoaWxlIChjaCAhPSAnNScpOwogICAKCiAKCiAgICByZXR1cm4gMDsKfQ==