91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言如何實現簡單學生學籍管理系統

發布時間:2021-05-28 12:21:01 來源:億速云 閱讀:182 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關C語言如何實現簡單學生學籍管理系統,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

本文實例為大家分享了C語言實現學生學籍管理系統的具體代碼,供大家參考,具體內容如下

#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
#include<conio.h> 
#define N 100 /*存儲100個學生的學籍信息*/ 
int flag; /*標記是否登錄*/ 
struct date /*出生日期*/ 
{ 
  int year; 
  int month; 
  int day; 
}; 
struct student 
{ 
  char num[20];/*學號*/ 
  char name[25];/*姓名*/ 
  char sex[10];/*性別*/ 
  struct date birthday;/*出生年月*/ 
  int age;/*年齡*/ 
  char addr[50];/*籍貫*/ 
  char dept[50]; /*系別*/ 
  char major[30]; /*專業*/ 
  char classs[30]; /*班級*/ 
  char phone[20];/*電話*/ 
}stu[N]; 
 
void login() /*登錄*/ 
{ 
  void menu(); 
  system("cls"); 
  if(flag) 
  { 
    printf(" 已經登錄!\n"); 
    printf("Press any key to continue…\n"); 
    getchar(); 
    getchar(); 
    system("cls"); 
    menu(); 
  } 
  int load(); 
  int n,i,m,w; 
  FILE *fp; 
  if((fp=fopen("D:\\file.txt","rb"))!=NULL) /*不是空文件*/ 
   n=load(); /*打開文件*/ 
  else 
   n=0; 
  struct student s; 
  char password[20]; 
  int d,q; 
  printf("\n\t請選擇登錄身份:1.管理員   2.用戶   [ ]\b\b"); 
  scanf("%d",&d); 
  if(d==1) 
  { 
    printf("\n\t\t\t請輸入密碼:"); 
    getchar(); 
    int j=0; 
    while(1) 
    { 
      password[j]=getch(); 
      if(password[j]=='\r') 
       break; 
      printf("*"); 
      j++; 
    } 
    password[j]='\0'; 
    if(!strcmp(password,"930322")) /*判斷密碼是否正確*/ 
    { 
      flag=1; 
      printf("\n\t登錄成功!\n"); 
      printf("\tPress [ Enter ] key to continue…"); 
      getchar(); 
      system("cls"); 
      menu(); 
    } 
    if(!flag) 
    { 
      printf("\t\n密碼錯誤!\n"); 
      printf("What do you want to do next? 1.繼續登錄 2.返回菜單  [ ]\b\b"); 
      scanf("%d",&q); 
      if(q==1) /*繼續登錄*/ 
      { 
        system("cls"); 
        login(); 
      } 
      else if(q==2) /*返回主菜單*/ 
      { 
        system("cls"); 
        menu(); 
      } 
    } 
  } 
  else 
  { 
    printf("\n\t\t\t用戶名:"); 
    scanf("%s",s.name); 
    printf("\t\t\t密碼:"); 
    int j=0; 
    while(1) 
    { 
      password[j]=getch(); 
      if(password[j]=='\r') 
       break; 
      printf("*"); 
      j++; 
    } 
    password[j]='\0'; 
    flag=0; /*未登錄時flag=0*/ 
    for(i=0;i<n;i++) 
     if(!strcmp(s.name,stu[i].name)&&!strcmp(s.name,password)) 
     { 
      flag=1; /*登錄成功flag=1*/ 
      break; 
     } 
   if(flag) 
   { 
     printf("\n\t登錄成功!\n"); 
     printf("\tPress any key to continue…\n"); 
     getchar(); getchar(); 
     system("cls"); 
     menu(); /*登錄成功后返回主菜單*/ 
   } 
   else 
   { 
    m=0; /*設置m是為了避免陷入 登錄失敗時 跳不出登錄界面*/ 
    w=1; /*設置w是為了避免輸出多次 “用戶不存在”*/ 
    int q; /*q為選項*/ 
    do 
    { 
      if(w>0) 
        printf("用戶名不存在或密碼錯誤!\n"); /*第一次登錄時輸入不存在的用戶時顯示*/ 
      printf("What do you want to do next? 1.繼續登錄 2.返回菜單  [ ]\b\b"); 
      scanf("%d",&q); 
      if(q==1) /*繼續登錄*/ 
      { 
        login(); 
        m=1; 
      } 
      else if(q==2) /*返回主菜單*/ 
      { 
        system("cls"); 
        menu(); 
        m=1; 
      } 
      else 
      { 
        printf("選擇錯誤!請重新選擇:\n"); 
        w=0; 
      } 
    }while(m==0); 
   } 
  } 
} 
 
void printf_one(int k) /*輸出一個學生的信息*/ 
{ 
  system("color 4e"); 
  printf("學號:%s\n",stu[k].num); 
  printf("姓名:%s\n",stu[k].name); 
  printf("性別:%s\n",stu[k].sex); 
  printf("出生年月:%d/%d/%d\n",stu[k].birthday.year,stu[k].birthday.month,stu[k].birthday.day); 
  printf("年齡:%d\n",stu[k].age); 
  printf("籍貫:%s\n",stu[k].addr); 
  printf("系別:%s\n",stu[k].dept); 
  printf("專業:%s\n",stu[k].major); 
  printf("班級:%s\n",stu[k].classs); 
  printf("電話:%s\n",stu[k].phone); 
} 
 
void printf_n(int n) /*瀏覽時輸出所有學生的信息*/ 
{ 
  system("color 2e"); 
  int j,i=1; 
  for(j=0;j<n;j++) 
  { 
    printf("第%d個學生:\n",i++); 
    printf_one(j); 
    printf("\n"); 
  } 
 getchar(); 
} 
 
int load() /*打開文件,讀取里面的數據*/ 
{ 
  FILE *fp; 
  int i; 
  if((fp=fopen("D:\\file.txt","rb"))==NULL) /*讀入空文件,rb表示打開一個二進制文件,只允許讀數據*/ 
  { 
    printf("\n文件不存在!請輸入:\n"); 
    return 0; 
  } 
  for(i=0;!feof(fp);i++) /*處理到文件結尾*/ 
    fread(&stu[i],sizeof(struct student),1,fp); /*fread(buffer,size,cout,fp)將磁盤文件中的一批數據作為一個整體一次性讀取出來, 
  buffer指定數據塊位置,sizeof數據塊字節數,count讀取次數,fp指向源磁盤文件*/ 
  fclose(fp); 
  return(i-1); 
} 
 
void input(int k) /*輸入學生信息*/ 
{ 
  getchar(); 
  printf("學號:");  gets(stu[k].num); 
  printf("姓名:");  gets(stu[k].name); 
  printf("性別:");  gets(stu[k].sex); 
  printf("出生年月:"); scanf("%d/%d/%d",&stu[k].birthday.year,&stu[k].birthday.month,&stu[k].birthday.day); 
  printf("年齡:");  scanf("%d",&stu[k].age); getchar(); 
  printf("籍貫:");  gets(stu[k].addr); 
  printf("系別:");  gets(stu[k].dept); 
  printf("專業:");  gets(stu[k].major); 
  printf("班級:");  gets(stu[k].classs); 
  printf("電話:");  gets(stu[k].phone); 
} 
 
void save(int n) /*保存學生信息*/ 
{ 
  void exit(); 
  FILE *fp; 
  int i; 
  if((fp=fopen("D:\\file.txt","wb"))==NULL) /*只打開或建立一個二進制文件,只允許寫數據*/ 
  { 
    printf("\nCan not open file!\n"); 
    exit(); 
  } 
  for(i=0;i<n;i++) 
   if(stu[i].name[0]!='\0') 
     if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) /*將一批數據作為一個整體一次性寫入磁盤文件*/ 
      printf("文件寫入錯誤!\n"); 
  fclose(fp); 
} 
 
void printf_back()/*添加學生信息后顯示的“是瀏覽還是返回”*/ 
{ 
  int w,k=0; 
  void browse(); 
  void menu(); 
  printf("\n\n\t^_^.插入成功. ^_^\n\n"); 
  do 
  { 
   printf("What do you want to do next?\n\n\t1).瀏覽所有\t2).返回: [ ]\b\b"); 
   scanf("%d",&w); 
   if(w==1) 
   { 
     system("cls"); 
     browse(); 
   } 
   else if(w==2) 
   { 
     system("cls"); 
     menu(); 
   } 
   else 
     printf(" 選擇錯誤!請重新選擇!\n"); 
  }while(k==0); 
} 
 
void insert() /*添加學生信息*/ 
{ 
  int i,n,k,t; 
  FILE *fp; 
  if((fp=fopen("D:\\file.txt","rb"))==NULL) /*讀入空文件,rb表示打開一個二進制文件,只允許讀數據*/ 
  { 
    printf("How many people do you want to add(1-%d)?:",N-1); 
    n=0; 
  } 
  else 
  { 
   n=load(); 
   printf("How many student do you want to insert (1-%d)?:",N-n-1); 
  } 
  scanf("%d",&t); 
  k=n+t; 
  for(i=n;i<k;i++) 
  { 
    printf("\n輸入第 %d 個學生學籍信息.\n",i-n+1); 
    input(i); 
  } 
  save(k); /*保存所有學生的信息*/ 
  printf_back(); 
} 
 
void deleter() /*刪除*/ 
{ 
  void menu(); 
  if(!flag) 
  { 
    printf("\n\n\t請先登錄!\n"); 
    printf("\n\t請按 Enter 鍵進入登錄界面!"); 
    getchar(); 
    getchar(); 
    login(); 
  } 
  else 
  { 
    struct student s; 
    int i,n,k,w0,w1; 
    n=load(); 
    do 
    { 
      k=-1; 
      //printf_n(n); /*刪除之前先顯示所有學生的信息*/ 
      do 
      { 
         printf("\n\n請輸入您想要刪除的學生的姓名!\nName:"); 
         scanf("%s",s.name); 
         for(i=0;i<n;i++) 
          if(strcmp(s.name,stu[i].name)==0) 
          { 
           k=i; 
           s=stu[i]; 
          } 
         if(k==-1) 
         { 
           int m; 
           printf("\n\n沒有這個學生的信息!\n"); 
           printf("What do you want to do next? 1.繼續輸入 2.返回主菜單  [ ]\b\b"); 
           scanf("%d",&m); 
           if(m==1) 
             deleter(); 
           else 
           { 
             k=0; 
             menu(); 
           } 
         } 
      }while(k==-1); 
      printf_one(k); 
      printf("\n\t確定刪除?\n\t1).是  2).返回 [ ]\b\b");/*再次詢問是否刪除*/ 
      scanf("%d",&w0); 
      if(w0==1) 
      { 
        stu[k].name[0]='\0'; 
        save(n); 
      } 
      else 
        break; 
      printf("\n\t^_^.成功刪除^_^.\n"); 
      printf("What do you want to do?\n\t1).繼續  2).返回 [ ]\b\b"); 
      scanf("%d",&w1); 
    }while(w1==1); 
   system("cls"); 
   menu(); /*不再刪除時返回主菜單,w1!=1*/ 
  } 
} 
 
void search() /*查找*/ 
{ 
  void menu(); 
  int w0,k,i,n,w1,w2; 
  struct student s; 
  FILE *fp; 
  if((fp=fopen("D:\\file.txt","rb"))!=NULL) /*不是空文件*/ 
    n=load(); 
  do 
  { 
    printf("請選擇查找類別: 1.姓名 2.學號  [ ]\b\b"); 
    scanf("%d",&w1); 
    if(w1<1||w1>2) 
    { 
      printf("輸入錯誤!請重新輸入!\n"); 
      w2=1; 
    } 
    else 
      w2=0; /*這里要注意:不加這句話會陷入死循環,跳不出來*/ 
  }while(w2==1); 
  if(w1==1) /*按姓名查找*/ 
  { 
    do 
    { 
      k=-1; 
      do 
      { 
        printf("\n請輸入您想要查找的學生的姓名!\nName:"); 
        scanf("%s",s.name); 
        for(i=0;i<n;i++) 
         if(strcmp(s.name,stu[i].name)==0) 
         { 
           k=i; 
           s=stu[i]; 
         } 
         if(k==-1) /*沒有找到*/ 
         { 
           int o; 
           printf("\n\n沒有這個學生的信息!\n!"); 
           printf("What do you want to do?\n\t1.繼續  2.返回菜單 [ ]\b\b"); 
           scanf("%d",&o); 
           if(o==1) 
           { 
             system("cls"); 
             search(); /*繼續查找*/ 
           } 
           else 
           { 
             system("cls"); 
             menu(); 
           } 
         } 
      }while(k==-1); 
      system("cls"); 
      printf_one(k); /*找到以后輸出這個學生的信息*/ 
      printf("\nWhat do you want to do next?\n\t1).繼續  2).返回菜單  [ ]\b\b"); 
      scanf("%d",&w0); 
    }while(w0==1); 
   system("cls"); 
   menu(); /*不再查找時返回主菜單*/ 
  } 
  else /*按學號查找*/ 
  { 
    do 
    { 
      k=-1; 
      do 
      { 
        printf("\n請輸入您想要查找的學生的學號!\nNum:"); 
        scanf("%s",s.num); 
        for(i=0;i<n;i++) 
         if(strcmp(s.num,stu[i].num)==0) /*找到了*/ 
         { 
          k=i; 
          s=stu[i]; 
         } 
        if(k==-1) /*沒有找到*/ 
        { 
         int o; 
         printf("\n\n沒有這個學生的信息!\n!"); 
         printf("What do you want to do?\n\t1.繼續  2.返回菜單 [ ]\b\b"); 
         scanf("%d",&o); 
         if(o==1) 
         { 
           system("cls"); 
           search(); /*繼續查找*/ 
         } 
         else 
         { 
           system("cls"); 
           menu(); 
         } 
        } 
      }while(k==-1); 
      system("cls"); 
      printf_one(k); /*找到以后輸出這個學生的學籍信息*/ 
      printf("\nWhat do you want to do?\n\t1).繼續  2).返回菜單  [ ]\b\b"); 
      scanf("%d",&w0); 
    }while(w0==1); 
   system("cls"); 
   menu();/*不再查找時返回主菜單*/ 
  } 
} 
 
int modify_data(int i) /*修改信息函數*/ 
{ 
  int c,w1; 
  void menu(); 
  do 
  { 
    puts("\n請選擇要修改的選項:\n\n1.學號 2.姓名 3.性別 4.出生日期 5.年齡 6.籍貫 7.系別 8.專業 9.班級 10.電話  11.所有信息 12.取消并返回"); 
    printf("請選擇?: [ ]\b\b\b"); 
    scanf("%d",&c); 
    if(c>12||c<1) 
    { 
      puts("\n選擇錯誤!請重新選擇!"); 
      getchar(); 
    } 
  }while(c>12||c<1); 
  do 
  { 
    switch(c) 
    { 
     case 1: printf("學號:"); scanf("%s",stu[i].num); break; 
     case 2: printf("姓名:"); scanf("%s",stu[i].name); break; 
     case 3: printf("性別:"); scanf("%s",stu[i].sex); break; 
     case 4: printf("出生年月:"); scanf("%d/%d/%d",&stu[i].birthday.year,&stu[i].birthday.month,&stu[i].birthday.day); break; 
     case 5: printf("年齡:"); scanf("%d",&stu[i].age);break; 
     case 6: printf("籍貫:"); scanf("%s",stu[i].addr);break; 
     case 7: printf("系別:"); scanf("%s",stu[i].dept);break; 
     case 8: printf("專業:"); scanf("%s",stu[i].major);break; 
     case 9: printf("班級:"); scanf("%s",stu[i].classs);break; 
     case 10: printf("電話:"); scanf("%s",stu[i].phone);break; 
     case 11: input(i); break; /*修改這個學生的所有信息*/ 
     case 12: menu(); /*返回主菜單*/ 
    } 
    puts("\nNow:\n"); 
    printf_one(i); /*輸出 修改后 的這個學生的信息*/ 
    printf("\n確定?\n\n\t1).是 2).不,重新修改 3).返回不保存 [ ]\b\b"); 
    scanf("%d",&w1); 
  }while(w1==2); 
  return(w1); /*修改成功并選擇1后返回1*/ 
} 
 
void modify() /*修改*/ 
{ 
  void menu(); 
  if(!flag) 
  { 
    printf("\n\n\t請先登錄!\n"); 
    printf("\n\t請按 Enter 鍵進入登錄界面!"); 
    getchar(); 
    getchar(); 
    login(); 
  } 
  else 
  { 
    struct student s; 
    int i,n,k,w0=1,w1,w2=0; 
    n=load(); 
    do 
    { 
     k=-1; 
     //printf_n(n); /*刪除之前先顯示所有學生的信息*/ 
     do 
     { 
       printf("\n請輸入您想要修改的學生的姓名!\nName:"); 
       scanf("%s",s.name); 
       for(i=0;i<n;i++) 
        if(strcmp(s.name,stu[i].name)==0) /*與其中一個學生匹配*/ 
        { 
          k=i; 
          s=stu[i]; 
        } 
       if(k==-1) /*沒有找到輸入的學生*/ 
       { 
         int o; 
         printf("\n\n沒有這個學生的信息!\n"); 
         printf("What do you want to do?\n\t1.繼續  2.返回菜單 [ ]\b\b"); 
         scanf("%d",&o); 
         if(o==1) 
         { 
           system("cls"); 
           modify(); /*繼續修改*/ 
         } 
         else 
         { 
          system("cls"); 
          menu(); 
         } 
       } 
     }while(k==-1); 
     system("cls"); 
     printf_one(k); /*輸出這個學生的信息*/ 
     w1=modify_data(k); 
     if(w1==1) /*判斷是否修改成功修改*/ 
     { 
       printf("\n\t^_^.修改成功 ^_^.\n\n是否繼續?\n\n\t1).是 2).保存返回\t[ ]\b\b"); 
       scanf("%d",&w0); 
       w2=1; 
     } 
     else 
     { 
       w0=0; 
       if(w2==0) 
         stu[k]=s; 
     } 
     if((w0!=1)&&(w2==1)) /*修改成功保存*/ 
       save(n); 
    }while(w0==1); 
    system("cls"); 
   menu();/*不再修改返回主菜單*/ 
  } 
} 
 
void browse()/*瀏覽*/ 
{ 
  system("color 5f"); 
  void menu(); 
  int n; 
  n=load(); 
  printf_n(n); 
  printf(" 共有 %d 個學生的記錄.\n",n); 
  printf("\nPress [ ENTER ] key to back..."); 
  getchar(); 
  system("cls"); 
  menu(); /*返回主函數*/ 
} 
 
void exit() /*退出*/ 
{ 
  exit(0); 
} 
 
void face() /*訪問頁面*/ 
{ 
  system("color 4e"); 
  printf("\n\t  ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★\n\n"); 
  puts("\t  ※※※※※※※※※※※※※※※※※※※※※※※※※※※"); 
  puts("\t  ※※                       ※※"); 
  puts("\t  ※※                       ※※"); 
  puts("\t  ※※      歡迎訪問學生學籍管理系統!     ※※"); 
  puts("\t  ※※                       ※※"); 
  puts("\t  ※※                       ※※"); 
  puts("\t  ※※                       ※※"); 
  puts("\t  ※※                       ※※"); 
  puts("\t  ※※               制作人:李遠航 ※※"); 
  puts("\t  ※※                  2013.6.20 ※※"); 
  puts("\t  ※※                       ※※"); 
  puts("\t  ※※※※※※※※※※※※※※※※※※※※※※※※※※※"); 
  printf("\n\tPress [ Enter ] key to continue……\n"); 
  getchar(); 
  system("cls"); 
} 
 
void menu() /*主菜單*/ 
{ 
  system("color 2e"); 
  printf("\n\t\t\t歡迎使用學生學籍管理系統!\n"); 
  printf("\n"); 
  int n,w1; 
  do 
  { 
    puts("\t\t★★★★★★★★  菜單 ★★★★★★★★"); 
    puts("\t\t★        1.登 錄        ★"); 
    puts("\t\t★        2.插 入        ★"); 
    puts("\t\t★        3.刪 除        ★"); 
    puts("\t\t★        4.查 找        ★"); 
    puts("\t\t★        5.修 改        ★"); 
    puts("\t\t★        6.瀏 覽        ★"); 
    puts("\t\t★        7.退 出        ★"); 
    puts("\t\t★★★★★★★★★★★★★★★★★★★★★"); 
    printf("請選擇服務種類(1-7) : [ ]\b\b"); 
    scanf("%d",&n); 
    if(n<1||n>7) 
    { 
      system("cls"); 
      printf("選擇錯誤! 請重新選擇!\n"); 
      w1=1; 
    } 
    else 
      w1=0; 
  }while(w1==1); 
  switch(n) 
  { 
    case 1: login(); break; /*登錄*/ 
    case 2: system("cls"); insert();  break; /*插入*/ 
    case 3: system("cls"); deleter(); break; /*刪除*/ 
    case 4: system("cls"); search(); break; /*查找*/ 
    case 5: system("cls"); modify(); break; /*修改*/ 
    case 6: system("cls"); browse(); break; /*瀏覽*/ 
    case 7: exit(); break; /*退出*/ 
  } 
} 
 
int main() 
{ 
  face(); 
  menu(); 
  return 0; 
}

關于“C語言如何實現簡單學生學籍管理系統”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

咸丰县| 宜川县| 太谷县| 曲麻莱县| 崇明县| 苏尼特右旗| 大同县| 桑日县| 梧州市| 平谷区| 买车| 延津县| 玉屏| 黄石市| 兰坪| 乐平市| 芦山县| 大余县| 自贡市| 沿河| 中西区| 朝阳市| 建德市| 潢川县| 南雄市| 兴化市| 东乌珠穆沁旗| 五原县| 杭锦旗| 高碑店市| 武强县| 安龙县| 平远县| 景东| 宁德市| 铁岭县| 沾益县| 万载县| 泾源县| 武安市| 临沭县|