📄 源代码.txt
字号:
#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<<" 排名:"<<order<<"\n"<<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;
};
cout<<"数组"<<a[i]<<endl;
}
in.close;
ifstream in2;
for(i=0;i<n;i++)
{in2.open("记录学生数据.dat");
in2.read((char *)&l,sizeof(l));
while(in1)
{if(l.zong()==a[i])
l.disscore();
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 + -