这个系统 老师说 存取文件有问题 我还不会编译del和del1函数 希望有大神能帮我解答一下好么。 帮个忙拉
#include
#include
#include
#include
using namespace std;
const N=100; //常变量
struct science //结构体
{
int id,ph;
char jb[N];
char qd[N];
char wc[N];
char zc[N];
char zz[N];
char bm[N];
char sex[N];
char rq[N];
char xm[N];
char name[N]; //字符串数组
char author[N];
char publishing_company[N];
char company[N];
char company1[N];
int date;
bool state;
science *next;
} myscience;
class keyan //科研管理类
{
private:
science *first,*end,*p;
public:
keyan()
{
begin();
}
void menu0(); //程序运行
void quit()
{
system("cls");
cout<<endl<<endl<<endl<<endl;
cout<<"\t\t\t正在保存数据......"<<endl;
save();
save1();
system("cls");
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<"\t\t\t 感谢您的使用! 再见! "<<endl;
exit(1);
}
//函数原型
void begin();
void save1();
void save(); //数据存盘
void lend(); //查询科研项目状态
bool find(); //查询科研项目信息
void input(); //新增科研项目
void del(); //删除科研项目
void show(); //显示科研项目信息
void input2(); //增加科研人员
void show1(); //显示科研人员
void del1(); //删除科研人员
bool find1(); //查找
};
void keyan::menu0()
{
system("cls");
int c;
cout<<endl;
cout<<endl<<"\t\t\t欢迎使用本科研管理系统! ";
cout<<endl;
cout<<"\t\t\t\t 主菜单 "<<endl;
cout<<"\t\t\t1. 建立已完成项目 "<<endl;
cout<<"\t\t\t2. 查找科研项目 "<<endl;
cout<<"\t\t\t3. 新增科研项目 "<<endl;
cout<<"\t\t\t4. 删除科研项目 "<<endl;
cout<<"\t\t\t5. 新增科研人员 "<<endl;
cout<<"\t\t\t6. 显示科研人员 "<<endl;
cout<<"\t\t\t7. 删除科研人员 "<<endl;
cout<<"\t\t\t8. 退出系统 "<<endl;
cout<<"\t\t\t 请选择:";
cin>>c;
switch(c)
{
case 1:
lend();
break;
case 2:
show();
break;
case 3:
input();
break;
case 4:
del();
break;
case 5:
input2();
break;
case 6:
show1();
break;
case 7:
del1();
break;
case 8:
quit();
break;
default:
break;
}
}
void keyan::begin()
{
fstream fp("tushu.bat",ios::in);
fstream fs("tushu.bat",ios::in);
if(!fp)
{
cout<
cout
cout
int i;
cout
cout
cout
cout
cout
cin>>i;
switch(i) //选择运行项目
{
case 1:
menu0();
break;
case 2:
exit(0);
break;
default:
break;
}
}
}
void keyan::save() //保存科研项目信息
{
fstream fp("tushu.bat",ios::out);
p=first;
while(p!=NULL)
{
fp.write((char*)p,sizeof(myscience));
p=p->next;
}
}
void keyan::save1() //保存科研人员信息
{
fstream fs("tushu.bat",ios::out);
p=first;
while(p!=NULL)
{
fs.write((char*)p,sizeof(myscience));
p=p->next;
}
}
void keyan::lend()
{
bool t;
t=find();
system("cls");
if(t==false)
{
cout<<endl<<endl<<endl<<endl;
cout<<"\t\t\t 对不起,无此科研状态! "<<endl;
}
else
{
if(p->state==false)
{
cout<<endl<<endl<<endl<<endl;
cout<<"\t\t\t 项目进行中 "<<endl;
}
else
{
p->state=false;
cout<<endl<<endl<<endl<<endl;
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t 建立已完成项目 成功 ! "<<endl;
cout<<"\t\t\t "<<endl;
}
}
p=first;
cout<<"\t\t\t";system("pause");
}
bool keyan::find()
{
string na;
system("cls");
cout<<endl<<endl<<endl<<endl<<endl;
cout<<"\t\t\t\t 查找 "<<endl;
cout<<endl;
cout<<"\t\t\t\t请输入项目名:";
cin>>na;
p=first;
while(p!=NULL)
{
if(p->name==na)
return true;
else
p=p->next;
}
return false;
}
bool keyan::find1()
{
string nae;
system("cls");
cout<<endl<<endl<<endl<<endl<<endl;
cout<<"\t\t\t\t 查找 "<<endl;
cout<<endl;
cout<<"\t\t\t\t请输入科研人名:";
cin>>nae;
p=first;
while(p!=NULL)
{
if(p->xm ==nae)
return true;
else
p=p->next;
}
return false;
}
void keyan::input()
{
science *t=new science;
system("cls");
cout<<endl<<endl<<endl<<endl<<endl;
cout<<"\t\t\t\t 新增科研状态 "<<endl;
cout<<endl;
cout<<"\t\t\t\t请输入编号:";cin>>t->date;
cout<<"\t\t\t\t请输入科研项目名称:";cin>>t->name;
cout<<"\t\t\t\t请输入科研级别:";cin>>t->jb;
cout<<"\t\t\t\t请输入负责人姓名:";cin>>t->author;
cout<<"\t\t\t\t请输入科研经费:";cin>>t->publishing_company;
cout<<"\t\t\t\t请输入负责单位:";cin>>t->company;
cout<<"\t\t\t\t请输入甲方单位:";cin>>t->company1;
cout<<"\t\t\t\t请输入签订日期:";cin>>t->qd;
cout<<"\t\t\t\t请输入完成日期:";cin>>t->wc;
t->state=true;
t->next=NULL;
first=end=p=t;
}
void keyan::del()
{
bool t;
t=find();
if(t==false)
{
cout<<endl<<endl<<endl<<endl;
cout<<"\t\t\t 无此人、 无法删除! "<<endl;
}
else
{
//////////////////
}
cout<<"\t\t\t";system("pause");
}
void keyan::del1()
{
bool t;
t=find1();
if(t==false)
{
cout<<endl<<endl<<endl<<endl;
cout<<"\t\t\t 无此人、 无法删除! "<<endl;
}
else
{
//////////////////
}
cout<<"\t\t\t";system("pause");
}
void keyan::input2()
{
science *t=new science;
system("cls");
cout<
cout
cout
cout>t->id;
cout<<"\t\t\t\t请输入人员姓名:";cin>>t->xm;
cout<<"\t\t\t\t请输入性别:";cin>>t->sex;
cout<<"\t\t\t\t请输入出生日期:";cin>>t->rq;
cout<<"\t\t\t\t请输入人员职称:";cin>>t->zc;
cout<<"\t\t\t\t请输入人员住址:";cin>>t->zz;
cout<<"\t\t\t\t请输入人员电话:";cin>>t->ph;
cout<<"\t\t\t\t请输入所在部门:";cin>>t->bm;
t->state=true;
t->next=NULL;
first=end=p=t;
}
void keyan::show1()
{
system("cls");
cout<<endl<<endl;
cout<<"\t\t\t\t 信息 "<<endl;
cout<<"\t\t\t\t "<<endl;
cout<<left<<setw(14)<<"编号"<<setw(10)<<"姓名"<<setw(14)<<"性别"<<setw(10)<<"出生日期"<<setw(10)<<"职称"<<setw(20)<<"住址"<<setw(20)<<"电话"<<setw(10)<<"所在部门"<<endl;
p=first;
while(p!=NULL)
{
cout<<left<<setw(14)<<p->id<<setw(10)<<p->xm<<setw(14)<<p->sex<<setw(10)<<p->rq<<setw(10)<<p->zc<<setw(20)<<p->zz<<setw(20)<<p->ph<<setw(10)<<p->bm;
p=p->next;
}
cout<<"\t\t\t";system("pause");
}
void keyan::show()
{
system("cls");
cout<<endl<<endl;
cout<<"\t\t\t\t 信息 "<<endl;
cout<<"\t\t\t\t "<<endl;
cout<<left<<setw(14)<<"姓名"<<setw(10)<<"负责人姓名"<<setw(14)<<"科研经费"<<setw(10)<<"项目级别"<<setw(10)<<"编号"<<setw(20)<<"甲方单位"<<setw(20)<<"负责单位"<<setw(20)<<"合同签订日期"<<setw(20)<<"完成日期"<<endl<<setw(10)<<"状态"<<endl;
p=first;
while(p!=NULL)
{
cout<<left<<setw(14)<<p->name<<setw(10)<<p->author<<setw(14)<<p->publishing_company<<setw(10)<<p->jb<<setw(10)<<p->date<<setw(20)<<p->company1<<setw(20)<<p->company<<setw(20)<<p->qd<<setw(20)<<p->wc;
if(p->state==true) cout<<setw(10)<<"项目进行中"<<endl;
else cout<<setw(10)<<"项目已完成"<<endl;
p=p->next;
}
cout<<"\t\t\t";system("pause");
}
//主程序
void main()
{
keyan t;
while(true)
{
t.menu0();
}
}