C语言实验报告

2024-12-24 17:03:17
推荐回答(2个)
回答1:


// 要求,在输入姓名的时候请不要有空格,比如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].stuName>>stu[ID].stuSex>>stu[ID].stuNum>>stu[ID].stuScore[0];
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<<"录入成功!"< ID++;
}

void showTable()
{
cout<<" 姓名 性别 学号 课程1 课程2 课程3 总分 平均分"<}

void showData(STUDENT stu[],int ID)
{
cout< cout< cout<}

void queryData(STUDENT stu[],int ID)
{
string stuName;
cout<<"请输入要查询的姓名:";
cin>>stuName;
cout< for(int i=0;i {
if(stu[i].stuName==stuName)
{
cout<<"信息找到"< showTable();
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<<"================================="< cout<<" 1---输入学生信息"< cout<<" 2---查询学生信息"< cout<<" 3---总分排序"< cout<<" 4---显示当前学生信息"< cout<<" 5---退出"< cout<<"=================================="< 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<<"用户选择退出……"< system("pause"); //暂停
flag=false;
break;
}
system("pause"); //暂停
system("cls"); //清屏
}
return 0;
}

回答2:

呵呵,就这样发一贴会有人帮你写吗?