求助!职工信息管理

bjbj69 2003-07-05 09:38:54
有一个程序,运行不出来。
是对职工信息管理,包括必要信息的删除,插入(字典顺序),排序等功能。
程序里的删除操作没有写出来,并且原文件资料不知道怎么输入!请求帮助!
#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<string.h>
#include<fstream.h>

const int maxsize=100;
struct members
{ char name[20];
int tp;
char zhch[20];
char xl[20];
char birthday[20];
char address[50];
int number;
};
typedef members elemtype;
class seqlist
{ friend int operator==(const elemtype&,const elemtype&);
friend int operator<(const elemtype&,const elemtype&);
friend ostream& operator<<(ostream&,const elemtype&);
private:
elemtype list[maxsize];
int size;
public:
seqlist(void);
void clearlist(void);
int listsize(void);
int listempty(void);
elemtype getelem(int);
void traverlist(void);
int find(elemtype&);
int update(const elemtype&);
void insert(const elemtype&);
int delete(const elemtype&);
void sore(void);
void setuplist(char*);
void writefile(char*);
}

#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<string.h>
#include<fstream.h>
#include"seqlist.h>
int operator==(const elemtype&e1,const elemtype&e2)
{
return(strcmp(e1.name,e2.name)==0);
}
int operator<(const elemtype&e1,const elemtype&e2)
{
return(strcmp(e1.name,e2.name);
}
ostream& operator<<(ostream&ostr,const elemtype&x)
{
ostr<<x.name<<sew(12)<<x.xl<<sew(12)<<x.address<<sew(30)<<x.birthday<<sew(12)<<x.number<<sew(12)<<x.tp<<sew(12)<<x.zhch<<endl;
return ostr;
}
seqlist::seqlist(void):size(0)
{}
void seqlist::clearlist(void)
{
return size=0;
}
int seqlist::listsize(void)
{
return size;
}
int seqlist::listempty(void)
{
return size==0;
}
elemtype seqlist::getelem(int pos)
{
if(pos<1||pos>size)
{ cerr<<"pos is out of range!"<<endl;
exit(1);
}
return list[pos-1];
}
void seqlist::traverlist(void)
{
for(int i=0;i<size;i++)
cout<<list[i];
cout<<endl;
}
int seqlist::find(elemtype&item)
{
for(int i=0;i<size;i++)
if(list[i]==item)
{
item=list[i];
return 1;
}
return 0;
}
int seqlist::update(const elemtype& item)
{
for(int i=0;i<size;i++)
if(list[i]==item)
{
item=list[i];
return 1;
}
return 0;
}
void seqlist::insert(const elemtype& item)
{
if(size==maxsize)
{
cerr<<"list overlow!"<<endl;
exit(1);
}
for(int i=0;i<size;i++)
if(item<list[i])
break;
for(int j=size-1;j>=i;j--)
list[j+1]=list[j];
list[i]=item;
size++;
}
void seqlist::sore(void)
{
int i,j;
eletype x;
for(i=1;i<size;i++)
{
x=list[i];
for(j=i-1;j>=0;j--)
if(x<list[j]
list[j+1]=list[j];
else
break;
list[j+1]=x;
}
}
void seqlist::setuplist(char* fname)
{
ifstream ifstr(fname ios::init||ios::nocreate);
if(!ifstr)
{
cerr<<"file members not found!">>endl;
exit(1);
}
elemtype m;
while(ifstr>>m.name)
{
ifstr>>m.name>>m.xl>>m.address>>m.birthday>>m.number>>m.tp>>m.zhch;
insert(elemtype&m);
}
ifstr.close(void);
}
void seqlist::writefile(char* fname)
{
ofstream ofstr(fname);
if(!ofstr)
{
cerr<<"file members no create!"<<endl;
exit(1);
}
elemtype m;
int n=listsize(void);
for(int i=1;i<=n;i++)
{
m=getelem(i);
ofstr<<m.name<<" "<<m.xl<<" "<<m.address<<" "<<m.birthday<<" "<<m.number<<" "<<m.tp<<" "<<m.tp<<" "<<m.zhch<<endl;
}
ofstr.close(void);
}
#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<string.h>
#include<fstream.h>
#include"seqlist.h"
void main(void)
{seqlist l;
l.setuplist("a:members.dat");
int i,flag=1;
while(flag)
{
cout<<"1 打印整个职工表"<<endl;
cout<<"2 修改表中的记录"<<endl;
cout<<"3 删除表中的记录"<<endl;
cout<<"4 对表进行排序"<<endl;
cout<<"5 结束处理过程"<<endl;
cin>>i;
while(i<1||i>5)
{cout<<"请重新输入:";
cin>>i;
}
cout<<endl;
switch(i)
{
case 1:
l.traverlist(void);
break;
case 2:
members.m;
int x;
cout<<"";
cin>>m.name;
if(l.find(m))
{
cout<<"请输入要修改的量对应的序号:"
cin>>x;
l.update(m);
}
else
{cout<<"请输入其余的量:"<<endl;
l.insert(m);
}
break;
}
case 3:
cout<<"输入要删除的职工姓名:";
cin>>m.name;
l.delete(m);
break;
case 4:
l.sore(void);
break;
case 5:
cout<<"本次修改结束,再见!"<<endl;
flag=0;
}
}l.writefile(a:members.dat);
}
...全文
21 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxy_sss 2003-07-05
  • 打赏
  • 举报
回复
用链表List做
要想保存的话要继承于CArchive类

64,639

社区成员

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

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