用c++编写多文件编程。
老师让用c++做c语言的课后作业多文件编程。可是完全看不懂。。求论坛的各位大神帮帮忙啊、。设计要求:(1)编写分配一块内存的程序init。
(2)编写完成读进4个学生的信息的函数readin,函数能将这些值存进由函数init申请的存储块中。
(3)编写计算这些学生的总分的函数product。
(4)编写一个sort函数,用来将存储块中的4个学生记录组成的数据读入一数组a中,然后将a中的数据按从总分从小到大的顺序排列。
(5)再用init分配一块内存,将数组a的内容存到这块内存中去,然后把数组a的数据存储到一个名为myData.txt的文本文件中去。
(6)在主程序中调用他们,输出第一次申请的内存块中的内容和数组排序后的内容,按反序输出第2次申请的内存块中的内容。
具体实现要求:只要使用工程文件装配就好了。
求各位大神说的时候,可以把建什么东西说清楚。。
有C语言样板,,求帮忙把他改成C++可好、
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);
}
[ 本帖最后由 都不会的小白 于 2015-4-14 18:44 编辑 ]