RSS    

   Ðåôåðàò: Îò÷åò ïî ó÷åáíîé ïðàêòèêå ÎÀèÏ áàçà äàííûõ ñòóäåíòîâ (ñîçäàíèå, ïîèñê, óäàëåíèå, ñîðòèðîâêà, âñå, ÷òî íàäî íàïèñàííàÿ íà Ñ++)

oldfs,newfs – ôëàãè (ïðèçíàêè),


6. Èñõîäíûé êîä ïðîãðàììû


#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <io.h>

#include <iostream.h>

#include <string.h>

#include <bios.h>

#define ENTER 7181

#define ESC  283

#define LEFT  19200

#define RIGHT 19712

#define UP 18432

#define DOWN 20480

typedef struct {

        int num;

        char lastName[16];

        char firstName[11];

        char midName[16];

        char groupNumber[6];

        float mark;

} data;

void interface(char *);

void add(char *);

void del(char *);

void edit(char *);

void view(char *, int );

void find(char *);

void sort(char *);

int find_max_num(char *);

int get_number(char *);

void create();

void open();

int check(char *, data);

void main()

{

        int key=0,counter=0;

        int color[]={0,4,4};

        while (1) {

                textbackground(1); textcolor(WHITE);

                clrscr(); _setcursortype(_NOCURSOR); textcolor(10);

                cprintf("::::::::::::::::::");

                textcolor(15);

                cprintf(" eBase v1.666 Copyright (C) Serj Sventitski ");

                textcolor(10);

                cprintf("::::::::::::::::::");

                switch(key) {

                        case LEFT: if (counter>0) {

                                       color[counter]=4;

                                       color[--counter]=0;

                               }

                               break;

                        case RIGHT: if (counter<2) {

                                       color[counter]=4;

                                       color[++counter]=0;

                               }

                               break;

                }

                textbackground(4);  cprintf("                      ");

                textcolor(WHITE);

                textbackground(color[0]);  cprintf("   Ñîçäàòü   ");

                textbackground(color[1]);  cprintf("   Îòêðûòü   ");

                textbackground(color[2]);  cprintf("   Âûõîä   ");

                textbackground(4);  cprintf("                     ");

                textbackground(1);

                key=bioskey(0);

                if (key == ENTER) {

                        switch(counter) {

                               case 0:

                                       create();break;

                               case 1:

                                       open();break;

                               case 2:

                                       exit(10);

                        }

                }

        }

}

void interface(char *fn)

{

        FILE *fp;

        data st;

        int num=1,key=0,counter=0,color[]={0,4,4,4,4,4};

        clrscr();

        while(1) {

                window(1,1,80,3);

                textbackground(1);  textcolor(WHITE);

                _setcursortype(_NOCURSOR);  textcolor(10);

                cprintf("::::::::::::::::::");

                textcolor(15);

                cprintf(" eBase v1.666 Copyright (C) Serj Sventitski ");

                textcolor(10);

                cprintf("::::::::::::::::::");

                switch(key)

                {

                        case LEFT: if (counter>0) {

                                       color[counter]=4;

                                       color[--counter]=0;

                               }

                               break;

                        case RIGHT: if (counter<5) {

                                       color[counter]=4;

                                       color[++counter]=0;

                               }

                               break;

                }

                textbackground(4);cprintf("     ");

                textcolor(WHITE);

                textbackground(color[0]);cprintf("  Äîáàâèòü  ");

                textbackground(color[1]);cprintf("  Óäàëèòü  ");

                textbackground(color[2]);cprintf("  Ðåäàêòèðîâàòü  ");

                textbackground(color[3]);cprintf("  Ïîèñê  ");

                textbackground(color[4]);cprintf("  Ñîðòèðîâêà  ");

                textbackground(color[5]);cprintf("  Íàçàä  ");

                textbackground(4);cprintf("     ");

                textbackground(1);

                view(fn,num);

                key=bioskey(0);

                switch(key)

                {

                        case UP:    num--;if (num==0)

                               num++;

                               view(fn,num);

                               break;

                        case DOWN: num++;if (num+16>=get_number(fn))

                               num--;

                               view(fn,num);

                               break;

                }

                if (key==283)

                        return;

                if (key == ENTER)

                {

                        switch(counter)  {

                               case 0: add(fn); clrscr(); break;

                               case 1: del(fn); break;

                               case 2: edit(fn); clrscr(); break;

                               case 3: find(fn); break;

                               case 4: sort(fn); break;

                               case 5: return;

                        }

                }

        }

}

void add(char *fn)

{

        FILE *fp;

        data st;

        int pr;

        while (1) {

                st.num=find_max_num(fn)+1;

                clrscr();

                _setcursortype(_SOLIDCURSOR);

                gotoxy(20,6);  cout<<"Ôàìèëèÿ : "; cin>>st.lastName;

                gotoxy(20,8);     cout<<"Èìÿ : ";  cin>>st.firstName;

                gotoxy(20,10);   cout<<"Îò÷åñòâî : "; cin>>st.midName;

                gotoxy(20,12);  cout<<"¹ ãðóïïû : "; cin>>st.groupNumber;

                gotoxy(20,14);  cout<<"Ñðåäíèé áàëë ñòóäåíòà : ";

                fflush(stdin);scanf("%f",&st.mark);

                if (!check(fn, st)) {

                        if ((fp = fopen(fn,"ab+")) == NULL)  {

                               printf("File could not be opened.\n");

                               return;

                        }

                        fwrite(&st, sizeof(data),1,fp);

                        fclose(fp);

                        return;

                }

                else {

                        gotoxy(20,18);

                        cout<<"Òàêàÿ çàïèñü óæå ñóùåñòâóåò";

                        getch();

                }

        }

}

void del(char *fn)

{

        FILE *fp,*temp;

        data st;

        int pr=1;

        int number;

        gotoxy(4,25);

        textcolor(11);

        cprintf("Ââåäèòå ¹ çàïèñè äëÿ óäàëåíèÿ :             ");

        textcolor(YELLOW);

        gotoxy(36,25);

        int key = 0;

        cscanf("%d",&number);

        textcolor(WHITE);

        while(kbhit())

        if (!(key=getch()))

                key << 8;

        if( key == '\r' ) {

                if ((fp=fopen(fn,"rb")) == NULL) {

                        cout<<"error.file does not exist.";

                        return;

                }

                if ((temp=fopen("temp.$$$","wb")) == NULL) {

                        cout<<"error. temp file couldn't be create";

                        return;

                }

                while (fread(&st,sizeof(data),1,fp)) {

                        if (feof(fp))

                               break;

                        if (st.num != number)

                               fwrite(&st,sizeof(data),1,temp);

                        else

                               pr=0;

                }

                fclose(fp);

                fclose(temp);

                if (remove(fn) == -1) {

                        perror("remove");

                        return;

                }

                if (rename("temp.$$$",fn) == -1)  {

                        perror("rename");

Ñòðàíèöû: 1, 2, 3, 4


Íîâîñòè


Áûñòðûé ïîèñê

Ãðóïïà âÊîíòàêòå: íîâîñòè

Ïîêà íåò

Íîâîñòè â Twitter è Facebook

                   

Íîâîñòè

© 2010.