#include
#include
#include
#include
#include
using namespace std;
//定义学生类
class stu
{
char name[20];
double num,math,chinese,english,average,sum;
public:
stu()
{
}
stu( char n[20],double nu,double ma,double chin,double eng)
{
strcpy(name,n);
num=nu;
math=ma;
chinese=chin;
english=eng;
}
double getsum()
{
sum=chinese+english+math;
return sum;
}
double getaver()
{
average=getsum()/3;
return average;
}
friend int main();
};
void show() //显示函数,删除了原函数中的1,因为与0重复
{
cout<<"\t\t\t进入本学生管理系统,请选择您需要的操作!"<
}
//主函数
int main()
{
char p[20],p1; //定义输入字符
char w[20],c; //等待键盘输入的变量
int i=0,j=0,flag=0; //定义当前学生位置和学生数量,是否跳到主页面判断
stu *s[50]; //定义学生数组
do
{
cout<<"当前已录人员总数:("< show();
cin>>p;
system("cls"); //刷新屏幕
if (strlen(p)==1) p1=p[0];
else p1='x';
switch (p1)
{
case '0':
{
char name[20];
double num, math,chinese,english;
do
{
cout<<"请输入姓名"<
cout<<"请输入 学号"<
cout<<"请输入 数学成绩:"<
cout<<"请输入 语文成绩:"<
cout<<"请输入 外语成绩:"<
j++;
s[i]=new stu(name,num,math, chinese, english);
i++;
cout<<"数据输入成功,想继续输入吗(y/n)"<
do
{
if (!strcmp(w,"y")) break;
else if(!strcmp(w,"n"))
cout<<"指令错误!请重新输入!"<
}
while (1);
flag==1;
}
while(1);
}
break;
case '1':
{
char name[20];
bool flag3=0;
do
{
cout<<"请输入您要删除的学生姓名:"<
for(int h=0; h {
if(strcmp(name,s[h]->name)==0)
{
flag3=1;
i--;
do
{
s[h]=s[h+1];
h++;
}
while(h<=i);
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
cout<<"要继续删除吗?(y/n)"<
do
{
if (!strcmp(w,"y")) break;
else if(!strcmp(w,"n"))
cout<<"指令错误!请重新输入!"<
}
while (1);
flag==1;
}
while(1);
}
break;
case '2':
{
char name[20];
double num, mat,chin,eng;
bool flag2=0;
do
{
cout<<"请输入您要修改的学生的姓名:"<
for(int h=0; h {
if(strcmp(name,s[h]->name)==0)
{
flag2=1;
cout<<"请输入新的 学号:"<
cout<<"请输入新的 数学成绩:"<
cout<<"请输入新的 语文成绩:"<
cout<<"请输入新的 外语成绩:"<
s[h]->num=num;
s[h]->chinese=chin;
s[h]->math=mat;
s[h]->english=eng;
cout<<"数据修改成功!";
}
}
if(flag2==0) cout<<"您要修改的学生本来就不存在!请检查重新输入!"<
do
{
if (!strcmp(w,"y")) break;
else if(!strcmp(w,"n"))
cout<<"指令错误!请重新输入!"<
}
while (1);
flag==1;
}
while(1);
}
break;
case '3':
{
double t;
do
{
int flag1=0;
cout<<"请输入你要查询学生的 学号"<
for(int q=0; q {
if ((*s[q]).num==t)
{
flag1=1;
cout<<"您要查询的学生是:"<<(*s[q]).name<
}
}
if(flag1==0) cout<<"对不起!您要查询的学生不存在!"<
do
{
if (!strcmp(w,"y")) break;
else if(!strcmp(w,"n"))
cout<<"指令错误!请重新输入!"<
}
while (1);
flag==1;
}
while(1);
}
break;
case '4':
{
char n[20];
do
{
int flag=0;
cout<<"请输入你要查询的学生姓名:"<
for(int j=0; j {
if(strcmp(n,(*s[j]).name)==0)
{
flag=1;
cout<<"您要查询的学生是:"<<(*s[j]).name<
}
if(flag==0) cout<<"对不起!您要查询的学生不存在!"<
do
{
if (!strcmp(w,"y")) break;
else if(!strcmp(w,"n"))
cout<<"指令错误!请重新输入!"<
}
while (1);
flag==1;
}
while(1);
}
break;
case '5':
{
if(i==0)
{
cout<<"管理系统中没有录入数据或者数据已经被删除!"<
}
cout<<"本系统所有学生数据如下:"<
cout<num<<
" 语文:"<<" "<chinese<<" 数学:"<<" "<math
<<" 外语:"<<" "<english<<" 总分:"<<" "<<(*s[k]).getsum()
<<" 平均分:"<<" "<<(*s[k]).getaver()<
cout<<"请按任意继续..."<
system("cls"); //刷新屏幕
}
break;
case '6':
{
if(i==0)
{
cout<<"管理系统中没有录入数据或者数据已经被删除!"<
}
int t;
stu b;
cout<<"本系统所以学生排名如下:"<
t=x;
for(int y=x+1; y {
if((s[t]->getsum())<(s[y]->getsum()))
t=y;
if(t!=x)
{
b=*s[x];
*s[x]=*s[t];
*s[t]=b;
}
}
}
for(int k=0; k {
cout<num<<
" 语文:"<<" "<chinese<<" 数学:"<<" "<math
<<" 外语:"<<" "<english<<" 总分:"<<" "<getsum()
<<" 平均分:"<<" "<getaver()<
cout<<"请按任意继续..."<
system("cls"); //刷新屏幕
}
break;
case '7':
{
if(i==0)
{
cout<<"管理系统中没有录入数据或者数据已经被删除!"<
}
int t;
stu b;
cout<<"本系统所以学生 语文排名如下:"<
t=x;
for(int y=x+1; y {
if((s[t]->chinese)<(s[y]->chinese))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}
for(int k=0; k {
cout<num<<
" 语文:"<<" "<chinese<<" 数学:"<<" "<math
<<" 外语:"<<" "<english<<" 总分:"<<" "<getsum()
<<" 平均分:"<<" "<getaver()<
cout<<"请按任意继续..."<
system("cls"); //刷新屏幕
}
break;
case '8':
{
if(i==0)
{
cout<<"管理系统中没有录入数据或者数据已经被删除!"<
}
int t;
stu b;
cout<<"本系统所以学生 数学排名如下:"<
t=x;
for(int y=x+1; y {
if((s[t]->math)<(s[y]->math))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}
for(int k=0; k {
cout<num<<
" 语文:"<<" "<chinese<<" 数学:"<<" "<math
<<" 外语:"<<" "<english<<" 总分:"<<" "<getsum()
<<" 平均分:"<<" "<getaver()<
cout<<"请按任意继续..."<
system("cls"); //刷新屏幕
}
break;
case '9':
{
if(i==0)
{
cout<<"管理系统中没有录入数据或者数据已经被删除!"<
}
int t;
stu b;
cout<<"本系统所以学生英语排名如下:"<
t=x;
for(int y=x+1; y {
if((s[t]->english)<(s[y]->english))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}
for(int k=0; k {
cout<num<<
" 语文:"<<" "<chinese<<" 数学:"<<" "<math
<<" 外语:"<<" "<english<<" 总分:"<<" "<getsum()
<<" 平均分:"<<" "<getaver()<
cout<<"请按任意继续..."<
system("cls"); //刷新屏幕
}
break;
case 'e':
default:
{
system("cls"); //刷新屏幕
cout<
system("cls");
}
}
if (flag==1)
{
flag=0;
cout<<"继续进行其它操作么?(y/n)"<
do {
if (!strcmp(w,"y")) break;
else if(!strcmp(w,"n"))
cout<<"指令错误!请重新输入!"<
}while (1);
}
}
while(1);
}
很负责任的告诉你,现在30多人都在搜,还是老老实实自己做吧···
你是??DAILI?