}
pro[i].output();
int RData::addproject(int n,char *na,int nn,char *nb)//项目信息添加,虚函数重新定义
{ }
RData::RData()//构造函数 { }
void RData::sort(project *b,int c)//对排序函数的声明 { int i,j; project temp;
int choose;//输入的选项 cout<<\按项目编号排序:\\n\project s;
top=-1;//清空所有项目信息
fstream file(\//打开一个输入文件
while(1) { }
file.close();
file.read((char *)&s,sizeof(s)); if (!file)break; top++; pro[top]=s;
project *p=equal(n);//查找是否存在 if (p==NULL) { } return 0;
top++;
pro[top].addproject(n,na,nn,nb);//通过指针进行添加项目信息 return 1;
- 7 -
cout<<\按项目名称排序:\\n\cout<<\请输入要进行的操作:\cin>>choose;
if(choose==1)//冒泡排序法对项目按编号排序 { }
for (i=0;i<=c;i++) { }
if (choose==2)//冒泡排序法对项目按名称排序 {
for(i=0;i<=c-1;i++) { }
for (i=0;i<=c;i++)
for(j=j+1;j<=c;j++) { }
if(strcmp(b[j].getname(),b[i].getname())>=0) { }
temp=b[i]; b[i]=b[j]; b[j]=temp;
b[i].output(); for(j=0,j<=c;j++;) { }
if (b[j].getnumber()>b[i].getnumber()) { }
temp=b[i]; b[i]=b[j]; b[j]=temp;
- 8 -
}
}
{ }
cout<<\项目名称:\cout<
cout<
void RData::projectdate()//操作函数的定义 {
char choice='1';
char rname[100];//RData函数中的名称 int projectid;//RData函数中的编号 int lev;//RData函数中的等级
char charg[100];//RData函数中的负责人 project *r; while (choice!='0') {
cout<<\添加\\n\cout<<\修改\\n\cout<<\删除\\n\cout<<\查找\\n\cout<<\退出\\n\cin>>choice; switch(choice) {
case'1':;//执行添加操作
system(\
cout<<\输入项目编号:\
- 9 -
cin>>projectid;
cout<<\输入项目名称:\cin>>rname;
cout<<\输入项目等级:\cin>>lev;
cout<<\输入项目负责人:\cin>>charg;
addproject(projectid,rname,lev,charg); break; system(\
cout<<\输入项目编号:\cin>>projectid; r=equal(projectid); if(r==NULL) { }
cout<<\输入新的项目编号:\cin>>projectid;
cout<<\输入新的项目名称:\cin>>rname;
cout<<\输入新的项目等级:\cin>>lev;
cout<<\输入新的项目负责人:\cin>>charg;
r->setnum(projectid,lev); r->setname(rname,charg); break; system(\
cout<<\输入项目编号:\cin>>projectid;
cout<<\该项目不存在\
break;
case'2':;//执行修改操作
case'3':;//执行删除操作
- 10 -
}
}
}
r=equal(projectid); if(r==NULL) { } r->del();
cout<<\删除成功!\break; system(\
cout<<\读入项目编号:\cin>>projectid; r=equal(projectid); if(r=NULL) { }
r->output(); break;
cout<<\退出,谢谢使用!\exit(0);
cout<<\退出:\\n\system(\
cout<<\该项目不存在\break;
cout<<\该项目不存在\break;
case'4':;//执行查找操作
case'5':;
default:;
在类实现的过程中,对基类project类和RData类中声明的函数做了定义,定义output函数用于输出项目信息,虚函数addproject用于项目信息的添加多次重新定义。析构函数定义释放内存,各自基类中声明的数据成员经过公有派生以被保护的形式出现,派生函数可自由进行访问。
- 11 -