#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
const int M=200;
class student
{
private:
double math;
double chinese;
double English;
double tal;
double ave;
static int m;//实际学生人数
string name;
string num;
string classroom;
public:
void input();
void show();
void searchmath(student* p);
void searchchinese(student* p);
void searchEnglish(student* p);
void math_greatrate(student* p);
void chinese_greatrate(student* p);
void English_greatrate(student* p);
void search(student* p);
void search1(student* p);
void paixu_math(student* p);
void paixu_English(student* p);
void paixu_chinese(student* p);
void paixu_num(student* p);
void paixu_tal(student* p);
void insert();
void cancel(student*p);
void change(student*p);
};
//实现信息录入功能
void student::input()
{
cout<<"请输入学生的学号:"<<endl;
cin>>num;
cout<<"请输入学生的姓名:"<<endl;
cin>>name;
cout<<"请输入学生的班级:"<<endl;
cin>>classroom;
cout<<"请输入学生的数学成绩:"<<endl;
cin>>math;
cout<<"请输入学生的语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入学生的英语成绩:"<<endl;
cin>>English;
tal=math+chinese+English;
ave=tal/3;
m++;
}
//信息输出;
void student::show()
{
cout<<"num:"<<num<<" "<<"name:"<<name<<" "<<"classroom:"<<classroom<<endl;
cout<<"math:"<<math<<" "<<"chinese:"<<chinese<<" "<<"English:"<<English<<endl;
}
//找出数学,英语,语文成绩最好和最差的学生;
void student::searchmath(student* p)
{
int i,j=0; double big=p->math;
for(i=0;i<m;i++)
if(p[i].math>big)
{big=p[i].math;
j=i;}
cout<<"数学成绩最高的学生是:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;
int d,n=0; double small=p->math;
for(d=0;d<m;d++)
if(p[d].math<small)
{small=p[d].math;
n=d;}
cout<<"数学成绩最低的学生是:"<<endl;
cout<<"num:"<<p[n].num<<" "<<"name:"<<p[n].name<<" "<<"classroom:"<<p[n].classroom<<endl;
cout<<"math:"<<p[n].math<<" "<<"chinese:"<<p[n].chinese<<" "<<"English:"<<p[n].English<<endl;
}
void student::searchchinese(student* p)
{
int i,j=0; double big=p->chinese;
for(i=0;i<m;i++)
if(p[i].chinese>big)
{big=p[i].chinese;
j=i;}
cout<<"语文成绩最高的学生是:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;
int d,n=0; double small=p->chinese;
for(d=0;d<m;d++)
if(p[d].chinese<small)
{small=p[d].chinese;
n=d;}
cout<<"语文成绩最低的学生是:"<<endl;
cout<<"num:"<<p[n].num<<" "<<"name:"<<p[n].name<<" "<<"classroom:"<<p[n].classroom<<endl;
cout<<"math:"<<p[n].math<<" "<<"chinese:"<<p[n].chinese<<" "<<"English:"<<p[n].English<<endl;
}
void student::searchEnglish(student* p)
{
int i,j=0; double big=p->English;
for(i=0;i<m;i++)
if(p[i].English>big)
{big=p[i].English;
j=i;}
cout<<"英语成绩最高的学生是:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;
int d,n=0; double small=p->English;
for(d=0;d<m;d++)
if(p[d].English<small)
{small=p[d].English;
n=d;}
cout<<"英语成绩最低的学生是:"<<endl;
cout<<"num:"<<p[n].num<<" "<<"name:"<<p[n].name<<" "<<"classroom:"<<p[n].classroom<<endl;
cout<<"math:"<<p[n].math<<" "<<"chinese:"<<p[n].chinese<<" "<<"English:"<<p[n].English<<endl;
}
//算出数学,语文,英语的优秀率和及格率;
void student::math_greatrate(student* p)
{
student* q=p;
double count=0.0,count1=0.0;
for(int i=0;i<m;i++,p++)
if(p->math>=90)
count++;
cout<<"该班数学优秀率为:"<<double(count/m)<<endl;
p=q;
for(int j=0;j<m;j++,p++)
if(p->math<60)
count1++;
cout<<"该班数学不及格率为:"<<double(count1/m)<<endl;
p=q;
}
void student::chinese_greatrate(student* p)
{
student* q=p;
double count=0.0,count1=0.0;
for(int i=0;i<m;i++,p++)
if(p->chinese>=90)
count++;
cout<<"该班语文优秀率为:"<<double(count/m)<<endl;
p=q;
for(int j=0;j<m;j++,p++)
if(p->chinese<60)
count1++;
cout<<"该班语文不及格率为:"<<double(count1/m)<<endl;
p=q;
}
void student::English_greatrate(student* p)
{
student* q=p;
double count=0.0,count1=0.0;
for(int i=0;i<m;i++,p++)
if(p->English>=90)
count++;
cout<<"该班英语优秀率为:"<<double(count/m)<<endl;
p=q;
for(int j=0;j<m;j++,p++)
if(p->English<60)
count1++;
cout<<"该班英语不及格率为:"<<double(count1/m)<<endl;
p=q;
}
//按照姓名或者学号查找学生;
void student::search(student*p)
{
string name1;
cout<<"你要查找学生的姓名:"<<endl;
cin>>name1;int j=100;
for(int i=0;i<m;i++)
if(p[i].name==name1)
j=i;
if(j==100)
cout<<"没有这个学生:"<<endl;
else
{cout<<"你要查找的学生的所有信息:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;}
}
void student::search1(student*p)
{
string num1;
cout<<"你要查找学生的学号:"<<endl;
cin>>num1;int j=100;
for(int i=0;i<m;i++)
if(p[i].num==num1)
j=i;
if(j==100)
cout<<"没有这个学生:"<<endl;
else
{cout<<"你要查找的学生的所有信息:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;}
}
//按照单科成绩、总成绩、平均成绩、学号排序。
void student::paixu_math(student* p)
{
int i,j;
double tem;
for(i=0;i<m-1;i++)
for(j=i;j<m-i-1;j++)
if(p[j+1].math>p[j].math)
{ tem=p[j].math;
p[j].math=p[j+1].math;
p[j+1].math=tem;
}
for(j=0;j<m;j++)
{cout<<"输出第"<<j+1<<"个学生:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;
}
}
void student::paixu_chinese(student* p)
{
int i,j;
double tem;
for(i=0;i<m-1;i++)
for(j=i;j<m-i-1;j++)
if(p[j+1].chinese>p[j].chinese)
{ tem=p[j].chinese;
p[j].chinese=p[j+1].chinese;
p[j+1].chinese=tem;
}
for(j=0;j<m;j++)
{cout<<"输出第"<<j+1<<"个学生:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;
}
}
void student::paixu_English(student* p)
{
int i,j;
double tem;
for(i=0;i<m-1;i++)
for(j=i;j<m-i-1;j++)
if(p[j+1].English>p[j].English)
{ tem=p[j].English;
p[j].English=p[j+1].English;
p[j+1].English=tem;
}
for(j=0;j<m;j++)
{cout<<"输出第"<<j+1<<"个学生:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;
}
}
void student::paixu_tal(student* p)
{
int i,j;
double tem;
for(i=0;i<m-1;i++)
for(j=i;j<m-i-1;j++)
if(p[j+1].tal>p[j].tal)
{ tem=p[j].tal;
p[j].tal=p[j+1].tal;
p[j+1].tal=tem;
}
for(j=0;j<m;j++)
{cout<<"输出第"<<j+1<<"个学生:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;
cout<<"tal:"<<p[j].tal<<" "<<"ave:"<<p[j].ave<<endl;
}
}
void student::paixu_num(student* p)
{
int i,j;
string tem;
for(i=0;i<m-1;i++)
for(j=i;j<m-i-1;j++)
if(p[j+1].num<p[j].num)
{ tem=p[j].num;
p[j].num=p[j+1].num;
p[j+1].num=tem;
}
for(j=0;j<m;j++)
{cout<<"输出第"<<j+1<<"个学生:"<<endl;
cout<<"num:"<<p[j].num<<" "<<"name:"<<p[j].name<<" "<<"classroom:"<<p[j].classroom<<endl;
cout<<"math:"<<p[j].math<<" "<<"chinese:"<<p[j].chinese<<" "<<"English:"<<p[j].English<<endl;
}
}
//实现学生的插入,删除和修改;
void student::insert()
{
cout<<"请输入学生的学号:"<<endl;
cin>>num;
cout<<"请输入学生的姓名:"<<endl;
cin>>name;
cout<<"请输入学生的班级:"<<endl;
cin>>classroom;
cout<<"请输入学生的数学成绩:"<<endl;
cin>>math;
cout<<"请输入学生的语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入学生的英语成绩:"<<endl;
cin>>English;
tal=math+chinese+English;
ave=tal/3;
m++;
}
void student::change(student*p)
{
string name1;
cout<<"输入你要修改学生的姓名:"<<endl;
cin>>name1;int j=100;
for(int i=0;i<m;i++)
if(p[i].name==name1)
j=i;
if(j==100)
cout<<"没有这个学生"<<endl;
else
{cout<<"去重新输入这个学生的信息:"<<endl;
cout<<"请输入学生的学号:"<<endl;
cin>>p[j].num;
cout<<"请输入学生的姓名:"<<endl;
cin>>p[j].name;
cout<<"请输入学生的班级:"<<endl;
cin>>p[j].classroom;
cout<<"请输入学生的数学成绩:"<<endl;
cin>>p[j].math;
cout<<"请输入学生的语文成绩:"<<endl;
cin>>p[j].chinese;
cout<<"请输入学生的英语成绩:"<<endl;
cin>>p[j].English;
p[j].tal=p[j].math+p[j].chinese+p[j].English;
p[j].ave=p[j].tal/3;
cout<<"修改完成:"<<endl;}
}
void student::cancel(student*p)
{
string name1;
cout<<"输入你要删除学生的姓名:"<<endl;
cin>>name1;
int j=100;
for(int i=0;i<m;i++)
if(p[i].name==name1)
j=i;
if(j==100)
cout<<"没有这个学生:"<<endl;
else
{ for(int n=j;n<m-1;n++)
p[n]=p[n+1];
cout<<"实行删除操作,已经删除该学生信息"<<endl;
m--;}
}
int student::m=0;
int main()
{
student stu[M];
int select;
int b,y,i=0;
while(1)
{
system("cls");
cout<<"\t※※※※※※※※※※欢迎使用※※※※※※※※※※※※\n";
cout<<"\t***************学生学籍管理系统*********************\n";
cout<<"\t*--------------------------------------------------*\n";
cout<<"\t* 1---录入学生信息 *\n";
cout<<"\t* 2---查询学生信息 *\n";
cout<<"\t* 3---修改学生信息 *\n";
cout<<"\t* 4---删除学生信息 *\n";
cout<<"\t* 5---插入学生信息 *\n";
cout<<"\t*--------------------------------------------------*\n";
cout<<"\t※※※※※※※※※※欢迎使用 ※※※※※※※※※※※※\n";
cout<<"\t***************学生最高低分平台*********************\n";
cout<<"\t*--------------------------------------------------*\n";
cout<<"\t* 6---数学最高低分 *\n";
cout<<"\t* 7---语文最高低分 *\n";
cout<<"\t* 8---英语最高低分 *\n";
cout<<"\t*--------------------------------------------------*\n";
cout<<"\t※※※※※※※※※※欢迎使用 ※※※※※※※※※※※※\n";
cout<<"\t*****************学生成绩排列平台*********************\n";
cout<<"\t*--------------------------------------------------*\n";
cout<<"\t* 9--数学高到低学生信息 *\n";
cout<<"\t* 10--英语高到低学生信息 *\n";
cout<<"\t* 11--语文高到低学生信息 *\n";
cout<<"\t* 12--成绩高到低学生信息 *\n";
cout<<"\t* 13--学号从小到大学生信息 *\n";
cout<<"\t*--------------------------------------------------*\n";
cout<<"\t※※※※※※※※※※欢迎使用 ※※※※※※※※※※※※ \n";
cout<<"\t***************学生优秀率平台*********************\n";
cout<<"\t*--------------------------------------------------*\n";
cout<<"\t* 14--数学优秀率和及格率 *\n";
cout<<"\t* 15--英语优秀率和及格率 *\n";
cout<<"\t* 16--语文优秀率和及格率 *\n";
cout<<"\t* 0--退出 *\n";
cout<<"\t*--------------------------------------------------*\n";
cout<<"\t* 请输入编号(0--16),选择对应功能:";
cin>>select;
if(select==0) break;
switch(select){
case 1:
do
{
stu[i].input();
cout<<"如果要继续录入请输入1,否则输入0"<<endl;
cin>>y;
i++;
}while(i<M&&(y!=0));
system("pause");
break;
case 2:
cout<<"请选择查询方式:按姓名查询输入1,按学号查询输入2"<<endl;
cin>>b;
do{
if(b==1)
stu[0].search(stu);
else
stu[0].search1(stu);
cout<<"是否要继续查找:是的话输入1,否则输入0"<<endl;
cin>>y;
}while(y);
system("pause");
break;
case 3:
do{
stu[0].change(stu);
cout<<"是否要继续修改:是的话输入1,否则输入0"<<endl;
cin>>y;
}while(y);
system("pause");
break;
case 4:
do{
stu[0].cancel(stu);
cout<<"是否要继续删除:是的话输入1,否则输入0"<<endl;
cin>>y;
}while(y);
system("pause");
break;
case 5:
do{
stu[i].insert();
i++;
cout<<"是否要继续插入:是的话输入1,否则输入0"<<endl;
cin>>y;
}while(y);
system("pause");
break;
case 6:
stu[0].searchmath(stu);
system("pause");
break;
case 7:
stu[0].searchchinese(stu);
system("pause");
break;
case 8:
stu[0].searchEnglish(stu);
system("pause");
break;
case 9:
stu[0].paixu_math(stu);
system("pause");
break;
case 10:
stu[0].paixu_English(stu);
system("pause");
break;
case 11:
stu[0].paixu_chinese(stu);
system("pause");
break;
case 12:
stu[0].paixu_tal(stu);
system("pause");
break;
case 13:
stu[0].paixu_num(stu);
system("pause");
break;
case 14:
stu[0].math_greatrate(stu);
system("pause");
break;
case 15:
stu[0].English_greatrate(stu);
system("pause");
break;
case 16:
stu[0].chinese_greatrate(stu);
system("pause");
break;
case 0: cout<<"wrong:"<<endl;
system("pause");
break;
}
}
return 0;
}
/*cout<<"\t ******************欢迎使用******************\n";
cout<<"\t **************职工信息管理系统**************\n";
cout<<"\t ------------------------------------------*\n";
cout<<"\t * 1——录入职工信息 *\n";
cout<<"\t * 2——显示职工信息 *\n";
cout<<"\t * 3——查询职工信息 *\n";
cout<<"\t * 4——修改职工信息 *\n";
cout<<"\t * 5——添加职工信息 *\n";
cout<<"\t * 6——删除职工信息 *\n";
cout<<"\t * 0——退出 *\n";
cout<<"\t *------------------------------------------*\n";
cout<<"\t 你要输入的编号是(0--7):";*/
C++课程设计
最新推荐文章于 2024-06-11 22:53:55 发布