C語言實現(xiàn)宿舍管理課程設計
更新時間:2022年03月25日 09:35:04 作者:N?J?H
這篇文章主要為大家詳細介紹了C語言實現(xiàn)宿舍管理課程設計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言實現(xiàn)宿舍管理的具體代碼,供大家參考,具體內容如下
和本編前幾個程序結構差不多,比較簡單直觀,希望可以給你帶來幫助。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include<Windows.h> typedef struct student { ?? ?int might1; ?? ?int might2; ?? ?char user[20];//賬號 ?? ?char mima[20];//密碼 ?? ?char name[20];//姓名 ? ? ?? ?char sex[5];//性別 ? ? ?? ?char num[20];//學號?? ? ? ?? ?char classs[20];//班級?? ? ?? ?char floor[20];//樓號 ?? ?? ?char dorm[20];//宿舍號?? ? ?? ?struct student *next; }LinkList; void menu3(struct student *p,char us[20]); void menu1(struct student *p); void menu2(struct student *p); void menu33(struct student *p); void menu22(struct student *p); void savestudentFile(struct student *L); void Look(struct student *p) { ?? ?struct student *q=p->next; ?? ?char us[20]; ?? ?int flag = 0,i; ?? ?system("cls"); ?? ?printf("\t請輸入你要打印的學生的賬號:\n"); ?? ?scanf("%s",us); ?? ?while (q!= NULL) ?? ?{ ?? ??? ?if(strcmp(q->user,us)==0) ?? ??? ?{ ?? ??? ??? ?printf("賬號:%s,密碼:%s,姓名:%s,樓號:%s,宿舍號:%s\n",q->user,q->mima,q->name,q->floor,q->dorm); ?? ??? ??? ?flag=1; ?? ??? ?} ?? ??? ?q = q->next; ?? ?} ?? ?if (flag == 0) ?? ?{ ?? ??? ?printf("\t無該學生信息\n"); ?? ?} ?? ?printf("按回車返回菜單!\n"); ?? ?getchar(); ?? ?getchar(); ?? ?menu2(p); } void ADD(struct student *p) { ?? ?struct student *q, *n = p; ?? ?struct student *h = p->next; ?? ?int flag = 0; ?? ?system("cls"); ?? ?q = (struct student *)malloc(sizeof(struct student)); ?? ?q->next = NULL; ?? ?q->might1=0; ?? ?q->might2=2; ?? ?printf("請輸入選擇添加的學生:\n"); ?? ?printf("賬號 :"); ?? ?scanf("%s",q->user); ?? ?printf("密碼 :"); ?? ?scanf("%s",q->mima); ?? ?printf("姓名 :"); ?? ?scanf("%s", q->name); ?? ?printf("性別 :"); ?? ?scanf("%s",q->sex); ?? ?printf("班級 :"); ?? ?scanf("%s",q->classs); ?? ?printf("學號 :"); ?? ?scanf("%s",q->num); ?? ?printf("樓號 :"); ?? ?scanf("%s",q->floor); ?? ?printf("宿舍號 :"); ?? ?scanf("%s",q->dorm); ?? ?getchar();? ?? ?while (h != NULL) ?? ?{ ?? ??? ?if (strcmp(h->user,q->user)==0) ?? ??? ?{ ?? ??? ??? ?flag = 1; ?? ??? ??? ?printf("\t該學號已存在\n"); ?? ??? ??? ?Sleep(1000); ?? ??? ??? ?ADD(p); ?? ??? ??? ?break; ?? ??? ?} ?? ??? ?h = h->next; ?? ?} ?? ?while (n->next != NULL) ?? ?{ ?? ??? ?n = n->next; ?? ?} ?? ?n->next=q; ?? ?if (flag == 0) ?? ?{ ?? ??? ?printf("\t添加成功\n"); ?? ??? ?printf("\t按任意鍵返回菜單\n"); ?? ?} ?? ?else ?? ??? ?printf("\t添加失敗\n"); ?? ?printf("按回車返回菜單!\n"); ?? ?getchar(); ?? ?menu2(p); } void Dele(struct student *p) { ?? ?struct student *q = p->next; ?? ?struct student *n = p; ?? ?char us[20]; ?? ?int flag = 0; ?? ?system("cls"); ?? ?printf("\t請輸入你要刪除的學生學號\n"); ?? ?scanf("%s", us); ?? ?while (q != NULL) ?? ?{ ?? ??? ?if (strcmp(q->user,us)==0) ?? ??? ?{ ?? ??? ??? ?flag = 1; ?? ??? ??? ?n->next = q->next; ?? ??? ??? ?break; ?? ??? ?} ?? ??? ?n = q; ?? ??? ?q = q->next; ?? ?} ?? ?if (flag != 1) ?? ?{ ?? ??? ?printf("\t無該學生信息\n"); ?? ?} ?? ?else ?? ?{ ?? ??? ?printf("\t刪除成功\n"); ?? ?} ?? ?printf("按回車返回菜單!\n"); ?? ?getchar(); ?? ?getchar(); ?? ?menu2(p); } void Quan(struct student *p) { ?? ?int i,m,j; ?? ?char us[20],mi[20],na[20],se[5],nu[20],cla[20],flo[20],dar[20]; ?? ?struct student *q=p->next->next; ?? ?printf("請輸入要修改的學生賬戶:"); ?? ?scanf("%s",us); ?? ?while(q!=NULL) ?? ?{ ?? ??? ?if(strcmp(q->user,us)==0) ?? ??? ?{ ?? ??? ??? ?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("9.凍結賬戶\n"); ?? ??? ??? ?printf("10.解凍賬號\n"); ?? ??? ??? ?printf("11.返回上一層\n"); ?? ??? ??? ?scanf("%d",&i); ?? ??? ??? ?switch(i) ?? ??? ??? ?{ ?? ??? ??? ?case 1:printf("新修改的姓名\n");scanf("%s",na);j=1;strcpy(q->name,na);break; ?? ??? ??? ?case 2:printf("新修改的性別\n");scanf("%s",se);j=1;strcpy(q->sex,se);break; ?? ??? ??? ?case 3:printf("新修改的學號\n");scanf("%s",nu);j=1;strcpy(q->num,nu);break; ?? ??? ??? ?case 4:printf("新修改的班級\n");scanf("%s",cla);j=1;strcpy(q->classs,cla);break; ?? ??? ??? ?case 5:printf("新修改的樓號\n");scanf("%s",flo);j=1;strcpy(q->floor,flo);break; ?? ??? ??? ?case 6:printf("新修改的宿舍號\n");scanf("%s",dar);j=1;strcpy(q->dorm,dar);break; ?? ??? ??? ?case 7:printf("新修改的賬號\n");scanf("%s",us);j=1;strcpy(q->user,us);break; ?? ??? ??? ?case 8:printf("新修改的密碼\n");scanf("%s",mi);j=1;strcpy(q->mima,mi);break; ?? ??? ??? ?case 9:j=1;q->might2=3;break; ?? ??? ??? ?case 10:j=1;q->might2=2;break; ?? ??? ??? ?case 11:menu2(p);break; ?? ??? ??? ?default:printf("請輸入合法量!\n");break; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?q=q->next; ?? ?} ?? ?if(j==1) ?? ?{ ?? ??? ?printf("修改成功!\n"); ?? ?} ?? ?if(j==0) ?? ?{ ?? ??? ?printf("修改失??!\n"); ?? ?} ?? ?printf("按回車返回菜單!\n"); ?? ?getchar(); ?? ?getchar(); ?? ?menu2(p); } void Browse(struct student *p,char us[20]) { ?? ?struct student *q = p->next; ?? ?int flag = 0; ?? ?system("cls"); ?? ?{ ?? ??? ?while (q != NULL) ?? ??? ?{ ?? ??? ??? ?if (strcmp(q->user,us)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?flag = 1; ?? ??? ??? ??? ?printf("\t該學生信息 ?姓名:%s ? 學號:%d ? 性別:%s ? 班級:%s ? 樓號:%s ? 寢室號:%s\n", q->name, q->num, q->sex, q->classs, q->floor,q->dorm); ?? ??? ??? ?} ?? ??? ??? ?q = q->next; ?? ??? ?} ?? ??? ?if (flag == 0) ?? ??? ?{ ?? ??? ??? ?printf("\t你無此權限\n"); ?? ??? ?} ?? ??? ?printf("按回車返回菜單!\n"); ?? ??? ?getchar(); ?? ??? ?getchar(); ?? ??? ?menu3(p,us); ?? ?} } void modify(struct student *p,char us[20]) { ?? ?struct student *q=p->next; ?? ?char mi[20],na[20],se[5],nu[20],cla[20],flo[20],dar[20]; ?? ?int j,i; ?? ?system("cls"); ?? ?printf("\n\n\n**********修改學生住宿信息**********\n"); ?? ?while(q!=NULL) ?? ?{ ?? ??? ?if(strcmp(q->user,us)==0) ?? ??? ?{ ?? ??? ??? ?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("9.返回上一層\n"); ?? ??? ??? ?scanf("%d",&i); ?? ??? ??? ?switch(i) ?? ??? ??? ?{ ?? ??? ??? ?case 1:printf("新修改的姓名\n");scanf("%s",na);j=1;strcpy(q->name,na);break; ?? ??? ??? ?case 2:printf("新修改的性別\n");scanf("%s",se);j=1;strcpy(q->sex,se);break; ?? ??? ??? ?case 3:printf("新修改的學號\n");scanf("%s",nu);j=1;strcpy(q->num,nu);break; ?? ??? ??? ?case 4:printf("新修改的班級\n");scanf("%s",cla);j=1;strcpy(q->classs,cla);break; ?? ??? ??? ?case 5:printf("新修改的樓號\n");scanf("%s",flo);j=1;strcpy(q->floor,flo);break; ?? ??? ??? ?case 6:printf("新修改的宿舍號\n");scanf("%s",dar);j=1;strcpy(q->dorm,dar);break; ?? ??? ??? ?case 7:printf("新修改的賬號\n");scanf("%s",us);j=1;strcpy(q->user,us);break; ?? ??? ??? ?case 8:printf("新修改的密碼\n");scanf("%s",mi);j=1;strcpy(q->mima,mi);break; ?? ??? ??? ?case 9:menu2(p);break; ?? ??? ??? ?default:printf("請輸入合法量!\n");break; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?q=q->next; ?? ?} ?? ?if(j==1) ?? ?{ ?? ??? ?printf("修改成功!\n"); ?? ?} ?? ?if(j==0) ?? ?{ ?? ??? ?printf("修改失??!\n"); ?? ?} ?? ?printf("按回車返回菜單!\n"); ?? ?getchar(); ?? ?getchar(); ?? ?menu3(p,us); } void inquire(struct student *p,char us[20]) { ?? ?struct student *q = p->next; ?? ?char nu[20]; ?? ?char name[20]; ?? ?char flo[20]; ?? ?char dor[20]; ?? ?int k; ?? ?int flag=0; ?? ?system("cls"); ?? ?printf("\n\n\t\t\t1.按學號查詢\n"); ?? ?printf("\t\t\t2.按姓名查詢\n"); ?? ?printf("\t\t\t3.按樓號統(tǒng)計\n"); ?? ?printf("\t\t\t4.按樓號+寢室號查詢\n"); ?? ?printf("\t\t\t0.結束查詢返回上一層\n"); ?? ?printf("請選擇:"); ?? ?scanf("%d",&k); ?? ?switch(k) ?? ?{ ?? ?case 1: ?? ??? ?printf("\n\n\n**********按學號查詢**********\n"); ?? ??? ?printf("\n 請輸入要查詢的學號:"); ?? ??? ?scanf("%s",nu); ?? ??? ?while (q != NULL) ?? ??? ?{ ?? ??? ??? ?if (strcmp(q->num,nu)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ?printf("\t該學生信息\n姓名:%s \n學號:%d \n性別:%s \n班級:%s \n樓號:%s \n寢室號:%s\n", ?q->name, q->num, q->sex, q->classs, q->floor, q->dorm); ?? ??? ??? ?} ?? ??? ??? ?q = q->next; ?? ??? ?} ?? ??? ??? ?break; ?? ?case 2: ?? ??? ?printf("\n\n\n**********按姓名查詢**********\n"); ?? ??? ?printf("\n 請輸入要查詢的姓名:"); ?? ??? ?scanf("%s",name);?? ??? ? ?? ??? ?while (q!=NULL) ?? ??? ?{ ?? ??? ??? ?if (strcmp(name,q->name)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ?printf("\t該學生信息\n姓名:%s \n學號:%d \n性別:%s \n班級:%s \n樓號:%s \n寢室號:%s\n", ?q->name, q->num, q->sex, q->classs, q->floor, q->dorm); ?? ??? ??? ?} ?? ??? ??? ?q = q->next; ?? ??? ?} ?? ??? ??? ?break; ?? ?case 3: ?? ??? ?printf("\n\n\n**********按樓號查詢**********\n"); ?? ??? ?printf("\n 請輸入要查詢的樓號:"); ?? ??? ?scanf("%s",flo); ?? ??? ?getchar(); ?? ??? ?while (q != NULL) ?? ??? ?{ ?? ??? ??? ?if (strcmp(flo,q->floor)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ?printf("\t該學生信息\n姓名:%s \n學號:%d \n性別:%s \n班級:%s \n樓號:%s \n寢室號:%s\n", ?q->name, q->num, q->sex, q->classs, q->floor, q->dorm); ?? ??? ??? ?} ?? ??? ??? ?q = q->next; ?? ??? ?} ?? ??? ??? ?break; ?? ?case 4: ?? ??? ?printf("\n\n\n**********按樓號+寢室號查詢**********\n"); ?? ??? ?printf("\n 請輸入要查詢的樓號+寢室號:"); ?? ??? ?scanf("%s %s",flo,dor); ?? ??? ?while (q != NULL) ?? ??? ?{ ?? ??? ??? ?if ((strcmp(flo,q->floor)==0)&&(strcmp(dor,q->dorm)==0)) ?? ??? ??? ?{ ?? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ?printf("\t該學生信息\n姓名:%s \n學號:%d \n性別:%s \n班級:%s \n樓號:%s \n寢室號:%s\n", ?q->name, q->num, q->sex, q->classs, q->floor, q->dorm); ?? ??? ??? ?} ?? ??? ??? ?q = q->next; ?? ??? ?} ?? ??? ??? ?break; ?? ?case 0:menu3(p,us);break; ?? ?} ?? ?if(flag==0) ?? ?{ ?? ??? ?printf("無此信息!"); ?? ??? ?Sleep(1500); ?? ??? ?menu3(p,us); ?? ?} ?? ?if(flag==1) ?? ?{ ?? ??? ?printf("查詢成功!\n"); ?? ??? ?printf("按回車返回菜單!\n"); ?? ??? ?getchar(); ?? ??? ?menu3(p,us); ?? ?} } void statistics(struct student *p,char us[20]) { ?? ?struct student *q = p->next; ?? ?char cla[20]; ?? ?char name[20]; ?? ?char flo[20]; ?? ?char dor[20]; ?? ?int flag=0,k; ?? ?system("cls"); ?? ?printf("\n\n\t\t\t1.按班級統(tǒng)計\n"); ?? ?printf("\t\t\t2.按樓號統(tǒng)計\n"); ?? ?printf("\t\t\t3.按樓號+寢室號統(tǒng)計\n"); ?? ?printf("\t\t\t0.結束查詢返回上一層\n"); ?? ?printf("請選擇:"); ?? ?scanf("%d",&k); ?? ?switch(k) ?? ?{ ?? ?case 1: ?? ??? ?printf("\n\n\n**********按班級查詢**********\n"); ?? ??? ?printf("\n 請輸入要查詢的班級:"); ?? ??? ?scanf("%s",cla); ?? ??? ?while (q != NULL) ?? ??? ?{ ?? ??? ??? ?if (strcmp(q->classs,cla)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ?printf("\t該學生信息\n姓名:%s \n學號:%d \n性別:%s \n班級:%s \n樓號:%s \n寢室號:%s\n", ?q->name, q->num, q->sex, q->classs, q->floor, q->dorm); ?? ??? ??? ?} ?? ??? ??? ?q = q->next; ?? ??? ?} ?? ??? ??? ?break; ?? ?case 2: ?? ??? ?printf("\n\n\n**********按樓號查詢**********\n"); ?? ??? ?printf("\n 請輸入要查詢的樓號:"); ?? ??? ?scanf("%s",flo); ?? ??? ?while (q != NULL) ?? ??? ?{ ?? ??? ??? ?if (strcmp(flo,q->floor)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ?printf("\t該學生信息\n姓名:%s \n學號:%d \n性別:%s \n班級:%s \n樓號:%s \n寢室號:%s\n", ?q->name, q->num, q->sex, q->classs, q->floor, q->dorm); ?? ??? ??? ?} ?? ??? ??? ?q = q->next; ?? ??? ?} ?? ??? ??? ?break; ?? ?case 3: ?? ??? ?printf("\n\n\n**********按樓號+寢室號查詢**********\n"); ?? ??? ?printf("\n 請輸入要查詢的樓號+寢室號:"); ?? ??? ?scanf("%s%s",flo,dor); ?? ??? ?while (q != NULL) ?? ??? ?{ ?? ??? ??? ?if ((strcmp(flo,q->floor)==0)&&(strcmp(dor,q->dorm)==0)) ?? ??? ??? ?{ ?? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ?printf("\t該學生信息\n姓名:%s \n學號:%d \n性別:%s \n班級:%s \n樓號:%s \n寢室號:%s\n", ?q->name, q->num, q->sex, q->classs, q->floor, q->dorm); ?? ??? ??? ?} ?? ??? ??? ?q = q->next; ?? ??? ?} ?? ??? ??? ?break; ?? ?case 0:menu3(p,us);break; ?? ?} ?? ?if(flag==0) ?? ?{ ?? ??? ?printf("無此信息!\n"); ?? ??? ?Sleep(1500); ?? ??? ?menu3(p,us); ?? ?} ?? ?if(flag==1) ?? ?{ ?? ??? ?printf("查詢成功!"); ?? ??? ?printf("按回車返回菜單!\n"); ?? ??? ?getchar(); ?? ??? ?menu3(p,us); ?? ?} } void amend(LinkList *p) { ?? ?struct student *q=p->next; ?? ?char acc[20],poss[20],ac[20]; ?? ?int flag=0,i; ?? ?system("cls"); ?? ?printf("請輸入要修改的賬號:"); ?? ?scanf("%s",acc); ?? ?while(q!=NULL) ?? ?{ ?? ??? ?if(strcmp(q->user,acc)==0) ?? ??? ?{ ?? ??? ??? ?flag=1; ?? ??? ??? ?printf("1.僅修改密碼\n2.密碼賬戶均修改\n"); ?? ??? ??? ?scanf("%d",&i); ?? ??? ??? ?if(i==1) ?? ??? ??? ?{ ?? ??? ??? ??? ?printf("請輸入新密碼:"); ?? ??? ??? ??? ?scanf("%s",poss); ?? ??? ??? ??? ?strcpy(q->mima,poss);break; ?? ??? ??? ?} ?? ??? ??? ?if(i==2) ?? ??? ??? ?{ ?? ??? ??? ??? ?printf("請輸入新賬號:"); ?? ??? ??? ??? ?scanf("%s",ac); ?? ??? ??? ??? ?getchar(); ?? ??? ??? ??? ?printf("請輸入新密碼:"); ?? ??? ??? ??? ?scanf("%s",poss); ?? ??? ??? ??? ?strcpy(q->user,ac); ?? ??? ??? ??? ?strcpy(q->mima,poss);break; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?q=q->next; ?? ?} ?? ?if(flag==0) ?? ?{ ?? ??? ?printf("賬戶錯誤!\n"); ?? ??? ?printf("\t請按回車鍵返回菜單\n"); ?? ?} ?? ?if(flag==1) ?? ?{ ?? ??? ?printf("修改成功!\n"); ?? ??? ?printf("\t請按回車鍵返回菜單\n"); ?? ?} ?? ?getchar(); ?? ?getchar(); ?? ?menu2(p); } void menu33(struct student *p) { ?? ?int i=0; ?? ?struct student *h=p->next->next; ?? ?struct student *t; ?? ?char a[20],b[20]; ?? ?system("cls"); ?? ?printf("請輸入賬戶:"); ?? ?scanf("%s",a); ?? ?getchar(); ?? ?printf("請輸入密碼:"); ?? ?scanf("%s",b); ?? ?getchar(); ?? ?while(h!=NULL) ?? ?{ ?? ??? ?if((strcmp(h->user,a)==0)&&(strcmp(h->mima,b)==0)) ?? ??? ?{ ?? ??? ??? ?t=h; ?? ??? ??? ?if(h->might2==2) ?? ??? ??? ?{ ?? ??? ??? ??? ?i=1; ?? ??? ??? ??? ?menu3(p,a);break; ?? ??? ??? ??? ? ?? ??? ??? ?} ?? ??? ?} ?? ??? ?h=h->next; ?? ?} ?? ?if(t->might2==3) ?? ?{ ?? ??? ?printf("該賬號已被凍結"); ?? ??? ?Sleep(2000); ?? ??? ?menu1(p); ?? ?} ?? ?if(i==0) ?? ?{ ?? ??? ?printf("密碼或賬號錯誤!\n"); ?? ??? ?Sleep(2000); ?? ??? ?menu1(p); ?? ?} } void menu3(struct student *p,char us[20]) { ?? ?int i; ?? ?system("cls"); ?? ?while(1) ?? ?{ ?? ??? ?printf("?? ??? ?*****************************************\n"); ?? ??? ?printf("?? ??? ?***** ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *****\n"); ?? ??? ?printf("?? ??? ?***** ? ? 歡迎使用宿舍管理系統(tǒng) ? ? ?*****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 1.個人信息瀏覽 ? ? ? ? ?****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 2.個人信息修改 ? ? ? ? ?****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 3.宿舍信息查詢 ? ? ? ? ?****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 4.宿舍信息統(tǒng)計 ? ? ? ? ?****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 5.返回上一層 ? ? ? ? ? ?****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 6.退出 ? ? ? ? ? ? ? ? ?****\n"); ?? ??? ?printf("?? ??? ?*****************************************\n"); ?? ??? ?scanf("%d",&i); ?? ??? ?switch(i) ?? ??? ?{ ?? ??? ?case 1:Browse(p,us);break;//個人信息瀏覽 ?? ??? ?case 2:modify(p,us);break;//個人信息修改 ?? ??? ?case 3:inquire(p,us);break;//宿舍信息查詢 ?? ??? ?case 4: statistics(p,us);break;//宿舍信息統(tǒng)計? ?? ??? ?case 5:menu1(p);break; ?? ??? ?case 6:savestudentFile(p);exit(0); ?? ??? ?default:printf("\t輸入不合法量\n"); ?? ??? ?} ?? ?} } void menu22(struct student *p) { ?? ?struct student *h=p->next; ?? ?char a[20],b[20]; ?? ?int i=0; ?? ?system("cls"); ?? ?printf("請輸入賬戶:"); ?? ?scanf("%s",a); ?? ?getchar(); ?? ?printf("請輸入密碼:"); ?? ?scanf("%s",b); ?? ?getchar(); ?? ?while(h!=NULL) ?? ?{ ?? ??? ?if((strcmp(h->user,a)==0)&&(strcmp(h->mima,b)==0)) ?? ??? ?{ ?? ??? ??? ?i=1; ?? ??? ??? ?menu2(p);break; ?? ??? ?} ?? ??? ?h=h->next; ?? ?} ?? ?if(i==0) ?? ?{ ?? ??? ?printf("密碼或賬號錯誤!\n"); ?? ??? ?Sleep(2000); ?? ??? ?menu1(p); ?? ?} } void menu2(struct student *p) { ?? ?int c; ?? ?system("cls"); ?? ?while(1) ?? ?{ ?? ??? ?printf("?? ??? ?****************************************\n"); ?? ??? ?printf("?? ??? ?***** ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*****\n"); ?? ??? ?printf("?? ??? ?***** ? ? 歡迎使用宿舍管理系統(tǒng) ? ? *****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 1.用戶資料打印 ? ? ? ? ****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 2.添加用戶 ? ? ? ? ? ? ****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 3.刪除用戶 ? ? ? ? ? ? ****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 4.修改用戶信息(權限 )****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 5.返回上一層 ? ? ? ? ? ****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 6.修改密碼 ? ? ? ? ? ? ****\n"); ?? ??? ?printf("?? ??? ?**** ? ? ? ? 7.退出 ? ? ? ? ? ? ? ? ****\n"); ?? ??? ?printf("?? ??? ?****************************************\n");? ?? ??? ?scanf("%d",&c); ?? ??? ?switch(c) ?? ??? ?{ ?? ??? ?case 1:Look(p);break;//用戶資料打印 ?? ??? ?case 2:ADD(p);break;//添加用戶 ?? ??? ?case 3:Dele(p);break;//刪除用戶 ?? ??? ?case 4:Quan(p);break;//修改用戶權限? ?? ??? ?case 5:menu1(p);break; ?? ??? ?case 6:amend(p);break; ?? ??? ?case 7:savestudentFile(p);exit(0); ?? ??? ?default:printf("請輸入合法量!\n"); ?? ??? ?} ?? ?} } void menu1(struct student *p) { ?? ?int a; ?? ?system("cls"); ?? ?while(1) ?? ?{ ?? ??? ?printf("?? ??? ?*****************************************\n"); ?? ??? ?printf("?? ??? ?***** ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *****\n"); ?? ??? ?printf("?? ??? ?***** ? ? 歡迎使用宿舍管理系統(tǒng) ? ? ?*****\n"); ?? ??? ?printf("?? ??? ?***** ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *****\n"); ?? ??? ?printf("?? ??? ?***** ? ? ? ? ?1.管理員登陸 ? ? ? ? *****\n"); ?? ??? ?printf("?? ??? ?***** ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *****\n"); ?? ??? ?printf("?? ??? ?***** ? ? ? ? ?2.用戶登陸 ? ? ? ? ? *****\n"); ?? ??? ?printf("?? ??? ?***** ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *****\n"); ?? ??? ?printf("?? ??? ?***** ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *****\n"); ?? ??? ?printf("?? ??? ?*****************************************\n"); ?? ??? ?scanf("%d",&a); ?? ??? ?switch(a) ?? ??? ?{ ?? ??? ?case 1:menu22(p);break; ?? ??? ?case 2:menu33(p);break; ?? ??? ?case 3:exit(0);break; ?? ??? ?default:printf("請輸入合法量!\n"); ?? ??? ?} ?? ?} } void savestudentFile(struct student *L) { ?? ?FILE *fp; ?? ?struct student *p; ?? ?p=L->next; ?? ?fp=fopen("dorm.txt","w"); ?? ?if(fp==NULL) ?? ?{ ?? ??? ?printf("無法打開此文件\n"); ?? ??? ?exit(0); ?? ?} ?? ?while(p) ?? ?{ ?? ??? ?fprintf(fp,"%d %d %s %s %s %s %s %s %s %s \n",p->might1,p->might2,p->user,p->mima,p->name,p->sex,p->num,p->classs,p->floor,p->dorm); ?? ??? ?p=p->next; ?? ?} ?? ?fclose(fp); } void ListInsert(struct student *L,struct student *n) { ?? ?struct student *q=L; ?? ?n->next=NULL; ?? ?while(q->next!=NULL) ?? ?{ ?? ??? ?q=q->next; ?? ?} ?? ?q->next=n; } void readstudentput(struct student *L) { ?? ?FILE *fp; ?? ?struct student *n; ?? ?struct student *m; ?? ?char us[20],mi[20],na[20],se[5],nu[20],cla[20],flo[20],dar[20],a[20],b[20]; ?? ?int mi1,mi2; ?? ?fp=fopen("dorm.txt","r"); ?? ?if(fp==NULL) ?? ?{ ?? ??? ?fp=fopen("dorm.txt","w"); ?? ??? ?exit(0); ?? ?} ?? ?else ?? ?{ ?? ??? ?if(fgetc(fp)==-1) ?? ??? ?{ ?? ??? ??? ?printf("此賬號初次使用:\n請輸入初始賬號:"); ?? ??? ??? ?scanf("%s",a); ?? ??? ??? ?getchar(); ?? ??? ??? ?printf("請輸入初始密碼:"); ?? ??? ??? ?scanf("%s", b);? ?? ??? ??? ?getchar(); ?? ??? ??? ?m=(struct student *)malloc(sizeof(LinkList)); ?? ??? ??? ?strcpy(m->user,a);//初始賬戶 ?? ??? ??? ?strcpy(m->mima,b);//初始密碼 ?? ??? ??? ?strcpy(m->name ,"0"); ?? ??? ??? ?strcpy(m->sex ,"0"); ?? ??? ??? ?strcpy(m->num ,"0"); ?? ??? ??? ?strcpy(m->classs ,"0"); ?? ??? ??? ?strcpy(m->floor ,"0"); ?? ??? ??? ?strcpy(m->dorm,"0"); ?? ??? ??? ?m->might1=1; ?? ??? ??? ?m->might2=0; ?? ??? ??? ?m->next=NULL; ?? ??? ??? ?L->next=m; ?? ??? ?} ?? ??? ?if(fgetc(fp)!=-1) ?? ??? ?{ ?? ??? ??? ?fseek(fp,-2L,1); ?? ??? ?} ?? ??? ?while(!feof(fp)) ?? ??? ?{ ?? ??? ??? ?fscanf(fp,"%d %d %s %s %s %s %s %s %s %s ",&mi1,&mi2,us,mi,na,se,nu,cla,flo,dar); ?? ??? ??? ?n=(struct student *)malloc(sizeof(struct student)); ?? ??? ??? ?strcpy(n->user,us); ?? ??? ??? ?strcpy(n->mima,mi); ?? ??? ??? ?strcpy(n->name ,na); ?? ??? ??? ?strcpy(n->sex ,se); ?? ??? ??? ?strcpy(n->num ,nu); ?? ??? ??? ?strcpy(n->classs ,cla); ?? ??? ??? ?strcpy(n->floor ,flo); ?? ??? ??? ?strcpy(n->dorm,dar); ?? ??? ??? ?n->might1=mi1; ?? ??? ??? ?n->might2=mi2; ?? ??? ??? ?ListInsert(L,n); ?? ??? ?} ?? ?} ?? ?fclose(fp); } int main() { ?? ?struct student *p; ?? ?p = (struct student *)malloc(sizeof(struct student)); ?? ?p->next = NULL; ?? ?readstudentput(p); ?? ?menu1(p); ?? ?system("pause"); ?? ?return 0; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
理解C++編程中的std::function函數(shù)封裝
這篇文章主要介紹了理解C++編程中的std::function函數(shù)封裝,std::function是C++11標準中的新特性,需要的朋友可以參考下2016-04-04C語言如何求整數(shù)的位數(shù)及各位數(shù)字之和
這篇文章主要介紹了C語言如何求整數(shù)的位數(shù)及各位數(shù)字之和,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11C++ 中 const和static readonly區(qū)別
這篇文章主要介紹了C++ 中 const和static readonly區(qū)別的相關資料,需要的朋友可以參考下2017-05-05