C语言实现学生宿舍信息管理系统

  #include

  #include

  #include

  #include

  #include

  #define MAX 1000

  int k=0;

  //结构体类型

  typedef struct

  {

  char name[20];    //姓名

  char sex[5];      //性别

  char classs[20];  //班级

  int number;       //学号

  int age;          //年龄

  int dorm;         //宿舍号

  int year;         //年份

  int month;        //月份

  }students;

  //创建学生宿舍信息

  int establish(students stu[])

  {  int i,x;

  for(i=0;i<1000;i++)

  {

  system("cls");

  printf("

  录入学生信息  (最多%d个)

  ",MAX);

  printf("               ----------------------------

  ");

  printf("

  第%d个学生",k+1);

  printf("

  请输入学生的学号:");

  scanf("%d",&stu[k].number);

  printf("

  请输入学生的姓名:");

  scanf("%s",stu[k].name);

  printf("

  请输入学生的性别:");

  scanf("%s",stu[k].sex);

  printf("

  请输入学生的年龄:");

  scanf("%d",&stu[k].age);

  printf("

  请输入学生的班级:");

  scanf("%s",stu[k].classs);

  printf("

  请输入学生入住时间(如:2017 9):");

  while((scanf("%d %d",&stu[k].year,&stu[k].month))!=EOF)

  {

  if(stu[k].year<1000||stu[k].year>9999||stu[k].month>12||stu[k].month<1)//限定输入范围

  {

  printf("对不起,输入错误,请重新输入:");

  }

  else

  break;

  }

  printf("

  请输入学生的宿舍号:");

  scanf("%d",&stu[k++].dorm);

  printf("

  请按 1 键返回主菜单或按 0 键继续创建:");

  scanf("%d",&x);

  if(x!=0)  break;

  }

  return k;

  }

  //显示学生宿舍信息

  void display(students stu[])

  {

  int i;

  for(i=0;i

  {

  printf("学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%d/%d

  ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);

  }

  printf("按任意键返回主菜单!");

  getch();

  system("cls");

  return ;

  }

  //查询学生宿舍信息

  void query(students stu[])

  {

  int i,m=0;

  int number;

  printf("

  请输入您要查找的学生的学号: ");

  scanf("%d",&number);

  printf("     正在查询,请稍后.....

  ");

  Sleep(1000);

  for(i=0;i

  {

  if(number==stu[i].number)

  {

  printf("

  学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%d/%d

  ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);

  m=1;

  }

  }

  if(m==0)

  {

  printf("对不起,此学生信息不存在!

  ");

  }

  printf("按任意键返回主菜单!");

  getch();

  system("cls");

  return ;

  }

  //修改学生信息

  void modify(students stu[])

  {

  int number,i,choose,m=0;

  system("cls");

  printf("

  请输入您要修改的学生的学号:");

  scanf("%d",&number);

  printf("      正在查询,请稍后.....

  ");

  Sleep(1000);

  for(i=0;i

  {

  if(number==stu[i].number)

  {

  printf("

  学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%d/%d

  ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);

  printf("

  ********请输入您想要修改的数据********

  ");

  printf("                1. 学号

  ");

  printf("                2. 姓名

  ");

  printf("                3. 性别

  ");

  printf("                4. 年龄

  ");

  printf("                5. 班级

  ");

  printf("                6. 宿舍号

  ");

  printf("                7. 入住时间

  ");

  printf("                请选择(1-7):");

  while((scanf("%d",&choose))!=EOF)

  {

  if(choose<1||choose>7)

  {

  printf("对不起,输入错误,请重新输入:");

  }

  else

  {

  switch(choose)

  {

  case 1:

  {

  printf("

  请输入你改的新学号:");

  scanf("%d",&stu[i].number);

  break;

  }

  case 2:

  {

  printf("

  请输入你改的新姓名:");

  scanf("%s",stu[i].name);

  break;

  }

  case 3:

  {

  printf("

  请输入你改的新性别:");

  scanf("%s",stu[i].sex);

  break;

  }

  case 4:

  {

  printf("

  请输入你改的新年龄:");

  scanf("%d",&stu[i].age);

  break;

  }

  case 5:

  {

  printf("

  请输入你改的新班级:");

  scanf("%s",stu[i].classs);

  break;

  }

  case 6:

  {

  printf("

  请输入你改的新宿舍:");

  scanf("%d",&stu[i].dorm);

  break;

  }

  case 7:

  {

  printf("

  请输入你改的新入住时间:");

  scanf("%d %d",&stu[i].year,&stu[i].month);

  break;

  }

  }

  printf("修改成功!");

  Sleep(500);

  printf("

  学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%d/%d

  ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);

  m=1;

  break;

  }

  }

  }

  }

  if(m==0)

  {

  printf("对不起,此学生信息不存在!

  ");

  }

  printf("按任意键返回主菜单!");

  getch();

  return ;

  }

  //删除学生信息

  void deletee(students stu[])

  {

  char name1[20];

  int i,j,m=0;

  printf("请输入学生姓名:");

  scanf("%s",name1);

  printf("

  ");

  printf("正在查找是否存在此学生信息.....

  ");

  Sleep(1000);

  for(i=0;i

  {

  if(strcmp(stu[i].name,name1)==0)

  {

  m=1;

  printf("已找到此学生信息!

  删除中....

  ");

  Sleep(2000);

  for(j=i;j

  {

  strcpy(stu[j].name,stu[j+1].name);

  strcpy(stu[j].sex,stu[j+1].sex);

  strcpy(stu[j].classs,stu[j+1].classs);

  stu[j].age=stu[j+1].age;

  stu[j].dorm=stu[j+1].dorm;

  stu[j].number=stu[j+1].number;

  stu[j].year=stu[j+1].year;

  stu[j].month=stu[j+1].month;

  }

  k--;

  printf("删除成功!

  ");

  }

  }

  if(m==0)

  {

  printf("此学生信息不存在!

  ");

  }

  printf("按任意键返回主菜单!");

  getch();

  system("cls");

  return ;

  }

  //保存学生住宿信息

  void preservation(students stu[])

  {

  int i;

  FILE  *fp;

  if((fp=fopen("学生宿舍信息.txt","w"))==NULL)

  {

  printf("未发现学生宿舍信息!

  ");

  printf("按任意键返回...

  ");

  getch();

  system("cls");

  return ;

  }

  else

  {

  for(i=0;i

  {

  fprintf(fp,"

  学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%d/%d

  ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);

  }

  fclose(fp);

  printf("正在保存文件....

  ");

  Sleep(1000);

  printf("文件保存成功!

  ");

  printf("按任意键返回...

  ");

  getch();

  system("cls");

  return ;

  }

  }

  //读取学生住宿信息

  void read(students stu[])

  {

  FILE *fp;

  char ch;

  if((fp=fopen("学生宿舍信息.txt","r"))==NULL)

  {

  printf("文件无法打开!

  ");

  exit(0);

  }

  printf("正在读入文件...

  ");

  Sleep(1000);

  printf("文件读入成功!

  ");

  ch=fgetc(fp);

  while(!feof(fp))

  {

  putchar(ch);

  ch=fgetc(fp);

  }

  printf("

  ");

  fclose(fp);

  printf("按任意键返回...

  ");

  getch();

  system("cls");

  return ;

  }

  void title()

  {

  printf("

  **********************************

  ");

  printf("                   *                                *

  ");

  printf("                   *                                *

  ");

  printf("                   *                                *

  ");

  printf("                   *  欢迎进入学生宿舍信息管理系统  *

  ");

  printf("                   *                                *

  ");

  printf("                   *                                *

  ");

  printf("                   *                                *

  ");

  printf("                   **********************************

  ");

  printf("

  按任意键进入系统!

  ");

  getch();

  }

  void start()

  {

  students stu[20];

  int choose,k;

  while(choose!=0)

  {

  system("cls");

  printf("

  ********学生宿舍信息管理系统********

  ");

  printf("                      1. 创建学生宿舍信息

  ");

  printf("                      2. 显示学生宿舍信息

  ");

  printf("                      3. 查询学生宿舍信息

  ");

  printf("                      4. 修改学生宿舍信息

  ");

  printf("                      5. 删除学生宿舍信息

  ");

  printf("                      6. 保存学生宿舍信息

  ");

  printf("                      7. 读取学生宿舍信息

  ");

  printf("                      0. 退出系统

  ");

  printf("                       请选择(0-7):");

  while((scanf("%d",&choose))!=EOF)

  {

  if(choose<0||choose>7)

  {

  printf("对不起,输入错误,请重新输入:");

  }

  else

  {

  switch(choose)

  {

  case 1: k=establish(stu); break;//创建学生宿舍信息

  case 2: display( stu) ; break;//显示学生宿舍信息

  case 3: query(stu); break;//查询学生宿舍信息

  case 4: modify(stu); break;//修改学生宿舍信息

  case 5: deletee(stu); break;//删除学生宿舍信息

  case 6: preservation(stu); break;//保存学生宿舍信息

  case 7: read(stu);break;//读取学生宿舍信息

  case 0: break;

  }

  break;

  }

  }

  }

  }

  int main()

  {

  title();

  start();

  return 0;

  }