欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

學(xué)生信息管理系統(tǒng)C語(yǔ)言版

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

C語(yǔ)言學(xué)生信息管理系統(tǒng)包括以下功能:

1、學(xué)生信息的整體注冊(cè)
2、學(xué)生信息的修改
3、學(xué)生成績(jī)信息的錄入
4、學(xué)生信息的添加
5、恢復(fù)誤刪的學(xué)生信息
6、學(xué)生信息的刪除
7、密碼修改保存函數(shù)
8、學(xué)生信息的查詢
9、密碼修改函數(shù)
10、學(xué)生信息管理系統(tǒng)的菜單函數(shù)

#include "stdio.h" 
#include "malloc.h" 
#include "string.h" 
#include "stdlib.h" 
#include "conio.h" 
#define M 3 
struct student 
{ 
 char num[10];    /* 學(xué)生的學(xué)號(hào) */ 
 char name[20];    /* 學(xué)生的姓名 */ 
 char sex[5];    /* 學(xué)生的性別 */ 
 int age;     /* 學(xué)生的年齡 */ 
 char birth[20];    /* 學(xué)生的出生年月 */ 
 long tele;     /* 學(xué)生的電話號(hào)碼 */ 
 char addr[30];    /* 學(xué)生的地址 */ 
 char party[10];    /* 學(xué)生是否為黨員 */ 
 float score[M];    /* 學(xué)生各門學(xué)科成績(jī) */ 
 float total;    /* 學(xué)生的學(xué)科成績(jī)總分 */ 
 struct student *next; 
 
}stud[100]; 
struct secret 
{ 
 char user[30]; 
 char code[30]; 
 
}use[100]; 
int len;  //學(xué)生人數(shù) 
 
///////////////////////////////////////////////////////////////////////////////// 
/*學(xué)生信息寫(xiě)入到文件中-----系統(tǒng)函數(shù)*/ 
///////////////////////////////////////////////////////////////////////////////// 
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); 
 
} 
 
///////////////////////////////////////////////////////////////////////////////// 
/*  學(xué)生信息的整體注冊(cè)*/ 
///////////////////////////////////////////////////////////////////////////////// 
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   文件還不存在,是否創(chuàng)建?(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("請(qǐng)輸入0%d的學(xué)號(hào):",len); 
   else 
    printf("請(qǐng)輸入%d的學(xué)號(hào):",len); 
   scanf("%s",p1->num); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的姓名:",len); 
   else 
    printf("請(qǐng)輸入%d的姓名:",len); 
   scanf("%s",p1->name); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的性別:",len); 
   else 
    printf("請(qǐng)輸入%d的性別:",len); 
   scanf("%s",p1->sex); 
   ch=getchar(); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的年齡:",len); 
   else 
    printf("請(qǐng)輸入%d的年齡:",len); 
   scanf("%d",&p1->age); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的生日:",len); 
   else 
    printf("請(qǐng)輸入%d的生日:",len); 
   scanf("%s",p1->birth); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的電話:",len); 
   else 
    printf("請(qǐng)輸入%d的電話號(hào):",len); 
   scanf("%ld",&p1->tele); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的地址:",len); 
   else 
    printf("請(qǐng)輸入%d的地址:",len); 
   scanf("%s",p1->addr); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d是否為黨員:",len); 
   else 
    printf("請(qǐng)輸入%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("請(qǐng)輸入0%d的學(xué)號(hào):",len); 
    else 
     printf("請(qǐng)輸入%d的學(xué)號(hào):",len); 
    scanf("%s",p1->num); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的姓名:",len); 
    else 
     printf("請(qǐng)輸入%d的姓名:",len); 
    scanf("%s",p1->name); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的性別:",len); 
    else 
     printf("請(qǐng)輸入%d的性別:",len); 
    scanf("%s",p1->sex); 
    ch=getchar(); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的年齡:",len); 
    else 
     printf("請(qǐng)輸入%d的年齡:",len); 
    scanf("%d",&p1->age); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的生日:",len); 
    else 
     printf("請(qǐng)輸入%d的生日:",len); 
    scanf("%s",p1->birth); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的電話:",len); 
    else 
     printf("請(qǐng)輸入%d的電話號(hào):",len); 
    scanf("%ld",&p1->tele); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的地址:",len); 
    else 
     printf("請(qǐng)輸入%d的地址:",len); 
    scanf("%s",p1->addr); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d是否為黨員:",len); 
    else 
     printf("請(qǐng)輸入%d是否為黨員:",len); 
    scanf("%s",p1->party); 
   } 
   p2->next=NULL; 
   writetxt(head); 
   return (head); 
  } 
 } 
 if(ok=='N'||ok=='n') 
 { 
  printf("請(qǐng)重新選擇/n"); 
  return NULL; 
 } 
 else 
 { 
  printf("/n   文件已經(jīng)存在/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條學(xué)生信息/n",len); 
  printf("/n   是否使用已經(jīng)存在的學(xué)生數(shù)據(jù)?(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("學(xué)號(hào)  姓名  性別  年齡  出生年月  電話號(hào)碼 地址 是否黨員/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("請(qǐng)輸入0%d的學(xué)號(hào):",len); 
   else 
    printf("請(qǐng)輸入%d的學(xué)號(hào):",len); 
   scanf("%s",p1->num); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的姓名:",len); 
   else 
    printf("請(qǐng)輸入%d的姓名:",len); 
   scanf("%s",p1->name); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的性別:",len); 
   else 
    printf("請(qǐng)輸入%d的性別:",len); 
   scanf("%s",p1->sex); 
   ch=getchar(); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的年齡:",len); 
   else 
    printf("請(qǐng)輸入%d的年齡:",len); 
   scanf("%d",&p1->age); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的生日:",len); 
   else 
    printf("請(qǐng)輸入%d的生日:",len); 
   scanf("%s",p1->birth); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的電話:",len); 
   else 
    printf("請(qǐng)輸入%d的電話號(hào):",len); 
   scanf("%ld",&p1->tele); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d的地址:",len); 
   else 
    printf("請(qǐng)輸入%d的地址:",len); 
   scanf("%s",p1->addr); 
   if((len)<10) 
    printf("請(qǐng)輸入0%d是否為黨員:",len); 
   else 
    printf("請(qǐng)輸入%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("請(qǐng)輸入0%d的學(xué)號(hào):",len); 
    else 
     printf("請(qǐng)輸入%d的學(xué)號(hào):",len); 
    scanf("%s",p1->num); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的姓名:",len); 
    else 
     printf("請(qǐng)輸入%d的姓名:",len); 
    scanf("%s",p1->name); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的性別:",len); 
    else 
     printf("請(qǐng)輸入%d的性別:",len); 
    scanf("%s",p1->sex); 
    ch=getchar(); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的年齡:",len); 
    else 
     printf("請(qǐng)輸入%d的年齡:",len); 
    scanf("%d",&p1->age); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的生日:",len); 
    else 
     printf("請(qǐng)輸入%d的生日:",len); 
    scanf("%s",p1->birth); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的電話:",len); 
    else 
     printf("請(qǐng)輸入%d的電話號(hào):",len); 
    scanf("%ld",&p1->tele); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d的地址:",len); 
    else 
     printf("請(qǐng)輸入%d的地址:",len); 
    scanf("%s",p1->addr); 
    if((len)<10) 
     printf("請(qǐng)輸入0%d是否為黨員:",len); 
    else 
     printf("請(qǐng)輸入%d是否為黨員:",len); 
    scanf("%s",p1->party); 
   } 
   p2->next=NULL; 
   writetxt(head); 
  } 
  return (head); 
 } 
} 
//////////////////////////////////////////////////////////////////////////////// 
/*學(xué)生信息的修改*/ 
//////////////////////////////////////////////////////////////////////////////// 
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("請(qǐng)輸入學(xué)號(hào)/n"); 
   scanf("%s",num); 
   p=head; 
   while(p!=NULL&&strcmp(p->num,num)!=0) 
   { 
    p=p->next; 
    if(p==NULL) 
    { 
     printf("該學(xué)生不存在/n"); 
     break; 
    } 
    if(strcmp(p->name,"0")==0) 
    { 
     printf("該學(xué)生已不存在/n"); 
     break; 
    } 
   } 
   m=0; 
   while(1) 
   { 
    if(p==NULL) 
     break; 
    if(strcmp(p->name,"0")==0) 
     break; 
    printf("請(qǐng)選擇1.性別 2.年齡 3.出生日期4.電話 5.家庭住址6.黨員/n"); 
    scanf("%d",&choose); 
    if(choose==1) 
    { 
     printf("請(qǐng)輸入新的性別:/n"); 
     scanf("%s",&sex); 
     p1=sex; 
     strcpy(p->sex,p1); 
     printf("是否繼續(xù)修改本學(xué)生學(xué)生其他信息Y/N/n"); 
     ch=getchar(); 
     scanf("%c",&yes); 
     if(yes=='N'||yes=='n') 
      break; 
    } 
    if(choose==2) 
    { 
     printf("請(qǐng)輸入新的年齡:/n"); 
     scanf("%d",&age); 
     p->age=age; 
     printf("是否繼續(xù)修改本學(xué)生學(xué)生其他信息Y/N/n"); 
     ch=getchar(); 
     scanf("%c",&yes); 
     if(yes=='N'||yes=='n') 
      break; 
    } 
    if(choose==3) 
    { 
     printf("請(qǐng)輸入新的出生日期:/n"); 
     scanf("%s",birth); 
     p1=birth; 
     strcpy(p->birth,p1); 
     printf("是否繼續(xù)修改本學(xué)生學(xué)生其他信息Y/N/n"); 
     ch=getchar(); 
     scanf("%c",&yes); 
     if(yes=='N'||yes=='n') 
      break; 
    } 
    if(choose==4) 
    { 
     printf("請(qǐng)輸入新的電話:/n"); 
     scanf("%d",&tele); 
     p->tele=tele; 
     printf("是否繼續(xù)修改本學(xué)生學(xué)生其他信息Y/N/n"); 
     ch=getchar(); 
     scanf("%c",&yes); 
     if(yes=='N'||yes=='n') 
      break; 
    } 
    if(choose==5) 
    { 
     printf("請(qǐng)輸入新的家庭住址:/n"); 
     scanf("%s",addr); 
     p1=addr; 
     strcpy(p->addr,p1); 
     printf("是否繼續(xù)修改本學(xué)生學(xué)生其他信息Y/N/n"); 
     ch=getchar(); 
     scanf("%c",&yes); 
     if(yes=='N'||yes=='n') 
      break; 
    } 
    if(choose==6) 
    { 
     printf("請(qǐng)輸入'是'或'否':/n"); 
     scanf("%s",party); 
     p1=party; 
     strcpy(p->party,p1); 
     printf("是否繼續(xù)修改本學(xué)生學(xué)生其他信息Y/N/n"); 
     ch=getchar(); 
     scanf("%c",&yes); 
     if(yes=='N'||yes=='n') 
      break; 
    } 
   } 
   printf("是否繼續(xù)修改其他學(xué)生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; 
 } 
} 
///////////////////////////////////////////////////////////////////////////////// 
/*學(xué)生成績(jī)信息的錄入*/ 
///////////////////////////////////////////////////////////////////////////////// 
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("該學(xué)生不存在/n"); 
   p1=p1->next; 
   continue; 
  } 
  printf("請(qǐng)輸入學(xué)號(hào)為%s學(xué)生的高數(shù)、C語(yǔ)言、英語(yǔ)成績(jī):/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("學(xué)號(hào)  姓名  性別  年齡  出生年月  電話號(hào)碼 地址 是否黨員/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); 
} 
///////////////////////////////////////////////////////////////////////////////// 
/*學(xué)生信息的添加*/ 
///////////////////////////////////////////////////////////////////////////////// 
struct student *insert(struct student *head) 
{ 
 char ch,ok; 
 struct student *p,*p0,*p1; 
 p=p1=head; 
 while(1) 
 { 
  if((len+1)<10) 
   printf("您的學(xué)號(hào)為0%d/n",len+1); 
  else 
   printf("您的學(xué)號(hào)為%d/n",len+1); 
  p0=(struct student *)malloc(sizeof(struct student)); 
  len++; 
  if((len)<10) 
   printf("請(qǐng)輸入0%d的學(xué)號(hào):",len); 
  else 
   printf("請(qǐng)輸入%d的學(xué)號(hào):",len); 
  scanf("%s",p0->num); 
  if((len)<10) 
   printf("請(qǐng)輸入0%d的姓名:",len); 
  else 
   printf("請(qǐng)輸入%d的姓名:",len); 
  scanf("%s",p0->name); 
  if((len)<10) 
   printf("請(qǐng)輸入0%d的性別:",len); 
  else 
   printf("請(qǐng)輸入%d的性別:",len); 
  scanf("%s",p0->sex); 
  ch=getchar(); 
  if((len)<10) 
   printf("請(qǐng)輸入0%d的年齡:",len); 
  else 
   printf("請(qǐng)輸入%d的年齡:",len); 
  scanf("%d",&p0->age); 
  if((len)<10) 
   printf("請(qǐng)輸入0%d的生日:",len); 
  else 
   printf("請(qǐng)輸入%d的生日:",len); 
  scanf("%s",p0->birth); 
  if((len)<10) 
   printf("請(qǐng)輸入0%d的電話:",len); 
  else 
   printf("請(qǐng)輸入%d的電話號(hào):",len); 
  scanf("%ld",&p0->tele); 
  if((len)<10) 
   printf("請(qǐng)輸入0%d的地址:",len); 
  else 
   printf("請(qǐng)輸入%d的地址:",len); 
  scanf("%s",p0->addr); 
  if((len)<10) 
   printf("請(qǐng)輸入0%d是否為黨員:",len); 
  else 
   printf("請(qǐng)輸入%d是否為黨員:",len); 
  scanf("%s",p0->party); 
  while(p->next!=NULL) 
   p=p->next; 
  p->next=p0; 
  p0->next=NULL; 
  printf("是否繼續(xù)添加Y/N/n") ; 
  ch=getchar(); 
  scanf("%c",&ok); 
  if(ok=='y'||ok=='Y')len++; 
  else 
  { 
   printf("您需要重新進(jìn)行1的操作來(lái)完成該學(xué)生信息的注冊(cè),謝謝!/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); 
 
} 
///////////////////////////////////////////////////////////////////////////////// 
/* 恢復(fù)誤刪的學(xué)生信息*/ 
///////////////////////////////////////////////////////////////////////////////// 
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("是否將回收站的數(shù)據(jù)還原?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; 
} 
///////////////////////////////////////////////////////////////////////////////// 
/* 學(xué)生信息的刪除*/ 
///////////////////////////////////////////////////////////////////////////////// 
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("是否永久刪除該學(xué)生的信息?Y/N /n"); 
    ch=getchar(); 
    ch=getchar(); 
    if(ch=='y'||ch=='Y') 
    { 
     printf("該學(xué)生信息已經(jīng)成功從磁盤(pán)刪除!/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("學(xué)生信息已放入回收站!/n"); 
     fclose(fp); 
 
 
     printf("如果想恢復(fù)剛剛刪除的學(xué)生信息,請(qǐng)輸入'Y'or'y'/n"); 
     printf("如果不想恢復(fù)剛剛刪除的學(xué)生信息,請(qǐng)輸入'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; 
} 
///////////////////////////////////////////////////////////////////////////// 
/*  密碼修改保存函數(shù)*/ 
//////////////////////////////////////////////////////////////////////////// 
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); 
 
} 
 
//////////////////////////////////////////////////////////////////////////////// 
/*學(xué)生信息的查詢*/ 
//////////////////////////////////////////////////////////////////////////////// 
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("該學(xué)生不存在!/n"); 
    p1=p1->next; 
   } 
   printf("是否繼續(xù)查詢學(xué)生其他信息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("該學(xué)生不存在!/n"); 
     p1=p1->next; 
    } 
    printf("是否繼續(xù)查詢學(xué)生其他信息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("該學(xué)生不存在!/n"); 
     p1=p1->next; 
    } 
    printf("是否繼續(xù)查詢學(xué)生其他信息?Y/N/n"); 
    scanf("%c",&yes); 
    if(yes=='N'||yes=='n') 
     break; 
    if(yes=='Y'||yes=='y') 
     k=0; 
   } 
  } 
 } 
 if(i==2) 
 {  
  printf("請(qǐng)選擇細(xì)查的關(guān)鍵字:1.學(xué)生學(xué)號(hào) 2.學(xué)生姓名:"); 
  scanf("%d",&j); 
  if(j==1) 
  { 
   while(1) 
   { 
    p1=head; 
    printf("輸入學(xué)生的學(xué)號(hào):"); 
    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("該學(xué)生不存在!/n"); 
     p1=p1->next; 
    } 
    printf("是否繼續(xù)查詢其他學(xué)生信息?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("輸入學(xué)生的名字:"); 
    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("該學(xué)生不存在!/n"); 
     p1=p1->next; 
    } 
    printf("是否繼續(xù)查詢其他學(xué)生信息?Y/N/n"); 
    ch=getchar(); 
    scanf("%c",&yes); 
    if(yes=='N'||yes=='n') 
     break; 
    if(yes=='Y'||yes=='y') 
     k=0; 
   } 
  } 
 } 
} 
 
//////////////////////////////////////////////////////////////////////////// 
///////////////////////////////////////////////////////////////////////////// 
void research1(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); 
} 
 
///////////////////////////////////////////////////////////////////////////// 
/*  密碼修改函數(shù)-*/ 
//////////////////////////////////////////////////////////////////////////// 
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("該學(xué)生不存在/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("http:///////////////////////////////////////////////n"); 
    printf("%s ",use[0].user); 
    printf("%s/n",use[0].code); 
    printf("http:///////////////////////////////////////////////n");} 
   break; 
  } 
  if(strcmp(use1,use[1].user)<0||strcmp(use1,use[len].user)>0) 
  { 
   printf("**************************************/n"); 
   printf("   4用戶名錯(cuò)誤   /n"); 
   printf("***************************************/n"); 
 
   break; 
  } 
  if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) 
  { 
   printf("**************************************/n"); 
   printf("   密碼錯(cuò)誤   /n"); 
   printf("***************************************/n"); 
 
   break; 
  } 
 } 
} 
///////////////////////////////////////////////////////////////////////////// 
/*  學(xué)生信息管理系統(tǒng)的菜單函數(shù)-系統(tǒng)函數(shù)*/ 
//////////////////////////////////////////////////////////////////////////// 
int menu() 
{ 
 int sn,i,j=0; 
 char use1[30]; 
 char mima[30]; 
 int m=0; 
 printf("   學(xué)生信息管理系統(tǒng)/n"); 
 printf("=========================================/n"); 
 printf("  1.學(xué)生信息的整體注冊(cè)/n"); 
 printf("  2.學(xué)生信息的修改/n"); 
 printf("  3.學(xué)生信息的添加/n"); 
 printf("  4.學(xué)生信息的刪除/n"); 
 printf("  5.學(xué)生成績(jī)信息的錄入/n"); 
 printf("  6.學(xué)生信息的查詢/n"); 
 printf("  7.訪問(wèn)者密碼的修改/n"); 
 printf("  8.恢復(fù)誤刪學(xué)生信息/n"); 
 printf("  0.退出學(xué)生信息管理系統(tǒng)/n"); 
 printf("==========================================/n"); 
 printf("請(qǐng)選擇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("請(qǐng)輸入您的用戶名:"); 
    scanf("%s",use1); 
    printf("請(qǐng)輸入您的密碼:"); 
    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"); 
        research1(use1); 
        break; 
       } 
       } 
       if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) 
      { 
       printf("**************************************/n"); 
       printf("   密碼錯(cuò)誤   /n"); 
       printf("***************************************/n"); 
       while(1) 
       { 
        m++; 
        if(m<3) 
        { 
         printf("重新輸入:/n"); 
         printf("請(qǐng)輸入您的用戶名:"); 
         scanf("%s",use1); 
         printf("請(qǐng)輸入您的密碼:"); 
         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("   密碼錯(cuò)誤   /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用戶名錯(cuò)誤   /n"); 
        printf("***************************************/n"); 
        sn=0; 
        break; 
     } 
       if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) 
      { 
       printf("**************************************/n"); 
       printf("   密碼錯(cuò)誤   /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("   您沒(méi)有權(quán)限來(lái)操作   /n"); 
           printf("***************************************/n"); 
           sn=0; 
           break;            
          } 
         printf("重新輸入:/n"); 
         printf("請(qǐng)輸入您的用戶名:"); 
         scanf("%s",use1); 
         printf("請(qǐng)輸入您的密碼:"); 
         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("   密碼錯(cuò)誤   /n"); 
          printf("***************************************/n"); 
 
         } 
         else 
         { 
          printf("**************************************/n"); 
          printf("   歡迎您登陸本系統(tǒng)   /n"); 
          printf("***************************************/n"); 
          research1(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("   您沒(méi)有權(quán)限來(lái)操作   /n"); 
         printf("***************************************/n"); 
        sn=0; 
        break; 
        } 
        else 
        { 
         printf("**************************************/n"); 
         printf("   歡迎您登陸本系統(tǒng)   /n"); 
         printf("***************************************/n"); 
         break; 
        }   
       } 
       if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) 
      { 
       printf("**************************************/n"); 
       printf("   密碼錯(cuò)誤   /n"); 
       printf("***************************************/n"); 
 
       while(1) 
       { 
        m++; 
        if(m<3) 
        { 
         printf("重新輸入:/n"); 
         printf("請(qǐng)輸入您的用戶名:"); 
         scanf("%s",use1); 
         printf("請(qǐng)輸入您的密碼:"); 
         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("   密碼錯(cuò)誤   /n"); 
          printf("***************************************/n");  
         } 
          else 
          { 
           printf("**************************************/n"); 
           printf("   歡迎您登陸本系統(tǒng)   /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("   用戶名錯(cuò)誤   /n"); 
        printf("***************************************/n"); 
        sn=0; 
        break; 
     } 
       if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) 
      { 
       printf("**************************************/n"); 
       printf("   密碼錯(cuò)誤   /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("   您沒(méi)有權(quán)限來(lái)操作   /n"); 
           printf("***************************************/n"); 
           sn=0; 
           break; 
 
          } 
         printf("重新輸入:/n"); 
         printf("請(qǐng)輸入您的用戶名:"); 
         scanf("%s",use1); 
         printf("請(qǐng)輸入您的密碼:"); 
         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("   密碼錯(cuò)誤   /n"); 
          printf("***************************************/n"); 
 
         } 
        } 
        else 
        { 
         sn=0; 
         break; 
        } 
       } 
 
       } 
     } 
   } 
   if (sn<0 || sn>8) 
   { 
    printf("/n/t輸入錯(cuò)誤,重選0-8/n"); 
    break; 
   } 
   else 
    break; 
 } 
 return sn; 
} 
 
///////////////////////////////////////////////////////////////////////////////// 
/* 學(xué)生信息管理系統(tǒng)的主函數(shù)--系統(tǒng)函數(shù)*/ 
///////////////////////////////////////////////////////////////////////////////// 
void main() 
{ 
 struct student *head; 
 int i,j=0; 
 while(1) 
 { 
  switch(menu()) 
  { 
  case 1: 
   printf("**************************************/n"); 
   printf("   學(xué)生信息的整體注冊(cè)   /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("學(xué)生信息的修改/n"); 
   printf("**************************************/n"); 
   change(head); 
   break; 
  case 3: 
   printf("**************************************/n"); 
   printf("學(xué)生信息的添加/n"); 
   printf("**************************************/n"); 
   head=insert(head); 
   break; 
  case 4: 
   printf("**************************************/n"); 
   printf("學(xué)生成績(jī)信息的刪除入/n"); 
   printf("**************************************/n"); 
   head=del(head); 
   break; 
  case 5: 
   printf("**************************************/n"); 
   printf("學(xué)生成績(jī)信息的錄入/n"); 
   printf("**************************************/n"); 
   head=chengji(head);  
   break; 
  case 6: 
   printf("**************************************/n"); 
   printf("學(xué)生信息的查詢/n"); 
   printf("**************************************/n"); 
   research(head); 
   break; 
  case 7: 
   printf("**************************************/n"); 
   printf("訪問(wèn)者密碼的修改/n"); 
   printf("**************************************/n"); 
   mimacli(); 
   break; 
  case 8: 
   printf("**************************************/n"); 
   printf("恢復(fù)誤刪信息/n"); 
   printf("**************************************/n"); 
   recover(head); 
   break; 
  case 0: 
   printf("**************************************/n"); 
   printf("退出學(xué)生信息管理系統(tǒng)/n"); 
   printf("**************************************/n"); 
   printf("The end./n"); 
   return; 
  default: printf("/n選擇錯(cuò)誤,請(qǐng)重選!/n"); 
   getchar(); 
   getchar(); 
  } 
  system("cls"); 
 } 
} 

更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開(kāi)發(fā)》。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:C語(yǔ)言鏈表實(shí)現(xiàn)圖書(shū)管理系統(tǒng)

欄    目:C語(yǔ)言

下一篇:C語(yǔ)言實(shí)現(xiàn)歌曲信息管理系統(tǒng)

本文標(biāo)題:學(xué)生信息管理系統(tǒng)C語(yǔ)言版

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/955.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有