《学生宿舍管理软件C语言源代码》由会员分享,可在线阅读,更多相关《学生宿舍管理软件C语言源代码(11页珍藏版)》请在金锄头文库上搜索。
1、-源程序代码:*include*include*include*define M 100int dirty=0; /用来判断是否已保存操作/定义一个存储学生相关信息的构造体typedefstructchar S_name31; /学生char S_class31; /学生班级char S_number16; /学生*int D_number; /学生所在寝室的宿舍号 char S_address500; /学生地址 int S_phone20; /学生 int Total; /学生总数StudentM,St;/判断*是否与表中所存*重复void S_number_Judge(Student S
2、,int t)int i;for(i=1;iTotal)-1;i+)while(strcmp(Si.S_number,St.S_number)=0)printf(*输入失败,该*已存在,请重新输入*!n);printf(请输入学生的*(15个字符以):); scanf(%s,St.S_number);getchar();i=1;/添加学生信息函数void Add(Student S)printf(请输入学生(30个字符以):);scanf(%s,S+(S-Total).S_name);getchar();/获取换行符printf(“请输入学生班级(30个字符以):);scanf(%s,SS-T
3、otal.S_class);getchar();printf(请输入学生的*(15个字符以):);scanf(%s,SS-Total.S_number); getchar();S_number_Judge(S,S-Total);/判断输入的*是否与表中所存在的*重复printf(请输入宿舍:);scanf(%d,&SS-Total.D_number);getchar();printf(请输入学生地址:);scanf(%s,SS-Total.S_address);getchar(); printf(“请输入学生:);scanf(%s,&SS-Total. S_phone);getchar();d
4、irty=1;printf(添加成功!nn);/修改学生信息函数void Alter(Student S)int i;int flag=0; /用来判断表中是否存在所要修改的学生的信息char name20;printf(请输入你要修改学生的:); scanf(%s,name);getchar();for(i=1;iTotal;i+)if(strcmp(Si.S_name,name)=0)flag=i;if(!flag)printf(你所要修改的学生信息在表中不存在!n);elseprintf(新信息如下:n);printf(请输入学生(30个字符以):);scanf(%s,Sflag.S_n
5、ame);getchar();printf(“请输入学生班级(30个字符以):);scanf(%s,Sflag.S_class);getchar();printf(请输入学生的*(15个字符以):);scanf(%s,Sflag.S_number);getchar();S_number_Judge(S,flag);printf(请输入宿舍号:);scanf(%d,&Sflag.D_number);getchar();printf(请输入学生地址:);scanf(%s,Sflag.S_address);getchar(); printf(“请输入学生:);scanf(%s,&Sflag. S_p
6、hone);getchar();dirty=1;printf(修改成功!n);putchar(n);/删除学生信息void Delete(Student S)int i,j;int flag=0; /用来判断表中是否存在所要删除的学生的信息char name20;printf(请输入你要删除学生的:);scanf(%s,name); getchar();for(i=1;iTotal;i+)if(strcmp(Si.S_name,name)=0)flag=i;if(!flag)printf(你所要删除的学生在表中不存在!);elsefor(i=flag;iTotal;i+) j=i+1; str
7、cpy(Si.S_name,Sj.S_name); strcpy(Si.S_number,Sj.S_number); Si.D_number=Sj.D_number; (S-Total)-;dirty=1;printf(删除成功!);printf(nn);/显示所有学生信息函数void Display_All(Student S)int i;printf(全体学生信息如下:n);printf(学生学生班级学生*宿舍号学生地址 学生n);for(i=1;iTotal;i+)printf(%-20s%-20s%-15s%-5d%s-10%sn,Si.S_name,Si.S_class,Si.S_n
8、umber,Si.D_number,Si.S_address,Si.S_phone);putchar(nn);/排序函数按照寝室号从小到大排序(冒泡法)void Sort_D_number(Student S)int i,j,t;char name30;char number15;char address300; char umber30;for(i=1;iTotal;i+)for(j=i;jTotal;j+)if(Si.D_numberSj.D_number)strcpy(name,Si.S_name);strcpy(number,Si.S_number);strcpy(address,Si
9、.S_address);strcpy(umber,Si.S_class);t=Si.D_number;strcpy(Si.S_name,Sj.S_name);strcpy(Si.S_number,Sj.S_number);strcpy(Si.S_address,Sj.S_address);strcpy(Si.S_class,Sj.S_class);Si.D_number=Sj.D_number;strcpy(Sj.S_name,name);strcpy(Sj.S_number,number);strcpy(Sj.S_address,address);strcpy(Sj.S_class,umbe
10、r);Sj.D_number=t;/排序函数按照*从小到大排序(冒泡法)void Sort_S_number(Student S)int i,j,t;char name30;char number15;char address300; char umber30;for(i=1;iTotal;i+)for(j=i;jTotal;j+)if(strcmp(Si.S_number,Sj.S_number)0)strcpy(name,Si.S_name);strcpy(number,Si.S_number);strcpy(address,Si.S_address);strcpy(umber,Si.S_
11、class);t=Si.D_number;strcpy(Si.S_name,Sj.S_name);strcpy(Si.S_number,Sj.S_number);strcpy(Si.S_address,Sj.S_address);strcpy(Si.S_class,Sj.S_class);Si.D_number=Sj.D_number;strcpy(Sj.S_name,name);strcpy(Sj.S_number,number);strcpy(Sj.S_address,address);strcpy(Sj.S_class,umber);Sj.D_number=t;/排序函数按照班级号从小到
12、大排序(冒泡法)void Sort_S_class (Student S)int i,j,t;char name30;char number15; char address300; char umber30;for(i=1;iTotal;i+)for(j=i;jTotal;j+)if(strcmp(Si.S_class,Sj.S_class)0)strcpy(name,Si.S_name);strcpy(number,Si.S_number);strcpy(address,Si.S_address);strcpy(umber,Si.S_class);t=Si. D_number;strcpy(Si.S_name,Sj.S_name);strcpy(Si.S_number,Sj.S_number);strcpy(Si.S_address,Sj.S_address);strcpy(Si.S_class,Sj.S_class);Si. D_number =Sj. D_number;strcpy(Sj.S_na