学生管理系统源代码c++ 5

用c++语言编写急需急需。。。... 用c++语言编写急需急需。。。 展开
 我来答
liuxuekang10
2010-07-01
知道答主
回答量:26
采纳率:0%
帮助的人:5.6万
展开全部
#include <iostream.h>
#include <string.h>
#include "h1.h"
void menu();
void clear()
{
cin.clear();
cin.ignore();
}
void stu::init_name_grade() //输入学生姓名、班级
{
cout<<"请输入学生姓名:";
cin>>name;
clear();
cout<<"请输入学生班级号:";
cin>>grade;
clear();
}

void stu::init_first() //输入学生第一学期成绩
{
cout<<"学生"<<name<<"第一学期成绩"<<endl;
cout<<"请输入英语成绩:";
cin>>first.english;
clear();
cout<<"请输入数学成绩:";
cin>>first.math;
clear();
first.total=first.english+first.math;
first.aver=first.total/2;
}

void stu::init_second() //输入学生第二学期成绩
{
cout<<"学生"<<name<<"第二学期成绩"<<endl;
cout<<"请输入英语成绩:";
cin>>second.english;
clear();
cout<<"请输入数学成绩:";
cin>>second.math;
clear();
second.total=second.english+second.math;
second.aver=second.total/2;
}

void stu::show_first() //显示学生第一学期成绩
{
cout<<"学生姓名:"<<name<<endl;
cout<<"学生班级:"<<grade<<endl;
cout<<"学生第一学期英语成绩:"<<first.english<<endl;
cout<<"学生第一学期数学成绩:"<<first.math<<endl;
cout<<"学生第一学期总成绩:"<<first.total<<endl;
cout<<"学生第一学期平均成绩:"<<first.aver<<endl;
}

void stu::show_second() //显示学生第二学期成绩
{
cout<<"学生姓名:"<<name<<endl;
cout<<"学生班级:"<<grade<<endl;
cout<<"学生第二学期英语成绩:"<<second.english<<endl;
cout<<"学生第二学期数学成绩:"<<second.math<<endl;
cout<<"学生第二学期总成绩:"<<second.total<<endl;
cout<<"学生第二学期平均成绩:"<<second.aver<<endl;
}

void stu::show_grade() //显示学生所有学期成绩
{
cout<<"学生姓名:"<<name<<endl;
cout<<"学生班级:"<<grade<<endl;
cout<<"学生第一学期英语成绩:"<<first.english<<endl;
cout<<"学生第一学期数学成绩:"<<first.math<<endl;
cout<<"学生第一学期总成绩:"<<first.total<<endl;
cout<<"学生第一学期平均成绩:"<<first.aver<<endl;
cout<<"学生第二学期英语成绩:"<<second.english<<endl;
cout<<"学生第二学期数学成绩:"<<second.math<<endl;
cout<<"学生第二学期总成绩:"<<second.total<<endl;
cout<<"学生第二学期平均成绩:"<<second.aver<<endl;
}

stu_info::stu_info() //stu_info的构造函数
{
num=0;
}

void stu_info::add_name_grade() //添加学生信息(班级、姓名)到数组中
{
int choose;
do
{
per[num].init_name_grade();
num++;
cout<<"继续输入学生信息吗?(0:退出,任意数字键继续...)";
cin>>choose;
clear();
}while(choose!=0);
}

void stu_info::add_first(int gra) //添加第一学期成绩
{
for(int i=0;i<num;i++)
{
if(per[i].grade==gra)
{
per[i].init_first();
}
}
}

void stu_info::add_second(int gra) //添加第二学期成绩
{
for(int i=0;i<num;i++)
{
if(per[i].grade==gra)
{
per[i].init_second();
}
}
}

void stu_info::query_aver(int gra,int term) //按班级、学期及平均分排序显示学生成绩
{
stu temp[100];
stu t;
int sum=0;
for(int i=0;i<num;i++)
{
if(per[i].grade==gra)
{
temp[sum]=per[i];
sum++;
}
}
for(int j=0;j<sum-1;j++)
{
for(int k=sum-1;k>j;k--)
{
if(term==1)
{
if(temp[k].first.aver>temp[k-1].first.aver)
{
t=temp[k];
temp[k]=temp[k-1];
temp[k-1]=t;
}
}
else if(term==2)
{
if(temp[k].second.aver>temp[k-1].second.aver)
{
t=temp[k];
temp[k]=temp[k-1];
temp[k-1]=t;
}
}
else
{
cout<<"该学期不存在!"<<endl;
return;
}
}
}
for( i=0;i<sum;i++)
{
if(term==1)
{
temp[i].show_first();
}
else
{
temp[i].show_second();
}
}
}

void stu_info::modify(int gra,char name[10]) //按班级、姓名查询学生信息并修改学生信息
{
for(int i=0;i<num;i++)
{
if(per[i].grade==gra&&strcmp(per[i].name,name)==0)
{
per[i].init_name_grade();
per[i].init_first();
per[i].init_second();
return;
}
else
{
cout<<"该学生不存在!"<<endl;
}
}
}

void stu_info::query(int gra,char name[10]) //按班级、姓名查询学生信息并输出
{
for(int i=0;i<num;i++)
{
if(per[i].grade==gra&&strcmp(per[i].name,name)==0)
{
per[i].show_grade();
return;
}
else
{
cout<<"该学生不存在!"<<endl;
}
}
}

void stu_info::query_grade(int gra) //按班级输出该班全部学生成绩
{
cout<<gra<<"班级学生的成绩如下:"<<endl;
for(int i=0;i<num;i++)
{
if(per[i].grade==gra)
{
per[i].show_grade();
}
}
}

void stu_info::show_fail(int grade,int term,int course)
{
cout<<"不及格名单如下:"<<endl;
for(int i=0;i<num;i++)
{
if(per[i].grade==grade)
{
if(term==1)
{
if(course==1)
{
if(per[i].first.english<60)
{
cout<<per[i].name<<endl;
}
}else if(course==2)
{
if(per[i].first.math<60)
{
cout<<per[i].name<<endl;
}
}
}
else if(term==2)
{
if(course==1)
{
if(per[i].second.english<60)
{
cout<<per[i].name<<endl;
}
}else if(course==2)
{
if(per[i].second.math<60)
{
cout<<per[i].name<<endl;
}
}
}
else
{
cout<<"该学期不存在!"<<endl;
return;
}
}
}
}

void main()
{
stu_info people;
int grade;
int term;
int choose;
int course;
char name[10];
while(1)
{
menu();
cin>>choose;
clear();
switch(choose)
{
case 1:
people.add_name_grade();break;
case 2:
cout<<"请输入班级号:";
cin>>grade;
clear();
cout<<"请输入学期:";
cin>>term;
clear();
if(term==1)
people.add_first(grade);
else
people.add_second(grade);
break;
case 3:
cout<<"请输入班级号:";
cin>>grade;
clear();
cout<<"请输入学生姓名:";
cin>>name;
clear();
people.modify(grade,name);
break;
case 4:
cout<<"请输入班级号:";
cin>>grade;
clear();
cout<<"请输入学期:";
cin>>term;
clear();
people.query_aver(grade,term);
break;
case 5:
cout<<"请输入班级号:";
cin>>grade;
clear();
people.query_grade(grade);
break;
case 6:
cout<<"请输入班级号:";
cin>>grade;
clear();
cout<<"请输入学期:";
cin>>term;
clear();
cout<<"请输入课程号(1:english,2:math):";
cin>>course;
people.show_fail(grade,term,course);
break;
case 7:
cout<<"请输入班级号:";
cin>>grade;
clear();
cout<<"请输入学生姓名:";
cin>>name;
clear();
people.query(grade,name);
break;
case 8:return;
default:cout<<"选择错误,请重新选择!"<<endl;
}
}
}

void menu()
{
cout<<" 请选择操作"<<endl;
cout<<"-------------------------------------------------------------"<<endl;
cout<<" 1、输入学生姓名、班级"<<endl;
cout<<" 2、按学期、班级录入学生成绩"<<endl;
cout<<" 3、修改学生成绩"<<endl;
cout<<" 4、按班级平均分对学生成绩排序"<<endl;
cout<<" 5、按班级输出学生的成绩单"<<endl;
cout<<" 6、按科目输出不及格学生名单"<<endl;
cout<<" 7、查询学生成绩单"<<endl;
cout<<" 8、退出系统"<<endl;
}
这上面是实现功能,下面是类的定义和声明 希望对你有用

struct term
{
int english;
int math;
int aver;
int total;
};
class stu
{
char name[10];
int grade;
struct term first;
struct term second;
public:
friend class stu_info;
void init_name_grade();
void init_first();
void init_second();
void show_grade();
void show_first();
void show_second();
};
class stu_info
{
stu per[100];
int num;
public:
stu_info();
void add_name_grade();
void add_first(int gra);
void add_second(int gra);
void query_aver(int gra,int term);
void modify(int gra,char name[10]);
void query(int gra,char name[10]);
void query_grade(int gra);
void show_fail(int grade,int term,int course);
};
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式