您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么用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語言實現學生信息管理系統”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。