⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 信息管理.cpp

📁 C++语言编程
💻 CPP
字号:
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <stdlib.h>

struct date
{int year;
 int mon;
 int day;
};
class student
{private:
  char name[10];
  char sex;
  int num;
  char guanji[10];
  char classroom[10];
  date birthday;
  date ruxue;
  char college[10];
  char water[10];
  int score[3];
  int zongfen;
  int ave;
  int order;
public:
   void getdate();
   void disnature();
   void disscore();
   void disguanli();
   char sexh(){return sex;};
   char *nam(){return name;};
   int nu(){return num;};
   int zong(){return zongfen;};

};
struct school
{
 int sum;
 int man;
 int woman;
};


void student::getdate() //录入成员函数
{cout<<setw(50)<<"========请输入===========\n"<<endl;
 cout<<"姓名:";
 cin>>name;
 cout<<"性别:                        男:m       女:w          \n";
 cout<<"请输入:";
 cin>>sex;
 cout<<"学号:";
 cin>>num;
 cout<<"贯籍:";
 cin>>guanji;
 cout<<"班级:";
 cin>>classroom;
 cout<<setw(50)<<"=========生日==========\n"<<"年:";
 cin>>birthday.year;
 cout<<"月:";
 cin>>birthday.mon;
 cout<<"日:";
 cin>>birthday.day;
 cout<<setw(52)<<"=========入学时间==========\n"<<"年:";
 cin>>ruxue.year;
 cout<<"月:";
 cin>>ruxue.mon;
 cout<<"日:";
 cin>>ruxue.day;
 cout<<setw(50)<<"========其他===========\n"<<endl;
 cout<<"学院:";
 cin>>college;
 cout<<"流动情况:";
 cin>>water;
 cout<<"语文:";
 cin>>score[0];
 cout<<"数学:";
 cin>>score[1];
 cout<<"英语:";
 cin>>score[2];
 cout<<"总分:";
 cin>>zongfen;
 cout<<"平均分:";
 cin>>ave;
 
 
}

void student::disnature()  //输出学生自然信息
{
 cout<<"姓名:"<<name<<" 性别:"<<sex<<" 学号:"<<num<<" 贯籍:"
<<guanji<<" 班级:"<<classroom<<" 生日:"<<birthday.year<<"年"
<<birthday.mon<<"月"<<birthday.day<<"日"<<" 入学时间:"
<<ruxue.year<<"年"<<ruxue.mon<<"月"<<ruxue.day<<"日"<<"\n"<<endl;
}

void student::disscore()  //输出学生分数
{
 cout<<"姓名:"<<name<<" 学号:"<<num<<" 语文:"<<score[0]<<" 数学:"<<score[1]<<" 英语:"
	 <<score[2]<<" 总分:"<<zongfen<<" 平均分:"<<ave<<endl;
}

void student::disguanli()   //输出学生管理
{
 cout<<"姓名:"<<name<<" 学号:"<<num<<" 学院:"<<college<<" 流动情况:"<<water<<"\n"<<endl;
}
void fun9() //北华大学简介
{cout<<setiosflags(ios::left)
      <<setfill(' ')
	  <<setw(33)<<" "<<"北华大学简介\n";
	cout<<"北华大学是1999年9月经教育部批准,由原吉林师范学院、吉林医学院、吉林林学院、吉林电气化高等专科学校合并组建的以普通本科教育为主,融研究生教育、职业技术教育、成人高等教育及留学生教育为一体的综合性大学。学校座落在风景秀丽的松花江畔──吉林省吉林市,占地面积111万平方米,建筑面积71万平方米。馆藏图书130万册,《北华大学报》、《演讲与口才》等三种刊物在国内外公开发行。学校现有19个学院,5个教学辅助单位,5个教学科研训练研究中心,8个科学研究所…";
  cout<<resetiosflags(ios::left);
}

void fun6() //作者简介
{cout<<"\n\n作者:梁德锋  地址:北华大学电子信息工程05-1 14号 QQ:292571236  e-mail:kfcfk1985@163.com"<<endl;
}

void fun5()      //录入学生信息
{ofstream out;
 out.open("记录学生数据.dat",ios::app);
 ifstream in;
 in.open("记录学生数据1.dat");        //打开记录学生数据1(读
 student p;
 int n,i;
 school sch;
 sch.man=0;sch.sum=0;sch.woman=0;
 in.read((char *)&sch,sizeof(sch));
 in.close();                  //关闭记录学生数据1(读
 ofstream out1;
 out1.open("记录学生数据1.dat"); //重新打开记录学生数据1
 cout<<setw(40)<<"输入数据:"<<endl;
 cout<<"这次输入的学生人数:";
 cin>>n;
 for(i=0;i<n;i++)
 {p.getdate();
  sch.sum++;
  if(p.sexh()=='m')
	  sch.man++;
  if(p.sexh()=='w') 
	  sch.woman++;        //统计男女性别
  
  out.write((char *)&p,sizeof(p));
 };
 out1.write((char *)&sch,sizeof(sch));
 out.close();
 out1.close();
}

void fun4()   //查询学生信息
{ifstream in;
 in.open("记录学生数据.dat");
 int x,tt=0,i=0;
 student p;
 char na[10];
 int nu;
 cout<<"      **************************查询学生信息**************************\n"<<endl;
 in.read((char *)&p,sizeof(p));
 cout<<"1.按姓名找\n\n"<<"2.按学号找\n\n"<<"3.返回\n\n";
 cout<<"请选择:";
 in.read((char *)&p,sizeof(p));
 cin>>x;
 while(x>3||x==0)
  {cout<<setw(46)<<"错误!!重新输入!!\n"<<"请选择:";
   cin>>x;
  }
 switch(x)
  {case 1:cout<<"\n请输入姓名:";
          cin>>na;
          cout<<"            ******************查询结果*******************\n"<<endl;
		  while(in)
		 { while(na[i]!='\0'&&*(p.nam()+i)!='\0')
		  {if((p.nam())[i]==na[i])                      //按姓名已解决!!!
				  i=i+1;
		   else break;
		  }
		  
           if(na[i]=='\0'&&*(p.nam()+i)=='\0')
		  {p.disnature();tt=1;
		  }
		  in.read((char *)&p,sizeof(p));
		  i=0;
		 };
		  if(tt==0) cout<<"                             没有找到!!!"<<endl;
		  break;
  case 2:cout<<"\n输入学号:";
	     cin>>nu;
		 cout<<"           ******************查询结果*******************\n"<<endl;
		 while(in)
		 { if(p.nu()==nu)
		  {p.disnature();tt=1;
		  }
		     in.read((char *)&p,sizeof(p));
		 };
		  if(tt==0) cout<<"                             没有找到!!!"<<endl;
		  break;
  }
}





void fun3()         //学生的人员管理
{ifstream in;
 in.open("记录学生数据.dat");       
 ifstream in1;
 in1.open("记录学生数据1.dat");
 student p;
 school sch;
 float boy;       //记录男女比例
 in.read((char *)&p,sizeof(p));
 in1.read((char *)&sch,sizeof(sch));                
 cout<<setw(50)<<"========学生的人员管理===========\n"<<endl;
 while(in)
 {p.disguanli();
  in.read((char *)&p,sizeof(p));
 }
 boy=(float)sch.man/sch.woman;
 cout<<"\n"<<"           学校总人数:"<<sch.sum<<"  男:"<<sch.man<<"  女:"<<sch.woman<<"  男女比例: "<<boy<<":1"<<endl;
 in.close();
 in1.close();
}

void fun2()//查看学生成绩
{ifstream in;
 in.open("记录学生数据.dat");
 student p;
 in.read((char *)&p,sizeof(p));
 cout<<setw(50)<<"========查看学生的成绩===========\n"<<endl;
 while(in)
 {p.disscore();
  in.read((char *)&p,sizeof(p));
 };
 in.close();
}

void fun1()   //查看学生自然信息
{ifstream in;
 in.open("记录学生数据.dat");         //打开文件
 student p,l;
 in.read((char *)&p,sizeof(p));
 cout<<setw(50)<<"========学生的自然信息===========\n"<<endl;
 while(in)
 {p.disnature();
  in.read((char *)&p,sizeof(p));
 };
 in.close();
}


void fun8() //排明函数
{ifstream in;
 in.open("记录学生数据.dat"); //打开文件
 ifstream in1;
 in1.open("记录学生数据1.dat");
 int i=0,j,n,t,pp;

 student p,l;
 school sch;
 in.read((char *)&p,sizeof(p));
 in1.read((char *)&sch,sizeof(sch));
 n=sch.sum;
 int a[1000];
 while(in)
 {a[i]=p.zong();
  i++;
  in.read((char *)&p,sizeof(p));
 };
 for(i=0;i<n-1;i++)
 {pp=i;
  for(j=i+1;j<n;j++)
	  if(a[pp]<a[j])
		  pp=j;
	  if(i!=pp)
  {t=a[i];
   a[i]=a[pp];
   a[pp]=t;
  };
 
  
 }
in.close;

for(i=0;i<n;i++)
{ifstream in2;
in2.open("记录学生数据.dat");
 in2.read((char *)&l,sizeof(l));
 while(in2)
  {if(l.zong()==a[i])
   { cout<<"排名"<<i<<": ";
     l.disscore();
	 cout<<endl;
	}
   in2.read((char *)&l,sizeof(l));
   in2.close;
 }
}
}
 
 
 
 void main()
{
 int x;
 cout<<setw(64)<<"*********************欢迎使用本系统******************\n"<<endl; 
 cout<<setw(48)<<"+ 学生管理系统 +\n\n";
 cout<<setfill('=')    //etfill('=')设置用+字符来填充(默认为空格)
	 <<setw(80)<<"=";             
 cout<<setfill('+')<<setw(44)<<"    菜单    "<<setfill('+')<<setw(36)<<"+";
 cout<<setfill('=')<<setw(80)<<"=";
 cout<<setiosflags(ios::left)   //打开左对齐方式
	 <<setfill(' ')<<setw(10)<<" "<<setw(10)<<"1.查看学生自然信息"<<setw(10)
	 <<" "<<setw(10)<<"2.查看学生成绩\n\n"<<setw(10)<<" "<<"3.学生的人员管理  "<<setw(10)<<" "
	 <<"4.查询学生信息\n\n"<<setw(10)<<" "<<"5.录入学生信息    "<<setw(10)<<" "<<"6.作者简介\n\n"<<setw(10)<<" "
	 <<"7.退出            "<<setw(10)<<" "<<"8.学生排名\n";    //菜单界面
 cout<<setfill('=')<<setw(80)<<"=";
 cout<<"--------------------------  梁氏学生管理系统1.0   ------------------------------";
 cout<<setfill('=')<<setw(80)<<"=";
 cout<<setfill(' ');
 cout<<resetiosflags(ios::left);       //关闭左对齐方式
 do
 {cout<<"请选择:";
  cin>>x;
  while(x>8||x==0)
  {cout<<"错误!!重新输入!!\n"<<"请选择:";
   cin>>x;
  };                                                     //准确输入x
  switch(x)
  {case 1:fun1();break;
   case 2:fun2();break;
   case 3:fun3();break;
   case 4:fun4();break;
   case 5:fun5();break;
   case 6:fun6();break;
   case 8:fun8();break;
  };
  if(x!=7)
  {cout<<"\n\n"<<"                      输入任意键返回上一级菜单!!"<<endl;
   system("pause");            //停留,输入任意键返回   返回上一级菜单
                                              
   system("cls");                                   //清屏函数
   cout<<setw(64)<<"*********************欢迎使用本系统******************\n"<<endl; 
 cout<<setw(48)<<"+ 学生管理系统 +\n\n";
 cout<<setfill('=')    //etfill('=')设置用+字符来填充(默认为空格)
	 <<setw(80)<<"=";             
 cout<<setfill('+')<<setw(44)<<"    菜单    "<<setfill('+')<<setw(36)<<"+";
 cout<<setfill('=')<<setw(80)<<"=";
 cout<<setiosflags(ios::left)   //打开左对齐方式
	 <<setfill(' ')<<setw(10)<<" "<<setw(10)<<"1.查看学生自然信息"<<setw(10)
	 <<" "<<setw(10)<<"2.查看学生成绩\n\n"<<setw(10)<<" "<<"3.学生的人员管理  "<<setw(10)<<" "
	 <<"4.查询学生信息\n\n"<<setw(10)<<" "<<"5.录入学生信息    "<<setw(10)<<" "<<"6.作者简介\n\n"<<setw(10)<<" "
	 <<"7.退出            "<<setw(10)<<" "<<"8.学生排名\n";    //菜单界面
 cout<<setfill('=')<<setw(80)<<"=";
 cout<<"--------------------------  梁氏学生管理系统1.0   ------------------------------";
 cout<<setfill('=')<<setw(80)<<"=";
 cout<<setfill(' ');
 cout<<resetiosflags(ios::left);          //重新输出菜单界面
  }
  }while(x!=7);
 cout<<"       ****************** 谢谢使用梁氏学生管理系统1.0  ********************"<<endl;
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -