这个只是简单的系统,只有一个关系表。如果你是为了应付老师则足矣,如果是为了优秀,那就要自己添加更多的关系表和功能块,比如可以再添加宿舍表,通过这个关系表,可以查看,这个宿舍有没有空床位;当给宿舍添加学生时,遇到宿舍爆满,就会添加失败等功能。


之前我发布上去的时候市可以运行的,后来可能是版本更新对语法要求更高,导致编译不过,现在已经对代码做了修改了。


以下为代码**:**

#include"stdio.h"#include"stdlib.h"#include"string.h"#include "conio.h" #include "windows.h"#define MAX 1000/*结构体类型*/typedef struct  {   int num;/*学号*/char name[20];/*姓名*/char sex[5];/*性别*/int age;/*年龄*/char studentclass[20];/*班级*/int dorm;/*宿舍号*/}STUDENTS;//查找指针
typedef struct Points
{int a;struct Points *points;
}Points;char xiugai[10]="修改";
char chaxun[10]="查询";
char xuehao[]="学号";
char xingming[]="姓名";
char xingbie[]="性别";
char nianling[]="年龄";
char banji[]="班级";
char sushe[]="宿舍";/*共用的功能块 */
void pause(){int i;printf("\n\n按任意键加回车返回主菜单!");scanf("%d",&i);getchar();
} void print(STUDENTS stu[],int point){printf("\n\n\n学号:%d,姓名:%s,性别:%s,年龄:%d,班级:%s,宿舍号: %d\n",stu[point].num,stu[point].name,stu[point].sex,stu[point].age,stu[point].studentclass,stu[point].dorm);
}void printfNotFound(){printf("找不到该数据\n");
}void printSearch(STUDENTS stu[],int i){printf("            %7d%11s%10s%10d%12s%12d\n\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].dorm);
}void printHead(){printf("         -------------------------------------------------------------------------------\n");printf("      -------------------------------------------------------------------------------\n");printf("          学号:     姓名:     性别:     年龄:     班级:     宿舍号:     \n"); printf("         -------------------------------------------------------------------------------\n");printf("      -------------------------------------------------------------------------------\n\n\n");}//默认继续
int a=1;
void selectOperate(){button:printf("继续操作请按1,返回主菜单请按0  ");scanf("%d",&a);if(!(a==1||a==0))   {       printf("请输入正确的指令"); goto button;              }
}//读取文件,返回的是总个数
int read_file(STUDENTS stu[])
{FILE *fp;  int point=-1;fp=fopen("stu.txt","rt");if(fp==NULL)  {printf("\n\n*****库存文件不存在!请创建");   return 0;}while(!feof(fp))  {point++;fread(&stu[point],sizeof(STUDENTS),1,fp);    }   fclose(fp); return point;}//存储数据到文件中
void save_file(STUDENTS stu[],int sum)//sum是总个数
{FILE *fp;  int i;  if((fp=fopen("temp.txt","w"))==NULL) {printf("写文件错误!\n");  return; }   for(i=0;i<sum;i++)    if(fwrite(&stu[i],sizeof(STUDENTS),1,fp)!=1)   printf("写文件错误!\n");fclose(fp);remove("stu.txt");rename("temp.txt","stu.txt");}/*创建学生信息*/
//返回的是总数
int input(STUDENTS stu[],int sum)
{  int x;for(;sum<MAX;sum++){system("cls");    printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        创建学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("\n\n                 录入学生信息  (最多%d个)\n",MAX);printf("               ----------------------------\n");printf("\n                     第%d个学生\n",sum+1);printf("\n 请输入学生的学号:");scanf("%d",&stu[sum].num);printf("\n 请输入学生的姓名:");scanf("%s",stu[sum].name); printf("\n 请输入学生的性别:");scanf("%s",stu[sum].sex);printf("\n 请输入学生的年龄:");   scanf("%d",&stu[sum].age);  printf("\n 请输入学生的班级:");scanf("%s",stu[sum].studentclass);        printf("\n 请输入学生的宿舍号:");scanf("%d",&stu[sum].dorm);printf("        创建成功!");//选择操作 selectOperate();if(a==0)return sum+1; }return sum+1;}/*打印学生信息*/
void output(STUDENTS stu[],int sum)
{  int i;system("cls");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        打印学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printHead(); for(i=0;i<sum;i++)      printSearch(stu,i);pause();}/*排序  */
 /*复制student*/
//将排好的装在一个新的students数组里 ,不要存到文件中 void cpStu(STUDENTS stu0[],STUDENTS stu[],int sum) {int i;for(i=0;i<sum;i++){stu[i].num=stu0[i].num;strcpy(stu[i].name,stu0[i].name);strcpy(stu[i].sex,stu0[i].sex);stu[i].age=stu0[i].age;strcpy(stu[i].studentclass,stu0[i].studentclass);stu[i].dorm=stu0[i].dorm;} }/*对数据元组排序*/
void exchangeData(STUDENTS *stu1,STUDENTS *stu2){stu1->num=stu2->num;stu1->dorm=stu2->dorm; stu1->age=stu2->age;strcpy(stu1->name,stu2->name);strcpy(stu1->sex,stu2->sex);strcpy(stu1->studentclass,stu2->studentclass);
}int selectSort(){int choice;printf("\n\n\n     ********请您选择条件进行排序********\n\n");printf("                1. 学号\n\n");printf("                2. 班级\n\n");printf("                3. 宿舍号\n\n");printf("                4. 姓名\n\n");printf("                0. 返回主菜单\n\n");printf("                 请选择(0-3):");scanf("%d",&choice);return choice;
}/*根据宿舍号从小到大排序   冒泡*/void sortByDorm(STUDENTS stu0[],int sum,STUDENTS stup[]){  STUDENTS stu1;  //中间变量 int i,j;cpStu(stu0,stup,sum);for(i=0;i<sum-1;i++)for(j=0;j<sum-1-i;j++)if(stup[j].dorm>stup[j+1].dorm){exchangeData(&stu1,&stup[j]); exchangeData(&stup[j],&stup[j+1]); exchangeData(&stup[j+1],&stu1);    }}/*根据班级从小到大排序   选择*/void sortByClass(STUDENTS stu0[],int sum,STUDENTS stup[]){  STUDENTS stu1;         //中间变量 int i,j,k;cpStu(stu0,stup,sum);for(i=0;i<sum-1;i++){k=i;for(j=i+1;j<sum;j++)if(strcmp(stup[k].studentclass,stup[j].studentclass)>0)     k=j;if(k!=i){exchangeData(&stu1,&stup[i]);    exchangeData(&stup[i],&stup[k]);    exchangeData(&stup[k],&stu1);}          }}/*根据姓名从大到小排序   折半插入排序*///因为这里是从stu[1]开始操作的,所以得再创个中间变量 void sortByName(STUDENTS stu0[],int sum,STUDENTS stup[]){  STUDENTS stu1;           //中间变量 STUDENTS stu[1000];int i,j,low,high,mid;for(i=0;i<sum;i++){stu[i+1].num=stu0[i].num;strcpy(stu[i+1].name,stu0[i].name);strcpy(stu[i+1].sex,stu0[i].sex);stu[i+1].age=stu0[i].age;strcpy(stu[i+1].studentclass,stu0[i].studentclass);stu[i+1].dorm=stu0[i].dorm;}  for(i=2;i<sum+1;i++){exchangeData(&stu1,&stu[i]);    /*保存待插入元素到stu1*/low=1;high=i-1;while(low<=high){mid=(low+high)/2;if(strcmp(stu1.name,stu[mid].name)>0)low=mid+1;elsehigh=mid-1;}for(j=i-1;j>=high+1;j--)exchangeData(&stu[j+1],&stu[j]);//后移元素,留出插入空位 exchangeData(&stu[high+1],&stu1);        }for(i=0;i<sum;i++){stup[i].num=stu[i+1].num;strcpy(stup[i].name,stu[i+1].name);strcpy(stup[i].sex,stu[i+1].sex);stup[i].age=stu[i+1].age;strcpy(stup[i].studentclass,stu[i+1].studentclass);stup[i].dorm=stu[i+1].dorm;}    }/*根据学号从大到小排序   插入的希尔排序*/void ShellInsert(STUDENTS stup[],int sum,int dk){      int i,j,k;STUDENTS stu1;//中间变量 for(k=0;k<dk;k++)for(i=dk+k;i<sum;i=i+dk)if(stup[i].num<stup[i-dk].num){exchangeData(&stu1,&stup[i]); for(j=i-dk;j>=0&&stu1.num<stup[j].num;j=j-dk)//记录向后移              exchangeData(&stup[j+dk],&stup[j]); exchangeData(&stup[j+dk],&stu1); }}    void sortByNum(STUDENTS stu[],int sum,STUDENTS stup[]){  int i,x;cpStu(stu,stup,sum);int dlta[5]={5,4,3,2,1};     for(x=0;x<5;x++)ShellInsert(stup,sum,dlta[x]);}//总的函数 void sortStudent(STUDENTS stu[],int sum){STUDENTS stup[1000];//引用,把排好序的放在这里,不跟原来的混淆 int choice,x,i;do{    system("cls");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        学生宿舍信息排序        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");select:choice=selectSort();system("cls");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        学生宿舍信息排序        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");switch(choice){   case 1: sortByNum(stu,sum,stup); break;/*学生学号信息顺序*/case 2: sortByClass(stu,sum,stup);break;/*学生班级信息顺序*/     case 3: sortByDorm(stu,sum,stup); break;/*学生宿舍信息顺序*/case 4: sortByName(stu,sum,stup); break;/*学生姓名信息顺序*/case 0: break;}//打印排好序的 printHead();for(i=0;i<sum;i++)printSearch(stup,i);if(choice==1||choice==2||choice==3||choice==4){printf("\n\n");button:printf("继续查询请按1,返回主菜单请按0  ");scanf("%d",&x);if(x==1) x=1;else if(x==0)continue;else{      printf("请输入正确的指令\n"); goto button;                }}else if(choice==0)x=0;else{printf("\n\t\t请输入正确的指令\n"); goto select;}}while(x==1);}  /* 根据条件查找指针point*/
/////查询或者修改的选择;
int selectChoice(char tiaojian[20]){int choice;printf("\n\n\n     ********您想根据哪个条件%s********\n\n",tiaojian);printf("                1. 学号\n\n");printf("                2. 姓名\n\n");printf("                3. 性别\n\n");printf("                4. 年龄\n\n");printf("                5. 班级\n\n");printf("                6. 宿舍号\n\n");printf("                0. 返回主菜单\n\n");printf("                 请选择(0-6):");scanf("%d",&choice);return choice;
}///????????????????????????????为什么这里的指针得返回菜可行,参数不是指针,操作的是地址的????
Points *connectPoint(Points *r,Points *p,int i){p=(Points *)malloc(sizeof(Points));p->a=i;r->points=p;r=p;return r;}//choice是指主菜单中的功能选项,字符数组tiaojian为相应的字符,比如如果选择查询的话,//tiaojian传参进来的应该为 "查询",这里是为了提高函数的复用性。 Points *findPoint(STUDENTS stu[],int sum,int choice,char tiaojian[]){int i,j=0; Points *p,*q,*r; q=(Points *)malloc(sizeof(Points));r=q;int num,age,dorm;char classs[20],sex[5],name[20];printf("     \n\n请输入您要查找的学生的%s",tiaojian);switch(choice){case 1: scanf("%d",&num);for(i=0;i<sum;i++)if(num==stu[i].num)r=connectPoint(r,p,i);break;case 2: scanf("%s",name);for(i=0;i<sum;i++)if(strcmp(name,stu[i].name)==0)r=connectPoint(r,p,i);break;case 3: scanf("%s",sex);for(i=0;i<sum;i++)if(strcmp(sex,stu[i].sex)==0)r=connectPoint(r,p,i);break;case 4: scanf("%d",&age);for(i=0;i<sum;i++)if(age==stu[i].age)r=connectPoint(r,p,i);break;case 5: scanf("%s",classs);for(i=0;i<sum;i++)if(strcmp(classs,stu[i].studentclass)==0)r=connectPoint(r,p,i);break;case 6: scanf("%d",&dorm);for(i=0;i<sum;i++)if(dorm==stu[i].dorm)r=connectPoint(r,p,i);break;}r->points=NULL;return q;} // /*查询学生信息*/
void inquire(STUDENTS stu[],int sum) {int choice;Points *p;do{system("cls");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        查询学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");button: choice=selectChoice(chaxun);system("cls");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        查询学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");switch里面不能调用排序功能,为什么?????????  switch(choice){case 1:p=findPoint(stu,sum,choice,xuehao);break;case 2:p=findPoint(stu,sum,choice,xingming);break;case 3:p=findPoint(stu,sum,choice,xingbie);break;case 4:p=findPoint(stu,sum,choice,nianling);break;case 5:p=findPoint(stu,sum,choice,banji);break;case 6:p=findPoint(stu,sum,choice,sushe);break;case 0:return; default :printf("请输入正确的指令");goto button;//不断循环; }if(p->points!=NULL){p=p->points;printHead();while(p!=NULL){printSearch(stu,p->a);p=p->points;}     }elseprintfNotFound();//选择操作 selectOperate();   }while(a);}//二分法只适用于查找一个     目前只有学号,姓名,宿舍排序 Points *findPoint2(STUDENTS stu[],int sum,int choice,char tiaojian[]){int i,j=0; Points *p,*q,*r; q=(Points *)malloc(sizeof(Points));r=q;int num,age,dorm;char classs[20],sex[5],name[20];printf("     \n\n请输入您要查找的学生的%s",tiaojian);switch(choice){case 1: scanf("%d",&num);break;case 2: scanf("%s",name);break;case 3: scanf("%d",&dorm);break;}int flag=0;int low=0,high=sum-1,mid;while(low<=high){mid=(low+high)/2;switch(choice){case 1:if(num==stu[mid].num){r=connectPoint(r,p,mid);printf("mid==%d",mid);flag=1;} else if(stu[mid].num>num)high=mid-1;else low=mid+1;break;case 2: if(strcmp(name,stu[mid].name)==0){r=connectPoint(r,p,mid);flag=1;} if(strcmp(stu[mid].name,name)>0)high=mid-1;else low=mid+1;break;case 3: if(dorm==stu[mid].dorm){r=connectPoint(r,p,mid);flag=1;} if(stu[mid].dorm>dorm)high=mid-1;else low=mid+1;break;}//如果找到,就跳出循环 if(flag)break;}  r->points=NULL;return q;} /*二分法查询学生信息*/
void inquire2(STUDENTS stu[],int sum) {STUDENTS stup1[1000];//引用,把排好序的放在这里,不跟原来的混淆 STUDENTS stup2[1000];//引用,把排好序的放在这里,不跟原来的混淆 STUDENTS stup3[1000];//引用,把排好序的放在这里,不跟原来的混淆 //二分法得先排序 sortByNum(stu,sum,stup1);sortByName(stu,sum,stup2);sortByDorm(stu,sum,stup3);int choice;Points *p;do{system("cls");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        查询学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");button: printf("\n\n\n     ********您想根据哪个条件查询********\n\n");printf("                1. 学号\n\n");printf("                2. 姓名\n\n");printf("                3. 宿舍号\n\n");printf("                0. 返回主菜单\n\n");printf("                 请选择(0-3):");scanf("%d",&choice);system("cls");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        查询学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");switch里面不能调用排序功能,为什么?????????    switch(choice){case 1:p=findPoint2(stup1,sum,choice,xuehao);break;//二分法查询 case 2:p=findPoint2(stup2,sum,choice,xingming);break;//二分法查询 case 3:p=findPoint2(stup3,sum,choice,sushe);break;//二分法查询 case 0:return; default :printf("请输入正确的指令");goto button;//不断循环; }if(p->points!=NULL){p=p->points;printHead();while(p!=NULL){if(choice==1) {printSearch(stup1,p->a);p=p->points;}if(choice==2) {printSearch(stup2,p->a);p=p->points;}if(choice==3) {printSearch(stup3,p->a);p=p->points;}}       }elseprintfNotFound();//选择操作 selectOperate();   }while(a);}//修改和删除判断输入学生个数
int operateNum(int sum){int n;printf("请输入你要操作的学生的个数:");scanf("%d",&n);if(n>sum){printf("\n\n 输入学生个数超过总量,操作失败\n");selectOperate();return 0;}else if(n<=0){ printf("\n\n  输入学生个数不能小于或等于0,操作失败\n");selectOperate();return 0;}return n;
} /*只能根据学号删除学生信息*/void exchangeData(STUDENTS *stu1,STUDENTS *stu2);//返回总数
int deletel(STUDENTS stu[],int sum){ a=1;system("cls"); int i,j=0,n=0,flag=1;Points *p;  printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        删除学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");while(n==0)//这里接收到的两个数,n判断学生个数,a判断是否返回主菜单 {n=operateNum(sum);//选择操作 if(a==0)return sum;  //0就返回主菜单    }    do{  if(flag){system("cls"); Points *p;  printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        删除学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");}//查一个删一个 p=findPoint(stu,sum,1,xuehao); p=p->points;if(p!=NULL)   {  i=p->a;     //把后面的一次覆盖掉前面一个 for(;i<sum-1;i++)exchangeData(&stu[i],&stu[i+1]);printf("删除成功\n");flag=0;j++;if(j==n){printf("\n\n删除操作已完成\n");//选择操作 selectOperate();if(a==0)return sum-n;else deletel(stu,sum-n);}} else{printf("输入的学号不存在,操作失败\n");//选择操作 selectOperate();if(a==0)return sum-j;    }}while(a==1&&j<n);}/*只能根据学号修改学生信息*/void change(STUDENTS stu[],int sum){  int choice;Points *p;do{system("cls");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        修改学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");p=findPoint(stu,sum,1,xuehao);p=p->points;if(p!=NULL){system("cls");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("                   ▄                                ▄\n");printf("                   ▄        修改学生宿舍信息        ▄\n");printf("                   ▄                                ▄\n");printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");int i=p->a;print(stu,i);button:choice=selectChoice(xiugai);switch(choice)       {case 1:printf("\n   请输入你改的新学号");scanf("%d",&stu[i].num); break;case 2:printf("\n   请输入你改的新姓名");scanf("%s",stu[i].name); break;case 3:printf("\n   请输入你改的新性别");scanf("%s",stu[i].sex);  break;case 4:printf("\n   请输入你改的新年龄");scanf("%d",&stu[i].age);  break;case 5:printf("\n   请输入你改的新班级");scanf("%s",stu[i].studentclass); break;case 6:printf("\n   请输入你改的新宿舍");scanf("%d",&stu[i].dorm); break;case 0:return; default :printf("请输入正确的指令");goto button;        }printf("\n   修改成功:");print(stu,i);                  }else   printfNotFound();//选择操作 selectOperate();if(a==0)return;}while(a);
}void pagedis()
{printf(" \n\n\n                   **********************************\n");printf("                   *                                *\n");printf("                   *                                *\n");printf("                   *                                *\n");printf("                   *  欢迎进入学生宿舍信息管理系统  *\n");printf("                   *                                *\n");printf("                   *                                *\n");printf("                   *                                *\n");printf("                   **********************************\n");
}
//欢迎
void welcome(){char heart[30][150]={"                           ************                           ************","                        ******************                    ******************","                    ******************#*******               **************************",       "                 **********************#*********       ********************************","                **********************##########***   **************#********************  ","               **********************#*********#**** **##********#************************   ","               *********##########**#****#****#**********##****#**************************  ","               **********#*******#*#*****#***#***************#********#########***********  ","                **********#*****#********#***********#####***#********#*******#**********  ","                 ***********#***#********#***************#***#******#*#****#**#*********  ","                  ***********##**********#**************#*****#****#***#*****#*#*******   ","                   **********##*********#*#************#*****####*****#*******#*******  ","                    ********#**#*******#***#************#*************#**************    ","                      *****#****#*****#*****#************#************#************    ","                        **#**********#*******#******######************#**********     ","                          **********#*********#*****###########################     ","                            **************************************************      ","                              **********************************************     ","                                ******************************************     ","                                  **************************************    ","                                    **********************************      ","                                      ******************************   ","                                        **************************   ","                                          **********************  ","                                            ******************  ","                                              **************      ","                                                **********       ","                                                  ******    ","                                                    **  "};int i;for(i=0;i<29;i++)   //逐行打印printf("%s\n",heart[i]);
}void bye(){system("cls");char heart[11][150]={"\t\t  _____   _                        _             ",
"\t\t |_   _| | |_     __ _    _ _     | |__    ___     o O O   ",
"\t\t   | |   | ' \\   / _` |  | ' \\    | / /   (_-<    o        ",
"\t\t  _|_|_  |_||_|  \\__,_|  |_||_|   |_\\_\\   /__/_   TS__[O]  ",
"\t\t_|\"\"\"\"\"|_|\"\"\"\"\"|_|\"\"\"\"\"|_|\"\"\"\"\"|_|\"\"\"\"\"|_|\"\"\"\"\"| {======| ",
"\t\t\"`-0-0-\'\"`-0-0-\'\"`-0-0-\'\"`-0-0-\'\"`-0-0-\'\"`-0-0-\'./o--000'  "
};int i;printf("\n\n");for(i=0;i<6;i++)   //逐行打印printf("%s\n",heart[i]);
}void designer(){printf("\n\n\t\t☆☆☆☆☆☆☆☆★★设计者信息★★☆☆☆☆☆☆☆☆\n\n");printf("\t\t    ●●                           ●●\n\n");printf("\t\t    ●●  姓名:xxxx               ●●\n\n");printf("\t\t    ●●                           ●●\n\n");printf("\t\t    ●●  班级:xxxxxxx            ●●\n\n");printf("\t\t    ●●                           ●●\n\n");printf("\t\t    ●●  学号: xxxxxxxxxxxx      ●●\n\n");printf("\t\t    ●●                           ●●\n\n");printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
}void check()
{char userName[5];/*用户名*/char userPWD[5];/*密码*/int i;system("color 5E");for(i = 1; i < 4; i++){/*用户名和密码均为123;*/printf("\n       请输入您的用户名(123):");gets(userName);printf("\n       请输入您的密码(123):");gets(userPWD);if ((strcmp(userName,"123")==0) && (strcmp(userPWD,"123")==0))/*验证用户名和密码*/{system("cls");welcome();printf("\n      3秒后自动跳转");Sleep(3000); return;}else{if (i < 3)printf("用户名或密码错误,请重新输入!");else{printf("您已连续3次将用户名或密码输错,系统将退出!");exit(1); }}}}void menu()
{STUDENTS stu[20];int choice,sum;sum=read_file(stu);   if(sum==0){  printf("首先录入基本库存信息!按回车后进入*****\n");getch();sum=input(stu,sum);}system("cls");do{  system("cls"); button:        printf("\n\n\n               ********学生宿舍信息管理系统********\n\n");printf("                      1. 创建学生宿舍信息\n\n");printf("                      2. 打印学生宿舍信息\n\n");printf("                      3. 查询学生宿舍信息\n\n");printf("                      4. 修改学生宿舍信息\n\n");printf("                      5. 删除学生宿舍信息\n\n");printf("                      6. 学生宿舍信息排序\n\n");    printf("                      0. 退出系统\n\n");printf("                       请选择(0-6):");scanf("%d",&choice);  switch(choice){     case 1: sum=input(stu,sum); break;/*创建学生信息*/case 2: output(stu,sum) ; break;/*打印学生信息*/case 3: inquire(stu,sum); break;/*查询学生信息*/case 4: change(stu,sum); break;/*修改学生信息*/case 5: sum=deletel(stu,sum);break;/*删除学生信息*/case 6: sortStudent(stu,sum); break;/*学生信息顺序*/    case 0:  bye();designer();break;default:system("cls"); printf("\n        请输入正确的指令!\n");goto button;}}while(choice!=0);save_file(stu,sum);
}int main()
{  pagedis();check();menu();   return 0;}

C语言设计学生宿舍管理系统相关推荐

  1. java毕业生设计学生宿舍管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计学生宿舍管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计学生宿舍管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S架构 开 ...

  2. 数据库应用设计学生宿舍管理系统java+SQL

    数据库应用设计学生宿舍管理系统java+SQL 具体功能如下: 1.用户登录界面 学生通过用户名和密码获取登录权限,宿舍楼管理员通过用户名和密码获取登录权限. 2.学生用户界面 本宿舍楼的学生能查询其 ...

  3. 学生宿舍管理系统c语言程序设计,学生宿舍管理系统C语言编程.doc

    实用文案 标准文档 "学生宿舍管理系统" C语言课程设计报告 程序功能简介 我设计的是"学生宿舍管理系统",主要是针对住宿学生个人信息的管理,适用对象主要是学校 ...

  4. Mysql设计学生宿舍管理系统+考勤系统

    一, 学生宿舍管理系统 要求: 学校宿舍管理系统,要求包含宿舍信息,学生信息,每日的宿舍查房记录. 分析: 学生与宿舍的关系:m:1,宿舍的查房记录是根据宿舍来查的,与宿舍有关系,一个宿舍可以多次查房 ...

  5. c语言设计学生活动管理系统,C语言大赛之学生信息管理系统设计报告.doc

    PAGE \* MERGEFORMAT11 第一届C语言大赛设计报告 题 目: 学生信息数据库 院系名称: 电气工程学院 专业班级: 测控1302 学生姓名及学号: 李凡丁 201323030221 ...

  6. c语言宿舍管理设计报告,C语言课程设计—学生宿舍管理系统设计报告.doc

    word格式精心整理版 范文范例 学习指导 课 程 设 计 报 告 课程名称 C语言程序设计 课题名称 学生宿舍管理系统 专 业 班 级 学 号 姓 名 指导教师 2012年6月19日 湖南工程学院 ...

  7. 用c语言编程宿舍管理系统,学生宿舍管理系统 C语言编程.doc

    "学生宿舍管理系统" C语言课程设计报告 程序功能简介 我设计的是"学生宿舍管理系统",主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学 ...

  8. 数据库课程设计——学生宿舍信息管理系统

    数据库课程设计--学生宿舍信息管理系统 目录 1.设计目的... 2 2.任务与要求... 2 3.学生宿舍管理系统课程设计... 2 3.1 引言... 2 3.2需求分析... 2 3.2.1. ...

  9. c语言统计宿舍 信息,学生宿舍管理系统C语言.doc

    <C语言程序设计>课程设计报告 题 目: 学生宿舍管理系统 专 业: 软件技术 班 级: 软件技术1班 姓 名: 李桦楠 齐忠春 周滨滨 徐烨 潘喜隆 郑竹强 学 号: 124109124 ...

最新文章

  1. openssh 7.4 java使用_openssh/openssl升级到7.4和1.0.2j 源码方式
  2. iOS之深入解析谓词NSPredicate的语法与应用
  3. 在Office 365 添加就地保留用户邮箱
  4. Git(9)-diff
  5. 线程Thread(Java)
  6. LeetCode -- Merge Two Sorted Linked List
  7. java并发编程(四) 线程池 任务执行、终止源码分析
  8. 【SENCHA TOUCH】picker的使用
  9. d3力导向图增加节点_在D3力导向图中突出显示所选节点,其链接及其子节点
  10. 在一所普通211高校读本科在TOP2高校读研究生的感触
  11. 图片大小、像素、分辨率之间的关系
  12. android 啦窗帘的动画,android 下拉窗帘效果
  13. Redis-6.2.x版本官方发行说明(附谷歌翻译)【持续更新】
  14. java游戏怎么导入jme3,LuoYing RPG教程-JME3游戏创建、场景编辑、载入完整示例教程...
  15. Pet Peeve 是什么?
  16. 神经网络分类算法是什么,神经网络分类算法简介
  17. androidP 对反射的限制之黑名单机制
  18. 数字 IC 技能拓展(16)Zynq 与 Pynq 都是什么呢
  19. 没资源也能赚钱!跑跑步就能赚钱!
  20. redenvelope php,微信免越狱抢红包速成手册

热门文章

  1. [Android系统开发]Launcher Hotseat图标居中排列
  2. 教程:使用C#将PDF页面转换为PNG图像
  3. android 定位蓝牙,蓝牙如何定位,简易蓝牙定位系统的实现方法
  4. 电脑是怎么把代码转换成可执行程序的?
  5. java正整数分解因数_java将一个正整数分解质因数
  6. Android Studio不使用数据线调试adb
  7. php序顶部导航,页面上下滚动改变顶部导航的定位方式
  8. 开源博客wordpress,一键搭建属于自己的博客
  9. EA周报 | Libra将与支付宝微信展开竞争;Google终止中国版搜索引擎;滴滴柳青:顺风车目前不能上线是因为害怕...
  10. postgresql mysql 源码安装_PostGreSQL12 源码安装与字符集修改 (一)