2週目-プロジェクト2プログラムのマルチファイル組織

2840 ワード

/*  
 * Copyright (c++) 2015            
 * All right reserved.  
 *     :student.cpp  
 *       :      
 *     :2015 9 14   
 *      :v1.9   
 *  
 *    :      ,                 。    
                        ,           。   
               ,             。      ,   
                       ,           。 
 *    :  
 *    :     
 */  



mian.c中コード
#include"head.h"
int main()
{
    int n=7;        //      
    int m=21;       //       
    struct stud1 s1[MaxStud]=
    {
        {1,"  ",9901},
        {8,"  ",9902},
        {34,"  ",9901},
        {20,"  ",9902},
        {12,"  ",9901},
        {26,"  ",9902},
        {5,"  ",9901}
    };
    struct stud2 s2[MaxCour]=   //        1 6,            
    {
        {1,1,67},
        {1,2,98},
        {1,4,65},
        {8,1,98},
        {8,3,90},
        {8,6,67},
        {34,2,56},
        {34,4,65},
        {34,6,77},
        {20,1,68},
        {20,2,92},
        {20,3,64},
        {12,4,76},
        {12,5,75},
        {12,6,78},
        {26,1,67},
        {26,5,78},
        {26,6,62},
        {5,1,94},
        {5,2,92},
        {5,6,89}
    };
    allavg(s1,n,s2,m);
    return 0;
}

student.c中コード
#include"head.h"

double studavg(struct stud2 s2[],int m,int i)   //    i       
{
    int j,n=0;              //n    i        
    double sum=0;           //   i     
    for (j=0; j<m; j++)
        if (s2[j].no==i)    //   i   
        {
            n++;
            sum+=s2[j].deg;
        }
    return(sum/n);
}
double couravg(struct stud2 s2[],int m,int i)   //    i       
{
    int j,n=0;              //n    i       
    double sum=0;           //   i     
    for (j=0; j<m; j++)
    {
        if (s2[j].cno==i)   //     i   
        {
            n++;
            sum+=s2[j].deg;
        }
    }
    return(sum/n);
}
void allavg(struct stud1 s1[],int n,struct stud2 s2[],int m)    //            
{
    int i,j;
    printf("     :
"); printf("
"); i=0; while (i<n) { j=s1[i].no; printf("%4d %10s %g
",s1[i].no,s1[i].name,studavg(s2,m,j)); i++; } printf(" :
"); for (i=1; i<=6; i++) printf(" %d:%g
",i,couravg(s2,m,i)); }

head.h中コード
#include <stdio.h>
#define MaxStud 50      //       50
#define MaxCour 300
struct stud1
{
    int no;         //  
    char name[10];  //  
    int bno;        //  
};
struct stud2
{
    int no;         //  
    int cno;        //    
    int deg;        //  
};

まとめ:1ソースファイルのコードにヘッダファイルへの参照を追加する
2構造体の定義もヘッダファイルに含めるべき