// 要求,在输入姓名的时候请不要有空格,比如ZhangSan 不能为Zhang San
//你的题目要求不是很详细,这个大概能满足你的需求
#include
#include
#include
using namespace std;
#define MAX_NUM 30
struct STUDENT
{
string stuName; //姓名
string stuSex; //性别 m f
int stuNum; //学号
double stuScore[3]; //成绩
double stuAver; //平均成绩
double stuAll; //总分
};
void inputData(STUDENT stu[],int &ID)
{
cout<<"请分别输入该学生的姓名,性别,学号,3科成绩"<
cin>>stu[ID].stuScore[1]>>stu[ID].stuScore[2];
cin>>stu[ID].stuScore[4];
// 总分,平均分
stu[ID].stuAll=(stu[ID].stuScore[0]+stu[ID].stuScore[1]+stu[ID].stuScore[2]);
stu[ID].stuAver=stu[ID].stuAll/3.0;
cout<<"录入成功!"<
}
void showTable()
{
cout<<" 姓名 性别 学号 课程1 课程2 课程3 总分 平均分"<
void showData(STUDENT stu[],int ID)
{
cout<
void queryData(STUDENT stu[],int ID)
{
string stuName;
cout<<"请输入要查询的姓名:";
cin>>stuName;
cout<
if(stu[i].stuName==stuName)
{
cout<<"信息找到"<
showData(stu,i);
system("pause");
return ;
}
}
cout<<"未找到信息"<
//总分排序
void sortByAll(STUDENT stu[],int ID)
{
int i,j;
STUDENT temp;
for(i=0;i
for(j=i+1;j
if (stu[i].stuAll > stu[j].stuAll)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
cout<<"排序成功!"<
void funTable()
{
cout<<"================================="<
int main()
{
STUDENT stu[MAX_NUM]; //开辟30个空间来存放学生信息;
int ID=0; //用来计数,记当前学生信息的总数
char ch;
bool flag=true;
int i;
while(flag)
{
funTable();
cin>>ch;
switch (ch)
{
case '1':
inputData(stu,ID);
break;
case '2':
queryData(stu,ID);
break;
case '3':
sortByAll(stu,ID);
break;
case '4':
showTable();
for(i=0;i
showData(stu,i);
}
break;
default:
cout<<"用户选择退出……"<
flag=false;
break;
}
system("pause"); //暂停
system("cls"); //清屏
}
return 0;
}
呵呵,就这样发一贴会有人帮你写吗?