结构体的使用 for循环使用方式 sort 使用

 

1.创建结构体

    成员变量 多个

    成员函数 多个

    其他结构体 多个

2.定义结构体变量

    结构体名 变量名

3.调用   .成员访问符

 

 

for循环:

for(1.初始条件;2.循环条件3.条件改变){

  4.表达式

}

while:

1

while(2){

  4  

  3

}

 

 

sort 使用

#include <bits/stdc++.h>

using namespac std;

int mian(){

  int a[5]={1,3,4,6,5};

  sort (a,a+5);

  for(int i=0;i<5;i++){

    cout<<a[i]<<" ";

  }

}

 

 

 

//三个教室
//每个教室5个学生
//每个学生包含 姓名 年龄 成绩
//1.求一个教室内学生总成绩
//2.输出一个教室所有学生信息
//3.输出一个教室根据学生成绩排序后的所有信息
#include<iostream>
using namespace std;
struct Student{
        string stu_name;
        int stu_age;
        double stu_grade;
        void get_Name_Age_Grade(){
            cout<<stu_name<<" "
            <<stu_age<<" "
            <<stu_grade<<endl; 
        }
};
struct Class{
    string cla_name;
    Student stu[5];
};
int  main(){
    Class cla[3];
    for(int i=0;i<3;i++){
        cin>>cla[i].cla_name;
        for(int j=0;j<5;j++){
            cin>>cla[i].stu[j].stu_name
            >>cla[i].stu[j].stu_age
            >>cla[i].stu[j].stu_grade;
        }
    }
    cout<<"输入教室名称:"<<endl;
    string name;
    int n;
    cin>>name;
    for(int i=0;i<3;i++){
        if(cla[i].cla_name==name){
            cout<<"请选择功能:"<<endl;
            cout<<"1.求一个教室内学生总成绩" <<endl;
            cout<<"2.输出一个教室所有学生信息"<<endl;
            cout<<"3.输出一个教室根据学生成绩排序后的所有信息"<<endl;
            cin>>n;
            switch(n){
                case 1:{
                    int sum_Grade=0;
                    for(int j=0;j<5;j++){
                        sum_Grade+=cla[i].stu[j].stu_grade;
                    }
                    cout<<sum_Grade<<endl;
                    break;
                }
                case 2:{
                    for(int j=0;j<5;j++){
                        cla[i].stu[j].get_Name_Age_Grade();
                    }
                    break;
                }
                case 3:{
                    for(int m=0;m<5;m++){
                        for(int j=4;j>=0;j--){
                            if(cla[i].stu[j].stu_grade>cla[i].stu[j-1].stu_grade){
                                swap(cla[i].stu[j],cla[i].stu[j-1]);
                            }
                        }
                    }
                    for(int j=0;j<5;j++){
                        cla[i].stu[j].get_Name_Age_Grade();
                    }
                    break;
                }
            }
        }
    }
    return 0;
}  

 

posted @ 2024-12-08 08:32  郭立恒  阅读(41)  评论(0)    收藏  举报