Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  ЛОЛ
Language: C/C++
Code:
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "time.h"
#include "malloc.h"
struct people{
char Name [15] ;
short int D_cr;
int Age_person;
short int C_pl;
char N_sp [10] [15] ;
};
struct people s[60];
int Count,strok;
void delf () {
FILE* f;
f=fopen ("C:\student\db.kp","w+");
fwrite (&s,sizeof (s),1,f);
fclose (f);
}
void save () {
FILE* f;
if ((f=fopen ("C:\student\db.kp","w"))==NULL) {
printf ("File coldn't create");
getch ();
return;
}
fwrite (&s,sizeof (s),1,f);
fclose (f);
}
void alf () {
struct people temp;
int i;for (i=0; i<Count-1; i++)
{int j;
for (j=i+1; j<Count; j++)
if ( (strcmp (strupr (s [j]. Name),strupr (s [i]. Name)) <0) || (strcmp (s [i]. Name,"") ==0)) {
temp=s [j] ;
s [j] =s [i] ;
s [i] =temp;
}}
return;
}
void prin_head () {
printf ("---------------------------------------------------------------------------------n");
printf ("|   |      Name      |   Work exp  |   Age   |  NAD  |     Posts      |n");
printf ("---------------------------------------------------------------------------------n");
return;
}
void prin (int i) {
char pr=' ';
printf ("|%2d |", i+1); strok++;
printf ("%15s |",s [i]. Name);
printf ("%12d |",s [i]. D_cr);
printf ("%8d |",s [i]. Age_person);
printf ("%6d |",s [i]. C_pl);
int j;
for (j=0; j<s [i]. C_pl; j++) {
if (j==0) printf ("%15s |n",s [i]. N_sp [j]);
else if (strok!=44) {
printf ("|%2c |%15c |%12c |%8c |%6c |%15s |n",pr,pr,pr,pr,pr,s [i]. N_sp [j]);
strok++;
}
else{printf ("Press any key for continue"); getch ();
//clrscr ();
 strok=0; }
}
printf ("-----------------------------------------------------------------------------n");
strok++;
return;
}
void prin_all () {
//clrscr ();
prin_head ();
strok=3;
int i;
for (i=0; i<Count; i++) {
prin (i);
}
printf ("n");
return;
}
void add () {
struct tm *T; time_t tt; tt=time (NULL); T=localtime (&tt);
Count++;
//clrscr ();
printf ("nttttADD RECORDn");
printf ("Enter Name  (no more 15 symbols)(BACK-*): ");
scanf ("%s",s [Count-1]. Name);
if (s [Count-1]. Name[0]=='*') {printf ("n"); free(s[Count-1].Name); Count--;return ;
}
strupr (s [Count-1]. Name);
do {
printf ("Enter work experience: ");
scanf ("%d",&s [Count-1]. D_cr);
}while ( (s [Count-1]. D_cr<1) || (s [Count-1]. D_cr> (T->tm_year+1900)));
do {
printf ("Enter age: ");
scanf ("%d",&s [Count-1]. Age_person);
}while (s [Count-1]. Age_person<1);
do {
printf ("Enter the number of admission departments (no more 4): ");
scanf ("%d",&s [Count-1]. C_pl);
} while (s [Count-1]. C_pl<1||s [Count-1]. C_pl>4);
int i;for (i=0; i<s [Count-1]. C_pl; i++) {
printf ("Enter post%d (no more 15 symbols): ", i+1);
scanf ("%s",s [Count-1]. N_sp [i]);
strupr (s [Count-1]. N_sp [i]);
}
alf ();
printf ("New record is addedn"); getch ();
return;
}
void remov () {
int num=0;
//clrscr ();
printf ("nttttREMOVE RECORDn");
prin_all ();
while (num<1||num>Count) {
printf ("Enter number record for edit(BACK-0): ");
scanf ("%d",&num);
if (num==0) {printf ("n");return ;
}
}
printf ("You have chosen record: n");
prin_head ();
prin (num-1);
printf ("Do you want remove record? (Y\N) n");
if ( (getch () =='y') || (getch () =='Y')) {
        /*free(s[num-1].Name);

s [num-1]. D_cr=0;
s [num-1]. Age_person=0;
int i;for (i=0; i<s [num-1]. C_pl; i++)
        free(s[num-1].N_sp[i]);
s [num-1]. C_pl=0;*/
free(s+num-1);
alf ();
Count--;
printf ("Record is removedn"); getch ();
}
return 0;
}
void edit () {
struct tm *T; time_t tt; tt=time (NULL); T=localtime (&tt);
struct people temp;
int num=0, i;
//clrscr ();
printf ("tttEDIT RECORDn");
prin_all ();
while (num<1||num>Count) {
printf ("Enter number record for edit(BACK-0): ");
scanf ("%d",&num);
if (num==0) {printf ("n");return ;
}
}
//clrscr ();
printf ("You have chosen record: n");
prin_head ();
prin (num-1);
printf ("Enter new Name  (no more 15 symbols): ");
scanf ("%s",temp. Name);
strupr (temp. Name);
do {
printf ("Enter new work experience: ");
scanf ("%d",&temp. D_cr);
} while ( (temp. D_cr<16) || (temp. D_cr> (T->tm_year+90)));
do {
printf ("Enter new age: ");
scanf ("%d",&temp. Age_person);
} while (temp. Age_person<1);
do {
printf ("Enter new  number of admission departments (no more 4): ");
scanf ("%d",&temp. C_pl);
} while (temp. C_pl<1||temp. C_pl>4);
for (i=0; i<temp. C_pl; i++) {
printf ("Enter new post %d (no more 15 symbols): ", i+1);
scanf ("%s",temp. N_sp [i]);
strupr (temp. N_sp [i]);
}
printf ("Do you want change record? (Y\N) n");
if ( (getch () =='y') || (getch () =='Y')) {
strcpy (s [num-1]. Name,temp. Name);
s [num-1]. D_cr=temp. D_cr;
s [num-1]. Age_person=temp. Age_person;
s [num-1]. C_pl=temp. C_pl;
for (i=0; i<temp. C_pl; i++)
strcpy (s [num-1]. N_sp [i],temp. N_sp [i]);
alf ();
printf ("Record is changedn"); getch ();
}
return;
}
void prin_vmes () {int i, cap;
//clrscr ();
printf ("tttSEAL ON AGEn");
printf ("Choose a kind: n");
printf ("1. =n");
printf ("2. >n");
printf ("3. <n");
printf ("4. >=n");
printf ("5. <=n");
switch (getch ()) {
case '1': printf ("Enter age (=): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Age_person==cap) prin (i);
break;
case '2': printf ("Enter age (>): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Age_person>cap) prin (i);
break;
case '3': printf ("Enter age (<): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Age_person<cap) prin (i);
break;
case '4': printf ("Enter age (>=): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Age_person>=cap) prin (i);
break;
case '5': printf ("Enter age(<=): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Age_person<=cap) prin (i);
break;
}
getch ();
return;
}
void find () { char post [15] ; int i,j;
//clrscr ();
printf ("tttSEAL POSTn");
printf ("Enter post (no more 15 symbols): ");
scanf ("%s",post);
prin_head ();
for (i=0; i<Count; i++)
for (j=0; j<s [i]. C_pl; j++)
if (strcmp (strupr (s [i]. N_sp [j]),strupr (post)) ==0) prin (i);
getch ();
return;
}
int main ()
{
//clrscr ();
FILE* f; char c;
Count=0;
if ( (f=fopen ("C:\student\db.kp","w")) ==NULL) {
printf ("The file does not existn");
fclose (f);
printf ("You want continue? (Y\N) n");
c=getch ();
if ( (c=='n') || (c=='N')) return 1;
}
else {
fread (&s,sizeof (s),1,f);
int i;for (i=0; s [i]. D_cr!=0; i++) Count=i+1;
alf ();
}
fclose (f);
while (1) {
//clrscr ();
printf ("---------------------------------n");
printf ("| Academic year project |n");
printf ("| on Computer science |n");
printf ("| - -----------------------------|n");
printf ("| To create a database |n");
printf ("| "people working POEM" |n");
printf ("| Variant #3 |n");
printf ("| Gorunin Oleksandr has executed |n");
printf ("---------------------------------n");
printf ("Menu: n");
printf ("1. Add recordn");
printf ("2. Remove recordn");
printf ("3. Edit recordn");
printf ("4. Show all peoplen");
printf ("5. Show people on agen");
printf ("6. Search of people by postn");
printf ("7. Exitn");
printf ("8. Exit and removen");
printf ("Press key: ");
c=getch ();
switch (c) {
case '1': add (); break;
case '2': remov (); break;
case '3': edit (); break;
case '4': prin_all (); getch (); break;
case '5': prin_vmes (); break;
case '6': find (); break;
case '8': printf ("nYou really want to leave? (Y\N) n");
c=getch ();if ( (c=='y') || (c=='Y')) {delf (); return 1; }break;
case '7': printf ("nYou really want to leave? (Y\N) n");
c=getch ();
if ( (c=='y') || (c=='Y')) {save (); return 1; }
}
}
return 0;
}          
Comments: