学生成绩管理系统c++源代码
时间: 2023-08-03 12:07:29 浏览: 227
以下是一个简单的学生成绩管理系统的 C++ 源代码。请注意,此代码仅供参考,您可以根据自己的需求进行修改和优化。
```c++
#include<iostream>
#include<fstream>
#include<cstring>
#include<cstdlib>
#include<iomanip>
using namespace std;
//定义学生类
class student
{
char name[50]; //学生姓名
char id[10]; //学生学号
float score[3]; //学生成绩
float average; //学生平均成绩
public:
void input(); //输入学生信息
void output(); //输出学生信息
char* getname(); //获取学生姓名
char* getid(); //获取学生学号
float getaverage(); //获取学生平均成绩
};
void student::input()
{
cout<<"请输入学生姓名:";
cin>>name;
cout<<"请输入学生学号:";
cin>>id;
cout<<"请输入学生成绩(语文、数学、英语):";
cin>>score[0]>>score[1]>>score[2];
average=(score[0]+score[1]+score[2])/3.0;
}
void student::output()
{
cout<<name<<"\t"<<id<<"\t"<<score[0]<<"\t"<<score[1]<<"\t"<<score[2]<<"\t"<<setprecision(2)<<average<<endl;
}
char* student::getname()
{
return name;
}
char* student::getid()
{
return id;
}
float student::getaverage()
{
return average;
}
//定义函数模板
template<class T>
void sort(T *a,int n)
{
int i,j;
T temp;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
int main()
{
int n,i,j;
student stu[100];
//输入学生人数
cout<<"请输入学生人数:";
cin>>n;
//输入学生信息
for(i=0;i<n;i++)
{
cout<<"请输入第"<<i+1<<"个学生信息:"<<endl;
stu[i].input();
}
//输出学生信息
cout<<"学生信息如下:"<<endl;
cout<<"姓名\t学号\t语文\t数学\t英语\t平均分"<<endl;
for(i=0;i<n;i++)
stu[i].output();
//按平均成绩排序并输出
cout<<"按平均成绩排序后的学生信息如下:"<<endl;
cout<<"姓名\t学号\t语文\t数学\t英语\t平均分"<<endl;
sort(stu,n);
for(i=0;i<n;i++)
stu[i].output();
//查找学生成绩
char searchname[50],searchid[10];
float searchaverage;
int flag=0;
cout<<"请输入要查找的学生姓名:";
cin>>searchname;
for(i=0;i<n;i++)
if(strcmp(searchname,stu[i].getname())==0)
{
stu[i].output();
flag=1;
break;
}
if(flag==0)
cout<<"没有找到该学生!"<<endl;
flag=0;
cout<<"请输入要查找的学生学号:";
cin>>searchid;
for(i=0;i<n;i++)
if(strcmp(searchid,stu[i].getid())==0)
{
stu[i].output();
flag=1;
break;
}
if(flag==0)
cout<<"没有找到该学生!"<<endl;
flag=0;
cout<<"请输入要查找的学生成绩:";
cin>>searchaverage;
for(i=0;i<n;i++)
if(searchaverage==stu[i].getaverage())
{
stu[i].output();
flag=1;
}
if(flag==0)
cout<<"没有找到该成绩的学生!"<<endl;
system("pause");
return 0;
}
```
这个程序使用了类和函数模板,实现了学生信息的输入、输出、按平均成绩排序和查找功能。您可以根据自己的需要进行修改和优化。