<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現宿舍管理的具體程式碼,供大家參考,具體內容如下
和本編前幾個程式結構差不多,比較簡單直觀,希望可以給你帶來幫助。
#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,宿舍號:%sn",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 寢室號:%sn", 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("nnn**********修改學生住宿資訊**********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("nnttt1.按學號查詢n"); printf("ttt2.按姓名查詢n"); printf("ttt3.按樓號統計n"); printf("ttt4.按樓號+寢室號查詢n"); printf("ttt0.結束查詢返回上一層n"); printf("請選擇:"); scanf("%d",&k); switch(k) { case 1: printf("nnn**********按學號查詢**********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寢室號:%sn", q->name, q->num, q->sex, q->classs, q->floor, q->dorm); } q = q->next; } break; case 2: printf("nnn**********按姓名查詢**********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寢室號:%sn", q->name, q->num, q->sex, q->classs, q->floor, q->dorm); } q = q->next; } break; case 3: printf("nnn**********按樓號查詢**********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寢室號:%sn", q->name, q->num, q->sex, q->classs, q->floor, q->dorm); } q = q->next; } break; case 4: printf("nnn**********按樓號+寢室號查詢**********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寢室號:%sn", 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("nnttt1.按班級統計n"); printf("ttt2.按樓號統計n"); printf("ttt3.按樓號+寢室號統計n"); printf("ttt0.結束查詢返回上一層n"); printf("請選擇:"); scanf("%d",&k); switch(k) { case 1: printf("nnn**********按班級查詢**********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寢室號:%sn", q->name, q->num, q->sex, q->classs, q->floor, q->dorm); } q = q->next; } break; case 2: printf("nnn**********按樓號查詢**********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寢室號:%sn", q->name, q->num, q->sex, q->classs, q->floor, q->dorm); } q = q->next; } break; case 3: printf("nnn**********按樓號+寢室號查詢**********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寢室號:%sn", 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(" ***** 歡迎使用宿舍管理系統 *****n"); printf(" **** 1.個人資訊瀏覽 ****n"); printf(" **** 2.個人資訊修改 ****n"); printf(" **** 3.宿舍資訊查詢 ****n"); printf(" **** 4.宿舍資訊統計 ****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;//宿舍資訊統計 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(" ***** 歡迎使用宿舍管理系統 *****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(" ***** 歡迎使用宿舍管理系統 *****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; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45