《2022年宿舍管理系统源代码 .pdf》由会员分享,可在线阅读,更多相关《2022年宿舍管理系统源代码 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include #include #include #define OVERFLOW 0 #define OK 1 struct student int num; /学号char name20; /姓名int banj; /班级int xingb; /性别 (男生 0、女生 1) int susenum; /宿舍号int bednum; /床位号int bianh; /学生编号; struct student s10000; int n; /学生人数void fenpei(); /分配宿舍int menu(); /菜单函数int susesy(); /宿舍使用情况查询函数int enter(
2、); /登记入住学生信息int show(); /输出入住信息int search_name(); /按姓名查找函数int search_num(); /按学号查找函数int search_susenum(); /按宿舍号查找函数int tuifa(); /退房函数int xiugxxi(); /修改入住信息函数int thuansuse(); /调换寝室或床位函数void bianx(); /编写信息int read_file(struct student s); /void write_file(struct student *s); /*/ /* 函数实现*/ /*/ 名师资料总结 -
3、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - void main() FILE *fp; int k=1; int i=0; char yesorno; printf(nn); 55555555555nn); printf(ttt数据结构课程设计n); printf(ttt题目:宿舍管理系统n); printf(ttt姓名:付晓飞n); printf(ttt专业班级: 10 级软工一班 n); printf(ttt学号: 2010030300
4、29nn); 55555555555nn); if(fp=fopen(students.txt,rb+)=NULL) printf(n=提示:文件不存在,是否要创建一个?(y/n)n); scanf(%c,&yesorno); if(yesorno=y|yesorno=Y) /这里仅为了建立文件fp=fopen(students.txt,wb+); fclose(fp); / 关闭 fp 所指的文件,释放文件缓冲区 else while(!feof(fp) if(fread(&si,sizeof(struct student),1,fp)!=1) break; i+; n=i; fclose(
5、fp); while(k) menu(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - int menu() int i; printf(t*nn); printf(t 菜单nn); printf(t*nn); printf(t 分配宿舍0 宿舍使用情况查询1n); printf(t 输出入住信息2 按姓名查找3n); printf(t 按学号查找4 按宿舍号查询5n); printf(t 退房函数6 修改入住信息7n);
6、 printf(t 调换宿舍8 编写学生信息9n); printf(t 请按提示进行自行选择:); scanf(%d,&i); switch(i) case 0 :fenpei();break; case 1 :susesy();break; case 2 :show();break; case 3 :search_name();break; case 4 :search_num();break; case 5 :search_susenum();break; case 6 :tuifa();break; case 7 :xiugxxi();break; case 8 :thuansuse()
7、;break; case 9 :bianx(); break; return OK; void bianx() struct student t; int i,j; int c; int b100; int a=0; FILE *fp=NULL; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - fp=fopen(students1.txt,wb+); printf(t 请输入班级总数:nt); scanf(%d,&c); pr
8、intf(t 请依次输入每班人数:n); for(i=0;ic;i+) printf(t); scanf(%d,&bi); printf(t 学生信息为:n); for(i=0;ic;i+) /si.xueh=20120010001+i*10000; printf(t 请依次输入 %d 班学生姓名,学号,性别(男0,女 1) : n,i+1); for(j=0;jbi;j+) printf(t); scanf(%s %d %d,&t.name,&t.num,&t.xingb); t.banj=i+1; si=t; printf( %s %d %d %dn,sa.name,sa.num,sa.b
9、anj,sa.xingb); a+; fwrite(s,sizeof(struct student)*n,1,fp); fclose(fp); n=a; void fenpei() int a,b,i,l,m; a=0; b=0; l=1; m=1; for(i=0;in;i+) if(si.xingb=0) if(a=6) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - si.susenum=l+1; a=1; l+; el
10、se si.susenum=l; a+; si.bednum=a; else if(b=6) si.susenum=m+1; b=1; m+; else si.susenum=m; b+; si.bednum=b; /学生调换宿舍或者床位处理函数int thuansuse() int i,j,l,m,a; int o=n,p=n; char y20; FILE *fp=NULL; fp=fopen(students1.txt,wb+); printf(t 请输入要调换的学生学号:); scanf(%d,%d,&l,&m); for(i=0;in;i+) if(si.num=l) o=i; 名师
11、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - for(j=0;jn;j+) if(sj.num=m) p=j; if(o=n|p=n) printf(t 调换错误,请核对后再输入!n); else a=so.num;so.num=sp.num;sp.num=a; strcpy(y,so.name); strcpy(so.name,sp.name); strcpy(sp.name,y); printf(t 学号: %d 姓名: %
12、s 宿舍号: %d 床位号: %dn, so.num,so.name,so.susenum,so.bednum); printf(t 学号: %d 姓名: %s 宿舍号: %d 床位号: %dn, sp.num,sp.name,sp.susenum,sp.bednum); printf(t 调换成功 !n); fwrite(s,sizeof(struct student)*n,1,fp); fclose(fp); return OK; /按学生学号查询函数int search_num() int i,a=0; int find_num; printf(t 请输入你要查询的学生学号:); sca
13、nf(%d,&find_num); for(i=0;in;i+) if(si.num=find_num) printf(t学号 :%d,si.num); printf( 姓名 :%s,si.name); printf( 班级 :%d,si.banj); printf( 性别 :%d,si.xingb); printf( 宿舍号 :%d,si.susenum); printf( 床位号 :%d,si.bednum); printf(n); a=a+1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
14、- - - 第 6 页,共 10 页 - - - - - - - - - if(a=0) printf(t 不存在该学生!n); return OK; /按学生姓名查询函数int search_name() int i,b=0; char find_name20; FILE *fp=NULL; fp=fopen(students1.txt,wb+); printf(t 请输入你要查询的学生姓名:); scanf(%s,&find_name); for(i=0;in;i+) if(strcmp(si.name,find_name)=0) printf(t学号 :%d,si.num); print
15、f( 姓名 :%s,si.name); printf( 班级 :%d,si.banj); printf( 性别 :%d,si.xingb); printf( 宿舍号 :%d,si.susenum); printf( 床位号 :%dn,si.bednum); return i; b=1; /else printf(t 不存在该学生 !n); if(b=1) printf(t 不存在该学生 !n); else fwrite(s,sizeof(struct student)*n,1,fp); fclose(fp); return OK; /按学生宿舍号查询函数int search_susenum()
16、 int i,b=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - int find_susenum; printf(t 请输入你要查询的宿舍号:); scanf(%d,&find_susenum); for(i=0;in;i+) if(si.susenum=find_susenum) printf(t学号 :%d,si.num); printf( 姓名 :%s,si.name); printf( 班级 :%d,si.ba
17、nj); printf( 性别 :%d,si.xingb); printf( 宿舍号 :%d,si.susenum); printf( 床位号 :%dn,si.bednum); b=1; if(b=0) printf(t 未分配该宿舍!n); return OK; / 查询宿舍使用情况函数int susesy() int suse; int i; printf(t 请输入你要查询的宿舍号:); scanf(%d,&suse); for(i=0;in;i+) if(si.susenum=suse) search_susenum(); return OK; /修改学生入住信息函数int xiugx
18、xi() char xgname20; int i,b=0; printf(t 请输入你要修改的学生姓名:); scanf(%s,&xgname); for(i=0;in;i+) if(strcmp(si.name,xgname)=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - printf(t 修改为 :n); printf(t 学号姓名班级性别宿舍号床位号 :); scanf(%d %s %d %d %d %d,&s
19、i.num,si.name,&si.banj,&si.xingb, &si.susenum,&si.bednum); b=1; printf(t 修改成功 !n); if(b=0) printf(t 没有查找到该学生!n); return OK; /输出入住学生信息int show() int i; for(i=0;in;i+) printf(t学号 :%d,si.num); printf( 姓名 :%s,si.name); printf( 班级 :%d,si.banj); printf( 性别 :%d,si.xingb); printf( 宿舍号 :%d,si.susenum); print
20、f( 床位号 :%dn,si.bednum); return OK; /退房函数int tuifa() int a,i,j; int b=0; FILE *fp=NULL; fp=fopen(students1.txt,wb+); printf(t 请输入要退房同学的学号:); scanf(t%d,&a); for(i=0;in;i+) if(si.num=a) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - printf(t
21、姓名 :%s,si.name); printf( 班级 :%d,si.banj); printf( 性别 :%d,si.xingb); printf( 宿舍号 :%d,si.susenum); printf( 床位号 :%dn,si.bednum); for(j=i+1;jn;j+) sj-1.num=sj.num; sj-1.xingb=sj.xingb; sj-1.bednum=sj.bednum; sj-1.susenum=sj-i.susenum; strcpy(sj-1.name,sj.name); n=n-1; printf(t删除成功! n); b=1; if(b=0) printf(t 没有找到该学号的学生!n); else fwrite(s,sizeof(struct student)*n,1,fp); fclose(fp); return OK; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -
限制150内