宿舍管理系统 源代码.doc
文本预览下载声明
源程序代码:#includestdio.h#includestring.h#includestdlib.h#define M 100int dirty=0; //用来判断是否已保存操作//定义一个存储学生相关信息的结构体typedef struct{ char S_name[31]; //学生姓名 char S_number[16]; //学生学号 int D_number; //学生所在寝室的宿舍号 int Total; //学生总数}Student[M],St;//判断学号是否与表中所存学号重复void S_number_Judge(Student S,int t){ int i; for(i=1;i=(S-Total)-1;i++) while(strcmp(S[i].S_number,S[t].S_number)==0) { printf(学号输入失败,该学号已存在,请重新输入学号!\n); printf(请输入学生的学号(15个字符以内):); scanf(%s,S[t].S_number); getchar(); i=1; }}//添加学生信息函数void Add(Student S){ printf(请输入学生姓名(30个字符以内):); scanf(%s,S[++(S-Total)].S_name); getchar();//获取换行符 printf(请输入学生的学号(15个字符以内):); scanf(%s,S[S-Total].S_number); getchar(); S_number_Judge(S,S-Total);//判断输入的学号是否与表中所存在的学号重复 printf(请输入宿舍号码:); scanf(%d,S[S-Total].D_number); getchar(); dirty=1; printf(添加成功!\n\n);}//修改学生信息函数void Alter(Student S){ int i; int flag=0; //用来判断表中是否存在所要修改的学生的信息 char name[20]; printf(请输入你要修改学生的姓名:); scanf(%s,name); getchar(); for(i=1;i=S-Total;i++) if(strcmp(S[i].S_name,name)==0) flag=i; if(!flag) printf(你所要修改的学生信息在表中不存在!\n); else { printf(新信息如下:\n); printf(请输入学生姓名(30个字符以内):); scanf(%s,S[flag].S_name); getchar(); printf(请输入学生的学号(15个字符以内):); scanf(%s,S[flag].S_number); getchar(); S_number_Judge(S,flag); printf(请输入宿舍号:); scanf(%d,S[flag].D_number); getchar(); dirty=1; printf(修改成功!\n); } putchar(\n);}//删除学生信息void Delete(Student S){ int i,j; int flag=0; //用来判断表中是否存在所要删除的学生的信息 char name[20]; printf(请输入你要删除学生的姓名:); scanf(%s,name); getchar(); for(i=1;i=S-Total;i++) if(strcmp(S[i].S_name,name)==0) flag=i; if(!flag) printf(你所要删除的学生在表中不存在!); else { for(i=flag;iS-Total;i++) { j=i+1; strcpy(S[i].S_name,S[j].S_name); strcpy(S[i].S_number,S[j].S_number); S[i].D_number=S[j].D_number; } (S-Total)--; dirty=1; printf(删除成功!); } printf(\n\n);}//显示所有学生信息函数void Display_All(Student S){ int i; printf(全体学生信息如下:\n); printf(学生姓名 学生学号 宿舍号\n); for(i=1;i=S-Total;i++) printf(%-20s%-1
显示全部