关于会议记录管理系统出的两个问题???坐等解答

_YLV_ 2013-08-28 11:11:22
下面是会议管理系统,归纳出错了两个错误1:error C2106: '=' : left operand must be l-value
2:error C2564: 'long' : function-style conversion to builtin type takes only one argument
还有冒泡排序似乎出了问题,快要交作业了求大神解救。看看哪里出错了。


#include<iostream.h>
#include<fstream.h>


const int maxnumber=5;//默认最大出席人员为5


//会议类
class meeting_message
{public:
int number;
char name[20];
char place[20];
char time[20];
char compere[10];
char recoder[10];
char joiner[10];
char department[20];
char information[500];
};


//函数声明
void loading();
void add(fstream);
void scan_all(fstream);
void refer(fstream);
void change(fstream);
void Delete(fstream);
void save(fstream);
void scan_way(fstream);



//主函数
void main()
{
int i;
const int maxnumber=1;
fstream file("D:\\meeting.txt",ios::in|ios::out|ios::binary);
if (!file)
{cerr<<"对不起,文件不能打开"<<endl;
};
loading();
while(cin>>i,i!=0)
{

switch(i)
{case 1:add(file);break;
case 2:scan_all(file);break;
case 3:refer(file);break;
case 4:change(file);break;
case 5:Delete(file);break;
case 6:save(file);break;
case 7:scan_way(file);break;
case 0:cout<<"退出系统"<<endl;break;
default :cout<<"对不起,您输入有误,请重新输入。"<<endl;break;
loading();
};
};
file.close();
}



//初始化界面函数
void loading()
{
cout<<"============================"<<endl;
cout<<" 欢迎使用会议记录管理系统 "<<endl;
cout<<"============================"<<endl;
cout<<endl;
cout<<"=========================="<<endl;
cout<<"请选择需要进行的操作:"<<endl;
cout<<"1→添加会议记录"<<endl;
cout<<"2→浏览所有会议记录信息"<<endl;
cout<<"3→按编号查询会议记录"<<endl;
cout<<"4→修改会议记录"<<endl;
cout<<"5→删除会议记录"<<endl;
cout<<"6→会议记录按部门保存到txt文件"<<endl;
cout<<"7→按编号排序浏览"<<endl;
cout<<"0→退出系统"<<endl;
cout<<"============================"<<endl;
}



//添加会议记录函数
void add(fstream f)
{
meeting_message meeting;
cout<<"请输入会议名称"<<endl;
cin>>meeting.name;
cout<<"请输入会议编号"<<endl;
cin>>meeting.number ;
cout<<"请输入部门"<<endl;
cin>>meeting.department ;
cout<<"请输入会议地点"<<endl;
cin>>meeting.place ;
cout<<"请输入会议日期"<<endl;
cin>>meeting.time;
cout<<"请输入会议主持人"<<endl;
cin>>meeting.compere ;
cout<<"请输入会议记录者"<<endl;
cin>>meeting.recoder ;
cout<<"请输入出席人员"<<endl;
cin>>meeting.joiner ;
cout<<"请输入会议摘要"<<endl;
cin>>meeting.information ;
f.write((char*)&meeting,sizeof(meeting_message));
}



//浏览所有会议记录函数
void scan_all(fstream f)
{
meeting_message meeting;
for(int a=0;a<maxnumber;a++)
{f.seekg(long(sizeof(meeting_message)*a));
f.read((char*)&meeting,sizeof(meeting_message));
cout<<meeting.name<<endl;
cout<<meeting.number<<endl;
cout<<meeting.department<<endl;
cout<<meeting.place<<endl;
cout<<meeting.time<<endl;
cout<<meeting.compere<<endl;
cout<<meeting.recoder<<endl;
cout<<meeting.joiner<<endl;
cout<<meeting.information<<endl;
};
}



//按编号查询会议信息
void refer(fstream f)
{
meeting_message meeting;
int a;
cout<<"请输入要查询的会议编号"<<endl;
cin>>a;
for(int b=0;b<maxnumber;b++)
{f.seekg(long(sizeof(meeting_message)*b));
f.read((char*)&meeting,sizeof(meeting_message));
if(a!=meeting.number){break;}
else
{cout<<meeting.name<<endl;
cout<<meeting.number<<endl;
cout<<meeting.department<<endl;
cout<<meeting.place<<endl;
cout<<meeting.time<<endl;
cout<<meeting.compere<<endl;
cout<<meeting.recoder<<endl;
cout<<meeting.joiner<<endl;
cout<<meeting.information<<endl;
};
}
}


//修改会议信息
void change(fstream f)
{ int n;
int choice;
int _number;
char _name[20];
char _place[20];
char _time[20];
char _compere[10];
char _recoder[10];
char _joiner[10];
char _department[20];
char _information[500];
meeting_message meeting;
cout<<"==============================="<<endl;
cout<<"请输入要修改的会议编号"<<endl;
cin>>n;
for(int b=0;b<maxnumber;b++)
{f.seekg(long(sizeof(meeting_message)*b));
f.read((char*)&meeting,sizeof(meeting_message));
if(n!=meeting.number){break;}
else
{cout<<"=========================="<<endl;
cout<<"1.修改会议名称"<<endl;
cout<<"2.修改部门名称"<<endl;
cout<<"3.修改会议地点"<<endl;
cout<<"4.修改会议日期"<<endl;
cout<<"5.修改会议主持人"<<endl;
cout<<"6.修改会议记录人"<<endl;
cout<<"7.修改出席人员"<<endl;
cout<<"8.修改会议摘要"<<endl;
cout<<"==============================="<<endl;
cout<<"请输入要修改的序号:"<<endl;
cin>>choice;
switch(choice)
{
case 1:cout<<"请输入修改后的会议名称:"<<endl;
cin>>_name;
meeting.name=_name;
f.seekp(-long(sizeof(meeting_message),ios::cur));
f.write((char*)&meeting,sizeof(meeting_message));break;
case 2:cout<<"请输入修改后的部门名称:"<<endl;
cin>>_department;
meeting.department=_department;
f.seekp(-long(sizeof(meeting_message),ios::cur));
f.write((char*)&meeting,sizeof(meeting_message));break;
case 3:cout<<"请输入修改后的会议地点:"<<endl;
cin>>_place;
meeting.place=_place;
f.seekp(-long(sizeof(meeting_message),ios::cur));
f.write((char*)&meeting,sizeof(meeting_message));break;
case 4:cout<<"请输入修改后的会议日期:"<<endl;
cin>>_time;
meeting.time=_time;
f.seekp(-long(sizeof(meeting_message),ios::cur));
f.write((char*)&meeting,sizeof(meeting_message));break;
case 5:cout<<"请输入修改后的会议主持人:"<<endl;
cin>>_compere;
meeting.compere=_compere;
f.seekp(-long(sizeof(meeting_message),ios::cur));
f.write((char*)&meeting,sizeof(meeting_message));break;
case 6:cout<<"请输入修改后的会议记录人:"<<endl;
cin>>_recoder;
meeting.recoder=_recoder;
f.seekp(-long(sizeof(meeting_message),ios::cur));
f.write((char*)&meeting,sizeof(meeting_message));break;
case 7:cout<<"请输入修改后的会议出席人员:"<<endl;
cin>>_joiner;
meeting.joiner=_joiner;
f.seekp(-long(sizeof(meeting_message),ios::cur));
f.write((char*)&meeting,sizeof(meeting_message));break;
case 8:cout<<"请输入修改后的会议摘要:"<<endl;
cin>>_information;
meeting.information=_information;
f.seekp(-long(sizeof(meeting_message),ios::cur));
f.write((char*)&meeting,sizeof(meeting_message));break;
}
}
}
}


//删除会议记录
void Delete(fstream f)
{meeting_message meeting;
for(int i=0;i<100;i++)
{f.seekg(long(sizeof(meeting_message)*i));
f.read((char*)&meeting,sizeof(meeting_message));
meeting.number=0;
meeting.name=0;
meeting.time=0;
meeting.compere=0;
meeting.recoder=0;
meeting.information=0;
meeting.department=0;
meeting.place=0;
meeting.joiner=0;
};
}




//会议记录按部门保存到不同的文件中
void save(fstream f)
{
char Department[20];
meeting_message meeting;
fstream fil("F:\\Department.txt",ios::out|ios::binary);
cout<<"请输入指定的部门名称,此部门将保存到F盘中的Department的txt文件" <<endl;
cin>>Department;
for(int i=0;i<maxnumber;i++)
{f.seekg(long(sizeof(meeting_message)*i));
f.read((char*)&meeting,sizeof(meeting_message));
if(meeting.department!=Department){break;}
else
{fil.write((char*)&meeting,sizeof(meeting_message));}
}
fil.close();
}



//按编号排序浏览函数(冒泡排序)
void scan_way(fstream f)
{int temp_number;
char temp_name[20];
char temp_place[20];
char temp_time[20];
char temp_compere[10];
char temp_recoder[10];
char temp_joiner[10];
char temp_department[20];
char temp_information[500];
meeting_message meeting;
meeting_message _meeting;

for(int i=0;i<maxnumber;i++)
{
for(int j=0;j<maxnumber;j++)
{f.seekg(long(sizeof(meeting_message)*j));
f.read((char*)&meeting,sizeof(meeting_message));
f.seekg(long(sizeof(meeting_message)*(++j)));
f.read((char*)&_meeting,sizeof(meeting_message));
if(meeting.number>_meeting.number)
{



temp_number=meeting.number;
meeting.number=_meeting.number;
_meeting.number=temp_number;

temp_name=meeting.name;
meeting.name=_meeting.name;
_meeting.name=temp_name;

temp_place=meeting.place;
meeting.place=_meeting.place;
_meeting.place=temp_place;

temp_time=meeting.time;
meeting.time=_meeting.time;
_meeting.time=temp_time;

temp_compere=meeting.compere;
meeting.compere=_meeting.compere;
_meeting.compere=temp_compere;

temp_recoder=meeting.recoder;
meeting.recoder=_meeting.recoder;
_meeting.recoder=temp_recoder;

temp_joiner=meeting.joiner;
meeting.joiner=_meeting.joiner;
_meeting.joiner=temp_joiner;

temp_department=meeting.department;
meeting.department=_meeting.department;
_meeting.department=temp_department;

temp_information=meeting.information;
meeting.information=_meeting.information;
_meeting.information=temp_information;

}
}
}
for(int c=0;c<maxnumber;c++)
{
cout<<meeting.name<<endl;
cout<<meeting.number<<endl;
cout<<meeting.department<<endl;
cout<<meeting.place<<endl;
cout<<meeting.time<<endl;
cout<<meeting.compere<<endl;
cout<<meeting.recoder<<endl;
cout<<meeting.joiner<<endl;
cout<<meeting.information<<endl;
};
}















...全文
182 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_YLV_ 2013-08-29
  • 打赏
  • 举报
回复
引用 3 楼 max_min_ 的回复:
[quote=引用 1 楼 max_min_ 的回复:] 代码太长,直接说说你的问题 1 left operand must be l-value 等号左边必须是左值, 对应你代码报错的地方,看看赋值是否有问题 2 function-style conversion to builtin type takes only one argument 函数参数不对吧,

//f.seekg(long(sizeof(meeting_message)*i);
//换这样试试,
f.seekg(long(sizeof(meeting_message)*i,,ios::cur; 
3冒泡法

for(int i=0;i<maxnumber;i++)
{
   for(int j=0;j<maxnumber -1 - i;j++)
2 笔误,没有环境少了括号 这样

f.seekg(long(sizeof(meeting_message)*i)),ios::cur);
[/quote] 还是有点看不懂可以帮我复制更改后在再粘贴给我吗?谢谢。
max_min_ 2013-08-28
  • 打赏
  • 举报
回复
引用 1 楼 max_min_ 的回复:
代码太长,直接说说你的问题 1 left operand must be l-value 等号左边必须是左值, 对应你代码报错的地方,看看赋值是否有问题 2 function-style conversion to builtin type takes only one argument 函数参数不对吧,

//f.seekg(long(sizeof(meeting_message)*i);
//换这样试试,
f.seekg(long(sizeof(meeting_message)*i,,ios::cur; 
3冒泡法

for(int i=0;i<maxnumber;i++)
{
   for(int j=0;j<maxnumber -1 - i;j++)
2 笔误,没有环境少了括号 这样

f.seekg(long(sizeof(meeting_message)*i)),ios::cur);
e3internet 2013-08-28
  • 打赏
  • 举报
回复
错误1.两个原始数组对象不能直接使用'=',类似这种_meeting.information=temp_information;应该改成拷贝 strncpy(_meeting.information,temp_information,sizeof(_meeting.information));<你又没对数组重载=符号> 错误2.f.seekp(-long(sizeof(meeting_message),ios::cur));函数参数你都没看清楚改成f.seekp(-long(sizeof(meeting_message)),ios::cur); 好像还有其他问题
max_min_ 2013-08-28
  • 打赏
  • 举报
回复
代码太长,直接说说你的问题 1 left operand must be l-value 等号左边必须是左值, 对应你代码报错的地方,看看赋值是否有问题 2 function-style conversion to builtin type takes only one argument 函数参数不对吧,

//f.seekg(long(sizeof(meeting_message)*i);
//换这样试试,
f.seekg(long(sizeof(meeting_message)*i,,ios::cur; 
3冒泡法

for(int i=0;i<maxnumber;i++)
{
   for(int j=0;j<maxnumber -1 - i;j++)

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧