C语言实现学生学籍管理系统程序设计

  #include

  #include

  #include    //头文件

  #define LEN 20        //学号和姓名最大字符数,20

  #define N 50        //最大的学生人数

  int M = 0;//当前已经有的学生数量

  //函数声明

  void insert();  //录入学生信息

  void modify();  //修改学生信息

  void search();  //查询学生信息

  void menu();    //主菜单函数

  void save();    //保存学生信息

  void jiguanbiao();  //输出学生籍贯信息

  void xueji();   //查询学生学籍变化信息

  //结构体保存学生信息

  struct student{

  long int Id;  //学号

  char Name[LEN+1];    //姓名

  char Sex[LEN+1];    //性别

  int  Age;     //年龄

  char BirthPlace[LEN+1];    //籍贯

  char YuanXi[LEN+1];          //院系

  char ZhuanYe[LEN+1];        //专业

  int  BanJi;      //班级

  char xueji[LEN+1];//学籍变化信息

  }stu[N];

  //主函数

  int main()

  {

  while (1)

  {

  menu();

  }

  system("pause");

  return 0;

  }

  void menu()//菜单函数

  {

  int num;

  printf("

  ");

  printf("——————————————————————————

  ");

  printf("*************欢迎使用学生信息管理系统***************

  ");

  printf("*                                                  *

  ");

  printf("********************系统功能菜单********************

  ");

  printf("*                                                  *

  ");

  printf("*                 1.添加学生信息                   *

  ");

  printf("*                 2.修改学生信息                   *

  ");

  printf("*                 3.查找学生信息                   *

  ");

  printf("*                 4.输出学生籍贯表                 *

  ");

  printf("*                 5.保存信息到文件                 *

  ");

  printf("*                 6.查看学生学籍变化               *

  ");

  printf("*                 7.退出系统                       *

  ");

  printf("——————————————————————————

  ");

  printf("请选择菜单编号:");

  scanf("%d", &num);

  switch (num)

  {

  case 1:

  printf("Input student number(M<=50):

  ");

  scanf("%d", &M);

  insert();

  break;

  case 2:

  modify();

  break;

  case 3:

  search();

  break;

  case 4:

  jiguanbiao();

  break;

  case 5:

  save();

  break;

  case 6:

  xueji();

  break;

  case 7:

  printf("退出程序成功!

  ");

  exit(0);

  default:

  printf("请在1-8之间选择

  ");

  system("pause");//提示完成之后显示按任意键继续

  }

  }

  void insert()//添加学生信息

  {    int i;

  for(i=1;i<=M;i++)

  {

  printf("请输入第%d个学生的学号:",i);

  scanf("%ld",&stu[i].Id);

  printf("请输入第%d个学生的姓名:",i);

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

  printf("请输入第%d个学生的性别:",i);

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

  printf("请输入第%d个学生的年龄:",i);

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

  printf("请输入第%d个学生的籍贯:",i);

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

  printf("请输入第%d个学生的学院:",i);

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

  printf("请输入第%d个学生的专业:",i);

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

  printf("请输入第%d个学生的班级:",i);

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

  printf("请输入第%d个学生的学籍(如入学、转专业、退学、降级、休学、毕业):",i);

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

  }

  printf("学生信息添加完毕!请立即保存数据信息到文件!");

  }

  void modify()//修改学生信息

  {

  int i, item;

  long int a;

  printf("请输入要修改学生的学号:

  ");

  scanf("%ld",&a);

  for (i=1; i<=M; i++)

  {

  if (stu[i].Id==a)

  {

  printf("1.修改名字:

  ");

  printf("2.修改性别:

  ");

  printf("3.修改年龄:

  ");

  printf("4.修改籍贯:

  ");

  printf("5.修改学院:

  ");

  printf("6.修改专业:

  ");

  printf("7.修改班级:

  ");

  printf("8.修改学籍

  ");

  printf("0.End of program!

  ");

  while (1)

  {

  printf("please choose:");

  scanf("%d", &item);

  switch (item)

  {

  case 1:

  printf("Please input new name:

  ");

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

  break;

  case 2:

  printf("Please input sex:

  ");

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

  break;

  case 3:

  printf("Please input new age:

  ");

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

  break;

  case 4:

  printf("Please input BirthPlace:

  ");

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

  break;

  case 5:

  printf("Please input new yuanxi:

  ");

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

  break;

  case 6:

  printf("Please input new zhuanye:

  ");

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

  break;

  case 7:

  printf("Please input new banji:

  ");

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

  break;

  case 8:

  printf("Please input new xueji:

  ");

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

  break;

  default: printf("Input error!

  ");

  }

  if (item == 0)

  break;

  }

  }

  }

  }

  void search()  //查找已知学号的学生信息

  {

  long int b,term=-1;

  int i;

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

  scanf("%ld",&b);

  for (i=1; i<=M; i++)

  {

  if (stu[i].Id==b)

  {

  printf("学号:%ld  姓名:%s  性别:%s  年龄:%d  籍贯:%s  学院:%s  专业:%s  班级:%d  学籍:%s

  ",stu[i].Id,stu[i].Name,stu[i].Sex,stu[i].Age,stu[i].BirthPlace,stu[i].YuanXi,stu[i].ZhuanYe,stu[i].BanJi,stu[i].xueji);

  term=-2;

  }

  }

  if(term!=-2)

  {

  printf("Not found!

  ");

  }

  }

  void jiguanbiao()//按学号和专业输出学生籍贯表

  {

  int i;

  FILE *fp;

  fp=fopen("student.txt","r");

  printf("********************学生籍贯表*********************

  ");

  printf("学号      姓名       籍贯

  ");

  for(i=1;i<=M;i++)

  {

  printf("%ld        %s         %s

  ",stu[i].Id,stu[i].Name,stu[i].BirthPlace);

  }

  fclose(fp);

  }

  void save()//保存学生信息到文件

  {

  int i;

  FILE *fp;

  fp=fopen("student.txt","w");//在工程路径下创建名为“student.txt”的记事本

  for(i=1;i<=M;i++)

  {

  fprintf(fp,"%ld         %s         %s         %d        %s         %s         %s         %d       %s

  ",stu[i].Id,stu[i].Name,stu[i].Sex,stu[i].Age,stu[i].BirthPlace,stu[i].YuanXi,stu[i].ZhuanYe,stu[i].BanJi,stu[i].xueji);

  }

  fclose(fp);

  printf("学生信息保存成功!");

  }

  void xueji()   //查询学生学籍变化信息

  {

  long int c,t=-1;

  int i;

  printf("请输入要查询学生的学号:");

  scanf("%ld",&c);

  for (i=1; i<=M; i++)

  {

  if (c==stu[i].Id)

  {

  printf("学号:%ld  姓名:%s   学籍:%s

  ",stu[i].Id,stu[i].Name,stu[i].xueji);

  t=-2;

  }

  }

  if(t!=-2)

  printf("Not found!

  ");

  }