出现了一个错误,看不懂,希望大佬指教,谢谢
#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
其实我也不懂{:10_256:} 百度了下,有两个回复可能会有帮助
回复1:提示说程序意外结束,这种问题一般是最后少了一个大括号造成的,以前我编程的时候已遇到过……
回复2:如果确定括号是匹配的话。
请在程序结尾按一个回车。。
确保最后一行后面还有一个空行。,。 本帖最后由 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-8-3 21:23
其实我也不懂 百度了下,有两个回复可能会有帮助
回复1:提示说程序意外结束,这种问题一般是 ...
谢谢大哥 Neverturnback 发表于 2019-8-3 23:11
1、最后少了一个反花括号‘}’;在最后加上花括号
2、C++的头文件没有.h ; #include、#include后面.h去 ...
谢谢大哥指点
页:
[1]