用c++弄的,楼主可以参考:
#include
#include
#include
#include
#define Smax 200
using namespace std;
struct student
{
string num;
string name;
float eng;
float math;
float clang;//定义c++
float gete(){return eng;}
float getm(){return math;}
float getcl(){return clang;}
string getn(){return num;}
string getna(){return name;}
int rank[3];
int row;//排名
int sinto(string,string,float,float,float);//输入数据
void sshow();//输出数据
float sall();// 求和
float save();//求平均
void objrank();//成绩分类
};
void shows()//普通函数
{
cout<
int student::sinto(string a1,string a2,float b1,float b2,float b3 )
{
num=a1;name=a2;
eng=b1;math=b2;clang=b3;
return 0;
}
void student::sshow()//输出
{
cout<
float student::sall()//求总分
{ return eng+math+clang;
}
float student::save()//求平均分
{return sall()/3;}
void student::objrank()
{ int n;
rank[0]=(int)eng;
rank[1]=(int)math;
rank[2]=(int)clang;
for(int i=0;i<3;i++)
{ n=rank[i]/10;
switch(n)
{
case 9:n=1;break;
case 8:n=2;break;
case 7:n=3;break;
case 6:n=4;break;
default:n=5;}
rank[i]=n;
}
}
//类student结束
//类leo开始
class leo
{private:
student item[Smax];
int size;
public:
leo();
void lsize(int);//设置数组大小
void linit();//清空
void linsert();//添加
void ldelet(string);//删除
void lsearch(string);//查找
void lchan(string);//修改
void lpcent();//成绩分类
void lrow();//排序
void obave();//求平均
void lview();//显示全部数据
void lcin();//从磁盘输出
void lcout();//储存到磁盘
};
leo::leo()
{ student item[Smax];
lsize(0);
}
void leo::lsize(int i)
{size=i;
}
void leo::linit()
{ lsize(0);
cout<<"学生数据清除成功"<
void leo::ldelet(string a)
{
int k=0;string c;
for(int i=0;i
{
cout<<"你将要删除的数据如下:"<
item[i].sshow();
cout<<"确定删除吗?请输入(y/n):";
cin>>c;
if(c=="y"||c=="Y") {item[i]=item[--size];k=1;}
}
if(k!=1)cout<<"\n删除失败!"<
void leo::linsert()//添加
{
string a="y";
while(a=="y")
{ int mn=0;
if(size>Smax)cout<<"超出范围,不能再添加!"<
{
cout<<"\n请输入学号,姓名,英语,数学,c++成绩:"<
cin>>a1>>a2>>b1>>b2>>b3;
for(int i=0;i
{ mn++;
cout<<"输入学号与下面的数据重复!"<
item[i].sshow();}
if(!mn)
{item[size++].sinto(a1,a2,b1,b2,b3);
cout<<"\n添加成功!";}
}
cout<<"是否继续输入?(y/n)";
cin>>a;
}
}
void leo::lsearch(string a)//查找
{int N=0;
for(int i=0;i
{
N++;
shows();//输出学号,姓名,英语,数学,c++
item[i].sshow();
}
if(!N)cout<<"输入有误或该学生数据不存在"<
void leo::lchan(string a)//修改
{ if(size==0){cout<<"当前学生数据为空,请添加...."<
int N=0;
for(int i=0;i
{ N++;
cout<<"你将要修改的数据如下:"<
cout<<"请输入要修改学生的学号,姓名,英语,数学,c++成绩"<
float b1,b2,b3;
cin>>a1>>a2>>b1>>b2>>b3;
item[i].sinto(a1,a2,b1,b2,b3);
cout<<"修改成功!"<
if(!N)cout<<"输入的学号有误!"<
}
void leo::lrow()//排序
{ student temb;
if(size>1)
{
for(int i=0;i
for(int j=i+1;j
item[j]=temb; }
item[0].row=1;
for(int i=0;i
item[i+1].row=i+2;
else item[i+1].row=i+1;//并列排名
}}
else if(size==1) item[0].row=1;
}
void leo::lview()//显示
{
if(size==0){cout<<"当前学生数据为空,请添加...."<
{ cout<<"共有学生数据"<
for(int i=0;i
item[i].sshow();
}
}
}
void leo::obave()//统计科目
{ if(size!=0)
{
float sum[3]={0};
for(int i=0;i
sum[0]+=item[i].gete();
sum[1]+=item[i].getm();
sum[2]+=item[i].getcl();}
cout<<"英语平均的成绩为:"
<
else cout<<"当前无学生数据,请添加......";
}
void leo::lpcent() //成绩分类
{ int p[3][200];
float tem=100.0/size;
string a[3]={"英语","数学","c++"};
if(size!=0)
{
for(int i=0;i
p[0][i]=item[i].rank[0];
p[1][i]=item[i].rank[1];
p[2][i]=item[i].rank[2];
}
for(int k=0;k<3;k++)
{ int b[5]={0};
for(int i=0;i
switch(p[k][i])
{
case 1: b[0]++;break;
case 2: b[1]++;break;
case 3: b[2]++;break;
case 4: b[3]++;break;
case 5: b[4]++;break;
default:break; }
}
cout<<<"人 中"< cout<
<<(float)b[3]*tem<<"% 不及"<<(float)b[4]*tem<<"%"<
}
}
void leo::lcin()
{ string a[200],b[200];float c[200],d[200],e[200];
int f[200];
ifstream infile("ok.txt",ios::in);
if(! infile) cerr<<"文件打开失败。"<
{
infile>>a[i]>>b[i]>>c[i]>>d[i]>>e[i]>>f[i];
item[size].sinto(a[i],b[i],c[i],d[i],e[i]);size++;
if(f[i]==1) break;
}
infile.close();
}
void leo::lcout()
{ofstream outfile("ok.txt",ios::out);
if(! outfile) cerr<<"文件打开失败。"<
outfile.close();
}
}
void showmenu()
{
cout<<" ";
cout<<"|----------------------------------------------------------------|"<
cout<<"|----------学生成绩统计管理系统--------------------------|"<
cout<<"|----------------------------------------------------------------|"<
cout<<"| 1.显示:显示所有学生数据(按总分排序)|"<
cout<<"| 2.查看:查看所有统计结果 |"<
cout<<"| 3.添加:插入一个学生数据 |"<
cout<<"| 4.删除:删除一个学生数据 |"<
cout<<"| 5.查找: 查找指定学生数据 |"<
cout<<"| 6.修改:修改指定学生数据 |"<
cout<<"| 7.清空:清除所有学生数据 |"<
cout<<"| 8.帮助:查看系统注意事项 |"<
cout<<"| 0.退出:将数据保存到磁盘 |"<
cout<<"|----------------------------------------------------------------|"<
void showtip()
{
cout<<"\n\t\t----------------操作完成!-----------------"<
int main()
{
leo leo1;
string c="s",a;
system("cls");//清屛
showmenu();
cout<<"正在打开文件,请稍后..."<
cout<<"\t\t\t请选择菜单中的数字以便处理数据:";
cin>>c;
while(c!="0")
{
system("cls");
showmenu();
if(c=="1")
{ cout<<"你选择了1,学生数据显示如下:"<
leo1.lview();
}
if(c=="2")
{ cout<<"你选择了2,统计结果如下:"<
leo1.lpcent();//各科分类情况
}
if(c=="3")
{ cout<<"你选择了3,";
leo1.linsert();
}
if(c=="4")
{ cout<<"你选择了4,请输出要删除的学号:"<
leo1.ldelet(a);
}
if(c=="5")
{
cout<<"你选择了5,请输出要查找的学号:"<
leo1.lsearch(a);
}
if(c=="6")
{
cout<<"你选择了6,请输出要修改的学号:"<
leo1.lchan(a);
}
if(c=="7")
{ cout<<"你选择了7,全部数据将要清空"<
if(a=="y"||a=="Y")
leo1.linit();
}
if(c=="8")
{ cout<<"1.本系统最多可以容纳200个学生数据."<
输完后按回车键 ."<
showtip();
cin>>c;
system("cls");leo1.lcout();
}
cout<<"谢谢您的使用!"<
网上百度,我以前百度到一份,不过看得云里雾里,哈哈……这种作业还是自己看书做做比较好……不然以后工作啦还是不会的
兄弟这是个大工程,问问中,没多少人帮你的,除非粘贴别人的源码