C语言实现学生信息管理系统(文件版)

本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下

下面是我自己用写的学生信息管理系统,为了增加数据的利用率,分为学生端和教师端,同时实现账号密码登录,以文件的形式将其存入。

代码如下

#include <stdio.h>
#include <string.h>
#include <string>
#include<Windows.h>
#define USER "TOM"  // 事先定义用户名,用于登录页面,验证身份。
#define PW "123456789" // 事先定义密码 ,作用同上。
void Level_menu();//主菜单的声明--选择学生端还是老师端。
void Level_2_menu(); //二级菜单——具体功能分化
void Student_add_Level_3_menu();// 增添学生信息菜单功能分化
void Student_Insert(); //添加单个学生信息
void Student_Insert1(); /*为上面批量输入设置的函数,其代码与上面的
         单个输入相似,删减了一部分*/

void Student_Tongji_menu();//统计菜单部分
void Student_Tongji_menu2();//统计二级菜单
void Student_Tongji_menu3();//统计
void IO_ReadInfo();/*将学生信息从文件(student database.txt)中读出*/
void IO_WriteInfo();/*将学生信息写入文件(Database.txt)*/
void student_Delete_menu(); /*删除学生信息菜单*/
void student_menu1();/*学生查询课程信息菜单*/
void student_Kecheng_menu2();
void Student_From_high_to_low1(); /*按综合测评从高到低排序*/
void jiangxue_menu();/*奖学金评定办法*/
void Student_Display2();/*显示学生信息2在奖学金评定时使用*/

/*定义学生结构体*/
struct Student
{
  char ID[20];  //学号
  char Name[20];  //姓名
  char sushe[6];  //宿舍房间号
 float mathA1;  //高等数学成绩
 float EnglishA1; //大学英语成绩
 float software;  //软件技术导论
 float china_history;//中国近代史纲要
 float junshi;  //军事教育
 float xinli;  //心理健康辅导
 float sports;  //体育*/
  float C_Mark;  //C语言程学设计成绩
  float pingjun;  //总学分
 float Banzhuren; //班主任评分
 float Cepingfen; //测评分
};

/*声明学生数组及学生数量*/
struct Student students[1000];
int num=0;
int Num; 

/*通过学号返回数组下标*/
int Student_SearchByIndex(char id[])
{
 int i;
 for (i=0;i<num;i++)
 {
  if (strcmp(students[i].ID,id)==0)
  {
   return i;
  }
 }
 return -1;
}

/*通过姓名返回数组下标*/
int Student_SearchByName(char name[])
{
 int i;
 for (i=0;i<num;i++)
 {
  if (strcmp(students[i].Name,name)==0)
  {
   return i;
  }
 }
 return -1;
} 

/*通过宿舍成员返回数组下标*/
void Student_SearchBySushe()

{
 system("cls");
 system("color f0");
 int i;
 char Sushe[6] ;
 printf("请输入你想要查询的宿舍房间号: ");
 scanf("%s",&Sushe);
 printf("%10s%10s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","学号","姓名","宿舍号","高等数学","大学英语","软件技术导论","中国近代史","军事教育","心理健康教育","大学体育","C语言成绩","总学分","班主任评分","测评分");
 printf("------------------------------------------------------------------------------------------------------------------------\n"); 

 for (i=0;i<num;i++)
 {
  if (strcmp(students[i].sushe,Sushe)==0)
  {
   printf("%10s%10s%5s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[i].ID,students[i].Name,students[i].sushe,students[i].mathA1,students[i].EnglishA1,students[i].software,students[i].china_history,students[i].junshi,students[i].xinli,students[i].sports,students[i].C_Mark,students[i].pingjun,students[i].Banzhuren,students[i].Cepingfen);
  }

 } 

 printf("数据加载完毕!");
 Student_Tongji_menu2();

} 

/*显示单条学生记录*/
void Student_DisplaySingle(int index)
{
 printf("%10s%10s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","学号","姓名","宿舍号","高等数学","大学英语","软件技术导论","中国近代史","军事教育","心理健康教育","大学体育","C语言成绩","品行分");
 printf("------------------------------------------------------------------------------------------------------------------------\n");
 printf("%10s%10s%5s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[index].ID,students[index].Name,students[index].sushe,students[index].mathA1,students[index].EnglishA1,students[index].software,students[index].china_history,students[index].junshi,students[index].xinli,students[index].sports,students[index].C_Mark,students[index].pingjun);
} 

/*增加单条学生记录*/
void Student_Insert()
{
 system("cls");
 system("color f0");
 float a1,a2,a3,a4,a5,a6,a7,a8;
 float j=0;
 while(1)
 {
  printf("请输入学号:");
  scanf("%s",&students[num].ID);
  getchar();
  printf("请输入姓名:");
  scanf("%s",&students[num].Name);
  getchar();
 printf("请输入宿舍号:");
  scanf("%s",&students[num].sushe);
  getchar();
 printf("请输入高等数学成绩:");
  scanf("%f",&students[num].mathA1);
  getchar();
  if (59<students[num].mathA1 && students[num].mathA1<100) 

   a8= 1.5;  

  else

   a8=0;

 printf("请输入大学英语成绩:");
  scanf("%f",&students[num].EnglishA1);
  getchar();
  if (59<students[num].EnglishA1 && students[num].EnglishA1<100) 

   a1= 2;  

   else

   a1=0;

 printf("请输入软件技术导论成绩:");
  scanf("%f",&students[num].software);
  getchar();
  if (59<students[num].software && students[num].software<100) 

   a2= 1.5;  

   else

   a2=0;

 printf("请输入中国近代史纲要成绩:");
  scanf("%f",&students[num].china_history);
  getchar();
  if (59<students[num].china_history && students[num].china_history<100) 

   a3= 2.5;  

   else

   a3=0;

 printf("请输入军事教育:");
  scanf("%f",&students[num].junshi);
  getchar();
  if (59<students[num].junshi && students[num].junshi<100) 

   a4= 2;  

   else
  {
   a4=0;
 }

 printf("请输入心理健康教育成绩:");
  scanf("%f",&students[num].xinli);
  getchar();
  if (59<students[num].xinli && students[num].xinli<100) 

   a5= 1.5;  

   else

   a5=0;

 printf("请输入体育成绩:");
  scanf("%f",&students[num].sports);
  getchar();
  if (59<students[num].sports && students[num].sports<100) 

   a6= 2;  

   else

   a6=0;

 printf("请输入C语言成绩:");
  scanf("%f",&students[num].C_Mark);
  getchar();
  if (59<students[num].C_Mark && students[num].C_Mark<100) 

   a7= 3.5;  

   else

   a7=0;

  printf("请输入班主任评分:");
  scanf("%f",&students[num].Banzhuren);
  getchar();
  students[num].pingjun=a1+a2+a3+a4+a5+a6+a7+a8; //总学分 

  j=(students[num].pingjun*0.4)+(students[num].Banzhuren*0.6);
  students[num].Cepingfen=j;
  num++;

  printf("是否继续?(Y/N),继续请按任意键,否则输入N:");
  if (getchar()=='N')
  {
   Num=num;
   break;
  }
  }
}  

 /*批量添加学生记录*/
void Student_many1()
{
 {
  system("cls");
  system("color f0");
  int i,j;
  printf("请输入你将要添加的人员数: ");
  scanf("%d",&j);
 for(i=0;i<j;i++)
 {
 Student_Insert1();
 }
 printf("成员添加完毕,是否跳转至上一级菜单?\n");
 printf("是?,请按任意键,确认输入: \n");
  if (getchar()=='Y')
  {
   Student_add_Level_3_menu();
  } 

 }
 }
/*为上面批量输入设置的函数,其代码与上面的
单个输入相似,删减了一部分*/
void Student_Insert1()
{ 

 {
  printf("请输入学号:");
  scanf("%s",&students[num].ID);
  getchar();
  printf("请输入姓名:");
  scanf("%s",&students[num].Name);
  getchar();
 printf("请输入宿舍号:");
  scanf("%s",&students[num].sushe);
  getchar();
 printf("请输入高等数学成绩:");
  scanf("%f",&students[num].mathA1);
  getchar();
 printf("请输入大学英语成绩:");
  scanf("%f",&students[num].EnglishA1);
  getchar();
 printf("请输入软件技术导论成绩:");
  scanf("%f",&students[num].software);
  getchar();
 printf("请输入中国近代史纲要成绩:");
  scanf("%f",&students[num].china_history);
  getchar();
 printf("请输入军事教育:");
  scanf("%f",&students[num].junshi);
  getchar();
 printf("请输入心理健康教育成绩:");
  scanf("%f",&students[num].xinli);
  getchar();
 printf("请输入体育成绩:");
  scanf("%f",&students[num].sports);
  getchar();
 printf("请输入C语言成绩:");
  scanf("%f",&students[num].C_Mark);
  getchar();
  printf("请输入班主任评分:");
  scanf("%f",&students[num].Banzhuren);
  getchar();
  if (54<students[num].C_Mark && students[num].C_Mark< 60) //把55~59分之间的成绩都加上5分
  {
   students[num].C_Mark += 5;
  }

  num++;
  }
}
/*修改学生信息*/
void Student_Modify()
{
 system("cls");
 system("color f0");
 float a1,a2,a3,a4,a5,a6,a7,a8;
 float j=0;
 while(1)
 {
  char id[20];
  int index;
  printf("请输入要修改的学生的学号:");
  scanf("%s",&id);
  getchar();
  index=Student_SearchByIndex(id);
  if (index==-1)
  {
   printf("该学生不存在!\n");
   }
  else
  {
   printf("你要修改的学生信息为:\n");
   Student_DisplaySingle(index);
   printf("-- 请输入新值--\n");
   /*printf("请输入学号:");
   scanf("%s",&students[index].ID);
   getchar();
   printf("请输入姓名:");
   scanf("%s",&students[index].Name);
   getchar();
 printf("请输入宿舍号:");
   scanf("%s",&students[index].sushe);
   getchar();
  printf("请输入高等数学成绩:");
   scanf("%f",&students[index].mathA1);
   getchar();
  printf("请输入大学英语成绩:");
   scanf("%f",&students[index].EnglishA1);
   getchar();
  printf("请输入软件技术导论成绩:");
   scanf("%f",&students[index].software);
   getchar();
  printf("请输入中国近代史纲要成绩:");
   scanf("%f",&students[index].china_history);
   getchar();
  printf("请输入军事教育:");
   scanf("%f",&students[index].junshi);
   getchar();
  printf("请输入心理健康教育成绩:");
   scanf("%f",&students[index].xinli);
   getchar();
  printf("请输入体育成绩:");
   scanf("%f",&students[index].sports);
   getchar();
   printf("请输入C语言成绩:");
   scanf("%f",&students[index].C_Mark);
   getchar();
 printf("请输入班主任评分:");
   scanf("%f",&students[num].Banzhuren);
   getchar();*/
 printf("请输入学号:");
  scanf("%s",&students[index].ID);
  getchar();
  printf("请输入姓名:");
  scanf("%s",&students[index].Name);
  getchar();
 printf("请输入宿舍号:");
  scanf("%s",&students[index].sushe);
  getchar();
 printf("请输入高等数学成绩:");
  scanf("%f",&students[index].mathA1);
  getchar();
  if (59<students[index].mathA1 && students[index].mathA1<100) 

   a8= 1.5;  

  else

   a8=0;

 printf("请输入大学英语成绩:");
  scanf("%f",&students[index].EnglishA1);
  getchar();
  if (59<students[index].EnglishA1 && students[index].EnglishA1<100) 

   a1= 2;  

   else

   a1=0;

 printf("请输入软件技术导论成绩:");
  scanf("%f",&students[index].software);
  getchar();
  if (59<students[index].software && students[index].software<100) 

   a2= 1.5;  

   else

   a2=0;

 printf("请输入中国近代史纲要成绩:");
  scanf("%f",&students[index].china_history);
  getchar();
  if (59<students[index].china_history && students[index].china_history<100) 

   a3= 2.5;  

   else

   a3=0;

 printf("请输入军事教育:");
  scanf("%f",&students[index].junshi);
  getchar();
  if (59<students[index].junshi && students[index].junshi<100) 

   a4= 2;  

   else
  {
   a4=0;
 }

 printf("请输入心理健康教育成绩:");
  scanf("%f",&students[index].xinli);
  getchar();
  if (59<students[index].xinli && students[index].xinli<100) 

   a5= 1.5;  

   else

   a5=0;

 printf("请输入体育成绩:");
  scanf("%f",&students[index].sports);
  getchar();
  if (59<students[index].sports && students[index].sports<100) 

   a6= 2;  

   else

   a6=0;

 printf("请输入C语言成绩:");
  scanf("%f",&students[index].C_Mark);
  getchar();
  if (59<students[index].C_Mark && students[index].C_Mark<100) 

   a7= 3.5;  

   else

   a7=0;

  printf("请输入班主任评分:");
  scanf("%f",&students[index].Banzhuren);
  getchar();
  students[index].pingjun=a1+a2+a3+a4+a5+a6+a7+a8; //总学分 

  j=(students[index].pingjun*0.4)+(students[index].Banzhuren*0.6);
  students[index].Cepingfen=j; 

   } 

   printf("是否继续?(Y/N),继续请按任意键,否则输入N:");
   if (getchar()=='N')
   {
   break;
   } 

  } 

} 

/*按学号删除学生信息*/
void Student_Delete()
{
 system("cls");
 system("color f0");
 IO_ReadInfo();
 int i;
 while(1)
 {
  char id[20];
  int index;
  printf("请输入要删除的学生的学号:");
  scanf("%s",&id);
  getchar();
  index=Student_SearchByIndex(id);
  if (index==-1)
  {
   printf("学生不存在!\n");
  }
  else
  {
   printf("你要删除的学生信息为:\n");
   Student_DisplaySingle(index);
   printf("%d",index);
   printf("%d",num);
   {
    for (i=index;i<num-1;i++)
    {
     students[i]=students[i+1];  //把后边的对象都向前移动
    }

    num--;
    }
   printf("已删除\n");

    IO_WriteInfo();
   } 

   printf("是否继续删除?(Y/N),继续请按任意键,否则输入N:");
   if (getchar()=='N')
   {
   break;
   }
  }
} 

/*按姓名删除学生信息*/
void Student_Delete_1()
{
 system("cls");
 system("color f0");
 IO_ReadInfo();
 int i;
 while(1)
 {
  char name[20];
  int index;
  printf("请输入要删除的学生的姓名: ");
  scanf("%s",&name);
  getchar();
  index=Student_SearchByName(name);
  if (index==-1)
  {
   printf("学生不存在!\n");
  }
  else
  {
   printf("你要删除的学生信息为:\n");
   Student_DisplaySingle(index);
   {
    for (i=index;i<num-1;i++)
    {
     students[i]=students[i+1];  //把后边的对象都向前移动
    }

    num--;
    }
   printf("已删除\n");

    IO_WriteInfo();
   } 

   printf("是否继续删除?(Y/N),继续请按任意键,否则输入N:");
   if (getchar()=='N')
   {
   break;
   }
  }
} 

/*按姓名查询*/
void Student_Select_1()
{
 while(1)
 {
  char name[20];
  int index; 

  printf("请输入要查询的学生的姓名:");
  scanf("%s",&name);
  getchar();
  index=Student_SearchByName(name); 

  if (index==-1)
  {
   printf("学生不存在!\n");
  }
  else
  {
   printf("你要查询的学生信息为:\n");
   Student_DisplaySingle(index);
  } 

  printf("是否继续?(Y/N),继续请按任意键,否则输入N:");
  if (getchar()=='N')
  {
   break;
  } 

  }
}
/*按学号查找*/
void Student_Select_2()
{
 while(1)
 {
  char ID[20];
  int index;

  system("cls");
  system("color f0");
  printf("请输入要查询的学生的学号:");
  scanf("%s",&ID);
 getchar();
 index=Student_SearchByIndex(ID);

  if (index==-1)
  {
   printf("学生不存在!\n");
  }
  else
  {
   printf("你要查询的学生信息为:\n");
   Student_DisplaySingle(index);
  } 

  printf("是否继续?(Y/N),继续请按任意键,否则输入N:");
  if (getchar()=='N')
  {
   break;
  } 

  }

}

void Student_Search_menu()
{
  int choice;
   while(1)
 {
 system("cls");
  system("color f0");
 printf("\t\t\t\t\t\t1. 按姓名查询学生记录\n");
   printf("\t\t\t\t\t\t2. 按学号查询学生记录\n");
   printf("\t\t\t\t\t\t3. 返回上一级菜单\n");
 printf("\t\t\t\t\t\t4. 返回主菜单\n");
 printf("\t\t\t\t\t\t请选择(1-4):");
 scanf("%d",&choice);
   getchar();
 switch(choice)
 {
  case 1:Student_Select_1();
   break;

  case 2:Student_Select_2();
   break;

  case 3:Level_2_menu();
   break;

 case 4:Level_menu();
     break;

 }
 } 

}

/*按C语言成绩从高到低排序*/
void Student_From_high_to_low()
{
 int i,j;
 struct Student tmp; 

 for (i=0;i<num;i++)
 {
  for (j=1;j<num-i;j++)
  {
   if (students[j-1].C_Mark<students[j].C_Mark)
   {
    tmp=students[j-1];
    students[j-1]=students[j];
    students[j]=tmp;
   }
  }
 }
} 

/*按C语言成绩从低到高排序*/
void Student_From_low_to_high()
{
  int i,j;
 struct Student tmp; 

 for (i=0;i<num;i++)
 {
  for (j=1;j<num-i;j++)
  {
   if (students[j-1].C_Mark>students[j].C_Mark)
   {
    tmp=students[j-1];
    students[j-1]=students[j];
    students[j]=tmp;
   }
  }
 } 

} 

/*按综合测评从高到低排序*/
void Student_From_high_to_low1()
{
 int i,j,k;
 struct Student tmp; 

 for (i=0;i<num;i++)
 {
  for (j=1;j<num-i;j++)
  {
   if (students[j-1].Cepingfen<students[j].Cepingfen)
   {
    tmp=students[j-1];
    students[j-1]=students[j];
    students[j]=tmp;
   }
  }
 }

 /*system("cls");
 system("color f0");
 while(1)
 {
 int k;
 printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","学号","姓名","宿舍号"," 高等数学","大学英语","软件技术导论","中国近代史","军事教育","心理健康教育","大学体育","C语言成绩","品行分","班主任评分","测评分");
 printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n");
 for (k=0;k<num;k++)
 {
 if(59<students[k].mathA1&&students[k].mathA1<101&&59<students[k].EnglishA1&&students[k].EnglishA1<101&&59<students[k].software&&students[k].software<101&&59<students[k].china_history&&students[k].china_history<101&&59<students[k].junshi&&students[k].junshi<101&&59<students[k].xinli&&students[k].xinli<101&&59<students[k].sports&&students[k].sports<101&&59<students[k].C_Mark&&students[k].C_Mark<101);
  {
 printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[k].ID,students[k].Name,students[k].sushe,students[k].mathA1,students[k].EnglishA1,students[k].software,students[k].china_history,students[k].junshi,students[k].xinli,students[k].sports,students[k].C_Mark,students[k].pingjun,students[k].Banzhuren,students[k].Cepingfen);
  }
 }
  printf("数据加载完毕!");
 jiangxue_menu();
  Student_Tongji_menu3();

 } */
}

/*奖学金评定办法*/
void jiangxue_menu()
{
 float i=0,j=0,k=0;
 int a,b,c;
 i=num*0.1;
 j=num*0.15;
 k=num*0.2;
 a=(int)i;
 b=(int)j;
 c=(int)k;
 printf("一等奖获得人数为:%d\n",a);
 printf("二等奖获奖人数为:%d\n",b);
 printf("三等奖获奖人数为:%d\n",c);

}
//对奖学金及格的人员筛选出来
void jiangxue()
{
 system("cls");
 system("color f0");
 while(1)
 {
 int k;
 printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","学号","姓名","宿舍号"," 高等数学","大学英语","软件技术导论","中国近代史","军事教育","心理健康教育","大学体育","C语言成绩","品行分","班主任评分","测评分");
 printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n");
 for (k=0;k<num;k++)
 {
 if(59<students[k].mathA1&&students[k].mathA1<101&&59<students[k].EnglishA1&&students[k].EnglishA1<101&&59<students[k].software&&students[k].software<101&&59<students[k].china_history&&students[k].china_history<101&&59<students[k].junshi&&students[k].junshi<101&&59<students[k].xinli&&students[k].xinli<101&&59<students[k].sports&&students[k].sports<101&&59<students[k].C_Mark&&students[k].C_Mark<101);
  {
 printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[k].ID,students[k].Name,students[k].sushe,students[k].mathA1,students[k].EnglishA1,students[k].software,students[k].china_history,students[k].junshi,students[k].xinli,students[k].sports,students[k].C_Mark,students[k].pingjun,students[k].Banzhuren,students[k].Cepingfen);
  }
 }
  printf("数据加载完毕!");
 jiangxue_menu();
  Student_Tongji_menu3();

 }
}

/*显示学生信息*/
void Student_Display()
{ 

 system("cls");
 system("color f0");
 while(1)
 {
 int i;
 printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","学号","姓名","宿舍号"," 高等数学","大学英语","软件技术导论","中国近代史","军事教育","心理健康教育","大学体育","C语言成绩","品行分");
 printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n");
 for (i=0;i<num;i++)
 {
 printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[i].ID,students[i].Name,students[i].sushe,students[i].mathA1,students[i].EnglishA1,students[i].software,students[i].china_history,students[i].junshi,students[i].xinli,students[i].sports,students[i].C_Mark,students[i].pingjun);
 }
  printf("是否继续?(Y/N),继续请按任意键,否则输入N:");
  if (getchar()=='N')
  {
   break;
  }
 }

} 

/*显示学生信息1*/
void Student_Display1()
{ 

 system("cls");
 system("color f0");
 while(1)
 {
 int i;
 printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","学号","姓名","宿舍号"," 高等数学","大学英语","软件技术导论","中国近代史","军事教育","心理健康教育","大学体育","C语言成绩","品行分","班主任评分","测评分");
 printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n");
 for (i=0;i<num;i++)
 {
 printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[i].ID,students[i].Name,students[i].sushe,students[i].mathA1,students[i].EnglishA1,students[i].software,students[i].china_history,students[i].junshi,students[i].xinli,students[i].sports,students[i].C_Mark,students[i].pingjun,students[i].Banzhuren,students[i].Cepingfen);
 }
  printf("数据加载完毕!");
  Student_Tongji_menu3();

 }

} 

/*显示学生信息2在奖学金评定时使用*/
void Student_Display2()
{ 

 system("cls");
 system("color f0");
 while(1)
 {
 int i;
 printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","学号","姓名","宿舍号"," 高等数学","大学英语","软件技术导论","中国近代史","军事教育","心理健康教育","大学体育","C语言成绩","品行分","班主任评分","测评分");
 printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n");
 for (i=0;i<num;i++)
 {
 printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[i].ID,students[i].Name,students[i].sushe,students[i].mathA1,students[i].EnglishA1,students[i].software,students[i].china_history,students[i].junshi,students[i].xinli,students[i].sports,students[i].C_Mark,students[i].pingjun,students[i].Banzhuren,students[i].Cepingfen);
 }
  printf("数据加载完毕!");
 jiangxue_menu();
  Student_Tongji_menu3();

 }

}
/*将学生信息从文件(student database.txt)中读出*/
void IO_ReadInfo()
{
 FILE *fp;
 int i; 

 if ((fp=fopen("student database.txt","rb"))==NULL)
 {
  printf("不能打开文件!\n");
  return;
 }

 if (fread(&num,sizeof(int),1,fp)!=1)
 {
  num=-1;
 }
 else
 {
  for(i=0;i<num;i++)
  {
   fread(&students[i],sizeof(struct Student),1,fp);
  }
 } 

 fclose(fp);
} 

/*将学生信息写入文件(Database.txt)*/
void IO_WriteInfo()
{
 FILE *fp;
 int i;
 if ((fp=fopen("student database.txt","wb"))==NULL)
 {
  printf("不能打开文件!\n");
  return;
 }
 if (fwrite(&num,sizeof(int),1,fp)!=1)
 {
  printf("写入文件错误!\n");
 }
 for (i=0;i<num;i++)
 {
  if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1)
  {
   printf("写入文件错误!\n");
  }
 }
 fclose(fp);
}
 /*一级菜单*/
 /*账号密码登录*/
void Level_1_menu( )
{ char account[20];
 char password[30];
 int i = 0;
 int j = 3;
 for (; i < 3; i++){
  printf("\n\n\n\n\t\t\t\t\t\t  *主菜单*\n");
 printf("\t\t\t\t\t\t******************\n");
 printf("\t\t\t\t\t\t*请输入您的账号:*\n");
 printf("\t\t\t\t\t\t******************\n");
 printf("            请输入:");
 scanf ("%s", account);
 printf("\t\t\t\t\t\t******************\n");
 //scanf ("%s", account);
 printf("\t\t\t\t\t\t******************\n");
 printf("\t\t\t\t\t\t*请输入您的密码:*\n");
 printf("\t\t\t\t\t\t******************\n");
 printf("            请输入:");
 scanf ("%s", password);
 if (strcmp(USER, account) == 0 && strcmp(PW, password) == 0){
 printf("登录成功!\n");
 break;
 }
 else{
 j--;
 printf("登录失败您还有%d次机会!\n", j);
 }
 }
 if (i == 3){
 printf("登录失败,退出!");
 }
 //system("pause");
 system("cls");
 system("color f0");
}
/*增加学生信息三级菜单模块*/ 

void Student_add_Level_3_menu()
 {
  int choice;
   while(1)
 {
 system("cls");
  system("color f0");
  IO_ReadInfo();  //读取文件
 printf("\t\t\t\t\t\t1. 单个添加学生信息\n");
   printf("\t\t\t\t\t\t2. 批量添加学生信息\n");
   printf("\t\t\t\t\t\t3. 返回上一级菜单\n");
 printf("\t\t\t\t\t\t4. 返回主菜单\n");
 printf("\t\t\t\t\t\t请选择(1-4):");
 scanf("%d",&choice);
   getchar();
 switch(choice)
 {
  case 1:Student_Insert();
   IO_WriteInfo();  //写入文件
   break;

  case 2:Student_many1();
   IO_WriteInfo();  //写入文件
   break;

  case 3:Level_2_menu();
   break;

 case 4:Level_menu();
     break;

 }
 IO_WriteInfo();  //写入文件
 }
   //Student_Insert(); 

 }

  /*二级菜单*/
  /*主菜单*/
void Level_2_menu( )
{
int choice;
 while(1)
 {
  /*二级菜单*/
  /*主菜单*/
 system("cls");
  system("color f0");
 IO_ReadInfo();  //读取文件
  printf("\n\t\t\t\t\t\t------ 学生成绩管理系统------\n");
  printf("\t\t\t\t\t\t1. 增加学生记录\n");
  printf("\t\t\t\t\t\t2. 修改学生记录\n");
  printf("\t\t\t\t\t\t3. 删除学生记录\n");
 printf("\t\t\t\t\t\t4. 查询学生记录\n");
  printf("\t\t\t\t\t\t5. 统计学生记录\n");
  printf("\t\t\t\t\t\t6. 退出\n");
  printf("\t\t\t\t\t\t请选择(1-6):"); 

  scanf("%d",&choice);
  getchar(); 

  switch(choice)
  {
  case 1:
   Student_add_Level_3_menu();
   break; 

  case 2:
   Student_Modify();
   break; 

  case 3:
   student_Delete_menu();
   break; 

  case 4:
   Student_Search_menu();
   break; 

  case 5:
  Student_Tongji_menu();
 break; 

  case 6:
   Level_menu();
   break;

  }
 IO_WriteInfo();
 }
}

/*学生端成绩查询模块*/
void student_Delete_menu()
{
 int choice;
 while(1)
 {
 system("cls");
  system("color f0");
  IO_ReadInfo();  //读取文件
 printf("\n\n\n\n\t\t\t\t\t\t************************\n");
  printf("\t\t\t\t\t\t* 删除学生信息菜单******\n");
 printf("\t\t\t\t\t\t************************\n");
  printf("\t\t\t\t\t\t*1、按姓名删除信息  *\n");
 printf("\t\t\t\t\t\t*2、按学号删除信息  *\n");
 printf("\t\t\t\t\t\t*3、返回上一级功能菜单 *\n");
 printf("\t\t\t\t\t\t*4、返回主菜单   *\n");
 printf("\t\t\t\t\t\t************************\n");
 printf("\t\t\t\t\t\t************************\n");
 printf("            请选择(1-4):");
 scanf("%d",&choice);

 switch(choice)
  {
  case 1:
  system("cls");
   system("color f0");
    Student_Delete_1();
    break;
  case 2:
   system("cls");
   system("color f0");
   Student_Delete();
   break;
  case 3:
    Level_2_menu();
    break;

  case 4:
    Level_menu();
    break;
  }

 IO_WriteInfo();
 }
 }

/*学生端成绩查询模块*/
void student_menu()
{
 int choice;
 while(1)
 {
 system("cls");
  system("color f0");
  IO_ReadInfo();  //读取文件
 printf("\n\n\n\n\t\t\t\t\t\t*******************\n");
  printf("\t\t\t\t\t\t*  学生菜单 *\n");
 printf("\t\t\t\t\t\t*******************\n");
  printf("\t\t\t\t\t\t*1、按姓名查询成绩*\n");
 printf("\t\t\t\t\t\t*2、按学号查询成绩*\n");
 printf("\t\t\t\t\t\t*3、查询课程信息 *\n");
 printf("\t\t\t\t\t\t*4、退出   *\n");
 printf("\t\t\t\t\t\t*******************\n");
 printf("\t\t\t\t\t\t*******************\n");
 printf("            请选择(1-3):");
 scanf("%d",&choice);

 switch(choice)
  {
  case 1:
  system("cls");
   system("color f0");
    Student_Select_1();
    break;
  case 2:
   Student_Select_2();
   break;

  case 3:
    student_menu1();
  break; 

  case 4:
    Level_menu();
    break;
  }

 IO_WriteInfo();
 }
 }

void student_Kecheng_menu1()
{ printf("\n\n\n\n\t\t\t\t\t\t************************************************\n");
 printf("\t\t\t\t\t\t* 课程代号  课程名称  学分 必修/选修*\n");
 printf("\t\t\t\t\t\t*B27020100 中国近现代史纲要 2.0  必修 *\n");
 printf("\t\t\t\t\t\t*B10060111 大学英语A1   4.0  必修 *\n");
 printf("\t\t\t\t\t\t*B14010101 大学体育1   2.0  必修 *\n");
 printf("\t\t\t\t\t\t*B06010111 高等数学A1   5.0  必修 *\n");
 printf("\t\t\t\t\t\t*B08050101 软件技术导论  2.0  必修 *\n");
 printf("\t\t\t\t\t\t*B08010100 C语言程序设计  5.0  必修 *\n");
 printf("\t\t\t\t\t\t*B08010201 C语言程序设计实训1 2.0  必修 *\n");
 printf("\t\t\t\t\t\t*B08056601 创新与指导实践1 1.0  必修 *\n");
 printf("\t\t\t\t\t\t*B21991100 军事教育   2.0  选修 *\n");
 printf("\t\t\t\t\t\t**************************************************\n");
 printf("\t\t\t\t\t\t**************************************************\n");
 printf("\t\t\t\t\t\t1. 返回上一级菜单\n");
 printf("\t\t\t\t\t\t2. 返回主菜单\n");
 printf("\t\t\t\t\t\t请选择(1-2):");
  int choice;
 scanf("%d",&choice);
 while(1) 

 switch(choice)

 {

  case 1:student_menu1();
   break;

 case 2:Level_menu();
     break;

 }
  //写入文件
}

void student_Kecheng_menu2()
{ printf("\n\n\n\n\t\t\t\t\t\t************************************************\n");
 printf("\t\t\t\t\t\t* 课程代号  课程名称  学分 必修/选修*\n");
 printf("\t\t\t\t\t\t*B27010100 思想道德修养  3.0  必修 *\n");
 printf("\t\t\t\t\t\t*B10060112 大学英语A2   4.0  必修 *\n");
 printf("\t\t\t\t\t\t*B14010102 大学体育2   2.0  必修 *\n");
 printf("\t\t\t\t\t\t*B06010112 高等数学A2   5.0  必修 *\n");
 printf("\t\t\t\t\t\t*B08052200 数字逻辑设计  2.0  必修 *\n");
 printf("\t\t\t\t\t\t*B06050131 大学物理C1   2.5  必修 *\n");
 printf("\t\t\t\t\t\t*B06020100 离散数学   4.0  必修 *\n");
 printf("\t\t\t\t\t\t*B08056601 创新与指导实践2 1.0  必修 *\n");
 printf("\t\t\t\t\t\t*B21991100 C语言程序设计实践2 2.0  选修 *\n");
 printf("\t\t\t\t\t\t**************************************************\n");
 printf("\t\t\t\t\t\t**************************************************\n");
 printf("\t\t\t\t\t\t1. 返回上一级菜单\n");
 printf("\t\t\t\t\t\t2. 返回主菜单\n");
 printf("\t\t\t\t\t\t请选择(1-2):");
  int choice;
 scanf("%d",&choice);
 while(1) 

 switch(choice)

 {

  case 1:student_menu1();
   break;

 case 2:Level_menu();
     break;

 }
  //写入文件
}

/*学生端学生课程查询模块*/
void student_menu1()
{
 int choice;
 while(1)
 {
 system("cls");
  system("color f0");
  IO_ReadInfo();  //读取文件
 printf("\n\n\n\n\t\t\t\t\t\t*******************\n");
  printf("\t\t\t\t\t\t*  课程信息 *\n");
 printf("\t\t\t\t\t\t*******************\n");
  printf("\t\t\t\t\t\t*1、第一学期  *\n");
 printf("\t\t\t\t\t\t*2、第二学期  *\n");
 printf("\t\t\t\t\t\t*3、第三学期  *\n");
 printf("\t\t\t\t\t\t*4、第四学期  *\n");
 printf("\t\t\t\t\t\t*5、第五学期  *\n");
 printf("\t\t\t\t\t\t*6、第六学期  *\n");
 printf("\t\t\t\t\t\t*7、第七学期  *\n");
 printf("\t\t\t\t\t\t*8、退出   *\n");
 printf("\t\t\t\t\t\t*******************\n");
 printf("\t\t\t\t\t\t*******************\n");
 printf("            请选择(1-3):");
 scanf("%d",&choice);

 switch(choice)
  {
  case 1:
  system("cls");
   system("color f0");
    student_Kecheng_menu1();
    break;
  case 2:
   system("cls");
   system("color f0");
   student_Kecheng_menu2();
   break;
  case 3:

    break;
  case 4:

    break;
  case 5:

    break;
  case 6:

    break;
  case 7:

    break;
  case 8:
    Level_menu();
    break;

  }

 IO_WriteInfo();
 }
 }

/*统计菜单模块*/
void Student_Tongji_menu()
{
 int choice;
 while(1)
 {
 system("cls");
  system("color f0");
  IO_ReadInfo();  //读取文件
 printf("\n\n\n\n\t\t\t\t\t\t******************************\n");
  printf("\t\t\t\t\t\t*  学生统计菜单  *\n");
 printf("\t\t\t\t\t\t******************************\n");
  printf("\t\t\t\t\t\t*1、按C语言成绩从高到低排序 *\n");
 printf("\t\t\t\t\t\t*2、按C语言成绩从低到高排序 *\n");
 printf("\t\t\t\t\t\t*3、按宿舍成员进行统计  *\n");
 printf("\t\t\t\t\t\t*4、奖学金评定    *\n");
 printf("\t\t\t\t\t\t*5、返回功能菜单    *\n");
 printf("\t\t\t\t\t\t*6、返回主菜单    *\n");
 printf("\t\t\t\t\t\t******************************\n");
 printf("\t\t\t\t\t\t******************************\n");
 printf("            请选择(1-5):");
 scanf("%d",&choice);

 switch(choice)
  {
  case 1:
   Student_From_high_to_low();
   Student_Display1();
   break;

  case 2:
   Student_From_low_to_high();
  Student_Display1();
  break;

 case 3:
   Student_SearchBySushe();
  break;

 case 4:

   Student_From_high_to_low1();
  Student_Display2();
    break;

  case 5:
   Level_2_menu( );
    break;

  case 6:
    Level_menu();
    break;

  }

 IO_WriteInfo();
 }
 }

/*统计菜单模块*/
void Student_Tongji_menu2()
{
 int choice;
 while(1)
 {

  IO_ReadInfo();  //读取文件
 printf("\n\n\n\n\t\t\t\t\t\t******************************\n");
  printf("\t\t\t\t\t\t* 你目前在学生宿舍统计页面! *\n");
 printf("\t\t\t\t\t\t******************************\n");
  printf("\t\t\t\t\t\t*1、返回上一级统计菜单  *\n");
 printf("\t\t\t\t\t\t*2、返回功能选择菜单   *\n");
 printf("\t\t\t\t\t\t*3、返回主菜单    *\n");
 printf("\t\t\t\t\t\t******************************\n");
 printf("\t\t\t\t\t\t******************************\n");
 printf("            请选择(1-3):");
 scanf("%d",&choice);

 switch(choice)
  {
  case 1:
    system("cls");
   system("color f0");
   Student_Tongji_menu(); 

  case 2:
   system("cls");
   system("color f0");
   Level_2_menu( );

 case 3:
   system("cls");
   system("color f0");
   Level_menu();
  }

 }
 }

/*统计菜单模块*/
void Student_Tongji_menu3()
{
 int choice;
 while(1)
 {

  IO_ReadInfo();  //读取文件
 printf("\n\n\n\n\t\t\t\t\t\t******************************\n");
  printf("\t\t\t\t\t\t* 你目前按C语言成绩统计页面!*\n");
 printf("\t\t\t\t\t\t******************************\n");
  printf("\t\t\t\t\t\t*1、返回上一级统计菜单  *\n");
 printf("\t\t\t\t\t\t*2、返回功能选择菜单   *\n");
 printf("\t\t\t\t\t\t*3、返回主菜单    *\n");
 printf("\t\t\t\t\t\t******************************\n");
 printf("\t\t\t\t\t\t******************************\n");
 printf("            请选择(1-3):");
 scanf("%d",&choice);

 switch(choice)
  {
  case 1:
    system("cls");
   system("color f0");
   Student_Tongji_menu(); 

  case 2:
   system("cls");
   system("color f0");
   Level_2_menu( );

 case 3:
   system("cls");
   system("color f0");
   Level_menu();
  }

 }
 } 

/*第一级主菜单学生or老师的判断*/
void Level_menu()
{  int choice;
  while(1)
 {
 system("cls");
  system("color f0");
  printf("\n\n\n\n\n\n\n\t\t\t\t\t\t******************\n");
 printf("\t\t\t\t\t\t*1、教师端  *\n");
 printf("\t\t\t\t\t\t*2、学生端  *\n");
 printf("\t\t\t\t\t\t*3、退出   *\n");
 printf("\t\t\t\t\t\t******************\n");
 printf("            请选择(1-3):");
 scanf("%d",&choice);
 switch(choice)
 {
  case 1:
   system("cls");
   system("color f0");
     Level_1_menu(); //一级菜单,密码登录。
     IO_ReadInfo();   //读取文件
     Level_2_menu(); //二级菜单-主菜单
     IO_WriteInfo();
  break;

 case 2:
  student_menu();
  break;
 case 3:
  exit(0);
     break;
 }
 }
 } 

/***********主程序*********/
main()
{
 Level_menu();
}

关于管理系统的更多内容请点击《管理系统专题》进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言数组实现学生信息管理系统设计

    概述 单纯只用多个数组管理学生成绩信息,不使用结构体,该程序最主要的难点是依据学号或总成绩对学生信息进行排序,借助了临时数组来标记排好序的下标. 运行结果如下: 输入数据: 打印数据: 根据学号对信息进行排序: 根据总成绩对信息进行排序: 根据学号删除某一信息: 代码如下: #include <stdio.h> #include <stdlib.h> //exit函数头文件 #include <string.h> //字符串相关操作头文件 #define MAX_STU

  • C语言使用链表实现学生信息管理系统

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 代码实现的功能: 1.插入学生信息 2.显示学生信息 3.删除学生信息 4.在指定位置插入学生信息 5.查找学生信息 代码内容: #include <stdio.h> #include <stdlib.h> #include <string.h> #define Max_Student_Num 10 #define Max_Str_len 20 typedef struct T_stud

  • C语言学生信息管理系统设计与实现

    本文实例为大家分享了C语言学生信息管理系统的具体代码,供大家参考,具体内容如下 #include"stdio.h" //标准的输入输出函数文件头部说明 #include"math.h" // 数学函数头部说明 #include"string.h" #include"stdlib.h" //通过该函数头部里的函数,改变控制台的背景和颜色 #include"windows.h" //头文件声明,下文用到了改变控

  • C语言实现班级成绩管理系统

    C语言课程设计--班级成绩管理系统,供大家参考,具体内容如下 题目: 对一个有N个学生的班级,每个学生有M门课程.该系统实现对班级成绩的录入.显示.修改.排序.保存等操作的管理.功能 要求: (1)本系统采用一个结构体数组,每个数据的结构应当包括:学号.姓名.M门课程名称. (2)本系统显示这样的菜单: 请选择系统功能项: a.成绩录入 b.成绩显示 c.成绩保存 d.成绩排序 e.成绩修改(要求先输入密码) f.成绩统计 1)显示每门课程成绩最高的学生的基本信息 2)显示每门课程的平均成绩 3

  • C语言数据结构之学生信息管理系统课程设计

    本文实例为大家分享了学生信息管理系统设计的具体代码,供大家参考,具体内容如下 建立一个动态链表,链表中每一结点包括:学号.姓名.性别.年龄.成绩.程序能实现以下功能: 建立链表      显示链表      查找链表中是否存在某个元素,并显示这个元素的所有信息,若没有这个元素则显示"无此记录!"的信息.      删除链表中指定学号的结点.      在链表中指定的位置插入一个新结点(学号不能和其他结点重复). 要求:程序运行中,先显示实现以上功能所构成的菜单,然后根据选项调用相应程序

  • C语言学生信息管理系统小项目

    本文为大家分享了C语言学生信息管理系统小项目,供大家参考,具体内容如下 /* 运行环境:我是在linux里面用gcc编译的,在windows里应该也能运行,用的一些文件库函数都是c标准库,没有用linux的系统调用(纠正一下:system("clear")这个系统调用是linux的,windows里面用system("cls") ) (1)问题描述 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.试设计一学生信息管理系统,使之能提供以下功

  • C语言实现学生信息管理系统(单链表)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年7月1日 * 版本号:codeblock * * 问题描述: 学生信息管理系统 * 输入描述: * 程序输出: 输出结果 */ #include <stdio.h> #include <stdlib.h> #include

  • 学生信息管理系统C语言版

    C语言学生信息管理系统包括以下功能: 1.学生信息的整体注册 2.学生信息的修改 3.学生成绩信息的录入 4.学生信息的添加 5.恢复误删的学生信息 6.学生信息的删除 7.密码修改保存函数 8.学生信息的查询 9.密码修改函数 10.学生信息管理系统的菜单函数 #include "stdio.h" #include "malloc.h" #include "string.h" #include "stdlib.h" #inc

  • C语言单链表版学生信息管理系统

    本文实例为大家分享了C语言学生信息管理系统的具体代码,供大家参考,具体内容如下 代码: //以单链表作为存储结构,设计和实现课程成绩管理的完整程序. //程序包括如下功能. //1.建立学生成绩表,包含学生的学号.姓名和成绩. //2.可以显示所有学生成绩. //3.可以计算学生的总数. //4.可以按学号和序号查找学生. //5.可以在指定位置插入学生成绩数据. //6.可以删除指定位置的学生数据. //7.可以把学生成绩按从高到低的顺序排序. //作者: yinlinqvan //操作系统:

  • C语言职工信息管理系统源码

    本文实例为大家分享了C语言职工信息管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct worker { char ID[20];//工号 char name[20];//姓名 char sex[5];//性别 char born[20];//生日 char edu[20];//学历 char po

随机推荐