rendered paste body#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <iostream.h>#include <string.h>typedef struct{ int nomer; char familia[20]; char state[15]; int opit; float zaplata;}my_record;const int max=100;int init();int write_rec();int read_rec();int enter();int disp_all();int find();int display(int rec);int update();int del(int rec);int sort();my_record masiv[max];int broi;int main(){ printf("INFORMACIONNA SISTEMA\n"); char ch; int record; init(); do { printf("\n MENU\n"); printf("1.VUVEJDANE NA NOV ZAPIS\n"); printf("2.PREGLED NA ZAPISITE\n"); printf("3.TURSENE NA POLE\n"); printf("4.PROMQNA NA ZAPIS\n"); printf("5.IZTRIVANE NA ZAPIS\n"); printf("6.SORTIRANE PO POLE\n"); printf("7.ZAPIS NA DANNITE VUV FILE\n"); printf("8.CHETENE NA DANNITE OT FILE\n"); printf("9.IZHOD\n"); do { printf("IZBERETE <1..9>"); ch=getchar(); } while(ch<'1'||ch>'9'); switch(ch) { case '1':enter();break; case '2':disp_all();break; case '3':record=find(); if(record !=-1)display(record); break; case '4':update();break; case '5':record=find(); if(record !=-1)del(record); ;break; case '6':sort();break; case '7':write_rec();break; case '8':read_rec();break; } getcar(); } while(ch!='9'); system("pause"); return 0;} /*MAIN*/int init(){ int i; for (i=0;i<max;i++) masiv[i].nomer=0; broi=0; return 0;}int write_rec(){ int i; char ch; File *f; f=fopen("MyInf.dat","wb"); if (f==NULL) { printf("FAILUT NE MOJE DA SE SUZDADE!\n"); ch=getchar(); exit(1); } for (i=0;i<broi;i++) fwrite(&masiv[i],sizeof(masiv[i]),1,f); fclose(f); return 0;}int read_rec(){ int i; char ch; FILE *f; f=fopen("MyInf.dat","rb"); if (f==NULL) { printf("FAILUT NE MOJE DA SE PROCHETE!\n"); ch=getchar(); exit(1); } broi=0; while(!feof(f)) { fread(&masiv[broi],sizeof(masiv[broi]),1,f); broi++; } broi--; fclose(f); return 0;}int enter(){ char ch; ch=getchar(); my_record z; ch='y'; while (broi<max&&ch!='n') { printf("VUVEJDANE NA NOV ZAPIS\n"); printf("No %d\n"broi+1); printf("\nNOMER "); scanf("%4d",&z.nomer); ch=getchar(); printf("\nFAMILIYA"); gets(z.familia); printf("\nDLUJNOST"); gets(z.state); printf("\nSRAJ"); scanf("%f",&z.zaplata); masiv[broi]=z; ch=getchar(); printf("\n\nOSHTE ZAPISI? <y/n>"); scanf("%c",&ch); broi++; } return 0;}int disp_all(){ int i; getchar(); for(i=0;i<broi;i++) display(i); return 0;}int find(){ int i; char s[20]; cout<<"VUVEDETE FAMILIYA:"; cin>>s; for(i=0;i<broi;i++) { if (!strcmp{s,masiv[i].familia)) break; } if (i==broi) { printf("\nNYAMA TAKAVA FAMILIYA!"); getchar(); return(-1); } return i;}int display(int rec){ printf("IZVEJDANE NA ZAPIS\n"); printf("No %d\n",rec+1); printf("\nNOMER %4d",masiv[rec].nomer); printf("\nFAMILIYA %15s",masiv[rec].familia); printf("\nDLUJNOST %15s",masiv[rev].state); printf("\nSTAJ %4d",masiv[rec].opit); printf("\nZAPLATA %8.2f\n",masiv[rec].zaplata); getchar(); return 0;} int update(){ int i; char ch; my_record z; //clrscr(); cout<<"PROMYANA NA DANNITE\n"; cout<<"VUVEDETE ZAPIS No"; cin>>i; if (i>=0&&i<broi) { printf("\nNOMER "); scanf("%4d",&z.nomer); ch=getchar(); printf("\nFAMILIYA "); gets(z.familia); printf("\nDLUJNOST "); gets(z.state); printf("\nSTAJ"); scanf("%2d",&z.opit); printf("\nZAPLATA"); scanf("%f",&z.zaplata); masiv[i]=z; } else { cout<<"NEPRAVILEN NOMER NA ZAPIS!"; ch=getchar(); } return 0;}int del(int rec){ masiv[rec]=masiv[broi-1]; broi--; return 0;}int sort(){ my_record p; int i,flag; if(broi>1) do { flag=1; for (i=0;i<broi-1;i++) if (masiv[i].nomer>masiv[i+1].nomer) { flag=0; p=masiv[i]; masiv[i]=masiv[i+1]; masiv[i+1]=p; } } while (flag==0); return 0;}