日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言實現宿舍管理課程設計_C 語言

作者:N?J?H ? 更新時間: 2022-05-28 編程語言

本文實例為大家分享了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,宿舍號:%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.按樓號統計\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.按班級統計\n");
?? ?printf("\t\t\t2.按樓號統計\n");
?? ?printf("\t\t\t3.按樓號+寢室號統計\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("?? ??? ?***** ? ? 歡迎使用宿舍管理系統 ? ? ?*****\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;
}

原文鏈接:https://blog.csdn.net/weixin_46020325/article/details/118002853

欄目分類
最近更新