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構造体の定義もヘッダファイルに含めるべき