c_结构体多文件

来源:互联网 发布:电子元器件数据库ic 编辑:程序博客网 时间:2024/05/29 21:34

main.m

//

//  main.m

//  708

//

//  Created by dllo on 15/7/8.

//  Copyright (c) 2015 flg. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "708.h"


int main(int argc,constchar * argv[]) {

    //1.创建一个Size结构体,包含widthheight两个变量。

////1.1判断两个size是否等宽***************************************

//    size a1={4,5};

//    size a2={4,6};

//    if (equilWidth(a1,a2)) {

//        printf("等宽\n");

//    }

//    else{printf("不等宽\n");}

////1.2判断两个size是否等高***************************************

//    if (equilHight(a1,a2)) {

//        printf("等高\n");

//    }

//    else{printf("不等高\n");}

////1.3判断两个size是否相等***************************************

//    if (equil(a1,a2)) {

//        printf("相等\n");

//    }

//    else{printf("不相等\n");}

//2.定义一个结构体,有两个成员变量,一个是姓名,一个是速度,然后计算两人相距100公里,第一个人的速度4公里/h第二个人的速度6公里/h*****************************

////函数1, 两人相向而行,相遇的时候第一个人走了多远**********************

//    distance a1={"anyichen",4};

//    distance a2={"ningzhiyuan",6};

//    int s=0;

//    s=distance1(a1,a2);

//    printf("%d\n",s);

////函数2, 第一个人先走40公里,第二个人走多远能追上第一个人***************

//    int s1=0;

//    s1=distance2(a1,a2);

//    printf("%d\n",s1);

//3.某班有 5个学生,三门课。分别编写 3个函数实现以下要求:**************

//struct className class={"shuxue",stu1,"yuwen",stu2,"yingyu",stu3};

//struct score stu1={70,80,90,50,40};

//struct score stu2={60,50,40,85,56};

//struct score stu3={70,80,50,45,80};

//student a1={"anyichen",1101,class};

//student a2={"ningzhiyuan",1102,class};

//student a3={"xiaoyahuizi",1103,class};

//student a4={"anleyan",1104,class};

//student a5={"huaqiangu",1105,class};

//3.某班有 5个学生,三门课。分别编写 3个函数实现以下要求:**************

////1求各门课的平均分;*****************************************

//    student a1={"anyichen",1101,100,80,90};

//    student a2={"ningzhiyuan",1102,100,90,50};

//    student a3={"xiaoyahuizi",1103,40,50,50};

//    student a4={"anleyan",1104,80,90,90};

//    student a5={"huaqiangu",1105,10,20,20};

//    int averMath=0,averChinese=0,averEnglish=0;

//    averMath=averageMath(a1,a2,a3,a4,a5);

//    printf("数学平均分=%d\n",averMath);

//    averChinese=averageChinese(a1,a2,a3,a4,a5);

//    printf("语文平均分=%d\n",averChinese);

//    averEnglish=averageEnglish(a1,a2,a3,a4,a5);

//    printf("英语平均分=%d\n",averEnglish);

//////2找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩;********

//    noPass(a1,a2,a3,a4,a5);

//////3找出三门课平均成绩在 85-90分的学生,并输出其学号和姓名************

//    averagedemand(a1,a2,a3,a4,a5);


///////////////////////老师的方法///////////////////////////////////////

 Student1 stu1={"anyichen",80.5,90.5,85,"1101"};

 Student1 stu2={"ningzhiyuan",82.5,94.5,86,"1102"};

 Student1 stu3={"xiaoyahuizi",72.5,68.5,55,"1103"};

 Student1 stu4={"anleyan",41.5,46.5,25,"1104"};

 Student1 stu5={"wenshixuan",48.5,71.5,50,"1105"};

 Student1 stu[5]={stu1,stu2,stu3,stu4,stu5};

//1.调用取平均值函数

    avgScore(stu,5);

//2.找出有两门及以上不及格的学生,并输出其学号和不及格课程的成绩;

    printNoPassStu(stu,5);

//3.找出三门课平均成绩在 85-90分的学生,并输出其学号和姓名************

    scoreThree(stu,5);



//*****************结构体嵌套***************************************

    //className class={"math","chinese","englishi",score[3]};

//    classScore score1={50,60,70,80,90};

//    classScore score2={60,70,70,80,90};

//    classScore score3={50,60,80,80,90};

//    classScore score[3]={score1,score2,score3};

//    className class1={"math",50,60,70,80,90};

//    className class2={"chinese",60,70,70,80,90};

//    className class3={"englishi",50,60,80,80,90};

//    className class[3]={class1,class2,class3};

//    //****************************************************************

//     Student2 stu1={"anyichen","1101",class[3]};

//     Student2 stu2={"ningzhiyuan","1102",class[3]};

//     Student2 stu3={"xiaoyahuizi","1103",class[3]};

//     Student2 stu4={"anleyan","1104",class[3]};

//     Student2 stu5={"wenshixuan","1105",class[3]};

////*****************************************************************

//    Student2 stu[5]={stu1,stu2,stu3,stu4,stu5};

//

//    printf(“%s”,stu[1].class[1].className);

return 0;

}

(2)708.m

//

//  708.m

//  708

//

//  Created by dllo on 15/7/8.

//  Copyright (c) 2015 flg. All rights reserved.

//


#import "708.h"

//1.创建一个Size结构体,包含widthheight两个变量。

////1.1判断两个size是否等宽***************************************

BOOL equilWidth(size a1,size a2){

    if (a1.width==a2.width) {

        return YES;

    }

    returnNO;

}

////1.2判断两个size是否等高***************************************

BOOL equilHight(size a1,size a2){

    if (a1.height==a2.height) {

        return YES;

    }

    returnNO;

}

////1.3判断两个size是否相等***************************************

BOOL equil(size a1,size a2){

    if (a1.height==a2.height&&a1.width==a2.width) {

        return YES;

    }

    returnNO;

}

//2.定义一个结构体,有两个成员变量,一个是姓名,一个是速度,然后计算两人相距100公里,第一个人的速度4公里/h第二个人的速度6公里/h////函数1,两人相向而行,相遇的时候第一个人走了多远

////函数1, 两人相向而行,相遇的时候第一个人走了多远**********************

int distance1(distance a1,distance a2){

int s=0;

    s=4*(100/(a2.speed+a1.speed));

    return s;

}

////函数2, 第一个人先走40公里,第二个人走多远能追上第一个人**************

int distance2(distance a1,distance a2){

int s=0;

s=100+40+(140*a1.speed)/(a2.speed-a1.speed);

    return s;

}

//3.某班有 5个学生,三门课。分别编写 3个函数实现以下要求:**************

////1求各门课的平均分;*****************************************

int averageMath(student a1,student a2,student a3,student a4,student a5){

    int averageMathScore=0;

    averageMathScore=(a1.mathScore+a2.mathScore+a3.mathScore+a4.mathScore+a5.mathScore)/5;

    return averageMathScore;

}

int averageChinese(student a1,student a2,student a3,student a4,student a5){

    int averageChineseScore=0;

    averageChineseScore=(a1.chineseScore+a2.chineseScore+a3.chineseScore+a4.chineseScore+a5.chineseScore)/5;

    return averageChineseScore;

}

int averageEnglish(student a1,student a2,student a3,student a4,student a5){

    int averageEnglishScore=0;

    averageEnglishScore=(a1.englishScore+a2.englishScore+a3.englishScore+a4.englishScore+a5.englishScore)/5;

    return averageEnglishScore;

}

////2找出有两门及以上不及格的学生,并输出其学号和不及格课程的成绩;

void noPass(student a1,student a2,student a3,student a4,student a5){

    if ((a1.mathScore<60&&a1.chineseScore<60&&a1.englishScore<60)||(a1.mathScore<60&&a1.chineseScore<60&&a1.englishScore>=60)||(a1.mathScore>=60&&a1.chineseScore<60&&a1.englishScore<60)||(a1.mathScore<60&&a1.chineseScore>=60&&a1.englishScore<60)){

        printf("不及格学生学号及各科成绩:学号:%d,数学:%d,语文:%d,英语:%d\n",a1.stuNumber,a1.mathScore,a1.chineseScore,a1.englishScore);

    }

    if ((a2.mathScore<60&&a2.chineseScore<60&&a2.englishScore<60)||(a2.mathScore<60&&a2.chineseScore<60&&a2.englishScore>=60)||(a2.mathScore>=60&&a2.chineseScore<60&&a2.englishScore<60)||(a2.mathScore<60&&a2.chineseScore>=60&&a2.englishScore<60)) {

        printf("不及格学生学号及各科成绩:学号:%d,数学:%d,语文:%d,英语:%d\n",a2.stuNumber,a2.mathScore,a2.chineseScore,a2.englishScore);

    }

    if ((a3.mathScore<60&&a3.chineseScore<60&&a3.englishScore<60)||(a3.mathScore<60&&a3.chineseScore<60&&a3.englishScore>=60)||(a3.mathScore>=60&&a3.chineseScore<60&&a3.englishScore<60)||(a3.mathScore<60&&a3.chineseScore>=60&&a3.englishScore<60)) {

        printf("不及格学生学号及各科成绩:学号:%d,数学:%d,语文:%d,英语:%d\n",a3.stuNumber,a3.mathScore,a3.chineseScore,a3.englishScore);

    }

    if ((a4.mathScore<60&&a4.chineseScore<60&&a4.englishScore<60)||(a4.mathScore<60&&a4.chineseScore<60&&a4.englishScore>=60)||(a4.mathScore>=60&&a4.chineseScore<60&&a4.englishScore<60)||(a4.mathScore<60&&a4.chineseScore>=60&&a4.englishScore<60)) {

        printf("不及格学生学号及各科成绩:学号:%d,数学:%d,语文:%d,英语:%d\n",a4.stuNumber,a4.mathScore,a4.chineseScore,a4.englishScore);

    }

    if ((a5.mathScore<60&&a5.chineseScore<60&&a5.englishScore<60)||(a5.mathScore<60&&a5.chineseScore<60&&a5.englishScore>=60)||(a5.mathScore>=60&&a5.chineseScore<60&&a5.englishScore<60)||(a5.mathScore<60&&a5.chineseScore>=60&&a5.englishScore<60)) {

        printf("不及格学生学号及各科成绩:学号:%d,数学:%d,语文:%d,英语:%d\n",a5.stuNumber,a5.mathScore,a5.chineseScore,a5.englishScore);

    }

}

////3找出三门课平均成绩在 85-90分的学生,并输出其学号和姓名***************

void averagedemand(student a1,student a2,student a3,student a4,student a5){

    int aver1=0;

    aver1=(a1.mathScore+a1.chineseScore+a1.englishScore)/3;

    if ((aver1>85||aver1==85)&&(aver1<90||aver1==90)) {

        printf("三门平均成绩在85-90的学生学号和姓名:学号:%d,姓名:%s\n",a1.stuNumber,a1.stuName);

    }

    int aver2=0;

    aver2=(a2.mathScore+a2.chineseScore+a2.englishScore)/3;

    if ((aver2>85||aver2==85)&&(aver2<90||aver2==90)) {

        printf("三门平均成绩在85-90的学生学号和姓名:学号:%d,姓名:%s\n",a2.stuNumber,a2.stuName);

    }

    int aver3=0;

    aver3=(a3.mathScore+a3.chineseScore+a3.englishScore)/3;

    if ((aver3>85||aver3==85)&&(aver3<90||aver3==90)) {

        printf("三门平均成绩在85-90的学生学号和姓名:学号:%d,姓名:%s\n",a3.stuNumber,a3.stuName);

    }

    int aver4=0;

    aver4=(a4.mathScore+a4.chineseScore+a4.englishScore)/3;

    if ((aver4>85||aver4==85)&&(aver4<90||aver4==90)) {

        printf("三门平均成绩在85-90的学生学号和姓名:学号:%d,姓名:%s\n",a4.stuNumber,a4.stuName);

    }

    int aver5=0;

    aver5=(a5.mathScore+a5.chineseScore+a5.englishScore)/3;

    if ((aver5>85||aver5==85)&&(aver5<90||aver5==90)) {

        printf("三门平均成绩在85-90的学生学号和姓名:学号:%d,姓名:%s\n",a5.stuNumber,a5.stuName);

    }

}


///////////////////////老师的方法///////////////////////////////////////

////1.求各门课的平均分;*****************************************

void avgScore(Student1 stu[],int count){

    float chineseCount=0;

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

        chineseCount+=stu[i].chinese;

    }

    printf("语文平均分:%g\n",chineseCount/count);

    //

    float englishCount=0;

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

        englishCount+=stu[i].english;

    }

    printf("英语平均分:%g\n",englishCount/count);

    //

    float mathCount=0;

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

        mathCount+=stu[i].math;

    }

    printf("数学平均分:%g\n",mathCount/count);

};

////2.找出有两门及以上不及格的学生,并输出其学号和不及格课程的成绩;

//void printNoPassStu(Student1 stu[],int count){

//    for (int i=0; i<count; i++) {

//        float num[3]={-1,-1,-1};

//        int noPass=0;

////    noPass=stu[i].chinese<60?++

////        noPass:noPass;

////        noPass=stu[i].english<60?++

////    noPass:noPass;

////        noPass=stu[i].math<60?++

////    noPass:noPass;

//        if (stu[i].chinese<60) {

//            noPass++;

//            num[0]=stu[i].chinese;

//        }

//        if(stu[i].english<60){

//            noPass++;

//            num[1]=stu[i].english;

//        }

//        if(stu[i].math<60){

//            noPass++;

//            num[2]=stu[i].math;

//        }

//        if (noPass>=2) {

//            for (int j=0; j<3; j++) {

//                if (num[j]>=0) {

//                    printf("%g ",num[j]);

//                }

//            }

//        }

//

//};

////2.找出有两门及以上不及格的学生,并输出其学号和不及格课程的成绩;

void printNoPassStu(Student1 stu[],int count){

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

    int noPass=0;

    if (stu[i].chinese<60) {

        noPass+=1;

    }

    if(stu[i].english<60){

        noPass+=1;

    }

    if(stu[i].math<60){

        noPass+=1;

    }

    if (noPass>=2) {

        printf("两门及以上不及格的学生姓名:%s学号%s语文成绩%g英语成绩%g数学成绩%g\n",stu[i].stuName,stu[i].stuNum,stu[i].chinese,stu[i].english,stu[i].math);

    }

    }

};

////3找出三门课平均成绩在 85-90分的学生,并输出其学号和姓名***************

void scoreThree(Student1 stu[],int count){

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

        float average=0;

        average=(stu[i].chinese+stu[i].english+stu[i].math)/3;

        if (average>=85&&average<=90) {

            printf("三门课平均成绩在85-90分姓名:%s学号:%s三科平均分为:%g\n",stu[i].stuName,stu[i].stuNum,average);

        }

    }


};

(3)708.h

//

//  708.h

//  708

//

//  Created by dllo on 15/7/8.

//  Copyright (c) 2015 flg. All rights reserved.

//


#import <Foundation/Foundation.h>

//1.创建一个Size结构体,包含widthheight两个变量。

struct Size{

    int width;

    int height;

};

typedef struct Size size;

////1.1判断两个size是否等宽***************************************

BOOL equilWidth(size a1,size a2);

////1.2判断两个size是否等高***************************************

BOOL equilHight(size a1,size a2);

////1.3判断两个size是否相等***************************************

BOOL equil(size a1,size a2);

//2.定义一个结构体,有两个成员变量,一个是姓名,一个是速度,然后计算两人相距100公里,第一个人的速度4公里/h第二个人的速度6公里/h

struct distance{

    char name[20];

    int speed;

};

typedef struct distance distance;

////函数1, 两人相向而行,相遇的时候第一个人走了多远*********************

int distance1(distance a1,distance a2);

////函数2, 第一个人先走40公里,第二个人走多远能追上第一个人**************

int distance2(distance a1,distance a2);

//3.某班有 5个学生,三门课。分别编写 3个函数实现以下要求:**************

struct student{

    char stuName[20];

    int stuNumber;

    int mathScore;

    int chineseScore;

    int englishScore;

};

typedef struct student student;

////(1)求各门课的平均分;*****************************************

int averageMath(student a1,student a2,student a3,student a4,student a5);

int averageChinese(student a1,student a2,student a3,student a4,student a5);

int averageEnglish(student a1,student a2,student a3,student a4,student a5);

////(2)找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩;********

void noPass(student a1,student a2,student a3,student a4,student a5);

////(3)找出三门课平均成绩在 85-90分的学生,并输出其学号和姓名**************

void averagedemand(student a1,student a2,student a3,student a4,student a5);


///////////////////////老师的方法///////////////////////////////////////

//声明结构体

typedef struct student1 {

    char stuName[20];

    float chinese;

    float english;

    float math;

    char stuNum[20];

}Student1;


//找到五个人各个学科的平均值

void avgScore(Student1 stu[],int count);

//找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩;

void printNoPassStu(Student1 stu[],int count);

//找出三门课平均成绩在 85-90分的学生,并输出其学号和姓名************

void scoreThree(Student1 stu[],int count);


//*****************结构体嵌套**************************************

////*****************************************************************

//struct  classScore{

//    int score1;

//    int score2;

//    int score3;

//    int score4;

//    int score5;

//};

//typedef struct  classScore classScore;

////*****************************************************************

struct  className{

    char classes[20];

    int  score1;

    int  score2;

    int  score3;

    int  score4;

    int  score5;

};

typedef struct  className className;

////******************************************************************

struct Student2{

    char stuName[20];

    char stuNum[10];

    className  class;

};

typedef struct Student2 Student2;

////*******************************************************************

0 0
原创粉丝点击