鱼C论坛

 找回密码
 立即注册
查看: 1006|回复: 4

[已解决]出现了一个错误,看不懂,希望大佬指教,谢谢

[复制链接]
发表于 2019-8-3 17:39:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
[code]#include<iostream.h>

#include<string.h>

#include<fstream.h>

class stu

{

char name[20];

double much,sum;

public:

stu()

{

}

stu(char n[20],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[50];

ofstream *file[50];

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[20];double much;

do{

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

cin>>name;

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

cin>>much;

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

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

j++;

s[i]=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[20];double much;

char c;

do

{

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

cin>>name;

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

cin>>much;

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

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

j++;

s[i]=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[20];bool flag3=0;char c;

do{

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

cin>>name;

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

{

if(strcmp(name,s[h]->name)==0)

{

flag3=1;

i--;

do{

s[h]=s[h+1];

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[20];double mat;flag2=0;

char c;

do

{

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

cin>>name;

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

{

if(strcmp(name,s[h]->name)==0)

{

flag2=1;

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

cin>>mat;

s[h]->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[q]->getsum()==t)

{

flag1=1;

cout<<"您要查询的职工是:"<<(*s[q]).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[20];int j=0;char c;

do{

int flag=0;

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

cin>>n;

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

{

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

{

flag=1;

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

cout<<(*s[j]).name<<"的总产品数量是"<<(*s[j]).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[k]->name<<"总产品数量:"<<" "<<(*s[k]).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[t]->getsum())<(s[y]->getsum()))

t=y;

if(t!=x)

{

b=*s[x];

*s[x]=*s[t];

*s[t]=b;

}

}

}

if(i==0)

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

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

{

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

<<"总产品数量:"<<" "<<s[k]->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[t]->much)<(s[y]->much))

t=y;

if(t!=x)

{

b=*s[t];

*s[t]=*s[x];

*s[x]=b;

}

}

}


if(i==0)

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

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

{

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

<<"产品数量:"<<" "<<s[k]->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[x];

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

}
错误显示:G:\Microsoft Visual Studio\MyProjects\职工\01.cpp(644) : fatal error C1004: unexpected end of file found
最佳答案
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.在论坛发代码的时候善用加代码的那个功能,我看你前面有[code]的符号可能加完以后不小心把最后的[code]删掉了。复制代码拖动累死我了!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-3 21:23:02 | 显示全部楼层
其实我也不懂 百度了下,有两个回复可能会有帮助

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

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

请在程序结尾按一个回车。。
确保最后一行后面还有一个空行。,。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 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.在论坛发代码的时候善用加代码的那个功能,我看你前面有[code]的符号可能加完以后不小心把最后的[code]删掉了。复制代码拖动累死我了!!!!
运行图片.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-4 23:11:49 | 显示全部楼层
徐江颖 发表于 2019-8-3 21:23
其实我也不懂 百度了下,有两个回复可能会有帮助

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

谢谢大哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-4 23:12:51 | 显示全部楼层
Neverturnback 发表于 2019-8-3 23:11
1、最后少了一个反花括号‘}’;在最后加上花括号
2、C++的头文件没有  .h ; #include、#include后面.h去 ...

谢谢大哥指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 01:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表