求教。如何调用编好的函数。如何使用prj文件
咔咔。今天又来问问题了。昨天问了一次。问题解决了不少。可还是完成不了整个程序问题是这样的;
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),每个班级4人。学生的信息用结构体描述,包括学号(NO)、姓名、数学(MT)、英语(EN)、物理(PH)、总分(grade).
(1)编写分配一块内存的程序init。
(2)编写完成读进4个学生的信息的函数readin,函数能将这些值存进由函数init申请的存储块中。
(3)编写计算这些学生的总分的函数product。
(4)编写一个sort函数,用来将存储块中的4个学生记录组成的数据读入一数组a中,然后将a中的数据按从总分从小到大的顺序排列。
(5)再用init分配一块内存,将数组a的内容存到这块内存中去,然后把数组a的数据存储到一个名为myData.txt的文本文件中去。
(6)在主程序中调用他们,输出第一次申请的内存块中的内容和数组排序后的内容,按反序输出第2次申请的内存块中的内容。
各个文件及设计思想如下,
ex.h
包含程序需要的头文件,声明各个函数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const int SIZE=4;
struct student {
int NO; char name[20];
float course[3];
float grade;
}
struct student *init(int);
void reading(struct student *);
void product(struct student *);
void sort(struct student *, struct student a[],int);
2.init.c
申请4个存储struct student数据的空间,然后返回存储块的地址,因此返回类型是指针。
3.readin.c
将从键盘输入的数据存储到内存块中,无需返回值。
4.product.c
总分的计算是首先取出存储块的最后一个元素,然后依次用它前面的元素和它相加。
5.sort.c
使用选择法进行排序。
6.ex.c
7.建立一个“项目文件”,只包括组成程序的文件,文件名为
ex.prj。
程序编译成功后,输入4个学生的数据进行测试
第一至六题。我是这样写的:
1.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(struct student)
int SIZE=4;
struct student
{int NO;
char name[20];
float course[3];
float grade;
};
struct student *init(int);
void reading(struct student *);
void product(struct student *);
void sort(struct student *, struct student a[],int);
2.
struct student *init(int SIZE)
{struct student *stu;
stu=(struct student *)calloc(SIZE,36);
return(stu);
}
3.
void reading(struct student *stu)
{int i;
for(i=0;i<4;i++,stu++)
scanf("%d%s%d%d%d",stu->NO,stu->name,stu->course[0],stu->course[1],stu->course[2]);
}
4.
void product(struct student *stu)
{int i;
for(i=0;i<4;i++,stu++)
stu->grade=stu->course[0]+stu->course[1]+stu->course[2];
}
5.
void sort(struct student *stu,struct student a[],int n)
{int i,j;
struct student b;
a=stu;
for(j=0;j<3;j++)
for(i=0;i<3-j;i++)
if(a[i].grade>a[i+1].grade)
{b=a[i];
a[i]=a[i+1];
a[i+1]=b;
}
}
6.
void output(struct student a[])
{struct student * stu2;
FILE *fp;
int i;
stu2=init(SIZE);
stu2=a;
if((fp=fopen("myData.txt","wb"))==NULL)
{printf("cannot open file\N");
return;
}
for(i=0;i<SIZE;i++)
if(fwrite(&a[i],36,1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
就这些了。。不知道有没有写错。如果我要完成那个程序。是不是只要再编一个函数。把上面的函数都调用完就可以运行了?
题目要求创建那个prj文件。要怎么搞的。要把上面的6个函数添加进去。还要添加什么吗?我添加了上面了6个函数。
但是出现了错误。说我没有定义什么的。晕死。究竟要怎么做才能搞好。。求各位有经验的师兄赐教一下了