亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

怎么用C語言實現學生信息管理系統

發布時間:2021-08-27 18:32:57 來源:億速云 閱讀:212 作者:chen 欄目:編程語言

本篇內容介紹了“怎么用C語言實現學生信息管理系統”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

C語言學生信息管理系統包括以下功能:

1、學生信息的整體注冊
2、學生信息的修改
3、學生成績信息的錄入
4、學生信息的添加
5、恢復誤刪的學生信息
6、學生信息的刪除
7、密碼修改保存函數
8、學生信息的查詢
9、密碼修改函數
10、學生信息管理系統的菜單函數

#include "stdio.h" 
#include "malloc.h" 
#include "string.h" 
#include "stdlib.h" 
#include "conio.h" 
#define M 3 
struct student 
{ 
 char num[10]; /* 學生的學號 */ 
 char name[20]; /* 學生的姓名 */ 
 char sex[5]; /* 學生的性別 */ 
 int age;  /* 學生的年齡 */ 
 char birth[20]; /* 學生的出生年月 */ 
 long tele;  /* 學生的電話號碼 */ 
 char addr[30]; /* 學生的地址 */ 
 char party[10]; /* 學生是否為黨員 */ 
 float score[M]; /* 學生各門學科成績 */ 
 float total; /* 學生的學科成績總分 */ 
 struct student *next; 
 
}stud[100]; 
struct secret 
{ 
 char user[30]; 
 char code[30]; 
 
}use[100]; 
int len; //學生人數 
 
///////////////////////////////////////////////////////////////////////////////// 
/*學生信息寫入到文件中-----系統函數*/ 
///////////////////////////////////////////////////////////////////////////////// 
void writetxt(struct student *head) 
{ 
 struct student *p; 
 p=head; 
 FILE *fp; 
 fp=fopen("d://student.txt","wb"); 
 if(fp==NULL) 
 { 
 printf("cannot open"); 
 return ; 
 } 
 while(p!=NULL) 
 { 
 fwrite(p,sizeof(struct student),1,fp); 
 p=p->next; 
 } 
 fclose(fp); 
 
} 
 
///////////////////////////////////////////////////////////////////////////////// 
/* 學生信息的整體注冊*/ 
///////////////////////////////////////////////////////////////////////////////// 
struct student *create( ) 
{ 
 char ch; 
 char ok; 
 int i; 
 struct student *p,*p1,*head,*p2; 
 FILE *fp; 
 fp=fopen("d://student.txt","rb"); 
 if(fp==NULL) 
 { 
 printf("/n 文件還不存在,是否創建?(Y/N)/n"); 
 ch=getchar(); 
 len=1; 
 scanf("%c",&ok); 
 if(ok=='Y'||ok=='y') 
 { 
 p1=p2=(struct student *) malloc(sizeof(struct student)); 
 if((len)<10) 
 printf("請輸入0%d的學號:",len); 
 else 
 printf("請輸入%d的學號:",len); 
 scanf("%s",p1->num); 
 if((len)<10) 
 printf("請輸入0%d的姓名:",len); 
 else 
 printf("請輸入%d的姓名:",len); 
 scanf("%s",p1->name); 
 if((len)<10) 
 printf("請輸入0%d的性別:",len); 
 else 
 printf("請輸入%d的性別:",len); 
 scanf("%s",p1->sex); 
 ch=getchar(); 
 if((len)<10) 
 printf("請輸入0%d的年齡:",len); 
 else 
 printf("請輸入%d的年齡:",len); 
 scanf("%d",&p1->age); 
 if((len)<10) 
 printf("請輸入0%d的生日:",len); 
 else 
 printf("請輸入%d的生日:",len); 
 scanf("%s",p1->birth); 
 if((len)<10) 
 printf("請輸入0%d的電話:",len); 
 else 
 printf("請輸入%d的電話號:",len); 
 scanf("%ld",&p1->tele); 
 if((len)<10) 
 printf("請輸入0%d的地址:",len); 
 else 
 printf("請輸入%d的地址:",len); 
 scanf("%s",p1->addr); 
 if((len)<10) 
 printf("請輸入0%d是否為黨員:",len); 
 else 
 printf("請輸入%d是否為黨員:",len); 
 scanf("%s",p1->party); 
 head=NULL; 
 while(strcmp(p1->num,"0")!=0) 
 { 
 len++; 
 if(head==NULL) 
  head=p1=p2; 
 else 
  p2->next=p1; 
 p2=p1; 
 p1=(struct student *) malloc(sizeof(struct student)); 
 if((len)<10) 
  printf("請輸入0%d的學號:",len); 
 else 
  printf("請輸入%d的學號:",len); 
 scanf("%s",p1->num); 
 if((len)<10) 
  printf("請輸入0%d的姓名:",len); 
 else 
  printf("請輸入%d的姓名:",len); 
 scanf("%s",p1->name); 
 if((len)<10) 
  printf("請輸入0%d的性別:",len); 
 else 
  printf("請輸入%d的性別:",len); 
 scanf("%s",p1->sex); 
 ch=getchar(); 
 if((len)<10) 
  printf("請輸入0%d的年齡:",len); 
 else 
  printf("請輸入%d的年齡:",len); 
 scanf("%d",&p1->age); 
 if((len)<10) 
  printf("請輸入0%d的生日:",len); 
 else 
  printf("請輸入%d的生日:",len); 
 scanf("%s",p1->birth); 
 if((len)<10) 
  printf("請輸入0%d的電話:",len); 
 else 
  printf("請輸入%d的電話號:",len); 
 scanf("%ld",&p1->tele); 
 if((len)<10) 
  printf("請輸入0%d的地址:",len); 
 else 
  printf("請輸入%d的地址:",len); 
 scanf("%s",p1->addr); 
 if((len)<10) 
  printf("請輸入0%d是否為黨員:",len); 
 else 
  printf("請輸入%d是否為黨員:",len); 
 scanf("%s",p1->party); 
 } 
 p2->next=NULL; 
 writetxt(head); 
 return (head); 
 } 
 } 
 if(ok=='N'||ok=='n') 
 { 
 printf("請重新選擇/n"); 
 return NULL; 
 } 
 else 
 { 
 printf("/n 文件已經存在/n"); 
 fp=fopen("d://student.txt","rb"); 
 p=stud; 
 for(i=0;!feof(fp);i++) 
 fread(stud+i,sizeof(struct student),1,fp); 
 len=i-1; 
 printf(" 文件里含有%d條學生信息/n",len); 
 printf("/n 是否使用已經存在的學生數據?(Y/N)/n"); 
 ch=getchar(); 
 scanf("%c",&ok); 
 if(ok=='Y'||ok=='y') 
 { 
 head=p1=p2=NULL; 
 fp=fopen("d://student.txt","rb"); 
 if(fp==NULL) 
 { 
 printf("open error/n"); 
 return NULL; 
 } 
 else 
 { 
 printf("學號 姓名 性別 年齡 出生年月 電話號碼 地址 是否黨員/n"); 
 for(i=0;i<len;i++) 
 { 
  p1=(struct student *)malloc(sizeof(struct student)); 
  fread(p1,sizeof(struct student),1,fp); 
  if(head==NULL) 
  head=p2=p1; 
  else 
  p2->next=p1; 
  p2=p1; 
  printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); 
 } 
 fclose(fp); 
 return(head); 
 } 
 } 
 if(ok=='N'||ok=='n') 
 { 
 len=1; 
 p1=p2=( struct student *) malloc(sizeof(struct student )); 
 if((len)<10) 
 printf("請輸入0%d的學號:",len); 
 else 
 printf("請輸入%d的學號:",len); 
 scanf("%s",p1->num); 
 if((len)<10) 
 printf("請輸入0%d的姓名:",len); 
 else 
 printf("請輸入%d的姓名:",len); 
 scanf("%s",p1->name); 
 if((len)<10) 
 printf("請輸入0%d的性別:",len); 
 else 
 printf("請輸入%d的性別:",len); 
 scanf("%s",p1->sex); 
 ch=getchar(); 
 if((len)<10) 
 printf("請輸入0%d的年齡:",len); 
 else 
 printf("請輸入%d的年齡:",len); 
 scanf("%d",&p1->age); 
 if((len)<10) 
 printf("請輸入0%d的生日:",len); 
 else 
 printf("請輸入%d的生日:",len); 
 scanf("%s",p1->birth); 
 if((len)<10) 
 printf("請輸入0%d的電話:",len); 
 else 
 printf("請輸入%d的電話號:",len); 
 scanf("%ld",&p1->tele); 
 if((len)<10) 
 printf("請輸入0%d的地址:",len); 
 else 
 printf("請輸入%d的地址:",len); 
 scanf("%s",p1->addr); 
 if((len)<10) 
 printf("請輸入0%d是否為黨員:",len); 
 else 
 printf("請輸入%d是否為黨員:",len); 
 scanf("%s",p1->party); 
 head=NULL; 
 while(strcmp(p1->num,"0")!=0) 
 { 
 if(head==NULL) 
  head=p1=p2; 
 else 
  p2->next=p1; 
 p2=p1; 
 p1=(struct student *) malloc(sizeof(struct student)); 
 if((len)<10) 
  printf("請輸入0%d的學號:",len); 
 else 
  printf("請輸入%d的學號:",len); 
 scanf("%s",p1->num); 
 if((len)<10) 
  printf("請輸入0%d的姓名:",len); 
 else 
  printf("請輸入%d的姓名:",len); 
 scanf("%s",p1->name); 
 if((len)<10) 
  printf("請輸入0%d的性別:",len); 
 else 
  printf("請輸入%d的性別:",len); 
 scanf("%s",p1->sex); 
 ch=getchar(); 
 if((len)<10) 
  printf("請輸入0%d的年齡:",len); 
 else 
  printf("請輸入%d的年齡:",len); 
 scanf("%d",&p1->age); 
 if((len)<10) 
  printf("請輸入0%d的生日:",len); 
 else 
  printf("請輸入%d的生日:",len); 
 scanf("%s",p1->birth); 
 if((len)<10) 
  printf("請輸入0%d的電話:",len); 
 else 
  printf("請輸入%d的電話號:",len); 
 scanf("%ld",&p1->tele); 
 if((len)<10) 
  printf("請輸入0%d的地址:",len); 
 else 
  printf("請輸入%d的地址:",len); 
 scanf("%s",p1->addr); 
 if((len)<10) 
  printf("請輸入0%d是否為黨員:",len); 
 else 
  printf("請輸入%d是否為黨員:",len); 
 scanf("%s",p1->party); 
 } 
 p2->next=NULL; 
 writetxt(head); 
 } 
 return (head); 
 } 
} 
//////////////////////////////////////////////////////////////////////////////// 
/*學生信息的修改*/ 
//////////////////////////////////////////////////////////////////////////////// 
struct student *change(struct student *head) 
{ 
 
 struct student *p=head; 
 int age,choose,m; 
 long tele; 
 char num[10]; 
 char ch,yes,sex[5],birth[20],addr[30],party[10]; 
 char *p1; 
 if(head==NULL) 
 { 
 printf("原鏈表為空"); 
 return NULL; 
 } 
 else 
 { 
 while(1) 
 { 
 printf("請輸入學號/n"); 
 scanf("%s",num); 
 p=head; 
 while(p!=NULL&&strcmp(p->num,num)!=0) 
 { 
 p=p->next; 
 if(p==NULL) 
 { 
  printf("該學生不存在/n"); 
  break; 
 } 
 if(strcmp(p->name,"0")==0) 
 { 
  printf("該學生已不存在/n"); 
  break; 
 } 
 } 
 m=0; 
 while(1) 
 { 
 if(p==NULL) 
  break; 
 if(strcmp(p->name,"0")==0) 
  break; 
 printf("請選擇1.性別 2.年齡 3.出生日期4.電話 5.家庭住址6.黨員/n"); 
 scanf("%d",&choose); 
 if(choose==1) 
 { 
  printf("請輸入新的性別:/n"); 
  scanf("%s",&sex); 
  p1=sex; 
  strcpy(p->sex,p1); 
  printf("是否繼續修改本學生學生其他信息Y/N/n"); 
  ch=getchar(); 
  scanf("%c",&yes); 
  if(yes=='N'||yes=='n') 
  break; 
 } 
 if(choose==2) 
 { 
  printf("請輸入新的年齡:/n"); 
  scanf("%d",&age); 
  p->age=age; 
  printf("是否繼續修改本學生學生其他信息Y/N/n"); 
  ch=getchar(); 
  scanf("%c",&yes); 
  if(yes=='N'||yes=='n') 
  break; 
 } 
 if(choose==3) 
 { 
  printf("請輸入新的出生日期:/n"); 
  scanf("%s",birth); 
  p1=birth; 
  strcpy(p->birth,p1); 
  printf("是否繼續修改本學生學生其他信息Y/N/n"); 
  ch=getchar(); 
  scanf("%c",&yes); 
  if(yes=='N'||yes=='n') 
  break; 
 } 
 if(choose==4) 
 { 
  printf("請輸入新的電話:/n"); 
  scanf("%d",&tele); 
  p->tele=tele; 
  printf("是否繼續修改本學生學生其他信息Y/N/n"); 
  ch=getchar(); 
  scanf("%c",&yes); 
  if(yes=='N'||yes=='n') 
  break; 
 } 
 if(choose==5) 
 { 
  printf("請輸入新的家庭住址:/n"); 
  scanf("%s",addr); 
  p1=addr; 
  strcpy(p->addr,p1); 
  printf("是否繼續修改本學生學生其他信息Y/N/n"); 
  ch=getchar(); 
  scanf("%c",&yes); 
  if(yes=='N'||yes=='n') 
  break; 
 } 
 if(choose==6) 
 { 
  printf("請輸入'是'或'否':/n"); 
  scanf("%s",party); 
  p1=party; 
  strcpy(p->party,p1); 
  printf("是否繼續修改本學生學生其他信息Y/N/n"); 
  ch=getchar(); 
  scanf("%c",&yes); 
  if(yes=='N'||yes=='n') 
  break; 
 } 
 } 
 printf("是否繼續修改其他學生Y/N/n"); 
 ch=getchar(); 
 scanf("%c",&yes); 
 if(yes=='N'||yes=='n') 
 break; 
 } 
 writetxt(head); 
 p=head; 
 while(p!=NULL) 
 { 
 printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p->num,p->name,p->sex,p->age,p->birth,p->tele,p->addr,p->party); 
 p=p->next; 
 } 
 return head; 
 } 
} 
///////////////////////////////////////////////////////////////////////////////// 
/*學生成績信息的錄入*/ 
///////////////////////////////////////////////////////////////////////////////// 
struct student *chengji(struct student *head) 
{ 
 FILE *fp; 
 struct student *p1,*p; 
 int i; 
 float sum=0; 
 fp=fopen("d://student1.txt","wb"); 
 p1=(struct student *)malloc(sizeof(struct student)); 
 p1=head; 
 while(p1!=NULL) 
 { 
 if(strcmp(p1->name,"0")==0) 
 { 
 printf("該學生不存在/n"); 
 p1=p1->next; 
 continue; 
 } 
 printf("請輸入學號為%s學生的高數、C語言、英語成績:/n",p1->num); 
 for(i=0;i<M;i++) 
 { 
 scanf("%f",&p1->score[i]); 
 sum+=p1->score[i]; 
 } 
 p1->total=sum; 
 sum=0; 
 fwrite(p1,sizeof(struct student),1,fp); 
 
 p1=p1->next; 
 } 
 fclose(fp); 
 writetxt(head); 
 p=head; 
 printf("學號 姓名 性別 年齡 出生年月 電話號碼 地址 是否黨員/n"); 
 while(p!=NULL) 
 { 
 printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p->num,p->name,p->sex,p->age,p->birth,p->tele,p->addr,p->party); 
 p=p->next; 
 } 
 return(head); 
} 
///////////////////////////////////////////////////////////////////////////////// 
/*學生信息的添加*/ 
///////////////////////////////////////////////////////////////////////////////// 
struct student *insert(struct student *head) 
{ 
 char ch,ok; 
 struct student *p,*p0,*p1; 
 p=p1=head; 
 while(1) 
 { 
 if((len+1)<10) 
 printf("您的學號為0%d/n",len+1); 
 else 
 printf("您的學號為%d/n",len+1); 
 p0=(struct student *)malloc(sizeof(struct student)); 
 len++; 
 if((len)<10) 
 printf("請輸入0%d的學號:",len); 
 else 
 printf("請輸入%d的學號:",len); 
 scanf("%s",p0->num); 
 if((len)<10) 
 printf("請輸入0%d的姓名:",len); 
 else 
 printf("請輸入%d的姓名:",len); 
 scanf("%s",p0->name); 
 if((len)<10) 
 printf("請輸入0%d的性別:",len); 
 else 
 printf("請輸入%d的性別:",len); 
 scanf("%s",p0->sex); 
 ch=getchar(); 
 if((len)<10) 
 printf("請輸入0%d的年齡:",len); 
 else 
 printf("請輸入%d的年齡:",len); 
 scanf("%d",&p0->age); 
 if((len)<10) 
 printf("請輸入0%d的生日:",len); 
 else 
 printf("請輸入%d的生日:",len); 
 scanf("%s",p0->birth); 
 if((len)<10) 
 printf("請輸入0%d的電話:",len); 
 else 
 printf("請輸入%d的電話號:",len); 
 scanf("%ld",&p0->tele); 
 if((len)<10) 
 printf("請輸入0%d的地址:",len); 
 else 
 printf("請輸入%d的地址:",len); 
 scanf("%s",p0->addr); 
 if((len)<10) 
 printf("請輸入0%d是否為黨員:",len); 
 else 
 printf("請輸入%d是否為黨員:",len); 
 scanf("%s",p0->party); 
 while(p->next!=NULL) 
 p=p->next; 
 p->next=p0; 
 p0->next=NULL; 
 printf("是否繼續添加Y/N/n") ; 
 ch=getchar(); 
 scanf("%c",&ok); 
 if(ok=='y'||ok=='Y')len++; 
 else 
 { 
 printf("您需要重新進行1的操作來完成該學生信息的注冊,謝謝!/n"); 
 break; 
 } 
 } 
 p=head; 
 while(p!=NULL) 
 { 
 printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p->num,p->name,p->sex,p->age,p->birth,p->tele,p->addr,p->party); 
 p=p->next; 
 } 
 writetxt(head); 
 return(head); 
 
} 
///////////////////////////////////////////////////////////////////////////////// 
/* 恢復誤刪的學生信息*/ 
///////////////////////////////////////////////////////////////////////////////// 
struct student *recover(struct student *head) 
{ 
 FILE *fp; 
 struct student *p1,*p; 
 p=p1=(struct student*)malloc(sizeof(struct student)); 
 char ch; 
 char num[10]; 
 p1=head; 
 printf("input the recover number:"); 
 scanf("%s",num); 
 fp=fopen("d://recycle.txt","rb"); 
 if(fp==NULL) 
 { 
 printf("回收站為空!/n"); 
 return NULL; 
 } 
 else 
 { 
 printf("是否將回收站的數據還原?Y/N /n"); 
 ch=getchar(); 
 ch=getchar(); 
 if(ch=='n'||ch=='N') 
 printf("不需要還原!"); 
 else 
 { 
 while(1) 
 { 
 if(strcmp(p1->num,num)==0) 
  break; 
 else 
  p1=p1->next; 
 } 
 while(!feof(fp)) 
 { 
 fread(p,sizeof(struct student),1,fp); 
 if(strcmp(p1->num,p->num)==0) 
 { 
  strcpy(p1->name,p->name); 
  strcpy(p1->sex,p->sex); 
  p1->age=p->age; 
  strcpy(p1->birth,p->birth); 
  p1->tele=p->tele; 
  strcpy(p1->addr,p->addr); 
  strcpy(p1->party,p->party); 
  printf("dddddddddddddddddddd/n"); 
  break; 
 
 } 
 } 
 
 } 
 writetxt(head); 
 
 p=head; 
 while(p!=NULL) 
 { 
 printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p->num,p->name,p->sex,p->age,p->birth,p->tele,p->addr,p->party); 
 p=p->next; 
 }fclose(fp); 
 } 
 return head; 
} 
///////////////////////////////////////////////////////////////////////////////// 
/* 學生信息的刪除*/ 
///////////////////////////////////////////////////////////////////////////////// 
struct student *del(struct student *head) 
{ 
 FILE *fp; 
 struct student *p1,*p2,*p0; 
 p1=p2=head; 
 char ch; 
 char num[10]; 
 printf("input the delete number:"); 
 scanf("%s",num); 
 if(head==NULL) 
 printf("nothing to delete!"); 
 else 
 { 
 while(p1!=NULL) 
 { 
 if(strcmp(p1->num,num)!=0) 
 { 
 p2=p1; 
 p1=p1->next; 
 } 
 if(strcmp(p1->num,num)==0) 
 { 
 p0=p1; 
 printf("是否永久刪除該學生的信息?Y/N /n"); 
 ch=getchar(); 
 ch=getchar(); 
 if(ch=='y'||ch=='Y') 
 { 
  printf("該學生信息已經成功從磁盤刪除!/n"); 
  if(p1==head) 
  { 
  p0=p1; 
  head=p1->next; 
  p1=p2=head; 
  p1=p2->next; 
  } 
  else 
  { 
  p0=p1; 
  p2->next=p1->next; 
  p1=p2->next; 
  } 
  break; 
 } 
 else 
 { 
  fp=fopen("d://recycle.txt","ab+"); 
  if(fp==NULL) 
  { 
  printf("cannot open the file!"); 
  return NULL; 
  } 
  fwrite(p0,sizeof(struct student),1,fp); 
  strcpy(p1->name,"0"); 
  strcpy(p1->sex,"0"); 
  p1->age=0; 
  strcpy(p1->birth,"0"); 
  p1->tele=0; 
  strcpy(p1->addr,"0"); 
  strcpy(p1->party,"0"); 
 
  printf("學生信息已放入回收站!/n"); 
  fclose(fp); 
 
 
  printf("如果想恢復剛剛刪除的學生信息,請輸入'Y'or'y'/n"); 
  printf("如果不想恢復剛剛刪除的學生信息,請輸入'N'or'n'/n"); 
  ch=getchar(); 
  ch=getchar(); 
  if(ch=='y'||ch=='Y') 
  { 
  head=recover(head); 
  break; 
  } 
  if(ch=='n'||ch=='N') 
  break ; 
 } 
 } 
 
 } 
 
 } 
 writetxt(head); 
 return head; 
} 
///////////////////////////////////////////////////////////////////////////// 
/* 密碼修改保存函數*/ 
//////////////////////////////////////////////////////////////////////////// 
void write() 
{ 
 FILE *fp; 
 struct secret p; 
 int i; 
 fp=fopen("d://mima.txt","wb"); 
 if(fp==NULL) 
 { 
 printf("cannot open!"); 
 
 } 
 for(i=0;i<=len;i++) 
 { 
 p=use[i]; 
 fwrite(&p,sizeof(struct secret),1,fp); 
 } 
 fclose(fp); 
 
} 
 
//////////////////////////////////////////////////////////////////////////////// 
/*學生信息的查詢*/ 
//////////////////////////////////////////////////////////////////////////////// 
void research(struct student *head) 
{ 
 struct student *p1,*p2; 
 p1=p2=head; 
 int i,j,l=1,k=0; 
 char sex[20],party[10],ch,yes; 
 int age; 
 char num[10],name[20]; 
 printf("選擇:1.模糊查詢 2.精確查詢:"); 
 scanf("%d",&i); 
 if(i==1) 
 { 
 while(l==1) 
 { 
 printf("選擇:1.性別 2.年齡 3.是否黨員:"); 
 scanf("%d",&j); 
 if(j==1) 
 { p1=head; 
 printf("輸入性別:"); 
 scanf("%s",sex); 
 ch=getchar(); 
 while(p1!=NULL) 
 { 
 if(strcmp(p1->sex,sex)==0) 
 { 
  printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); 
  p1=p1->next; 
  continue; 
 } 
 k++; 
 if(k==3) 
  printf("該學生不存在!/n"); 
 p1=p1->next; 
 } 
 printf("是否繼續查詢學生其他信息Y/N/n"); 
 scanf("%c",&yes); 
 printf("yes=%c/n",yes); 
 if(yes=='N'||yes=='n') 
 break; 
 if(yes=='Y'||yes=='y') 
 k=0; 
 } 
 if(j==2) 
 { 
 p1=head; 
 printf("輸入年齡:"); 
 scanf("%d",&age); 
 while(p1!=NULL) 
 { 
  if(p1->age==age) 
  { 
  printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); 
  p1=p1->next; 
  continue; 
  } 
  k++; 
  if(k==3) 
  printf("該學生不存在!/n"); 
  p1=p1->next; 
 } 
 printf("是否繼續查詢學生其他信息Y/N/n"); 
 ch=getchar(); 
 scanf("%c",&yes); 
 if(yes=='N'||yes=='n') 
  break; 
 if(yes=='Y'||yes=='y') 
  k=0; 
 } 
 if(j==3) 
 { 
 p1=head; 
 printf("輸入是否黨員:"); 
 scanf("%s",party); 
 ch=getchar(); 
 while(p1!=NULL) 
 { 
  if(strcmp(p1->party,party)==0) 
  { 
  printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); 
  p1=p1->next; 
  continue; 
  } 
  k++; 
  if(k==3) 
  printf("該學生不存在!/n"); 
  p1=p1->next; 
 } 
 printf("是否繼續查詢學生其他信息?Y/N/n"); 
 scanf("%c",&yes); 
 if(yes=='N'||yes=='n') 
  break; 
 if(yes=='Y'||yes=='y') 
  k=0; 
 } 
 } 
 } 
 if(i==2) 
 { 
 printf("請選擇細查的關鍵字:1.學生學號 2.學生姓名:"); 
 scanf("%d",&j); 
 if(j==1) 
 { 
 while(1) 
 { 
 p1=head; 
 printf("輸入學生的學號:"); 
 scanf("%5s",num); 
 while(p1!=NULL) 
 { 
  if(strcmp(p1->num,num)==0) 
  { 
  printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); 
  p1=p1->next;continue; 
  } 
  k++; 
  if(k==3) 
  printf("該學生不存在!/n"); 
  p1=p1->next; 
 } 
 printf("是否繼續查詢其他學生信息?Y/N/n"); 
 ch=getchar(); 
 scanf("%c",&yes); 
 if(yes=='N'||yes=='n') 
  break; 
 if(yes=='Y'||yes=='y') 
  k=0; 
 } 
 } 
 if(j==2) 
 { 
 while(1) 
 { 
 p1=head; 
 printf("輸入學生的名字:"); 
 scanf("%s",name); 
 while(p1!=NULL) 
 { 
  if(strcmp(p1->name,name)==0) 
  { 
  printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); 
  p1=p1->next;continue; 
  } 
  k++; 
  if(k==3) 
  printf("該學生不存在!/n"); 
  p1=p1->next; 
 } 
 printf("是否繼續查詢其他學生信息?Y/N/n"); 
 ch=getchar(); 
 scanf("%c",&yes); 
 if(yes=='N'||yes=='n') 
  break; 
 if(yes=='Y'||yes=='y') 
  k=0; 
 } 
 } 
 } 
} 
 
//////////////////////////////////////////////////////////////////////////// 
///////////////////////////////////////////////////////////////////////////// 
void research2(char num[]) 
{ 
 int i; 
 for(i=0;i<=len;i++) 
 if(strcmp(stud[i].num,num)==0) 
 printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",stud[i].num,stud[i].name,stud[i].sex,stud[i].age,stud[i].birth,stud[i].tele,stud[i].addr,stud[i].party); 
} 
 
///////////////////////////////////////////////////////////////////////////// 
/* 密碼修改函數-*/ 
//////////////////////////////////////////////////////////////////////////// 
void mimacli() 
{ 
 char use1[30],mima[30],newmima[30],ch; 
 int i,j=0; 
 printf("輸入用戶名:/n"); 
 scanf("%s",use1); 
 printf("輸入密碼:/n"); 
 while(1) 
 { 
 mima[j]=getch(); 
 if(mima[j]==13) 
 break; 
 putchar('*'); 
 j++; 
 } 
 mima[j]='/0'; 
 printf("/n"); 
 for(i=0;i<=len;i++) 
 { 
 if(strcmp(stud[i].name,"0")==0) 
 { 
 printf("該學生不存在/n"); 
 continue; 
 } 
 if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) 
 { 
 printf("輸入新密碼:/n"); 
 ch=getchar(); 
 j=0; 
 while(1) 
 { 
 newmima[j]=getch(); 
 if(newmima[j]==13) 
  break; 
 putchar('*'); 
 j++; 
 } 
 newmima[j]='/0'; 
 printf("/n"); 
 strcpy(use[i].code,newmima); 
 write(); 
 for(i=0;i<=len;i++){ 
 printf("///////////////////////////////////////////////n"); 
 printf("%s ",use[0].user); 
 printf("%s/n",use[0].code); 
 printf("///////////////////////////////////////////////n");} 
 break; 
 } 
 if(strcmp(use1,use[1].user)<0||strcmp(use1,use[len].user)>0) 
 { 
 printf("**************************************/n"); 
 printf(" 4用戶名錯誤 /n"); 
 printf("***************************************/n"); 
 
 break; 
 } 
 if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) 
 { 
 printf("**************************************/n"); 
 printf(" 密碼錯誤 /n"); 
 printf("***************************************/n"); 
 
 break; 
 } 
 } 
} 
///////////////////////////////////////////////////////////////////////////// 
/* 學生信息管理系統的菜單函數-系統函數*/ 
//////////////////////////////////////////////////////////////////////////// 
int menu() 
{ 
 int sn,i,j=0; 
 char use1[30]; 
 char mima[30]; 
 int m=0; 
 printf(" 學生信息管理系統/n"); 
 printf("=========================================/n"); 
 printf(" 1.學生信息的整體注冊/n"); 
 printf(" 2.學生信息的修改/n"); 
 printf(" 3.學生信息的添加/n"); 
 printf(" 4.學生信息的刪除/n"); 
 printf(" 5.學生成績信息的錄入/n"); 
 printf(" 6.學生信息的查詢/n"); 
 printf(" 7.訪問者密碼的修改/n"); 
 printf(" 8.恢復誤刪學生信息/n"); 
 printf(" 0.退出學生信息管理系統/n"); 
 printf("==========================================/n"); 
 printf("請選擇0-8:/n"); 
 while(1) 
 { 
 scanf("%d",&sn); 
 if(sn==7) 
 for(i=1;i<=len;i++) 
 { 
 strcpy(use[i].user,stud[i-1].num ); 
 strcpy(use[i].code,stud[i-1].num ); 
 } 
 if(sn>1&&sn<7||sn==8) 
 { 
 
 printf("請輸入您的用戶名:"); 
 scanf("%s",use1); 
 printf("請輸入您的密碼:"); 
 while(1) 
 { 
  mima[j]=getch(); 
  if(mima[j]==13) 
  break; 
  putchar('*'); 
  j++; 
 } 
 mima[j]='/0'; 
 printf("/n"); 
 if(sn==6) 
  if(strcmp(use1,use[0].user)!=0) 
  { 
  for(i=0;i<=len;i++) 
  { 
  if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) 
  { 
  if(i!=0) 
  { 
  printf("**************************************/n"); 
  printf(" 您只能查找您本人的信息 /n"); 
  printf("***************************************/n"); 
  research2(use1); 
  break; 
  } 
  } 
  if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) 
  { 
  printf("**************************************/n"); 
  printf(" 密碼錯誤 /n"); 
  printf("***************************************/n"); 
  while(1) 
  { 
  m++; 
  if(m<3) 
  { 
   printf("重新輸入:/n"); 
   printf("請輸入您的用戶名:"); 
   scanf("%s",use1); 
   printf("請輸入您的密碼:"); 
   j=0; 
   while(1) 
   { 
   mima[j]=getch(); 
   if(mima[j]==13) 
   break; 
   putchar('*'); 
   j++; 
   } 
   mima[j]='/0'; 
   if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) 
   { 
   printf("**************************************/n"); 
   printf(" 密碼錯誤 /n"); 
   printf("***************************************/n");  
   } 
  } 
  else 
  { 
   sn=0; 
   break; 
  } 
  } 
  sn=0; 
  break; 
  } 
  if(strcmp(use1,use[1].user)<0||strcmp(use1,use[len].user)>0) 
  { 
  printf("**************************************/n"); 
  printf(" 3用戶名錯誤 /n"); 
  printf("***************************************/n"); 
  sn=0; 
  break; 
  } 
  if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) 
  { 
  printf("**************************************/n"); 
  printf(" 密碼錯誤 /n"); 
  printf("***************************************/n"); 
  while(1) 
  { 
  m++; 
  if(m<3) 
  { 
   if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) 
   { 
   printf("**************************************/n"); 
   printf(" 您沒有權限來操作 /n"); 
   printf("***************************************/n"); 
   sn=0; 
   break;   
   } 
   printf("重新輸入:/n"); 
   printf("請輸入您的用戶名:"); 
   scanf("%s",use1); 
   printf("請輸入您的密碼:"); 
   j=0; 
   while(1) 
   { 
   mima[j]=getch(); 
   if(mima[j]==13) 
   break; 
   putchar('*'); 
   j++; 
   } 
   mima[j]='/0'; 
   printf("/n"); 
   if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) 
   { 
   printf("**************************************/n"); 
   printf(" 密碼錯誤 /n"); 
   printf("***************************************/n"); 
 
   } 
   else 
   { 
   printf("**************************************/n"); 
   printf(" 歡迎您登陸本系統 /n"); 
   printf("***************************************/n"); 
   research2(use1); 
   break; 
   } 
   } 
  else 
  { 
   sn=0; 
   break; 
  } 
  } 
  } 
  } 
  } 
  for(i=0;i<=len;i++) 
  { 
  if(sn==6) 
  if(strcmp(use1,use[0].user)!=0) 
  { 
  sn=0; 
  break; 
  } 
  if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) 
  { 
  if(i!=0) 
  { 
   printf("**************************************/n"); 
   printf(" 您沒有權限來操作 /n"); 
   printf("***************************************/n"); 
  sn=0; 
  break; 
  } 
  else 
  { 
   printf("**************************************/n"); 
   printf(" 歡迎您登陸本系統 /n"); 
   printf("***************************************/n"); 
   break; 
  } 
  } 
  if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) 
  { 
  printf("**************************************/n"); 
  printf(" 密碼錯誤 /n"); 
  printf("***************************************/n"); 
 
  while(1) 
  { 
  m++; 
  if(m<3) 
  { 
   printf("重新輸入:/n"); 
   printf("請輸入您的用戶名:"); 
   scanf("%s",use1); 
   printf("請輸入您的密碼:"); 
   j=0; 
   while(1) 
   { 
   mima[j]=getch(); 
   if(mima[j]==13) 
   break; 
   putchar('*'); 
   j++; 
   } 
   mima[j]='/0'; 
   printf("/n"); 
   if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) 
   { 
   printf("**************************************/n"); 
   printf(" 密碼錯誤 /n"); 
   printf("***************************************/n"); 
   } 
   else 
   { 
   printf("**************************************/n"); 
   printf(" 歡迎您登陸本系統 /n"); 
   printf("***************************************/n"); 
   break; 
   } 
  } 
  else 
  { 
   sn=0; 
   break; 
  } 
  } 
  break; 
  } 
  if(strcmp(use1,use[1].user)<0||strcmp(use1,use[len].user)>0) 
  { 
  printf("**************************************/n"); 
  printf(" 用戶名錯誤 /n"); 
  printf("***************************************/n"); 
  sn=0; 
  break; 
  } 
  if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) 
  { 
  printf("**************************************/n"); 
  printf(" 密碼錯誤 /n"); 
  printf("***************************************/n"); 
 
  while(1) 
  { 
  m++; 
  if(m<3) 
  { 
   if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) 
   { 
   printf("**************************************/n"); 
   printf(" 您沒有權限來操作 /n"); 
   printf("***************************************/n"); 
   sn=0; 
   break; 
 
   } 
   printf("重新輸入:/n"); 
   printf("請輸入您的用戶名:"); 
   scanf("%s",use1); 
   printf("請輸入您的密碼:"); 
   j=0; 
   while(1) 
   { 
   mima[j]=getch(); 
   if(mima[j]==13) 
   break; 
   putchar('*'); 
   j++; 
   } 
   mima[j]='/0'; 
   printf("/n"); 
   if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) 
   { 
   printf("**************************************/n"); 
   printf(" 密碼錯誤 /n"); 
   printf("***************************************/n"); 
 
   } 
  } 
  else 
  { 
   sn=0; 
   break; 
  } 
  } 
 
  } 
  } 
 } 
 if (sn<0 || sn>8) 
 { 
 printf("/n/t輸入錯誤,重選0-8/n"); 
 break; 
 } 
 else 
 break; 
 } 
 return sn; 
} 
 
///////////////////////////////////////////////////////////////////////////////// 
/* 學生信息管理系統的主函數--系統函數*/ 
///////////////////////////////////////////////////////////////////////////////// 
void main() 
{ 
 struct student *head; 
 int i,j=0; 
 while(1) 
 { 
 switch(menu()) 
 { 
 case 1: 
 printf("**************************************/n"); 
 printf(" 學生信息的整體注冊 /n"); 
 printf("***************************************/n"); 
 head=create(); 
 FILE *fp; 
 struct secret p; 
 fp=fopen("d://mima.txt","rb"); 
 if(fp==NULL) 
 printf("open error/n"); 
 else 
 { 
 for(i=0;i<=len;i++) 
 { 
  fread(&p,sizeof(struct secret),1,fp); 
  strcpy(use[i].user,p.user); 
  strcpy(use[i].code,p.code); 
 } 
 
 fclose(fp); 
 } 
 
 break; 
 
 case 2: 
 printf("**************************************/n"); 
 printf("學生信息的修改/n"); 
 printf("**************************************/n"); 
 change(head); 
 break; 
 case 3: 
 printf("**************************************/n"); 
 printf("學生信息的添加/n"); 
 printf("**************************************/n"); 
 head=insert(head); 
 break; 
 case 4: 
 printf("**************************************/n"); 
 printf("學生成績信息的刪除入/n"); 
 printf("**************************************/n"); 
 head=del(head); 
 break; 
 case 5: 
 printf("**************************************/n"); 
 printf("學生成績信息的錄入/n"); 
 printf("**************************************/n"); 
 head=chengji(head); 
 break; 
 case 6: 
 printf("**************************************/n"); 
 printf("學生信息的查詢/n"); 
 printf("**************************************/n"); 
 research(head); 
 break; 
 case 7: 
 printf("**************************************/n"); 
 printf("訪問者密碼的修改/n"); 
 printf("**************************************/n"); 
 mimacli(); 
 break; 
 case 8: 
 printf("**************************************/n"); 
 printf("恢復誤刪信息/n"); 
 printf("**************************************/n"); 
 recover(head); 
 break; 
 case 0: 
 printf("**************************************/n"); 
 printf("退出學生信息管理系統/n"); 
 printf("**************************************/n"); 
 printf("The end./n"); 
 return; 
 default: printf("/n選擇錯誤,請重選!/n"); 
 getchar(); 
 getchar(); 
 } 
 system("cls"); 
 } 
}

“怎么用C語言實現學生信息管理系統”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

潜山县| 九龙县| 汉寿县| 图们市| 曲靖市| 湾仔区| 堆龙德庆县| 江山市| 绿春县| 松滋市| 竹北市| 汨罗市| 外汇| 余姚市| 古浪县| 南阳市| 汽车| 黑河市| 平度市| 遵义市| 永寿县| 卓尼县| 阿勒泰市| 关岭| 石渠县| 社旗县| 宁晋县| 南投县| 聊城市| 深泽县| 西畴县| 姜堰市| 仁怀市| 赣榆县| 泾阳县| 济宁市| 庄河市| 陆丰市| 广宗县| 桦川县| 株洲市|