请教尝试把一个C++程序变成多文件组织遇到的问题

原程序如下:#include<iostream.h>structstudent{longnum;charname[20];floatscore[4],ave;};void... 原程序如下:
#include<iostream.h>

struct student
{
long num;
char name[20];
float score[4],ave;
};

void input (student s[],int n)
{
int i;
cout<<"请输入"<<n<<"个学生的学号、姓名和四门课的成绩:\n";
for(i=0;i<n;i++)
{
cin>>s[i].num;
cout<<"下面请输入姓名。"<<endl;
cin.getline(s[i].name,20);
cin>>s[i].score[0]>>s[i].score[1];
cin>>s[i].score[2]>>s[i].score[3];
cout<<"\n第"<<i+2<<"位同学的信息与资料"<<endl;
}
}

void print(student s[],int n)
{
int i;
cout<<"学号 姓名 高数 英语 物理 C++ 平均成绩\n";
for(i=0;i<n;i++)
{
cout<<s[i].num<<' '<<s[i].name<<' ';
cout<<s[i].score[0]<<' '<<s[i].score[1]<<' ';
cout<<s[i].score[2]<<' '<<s[i].score[3]<<' ';
cout<<s[i].ave<<'\n';
}
}

void main()
{
student stu[2];
int i,j;
float sum;
input(stu,2);
for(i=0;i<2;i++)
{
sum=0;
for(j=0;j<4;j++)
sum+=stu[i].score[j];
stu[i].ave=sum/4;
}
print(stu,2);
}

现在我要把这个程序变成多文件组织结构,即把两个函数放到另外两个文件里,结构体定义做成一个头文件。
如下:
主程序:

#include<iostream.h>
#include<D:\Software Program\大二短学期作业\C++学习文件\结构体数组,输出学生成绩\struct.h>
student stu[2];
void input(stu,int);
void print(stu,int);
void main()
{
int i,j;
float sum;
input(stu,2);
for(i=0;i<2;i++)
{
sum=0;
for(j=0;j<4;j++)
sum+=stu[i].score[j];
stu[i].ave=sum/4;
}
print(stu,2);
}

结构体头文件:

#include<iostream.h>
struct student

{
long num;
char name[20];
float score[4],ave;
};

input函数:

#include<iostream.h>
void input (student s[],int n)
{
int i;
cout<<"请输入"<<n<<"个学生的学号、姓名和四门课的成绩:\n";
for(i=0;i<n;i++)
{
cin>>s[i].num;
cout<<"下面请输入姓名。"<<endl;
cin.getline(s[i].name,20);
cin>>s[i].score[0]>>s[i].score[1];
cin>>s[i].score[2]>>s[i].score[3];
cout<<"\n第"<<i+2<<"位同学的信息与资料"<<endl;
}
}

print函数:
#include<iostream.h>
void print(student s[],int n)
{
int i;
cout<<"学号 姓名 高数 英语 物理 C++ 平均成绩\n";
for(i=0;i<n;i++)
{
cout<<s[i].num<<' '<<s[i].name<<' ';
cout<<s[i].score[0]<<' '<<s[i].score[1]<<' ';
cout<<s[i].score[2]<<' '<<s[i].score[3]<<' ';
cout<<s[i].ave<<'\n';
}
}

出现了很多错误。
1.cpp
①1.cpp(4) : error C2062: type 'int' unexpected
②1.cpp(5) : error C2062: type 'int' unexpected
③1.cpp(14) : error C2065: 'input' : undeclared identifier
④1.cpp(22) : error C2065: 'print' : undeclared identifier
若有大神能帮我修改,万分感谢!
若大神没有那么多时间,请帮忙回答我几个问题:
1,input函数和Print函数既有字符又有数值,调用时的申明格式应该怎样写?
2,③④错误为什么出现?如何修正?

万分感谢各位的回答。
展开
 我来答
祜风
2015-09-13 · TA获得超过226个赞
知道小有建树答主
回答量:313
采纳率:100%
帮助的人:132万
展开全部
  1. ③④错误是因为在主程序中没有包含input和print的定义(实现),解决方法:把这个两个函数的声明放在struct.h中(或者新建一个xxx.h中),然后在每个函数实现的cpp中包含这个头文件即可。

  2. ①②的问题是包含input和Print函数的cpp中用到了结构体student,但是没有包含结构体的头文件。

  3. 你的函数声明:

    void input(stu,int);
    void print(stu,int);

    这种是错的,定义和声明一样的。

    应该这样:

    void input (student s[],int n)

    void print(student s[],int n);

    在函数调用的时候,才去实例化参数。

    调用方式:

    input(stu,2);
    print(stu,2);
    这样是对的。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SilentHeartDZ
2015-09-13
知道答主
回答量:16
采纳率:0%
帮助的人:11.7万
展开全部
少了using namespace std ; 它是和#include<iostream>配套用的,Int啊,什么的定义就在这个命名空间里。另外我看不清楚你到怎么分的文件 ,如果可以麻烦把结构发下图。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式