تبليغاتX
خانه ای اینترنتی برای برنامه نویسان
خانه | آرشیو | پست الکترونیک
برنامه ورود اطلاعات دانشجویان به زبان ++C


#include
#include
#include
#define MAX 100
struct  student {
    char   name[10] ;
    float  mead ;
    int    unit ;
    int    number ;
    int stno;
} st[MAX] ;
void init_list(void), enter(void);
void search(void);
void del(void), list(void);
void mash(), mom();
void print(int *, int), title(int *);
void save(void), load(void);
int menu_select(void);
int find_free(void) ;
int main(void)
{
   char choice ;
   init_list() ;
   for(;;){
    choice = menu_select() ;
    switch(choice) {
    case 1: enter(); break;
        case 2: search(); break;
        case 3: del(); break ;
        case 4: list();  break;
        case 5: mash(); break ;
        case 6: mom();  break ;
        case 7: save(); break;
        case 8: load(); break;
        case 9: exit(0) ;
    } // end of switch
   }//end of for
}
//*********************
void init_list(void)
{
 register int t ;
 for(t = 0; t < MAX; ++t)
   st[t].name[0] = '\0' ;
}
//*********************
int menu_select(void)
{
   char s[10];
   int c ;
   clrscr() ;
   gotoxy(29, 3) ;
   printf("1) << enter a student    >>");
 gotoxy(29, 5) ;
   printf("2) << search a student   >>");
   gotoxy(29, 7);
   printf("3) << delete a student   >>");
   gotoxy(29, 9) ;
   printf("4) << list all student   >>");
   gotoxy(29, 11) ;
   printf("5) << list for mashrot   >>");
   gotoxy(29, 13) ;
   printf("6) << list for momtaz    >>");
   gotoxy(29, 15) ;
   printf("7) << save in file       >>");
   gotoxy(29, 17) ;
   printf("8) << load file          >>");
   gotoxy(29, 19) ;
   printf("9) <<         Quit       >>");

 do {
  gotoxy(29, 21) ;
  printf(" Please enter your choice(1-9): ") ;
  gets(s);
  c = atoi(s);
       } while(c < 0 || c > 9) ;
   return (c) ;
}
//*********************
void enter(void)
{
   float grade, sumgrade = 0;
   int s, j, unit1, sumunit = 0 ;
   s = find_free() ;
   if(s == -1){
      printf("\n list full. press a key to continue...");
      getch();
      return ;
   }
   gotoxy(5, 25) ;
   printf("enter name:") ;
   gets(st[s].name) ;
   gotoxy(5, 27) ;
   printf("enter stno:") ;
   scanf("%d", &st[s].stno) ;
   gotoxy(5, 29) ;
   printf("enter number of dars:") ;
 scanf("%d", &st[s].number) ;
   for(j = 1; j <= st[s].number; j++) {
       gotoxy(40, 25) ;
       printf("                        ");
       gotoxy(40, 25) ;
       printf("enter grade dars number %d:",j);
       scanf("%f", &grade) ;
       gotoxy(40, 27) ;
       printf("                        ");
       gotoxy(40,27) ;
   printf("enter unit  dars %d:", j);
       scanf("%d", &unit1) ;
       sumgrade += grade * unit1 ;
       sumunit += unit1 ;
   } //end of for
   st[s].mead = sumgrade / sumunit ;
   st[s].unit = sumunit;
}
//*********************
int find_free(void)
{
    register int t ;
    for(t = 0; st[t].name[0] && t < MAX ; ++t);
    if(t == MAX) return -1 ;
    return t ;
}
//*********************
void del(void)
{
    int t, s, r=0 ;
     gotoxy(28, 24) ;
     printf("enter stno student:") ;
     scanf("%d", &s);
    clrscr() ;
    title(&r) ;
    for(t = 0; t < MAX; ++t){
      if(st[t].name[0] && st[t].stno == s)
  st[t].name[0]='\0' ;
   }// end of for
}


//*********************
void search(void)
{
    int t, s, r=0 ;
     gotoxy(28, 24) ;
     printf("enter stno student:") ;
     scanf("%d", &s);
    clrscr() ;
    title(&r) ;
    for(t = 0; t < MAX; ++t){
      if(st[t].name[0] && st[t].stno == s)
  print(&r, t) ;
  }// end of for
    gotoxy(13, r) ;
    printf("******************************");
    printf("*******************************") ;
    gotoxy(27, r + 1) ;
    printf("press any key to continue ") ;
    getch();
}

//*********************

void list(void)
{
    int t, r = 0;
    clrscr() ;
    title(&r) ;
    for(t = 0; t < MAX; ++t)
       if(st[t].name[0])
    print(&r, t);
    gotoxy(13, r) ;
    printf("******************************");
    printf("*******************************") ;
    gotoxy(27, r + 1) ;
    printf("press any key to continue ") ;
    getch();
}
//********************* list mashrot
void mash(void)
{
    int t, r = 0 ;
    clrscr() ;
    title(&r) ;
    for(t = 0; t < MAX; ++t){
      if(st[t].name[0] && st[t].mead < 12)
  print(&r, t) ;
    }//end of for
    gotoxy(13, r) ;
  printf("******************************");
    printf("*******************************") ;
    gotoxy(27, r + 1) ;
    printf("press any key to continue ") ;
    getch();
  }
//*********************  list momtaz
void mom(void)
{
    int t, r=0 ;
    clrscr() ;
    title(&r) ;
    for(t = 0; t < MAX; ++t){
      if(st[t].name[0] && st[t].mead >= 16)
  print(&r, t) ;
    }// end of for
    gotoxy(13, r) ;
  printf("******************************");
    printf("*******************************") ;
    gotoxy(27, r + 1) ;
    printf("press any key to continue ") ;
    getch();
  }
//*********************
void title(int *r)
{
    *r = 2;
  gotoxy(25, *r) ;
    printf(" <<   information in list student:  >>");
    gotoxy(13, *r + 1) ;
    printf("*************************");
    printf("************************************");
    gotoxy(10, *r + 2);
    printf("     name       mead     ");
    printf("   unit        number_dars            stno      ");
    gotoxy(10, *r + 3);
    printf("   ________     ________ ");
    printf("     ______     ______          ____   ");
    *r = 6;
}
//*********************
void print(int *r, int t)
{
    gotoxy(14,  *r) ;
  printf("%s ", st[t].name) ;
    gotoxy(26,  *r) ;
    printf("%.2f ", st[t].mead) ;
    gotoxy(40,  *r) ;
    printf("%d ", st[t].unit) ;
    gotoxy(54,  *r) ;
    printf("%d ", st[t].number) ;
    gotoxy(70,  *r) ;
    printf("%u ", st[t].stno) ;
    (*r) ++ ;
}
 //***********************
void save(void)
{
   FILE *fp ;
   register int i ;
   fp = fopen("st", "wb");
   if(!fp)  {
       printf("\n cannot open file press a key ...");
       getch() ;
       return ;
   }
   for(i = 0 ; i < MAX ; i++)
     if(*st[i].name)
 fwrite(&st[i], sizeof(struct student), 1, fp) ;
    clrscr() ;
    gotoxy(20, 10) ;
  printf("data saved.press a key.");
    getch() ;
  }
//************************
void load(void)
{
   FILE *fp ;
   register int i ;
   fp = fopen("st", "rb");
   if(!fp) {
  printf("\n cannot open file press a key ...");
      getch() ;
      return ;
   }
   init_list() ;
   for(i = 0 ; i < MAX ; i++) {
     fread(&st[i], sizeof(struct student), 1, fp);
     if(feof(fp)) {
 clrscr() ;
 gotoxy(20,10) ;
 printf("data loaded.press a key.");
 getch() ;
 return ;
     }//end of if
   }
}

 

|+| نوشته شده توسط محمد رضا ابراهیمی در یکشنبه دوم دی 1386 و ساعت 16:57 | 
Powered By Blogfa - Designing & Supporting Tools By WebGozar