问题描述
- C++简单的系统设计遇到问题了- =
-
这个系统 老师说 存取文件有问题 我还不会编译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<<"ttt正在保存数据......"<<endl;
save();
save1();
system("cls");
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;cout<<"ttt 感谢您的使用! 再见! "<<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<<"ttt欢迎使用本科研管理系统! "; cout<<endl; cout<<"tttt 主菜单 "<<endl; cout<<"ttt1. 建立已完成项目 "<<endl; cout<<"ttt2. 查找科研项目 "<<endl; cout<<"ttt3. 新增科研项目 "<<endl; cout<<"ttt4. 删除科研项目 "<<endl; cout<<"ttt5. 新增科研人员 "<<endl; cout<<"ttt6. 显示科研人员 "<<endl; cout<<"ttt7. 删除科研人员 "<<endl; cout<<"ttt8. 退出系统 "<<endl; cout<<"ttt 请选择:"; 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<<"ttt 对不起,无此科研状态! "<<endl; } else { if(p->state==false) { cout<<endl<<endl<<endl<<endl; cout<<"ttt 项目进行中 "<<endl; } else { p->state=false; cout<<endl<<endl<<endl<<endl; cout<<"ttt "<<endl; cout<<"ttt 建立已完成项目 成功 ! "<<endl; cout<<"ttt "<<endl; } } p=first; cout<<"ttt";system("pause");
}
bool keyan::find()
{
string na;
system("cls");
cout<<endl<<endl<<endl<<endl<<endl;cout<<"tttt 查找 "<<endl; cout<<endl; cout<<"tttt请输入项目名:"; 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<<"tttt 查找 "<<endl; cout<<endl; cout<<"tttt请输入科研人名:"; 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<<"tttt 新增科研状态 "<<endl; cout<<endl; cout<<"tttt请输入编号:";cin>>t->date; cout<<"tttt请输入科研项目名称:";cin>>t->name; cout<<"tttt请输入科研级别:";cin>>t->jb; cout<<"tttt请输入负责人姓名:";cin>>t->author; cout<<"tttt请输入科研经费:";cin>>t->publishing_company; cout<<"tttt请输入负责单位:";cin>>t->company; cout<<"tttt请输入甲方单位:";cin>>t->company1; cout<<"tttt请输入签订日期:";cin>>t->qd; cout<<"tttt请输入完成日期:";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<<"ttt 无此人、 无法删除! "<<endl; } else { ////////////////// } cout<<"ttt";system("pause");
}
void keyan::del1()
{
bool t;
t=find1();
if(t==false)
{
cout<<endl<<endl<<endl<<endl;cout<<"ttt 无此人、 无法删除! "<<endl; } else { ////////////////// } cout<<"ttt";system("pause");
}
void keyan::input2()
{
science *t=new science;
system("cls");
cout<
cout
cout
cout>t->id;
cout<<"tttt请输入人员姓名:";cin>>t->xm;
cout<<"tttt请输入性别:";cin>>t->sex;
cout<<"tttt请输入出生日期:";cin>>t->rq;
cout<<"tttt请输入人员职称:";cin>>t->zc;
cout<<"tttt请输入人员住址:";cin>>t->zz;
cout<<"tttt请输入人员电话:";cin>>t->ph;
cout<<"tttt请输入所在部门:";cin>>t->bm;
t->state=true;
t->next=NULL;
first=end=p=t;
}
void keyan::show1()
{
system("cls");
cout<<endl<<endl;cout<<"tttt 信息 "<<endl; cout<<"tttt "<<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<<"ttt";system("pause");
}
void keyan::show()
{
system("cls");
cout<<endl<<endl;cout<<"tttt 信息 "<<endl; cout<<"tttt "<<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<<"ttt";system("pause");
}
//主程序
void main()
{
keyan t;
while(true)
{
t.menu0();
}
}
解决方案
太长了……
能把文件输出语句圈出来吗
解决方案二:
del和del1函数 的功能未实现吧,你自己有没有试过,或者认真看过代码!
解决方案三:
我感觉你这代码贴的也太仓促了,很凌乱啊,你自己看着舒服么,我看半天都没看进去!!