Xj_jun 2015-07-18 00:49 采纳率: 0%
浏览 1435
已结题

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<<"\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();
}
}

  • 写回答

3条回答 默认 最新

  • 菊草叶与圆企鹅 2015-07-18 01:49
    关注

    太长了……
    能把文件输出语句圈出来吗

    评论

报告相同问题?

悬赏问题

  • ¥15 Pwm双极模式H桥驱动控制电机
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题