Помогите с программой

Тема в разделе "C/C++/C#", создана пользователем suspect, 4 мар 2010.

  1. suspect

    suspect Гость

    ниже представлена программа которая реализовывает управление базой данных успеваемости студентов, помогите пожалуйста сделать так чтобы при ввооде номера группы больше 699, оценки больше 5ти или меньше 3х программа выдавала сообщение что данные введены неверно,и предлагала проделать данную операцию заново, заранее спасибо....
    [codebox]
    #include <conio.h>
    #include <stdio.h>
    #include <math.h>
    #include <io.h>
    #include <fcntl.h>
    #include <string.h>

    struct record
    {
    char surname[16];
    char name[16];
    char group[16];
    int mat;
    int fiz;
    int inf;
    float sred;
    };

    void ramka(int x1,int y1,int x2,char s[20],int flag)
    {
    int i;
    window(x1,y1,x2,y1+3);
    textmode(C80);
    textcolor(flag);
    gotoxy(x1,y1);
    cprintf("Ъ");
    for (i=x1;i<x2-1;i++)
    cprintf("Д");
    cprintf("ї");
    gotoxy(x1,y1+1);
    cprintf("і");
    gotoxy(x2,y1+1);
    cprintf("і");
    gotoxy(x1+3,y1+1);
    cprintf("%s",s);
    gotoxy(x1,y1+2);
    cprintf("А");
    for (i=x1;i<x2-1;i++)
    cprintf("Д");
    cprintf("Щ");
    }
    void menu(int mode)
    {
    clrscr();
    switch(mode)
    {
    case 1:
    {
    ramka(27,4,53,"Џа®б¬®ваҐвм Ў §г",RED);
    ramka(27,7,53,"„®Ў ўЁвм § ЇЁбм",GREEN);
    ramka(27,10,53,"ђҐ¤ ЄвЁа®ў вм § ЇЁбм",GREEN);
    ramka(27,13,53,"“¤ «Ёвм § ЇЁбм",GREEN);
    ramka(27,16,53," Џ®ЁбЄ ",GREEN);
    ramka(27,19,53," ‚л室 ",GREEN);
    break;
    }
    case 2:
    {
    ramka(27,4,53,"Џа®б¬®ваҐвм Ў §г",GREEN);
    ramka(27,7,53,"„®Ў ўЁвм § ЇЁбм",RED);
    ramka(27,10,53,"ђҐ¤ ЄвЁа®ў вм § ЇЁбм",GREEN);
    ramka(27,13,53,"“¤ «Ёвм § ЇЁбм",GREEN);
    ramka(27,16,53," Џ®ЁбЄ ",GREEN);
    ramka(27,19,53," ‚л室 ",GREEN);
    break;
    }
    case 3:
    {
    ramka(27,4,53,"Џа®б¬®ваҐвм Ў §г",GREEN);
    ramka(27,7,53,"„®Ў ўЁвм § ЇЁбм",GREEN);
    ramka(27,10,53,"ђҐ¤ ЄвЁа®ў вм § ЇЁбм",RED);
    ramka(27,13,53,"“¤ «Ёвм § ЇЁбм",GREEN);
    ramka(27,16,53," Џ®ЁбЄ ",GREEN);
    ramka(27,19,53," ‚л室 ",GREEN);
    break;
    }
    case 4:
    {
    ramka(27,4,53,"Џа®б¬®ваҐвм Ў §г",GREEN);
    ramka(27,7,53,"„®Ў ўЁвм § ЇЁбм",GREEN);
    ramka(27,10,53,"ђҐ¤ ЄвЁа®ў вм § ЇЁбм",GREEN);
    ramka(27,13,53,"“¤ «Ёвм § ЇЁбм",RED);
    ramka(27,16,53," Џ®ЁбЄ ",GREEN);
    ramka(27,19,53," ‚л室 ",GREEN);
    break;
    }
    case 5:
    {
    ramka(27,4,53,"Џа®б¬®ваҐвм Ў §г",GREEN);
    ramka(27,7,53,"„®Ў ўЁвм § ЇЁбм",GREEN);
    ramka(27,10,53,"ђҐ¤ ЄвЁа®ў вм § ЇЁбм",GREEN);
    ramka(27,13,53,"“¤ «Ёвм § ЇЁбм",GREEN);
    ramka(27,16,53," Џ®ЁбЄ ",RED);
    ramka(27,19,53," ‚л室 ",GREEN);
    break;
    }
    case 6:
    {
    ramka(27,4,53,"Џа®б¬®ваҐвм Ў §г",GREEN);
    ramka(27,7,53,"„®Ў ўЁвм § ЇЁбм",GREEN);
    ramka(27,10,53,"ђҐ¤ ЄвЁа®ў вм § ЇЁбм",GREEN);
    ramka(27,13,53,"“¤ «Ёвм § ЇЁбм",GREEN);
    ramka(27,16,53," Џ®ЁбЄ ",GREEN);
    ramka(27,19,53," ‚л室 ",RED);
    break;
    }

    }
    }

    struct record addrec()
    {
    struct record rec;
    char n [16];
    int i;
    int k;
    float j;
    clrscr();
    printf("‚ўҐ¤ЁвҐ д ¬Ё«Ёо: ");
    scanf("%s",&n);
    for (k=0;k<16;k++)
    {
    rec.surname[k]=n[k];
    }
    printf("‚ўҐ¤ЁвҐ Ё¬п: ");
    scanf("%s",&n);
    for (k=0;k<16;k++)
    {
    rec.name[k]=n[k];
    }
    printf("‚ўҐ¤ЁвҐ ЈагЇЇг: ");
    scanf("%s",&n);
    for (k=0;k<16;k++)
    {
    rec.group[k]=n[k];
    }
    printf("‚ўҐ¤ЁвҐ ®жҐ­Єг Ї® ¬ вЁЄҐ: ");
    scanf("%i",&i);
    rec.mat=i;
    printf("‚ўҐ¤ЁвҐ ®жҐ­Єг Ї® дЁ§ЁЄҐ: ");
    scanf("%i",&i);
    rec.fiz=i;
    printf("‚ўҐ¤ЁвҐ ®жҐ­Єг Ї® Ё­д®а¬ вЁЄҐ: ");
    scanf("%i",&i);
    rec.inf=i;
    j=(rec.inf+rec.fiz+rec.mat);
    rec.sred=j/3;
    return(rec);
    }

    void printrec(struct record rec[30],int c,int c1,int flag)
    {
    int i;

    if (flag==0)
    {
    clrscr();
    printf("|Ќ®¬|” ¬Ё«Ёп |?¬п |ѓагЇЇ |Њ в|”Ё§|?­д|‘।|\n");

    }
    for (i=c1;i<c;i++)
    {
    printf("|%-3d|",i+1);
    printf("%-16s|",rec.surname);
    printf("%-16s|",rec.name);
    printf("%-8s|",rec.group);
    printf("%-3d|",rec.mat);
    printf("%-3d|",rec.fiz);
    printf("%-3d|",rec.inf);
    printf("%-1.2f|\n",rec.sred);
    }
    }

    void search(struct record rec[30],int c, int n)
    {
    float ff;
    int i,f,j,l,z=0;
    char q[16]="\0";
    switch(n)
    {
    case 1: printf("‚ўҐ¤ЁвҐ бва®Єг Ї®ЁбЄ \n");
    scanf("%s",&q);
    clrscr();
    for (i=0;i<c;i++)
    {
    l=0;
    for (j=0;j<strlen(q);j++)
    {
    if (rec.surname[j]==q[j]) l=1; else l=0;
    }
    if (l==1)
    {
    printrec(rec,i+1,i,z);
    z++;
    }

    }
    if (z==0) printf("‘®ўЇ®¤Ґ­Ё© ­Ґ¤!!! Ё¤ЁвҐ ЁйЁвҐ ­ ᥢҐаҐ =)\n");
    getch();
    break;

    case 2: printf("‚ўҐ¤ЁвҐ бва®Єг Ї®ЁбЄ \n");
    scanf("%s",&q);
    clrscr();
    for (i=0;i<c;i++)
    {
    l=0;
    for (j=0;j<strlen(q);j++)
    {
    if (rec.name[j]==q[j]) l=1; else l=0;
    }
    if (l==1)
    {
    printrec(rec,i+1,i,z);
    z++;
    }
    }
    if (z==0) printf("‘®ўЇ®¤Ґ­Ё© ­Ґ¤!!! Ё¤ЁвҐ ЁйЁвҐ ­ ᥢҐаҐ =)\n");
    getch();
    break;

    case 3: printf("‚ўҐ¤ЁвҐ бва®Єг Ї®ЁбЄ \n");
    scanf("%s",&q);
    clrscr();
    for (i=0;i<c;i++)
    {
    l=0;
    for (j=0;j<strlen(q);j++)
    {
    if (rec.group[j]==q[j]) l=1; else l=0;
    }
    if (l==1)
    {
    printrec(rec,i+1,i,z);
    z++;
    }
    }
    if (z==0) printf("‘®ўЇ®¤Ґ­Ё© ­Ґ¤!!! Ё¤ЁвҐ ЁйЁвҐ ­ ᥢҐаҐ =)\n");
    getch();
    break;

    case 4: printf("‚‚Ґ¤ЁвҐ ®жҐ­Єг\n");
    scanf("%i",&l);
    j=0;
    for (i=0; i<c; i++)
    if (l==rec.mat)
    {
    printrec(rec,i+1,i,z);
    z++;
    j++;
    }
    if (j==0) printf("‘®ўЇ®¤Ґ­Ё© ­Ґ¤!!! Ё¤ЁвҐ ЁйЁвҐ ­ ᥢҐаҐ =)\n");
    getch();
    break;

    case 5: printf("‚‚Ґ¤ЁвҐ ®жҐ­Єг\n");
    scanf("%i",&l);
    j=0;
    for (i=0; i<c ;i++)
    if (l==rec.fiz)
    {
    printrec(rec,i+1,i,z);
    z++;
    j++;
    }
    if (j==0) printf("‘®ўЇ®¤Ґ­Ё© ­Ґ¤!!! Ё¤ЁвҐ ЁйЁвҐ ­ ᥢҐаҐ =)\n");
    getch();
    break;

    case 6: printf("‚‚Ґ¤ЁвҐ ®жҐ­Єг\n");
    scanf("%i",&l);
    j=0;
    for (i=0;i<c;i++)
    if (l==rec.inf)
    {
    printrec(rec,i+1,i,z);
    z++;
    j++;
    }
    if (j==0) printf("‘®ўЇ®¤Ґ­Ё© ­Ґ¤!!! Ё¤ЁвҐ ЁйЁвҐ ­ ᥢҐаҐ =)\n");
    getch();
    break;
    case 7: printf("‚‚Ґ¤ЁвҐ ®жҐ­Єг\n");
    scanf("%f",&ff);
    j=0;
    for (i=0;i<c;i++)
    if (ff==rec.sred)
    {
    printrec(rec,i+1,i,z);
    z++;
    j++;
    }
    if (j==0) printf("‘®ўЇ®¤Ґ­Ё© ­Ґ¤!!! Ё¤ЁвҐ ЁйЁвҐ ­ ᥢҐаҐ =)\n");
    getch();
    break;

    }
    }

    int main()
    {
    struct record base [30];
    int nn;
    int c;
    int count=1;
    int basecount=0;
    int i,j;
    int fd;
    float q;
    fd=open("W:/LAB2_2/BAZA.DB",O_RDONLY);
    if (fd!=-1)
    {
    read(fd,&basecount,sizeof(int));
    for (i=0;i<basecount;i++)
    read(fd,&base,sizeof(struct record));
    }
    close(fd);
    clrscr();
    while (c!=283)
    {
    menu(count);
    c = bioskey(0);
    switch©
    {
    case 18432: if (count!=1) count--;
    break;
    case 20480: if (count!=6) count++;
    break;
    case 7181:
    {
    switch(count)
    {
    case 1:printrec(base,basecount,0,0);
    getch();
    clrscr();
    menu(count);
    break;
    case 2:base [basecount]=addrec();
    basecount++;
    clrscr();
    menu(count);
    break;
    case 3:clrscr();
    printf("‚ўҐ¤ЁвҐ ­®¬Ґа । ЄвЁа㥬®© § ЇЁбЁ:\n");
    scanf("%d",&nn);
    --nn;
    clrscr();
    printf("‚л । ЄвЁагҐвҐ ¤ ­­го § ЇЁбм:\n");
    printrec(base,nn+1,nn,0);
    getch();
    clrscr();
    base [nn]=addrec();
    clrscr();
    menu(count);
    break;
    case 4:clrscr();
    printf("‚ўҐ¤ЁвҐ ­®¬Ґа г¤ «пҐ¬®© § ЇЁбЁ:\n");
    scanf("%d",&nn);
    --nn;
    printrec(base,nn+1,nn,0);
    clrscr();
    for(i=nn;i<basecount-1;i++)
    {
    base=base[i+1];
    }
    basecount--;
    menu(count);
    break;
    case 5:clrscr();
    printf("‚ўҐўЁвҐ Ї®«Ґ Ї®ЁбЄ :\n 1 - ” ¬Ё«Ёп\n 2 - ?¬п\n 3 - ѓагЇЇ \n 4 - ЋжҐ­Є Ї® ¬ ⥬ вЁЄҐ\n 5 - ЋжҐ­Є Ї® дЁ§ЁЄҐ\n 6 - ЋжҐ­Є Ї® Ё­д®а¬ вЁЄҐ\n 7 - ‘।­Ё© Ў «\n");
    scanf("%d",&nn);
    search(base,basecount,nn);
    menu(count);
    break;
    case 6: fd=open("W:/LAB2_2/BAZA.DB",O_CREAT|O_RDWR|O_TRUNC);
    if (fd!=-1)
    {
    write(fd,&basecount,sizeof(int));
    for (i=0;i<basecount;i++)
    write(fd,&base,sizeof(struct record));
    }
    close(fd);
    exit();
    }
    }
    }

    }
    }
    [/codebox]

    Добавлено: вот файлик с прогой
     

    Вложения:

    • LAB2_2.C
      Размер файла:
      7,8 КБ
      Просмотров:
      6
Загрузка...
Похожие Темы - Помогите программой
  1. victory
    Ответов:
    3
    Просмотров:
    1.330
  2. Morgan8
    Ответов:
    2
    Просмотров:
    1.118
  3. Мура
    Ответов:
    0
    Просмотров:
    1.088
  4. Ctapuk
    Ответов:
    2
    Просмотров:
    1.332
  5. promik
    Ответов:
    1
    Просмотров:
    1.307

Поделиться этой страницей