一秋 发表于 2019-8-3 17:39:24

出现了一个错误,看不懂,希望大佬指教,谢谢

#include<iostream.h>

#include<string.h>

#include<fstream.h>

class stu

{

char name;

double much,sum;

public:

stu()

{

}

stu(char n,double muc)

{

strcpy(name,n);

much=muc;

}

double getsum()

{

sum=much;

return sum;

}

friend void main();

};

void main()

{

cout<<"请选择您需要的操作!"<<endl;

cout<<"操作:"<<endl;

cout<<"(0)职工数据录入"<<endl;

cout<<"(1)增加职工人员"<<endl;

cout<<"(2)删除职工人员"<<endl;

cout<<"(3)新完成的需要添加的产品数量数据"<<endl;

cout<<"查询:"<<endl;

cout<<"(4)按总产品数量查询"<<endl;

cout<<"(5)按职工姓名查询"<<endl;

cout<<"(6)输出所有职工的数据"<<endl;

cout<<"生产量排名名次"<<endl;

cout<<"(7)按职工生产的总产品数量查询排名"<<endl;

cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl;

char p;char w;

stu *s;

ofstream *file;

int i=0;

int j=0;

bool flag2=0;

do

{

cin>>p;

if((p>='0'&&p<='10'))

flag2=1;

else

cout<<"指令错误!请重新输入:"<<endl;

}while(flag2==0);

do{

switch(p)

{

case '0':

{

char c;

char name;double much;

do{

cout<<"请输入职工姓名"<<endl;

cin>>name;

cout<<"请输入产品数量:"<<endl;

cin>>much;

file=new ofstream("d:\\document",ios::ate);

*file<<"姓名"<<name<<"产品数量"<<much<<endl;

j++;

s=new stu(name, much);

i++;

cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;

cin>>c;

flag2=0;

do

{

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

else

flag2=1;

}while(flag2==0);

}while(c=='y');

break;

}

case '1':

{

char name;double much;

char c;

do

{

cout<<"请输入您要增加的职工的姓名:"<<endl;

cin>>name;

cout<<"请输入产品数量"<<endl;

cin>>much;

file=new ofstream("d:\\document",ios::ate);

*file<<"姓名"<<name<<"产品数量"<<much<<endl;

j++;

s=new stu(name, much);

i++;

cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}while(c=='y');

break;

}

case '2':

{

char name;bool flag3=0;char c;

do{

cout<<"请输入您要删除的职工姓名:"<<endl;

cin>>name;

for(int h=0;h<i;h++)

{

if(strcmp(name,s->name)==0)

{

flag3=1;

i--;

do{

s=s;

h++;

}while(h<=i);

}

}

if(flag3==0)

cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";

cout<<"要继续删除吗?(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}while(c=='y');

break;

}

case '3':

{

char name;double mat;flag2=0;

char c;

do

{

cout<<"请输入您要修改的职工的姓名:"<<endl;

cin>>name;

for(int h=0;h<i;h++)

{

if(strcmp(name,s->name)==0)

{

flag2=1;

cout<<"请输入新完成的产品数量:"<<endl;

cin>>mat;

s->much+=mat;

cout<<"数据添加成功!";

}

}

if(flag2==0)

{

cout<<"您要修改的职工本来就不存在!请检查重新输入!"<<endl;

}

cout<<"想继续修改吗(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}while(c=='y');

break;

}


case '4':

{

double t;char c;

do

{

int flag1=0;

cout<<"请输入你要查询职工的总产品数量"<<endl;

cin>>t;

for(int q=0;q<i;q++)

{

if(s->getsum()==t)

{

flag1=1;

cout<<"您要查询的职工是:"<<(*s).name<<endl;

}

}

if(flag1==0)

cout<<"对不起!您要查询的职工不存在!"<<endl;

cout<<"您想继续查询吗?(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}

while(c=='y');

break;

}


case '5':

{

char n;int j=0;char c;

do{

int flag=0;

cout<<"请输入你要查询的职工姓名"<<endl;

cin>>n;

for(int j=0;j<i;j++)

{

if(strcmp(n,(*s).name)==0)

{

flag=1;

cout<<"您要查询的职工是:"<<(*s).name<<endl;

cout<<(*s).name<<"的总产品数量是"<<(*s).getsum()<<endl;

}

}

if(flag==0)

cout<<"对不起!您要查询的职工不存在!"<<endl;

cout<<"您想继续查询吗?(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}

while(c=='y');

break;

}


case '6':

{

cout<<"本系统所有职工数据如下:"<<endl;

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;

for(int k=0;k<i;k++)

{

cout<<k+1<<" "<<"姓名:"<<" "<<s->name<<"总产品数量:"<<" "<<(*s).getsum() <<endl;

}

break;

}

case '7':

{

int t;stu b;


cout<<"本系统所有职工排名如下:"<<endl;

for(int x=0;x<i-1;x++)

{

t=x;

for(int y=x+1;y<i;y++)

{

if((s->getsum())<(s->getsum()))

t=y;

if(t!=x)

{

b=*s;

*s=*s;

*s=b;

}

}

}

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!";

for(int k=0;k<i;k++)

{

cout<<k+1<<" "<<"姓名:"<<" "<<s->name

<<"总产品数量:"<<" "<<s->getsum() <<endl;

}

break;

}


case '9':

{

int t;stu b;


cout<<"本系统所以职工总产品数量排名如下:"<<endl;

for(int x=0;x<i-1;x++)

{

t=x;

for(int y=x+1;y<i;y++)

{

if((s->much)<(s->much))

t=y;

if(t!=x)

{

b=*s;

*s=*s;

*s=b;

}

}

}


if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!";

for(int k=0;k<i;k++)

{

cout<<k+1<<" "<<"姓名:"<<" "<<s->name

<<"产品数量:"<<" "<<s->getsum() <<endl;

}

break;

}

}


cout<<"您想继续进行其他操作吗?(y/n)"<<endl;

bool flag4=0;

do

{

cin>>w;

if(w!='y'&&w!='n')

cout<<"指令错误!请重新输入!"<<endl;

else

flag4=1;

}while(flag4==0);

if(w=='y')

cout<<"请输入操作代码:(0)职工数据录入;(1)增加职工人员; (2)删除职工人员; (3)新完成需要添加的产品数量数据; (4)按总产品数量查询; (5)按职工姓名查询; (6)输出所有职工的数据; (7)按职工生产的总产品数量查询排名"<<endl;

cin>>p;

}while(w=='y');

for(int x=0;x<i;x++)

{

delete s;

cout<<"删除所有数据成员"<<endl;

}
错误显示:G:\Microsoft Visual Studio\MyProjects\职工\01.cpp(644) : fatal error C1004: unexpected end of file found

徐江颖 发表于 2019-8-3 21:23:02

其实我也不懂{:10_256:} 百度了下,有两个回复可能会有帮助

回复1:提示说程序意外结束,这种问题一般是最后少了一个大括号造成的,以前我编程的时候已遇到过……

回复2:如果确定括号是匹配的话。

请在程序结尾按一个回车。。
确保最后一行后面还有一个空行。,。

Neverturnback 发表于 2019-8-3 23:11:47

本帖最后由 Neverturnback 于 2019-8-3 23:18 编辑

1、最后少了一个反花括号‘}’;在最后加上花括号
2、C++的头文件没有.h ; #include<iostream.h>、#include<fstream.h>后面.h去掉
3、在用cin 、cout 、endl的时候打开命名空间;不知道命名空间的话在头文件下面加一个using namespace std;
#include<iostream.h>
#include<string.h>
#include<fstream.h>

using namespace std;

另外给一点建议:
1、每行代码为啥要空一行!!!太不方便看了!!!!只要在每一类的下面多空几行就行了,比如头文件之后多空几行,每个函数之间多空几行。。。。。
2.在论坛发代码的时候善用加代码的那个功能,我看你前面有的符号可能加完以后不小心把最后的删掉了。复制代码拖动累死我了!!!!

一秋 发表于 2019-9-4 23:11:49

徐江颖 发表于 2019-8-3 21:23
其实我也不懂 百度了下,有两个回复可能会有帮助

回复1:提示说程序意外结束,这种问题一般是 ...

谢谢大哥

一秋 发表于 2019-9-4 23:12:51

Neverturnback 发表于 2019-8-3 23:11
1、最后少了一个反花括号‘}’;在最后加上花括号
2、C++的头文件没有.h ; #include、#include后面.h去 ...

谢谢大哥指点
页: [1]
查看完整版本: 出现了一个错误,看不懂,希望大佬指教,谢谢