我写了好久,不停的有错然后不停的纠正,但是这个错小弟实在看不懂了,虚心求指点,打通任督二脉。
我想编一个学生信息管理程序“按总分由高到低显示学生信息”,刚开始我是用的引用也就是类型struct Xingxi我用的不是数组里面用的数组比较方面,不过编到后面时,要涉及到对总分的排序,问题就出现了,因为在对zongfen 排序时要输出排序后的学生信息,换一句话说就是按照学生总成绩排名,我在比较总分时就不能对其它学生信息做相同的交换。后来想到用数组来做也就是现在的Xinfxi[100]里面不用数组,就可以在交换比较总分时将其他信息一起换了。但是我学得不精,在这里老是错,实在是想不通了。
不知道传值时有没有问题?
#include<iostream>
#include<string>
using namespace std;
int length=0;
struct Students
{
int Xuehao;
string Xingming;
char Xingbie;
double Chengji;
float zongfen,pingjunfen;
int chinese;
int math;
int english;
}Xingxi[100],tempt2[100];
void LuRu(Students xingxi[])
{ int i=0;
char s;
do{ //用于存放用户输入的字符
cout<<"录入学生信息:"<<endl;
cout<<"学号"<<endl;
cin>>Xingxi[i].Xuehao;
cout<<"姓名:"<<endl;
cin>>Xingxi[i].Xingming;
cout<<"性别:"<<endl;
cin>>Xingxi[i].Xingbie;
cout<<"语文成绩:,数学成绩:,英语成绩:"<<endl;
cin>>Xingxi[i].chinese;
cin>>Xingxi[i].math;
cin>>Xingxi[i].english;
length++;
i++;
cout<<"是否还继续输入学生信息(y/n)?"<<endl;
cin>>s;
}while(s=='y');
}
void search(Students xingxi[])
{ int i,flag=1;
char s;
string intext;
do {
cout<<"请输入需要查询的学生姓名:"<<endl;
cin>>intext;
for(i=0;i<=length;i++)
{
if(intext==Xingxi[i].Xingming)
{ cout<<Xingxi[i].Xingming<<" "<<Xingxi[i].Xingbie<<" "<<Xingxi[i].Xuehao<<" "<<Xingxi[i].chinese<<" "<<Xingxi[i].math<<" "<<Xingxi[i].english<<endl;
flag=0;
}
}
if(flag==1)cout<<"无此姓名,是否重新输入(y/n)?"<<endl;
cin>>s;
}while(s=='y');
}
void downup(Students xingxi[])
{
int i,j;
float temp1;
for(i=0;i<=length-2;i++)
{
for(j=0;j<=length-2-i;j++)
{
if(Xingxi[i].zongfen<Xingxi[i+1].zongfen)
{
temp1=Xingxi[i].zongfen;
Xingxi[i].zongfen=Xingxi[i+1].zongfen;
Xingxi[i+1].zongfen=Xingxi[i].zongfen;
tempt2[i]=Xingxi[i];
Xingxi[i]=Xingxi[i+1];
Xingxi[i+1]=tempt2[i];
}
}
}
int main()
{ char n;
cout<<"欢迎进入学生信息管理系统,请选择你要进行的操作:"<<endl;
while(1)//设置了一个无限循环,直到天荒地老,累死不休,直到用户say:hai boy/girl go asleep!。这样就可以不断进行操作。
{ cout<<"1.录入学生信息;2.查看学生的某门总分或各科平均分;3.查询学生基本信息;4.对学生总分由高到低排列;5.结束对系统的操作"<<endl;//提供用户一个界面的操作环境,简洁易懂。
cin.get(n);
if(n=='1') LuRu(Xingxi);
if(n=='3') search(Xingxi);
if(n=='4') downup(Xingxi);
if(n=='5')return 0;
}
return 0;
}
错误提示是这样的,但我真的不知道mian会错的。衷心谢谢了
Compili ng...
hd.cpp
c:\users\asus\documents\sgsdg\hd.cpp(84) : error C2601: 'main' : local function definitions are illegal
c:\users\asus\documents\sgsdg\hd.cpp(100) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
hd.obj - 1 error(s), 0 warning(s)