实训作业
#include <iostream> #include <algorithm> #include <string> #include <cstring> #include <map> const int N=1000001; using namespace std; int tt=0;//用于存储本系统中管理员的人数,初始时管理员的人数为0 int ee=0;//存储资产种类的个数 int ss=0;//可领资产人员的数目 int rr=0;//登记表上记录的人数 int r2=0;//记录归还表上记录的人数 bool flag=false;//标记作用 map<string,int>A; map<string,int>::iterator it; void init()//在录入资产信息之前就定义好的固定资产的类别 { A["办公设备"]=1;//大类 A["数码相机"]=1; A["投影仪"]=1; A["笔记本电脑"]=1; A["台式机"]=1; A["服务器"]=1; A["传真机"]=2;//小类 A["复印机"]=2; A["打印机"]=2; A["其它"]=2; } //管理员类及其函数 class Manager//管理员类 { public: Manager() { mima="123456";//初始密码 } string name;//只含有数字,字母组成的字符串 string mima;//管理员的密码 void denglu();//登录函数 void zhuce();//注册新管理员函数 void update();//修改密码函数 void Mshow();//用户管理,针对管理员 void Mdisplay();//显示 void Mupdate();//修改 void Madd();//添加 void Mdelete();//删除 void Msearch();//查询 } q[N]; //含有的管理员的人数上限 void Manager::Mshow() { cout<<"----用户管理-----"<<endl; cout<<"1.添加人员信息"<<endl; cout<<"2.修改人员信息"<<endl; cout<<"3.查询人员信息"<<endl; cout<<"4.删除人员信息"<<endl; cout<<"5.显示已有人员信息"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void Manager::Mdelete()//删除人员信息 { int se; cout<<"请输入要删除人员的编号(编号从0开始)"<<endl; cin>>se; for(int j=se; j<tt-1; j++) { q[j]=q[j+1]; } tt-=1; } void Manager::Msearch()//查询人员信息 { int se; cout<<"请输入要查询人员的编号(编号从0开始)"<<endl; cin>>se; cout<<"姓名为"<<q[se].name<<endl; } void Manager::Mdisplay()//显示人员信息 { for(int i=0; i<tt; i++) { cout<<"姓名为"<<q[i].name<<endl; } } void Manager::Mupdate()//修改人员信息 { int se; cout<<"请输入要修改人员的编号(编号从0开始)"<<endl; cin>>se; cout<<"请重新输入姓名"<<endl; cin>>q[se].name; } void Manager::Madd()//增加人员信息 { cout<<"请输入新增人员姓名"<<endl; cin>>q[tt].name; cout<<"请输入密码"<<endl; cin>>q[tt].mima; tt++; } void Manager::denglu() { string str,str2; cout<<"请输入用户名"<<endl; cin>>str; int i; for(i=0; i<tt; i++)//遍历查找 { if(str==q[i].name) { cout<<"请输入密码"<<endl; cin>>str2; if(str2==q[i].mima) { flag=true; cout<<"登录成功"<<endl; } else { cout<<"密码错误,请重新登陆"<<endl; } } break; } if(i>=tt) { cout<<"不存在此用户名,请重新登陆"<<endl; } } void Manager::zhuce() { string str; int i; cout<<"请输入合法的用户名,作为新注册管理员名"<<endl; while(cin>>str) { for(i=0; i<tt; i++) { if(str==q[i].name) { cout<<"此用户名已经存在,请重新输入一个合法的用户名"<<endl; break; } } if(i>=tt) { q[tt].name=str; cout<<"请输入一个合法的密码"<<endl; cin>>q[tt++].mima; cout<<"登录成功"<<endl; flag=true; break; } } } void Manager::update() { cout<<"请输入您所要修改密码的用户名"<<endl; string str,str2; cin>>str; int i; for(i=0; i<tt; i++) { if(q[i].name==str) { cout<<"请输入新密码"<<endl; cin>>q[i].mima; flag=true; cout<<"修改密码成功,并成功登陆"<<endl; break; } } if(i>=tt) { cout<<"此用户名不存在,请重新登陆"<<endl; } } //固定资产信息管理类及其函数 class Money//固定资产 { public: int bh; string mc;//名称 int lb;//类别 string xh;//型号 double jz;//价值 string time;//购买时间 string zt;//状态(正常,维修,报废) string use;//使用者(空,使用者) string bz;//备注 void show(); void show11(); void show22(); void add();//增加类中设备 void delet();//删除类中设备 void sdisplay();//显示已有小类设备 void bdisplay();//显示已有大类设备 void xadd();//增加固定资产信息 void xupdate();//修改固定资产信息 void xdelet();//删除固定资产信息 void xdisplay();//显示固定资产信息 } p[N]; void Money::show() { cout<<"----固定资产信息管理----"<<endl; cout<<"1.固定资产类别管理"<<endl; cout<<"2.固定资产信息管理"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择:"<<endl; } void Money::show11() { cout<<"----固定资产类别管理-----"<<endl; cout<<"1.添加资产设备"<<endl; cout<<"2.删除资产设备"<<endl; cout<<"3.显示已有小类设备"<<endl; cout<<"4.显示已有大类设备"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void Money::show22() { cout<<"----固定资产信息管理-----"<<endl; cout<<"1.添加固定资产信息"<<endl; cout<<"2.删除固定资产信息"<<endl; cout<<"3.修改固定资产信息"<<endl; cout<<"4.显示固定资产信息"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void Money::add()//添加设备 { int se; bool B=false; string str; cout<<"请输入你要增加的设备名称"<<endl; cin>>str; cout<<"请输入你要增加的设备分类,1代表大类,2代表小类"<<endl; cin>>se; if(A[str]) { cout<<"此类别已经存在,不需要重新添加"<<endl; B=true; } if(B==false) { A[str]=se; cout<<"添加类别成功"<<endl; } } void Money::delet()//删除设备 { bool B=false; string str; cout<<"请输入你要删除的设备名称"<<endl; cin>>str; if(A[str]) { cout<<"删除成功"<<endl; A[str]=0; B=true; } if(B==false) { cout<<"此类别不存在"<<endl; } } void Money::sdisplay()//显示已有小类设备 { cout<<"目前所有小类清单"<<endl; for(it=A.begin(); it!=A.end(); it++) { if(it->second==2) { cout<<it->first.data()<<endl; } } } void Money::bdisplay()//显示已有大类设备 { cout<<"目前所有大类清单"<<endl; for(it=A.begin(); it!=A.end(); it++) { if(it->second==1) { cout<<it->first.data()<<endl; } } } void Money::xadd()//增加固定资产信息 { cout<<"增加固定资产信息"<<endl; cout<<"编号为"<<ee<<endl; p[ee].bh=ee; cout<<"请输入名称"<<endl; cin>>p[ee].mc; cout<<"请输入类别"<<endl; cin>>p[ee].lb; if(A[p[ee].mc]==0)//添加新资产类别名称 A[p[ee].mc]=p[ee].lb; cout<<"请输入资产信息"<<endl; cin>>p[ee].xh; cout<<"请输入资产价值"<<endl; cin>>p[ee].jz; cout<<"请输入资产的购买日期"<<endl; cin>>p[ee].time; cout<<"请输入资产的状态"<<endl; cin>>p[ee].zt; cout<<"请输入资产的使用者"<<endl; cin>>p[ee].use; cout<<"请输入资产的备注"<<endl; cin>>p[ee++].bz; } void Money::xdelet()//删除固定资产信息 { cout<<"通过编号来进行删除信息,请输入你要修改的编号(编号从0开始)"<<endl; int se; cin>>se; if(se>=ee) { cout<<"输入编号有误"<<endl; return ; } for(int i=se; i<ee-1; i++) { p[i]=p[i+1]; } ee-=1; cout<<"删除成功"<<endl; } void Money::xupdate()//修改固定资产信息 { cout<<"通过编号来进行修改信息,请输入你要修改的编号(编号从0开始)"<<endl; int se; cin>>se; if(se>=ee) { cout<<"输入编号有误"<<endl; return ; } cout<<"请重新输入资产名称"<<endl; cin>>p[se].mc; cout<<"请重新输入类别"<<endl; cin>>p[se].lb; if(A[p[se].mc]==0)//添加新资产类别名称 A[p[se].mc]=p[se].lb; cout<<"请重新输入资产型号"<<endl; cin>>p[se].xh; cout<<"请重新输入资产价值"<<endl; cin>>p[se].jz; cout<<"请重新输入资产购买时间"<<endl; cin>>p[se].time; cout<<"请重新输入资产状态"<<endl; cin>>p[se].zt; cout<<"请重新输入资产使用者"<<endl; cin>>p[se].use; cout<<"请重新输入资产备注"<<endl; cin>>p[se].bz; } void Money::xdisplay()//显示固定资产信息 { cout<<"已有固定资产信息"<<endl; for(int i=0; i<ee; i++) { cout<<"资产的编号为"<<p[ee].bh<<endl; cout<<"资产的名称为"<<p[ee].mc<<endl; cout<<"资产的类别为"<<p[ee].lb<<endl; cout<<"资产的型号为"<<p[ee].xh<<endl; cout<<"资产的价值为"<<p[ee].jz<<endl; cout<<"资产的购买日期为"<<p[ee].time<<endl; cout<<"资产的状态为"<<p[ee].zt<<endl; cout<<"资产的使用者为"<<p[ee].use<<endl; cout<<"资产的备注为"<<p[ee].bz<<endl; } } //人员信息类及其函数 class people:public Manager { public: string zw;//职务 string bz;//备注,存储员工所属资产 int bh;//编号 void pshow(); void pdisplay();//显示 void pupdate();//修改 void padd();//添加 void pdelete();//删除 void psearch();//查询 } T[N]; class Fmoney//用于资产分配 { public: string djbh;//登记表的编号 int bh;//设备编号 string time;//领用时间 string gl;//管理员 string yt;//用途 string bz;//备注 people temp;//类对象,用于登记人员 void Fshow(); void LY();//领用函数 void GH();//归还函数 } Y[N],U[N]; //登记表,归还表 void people::pshow() { cout<<"----人员信息管理-----"<<endl; cout<<"1.添加人员信息"<<endl; cout<<"2.修改人员信息"<<endl; cout<<"3.查询人员信息"<<endl; cout<<"4.删除人员信息"<<endl; cout<<"5.显示已有人员信息"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void people::pdelete()//删除人员信息 { int i; cout<<"请输入要删除人员的编号(编号从0开始)"<<endl; cin>>i; for(int j=i; j<ss-1; j++) { T[j]=T[j+1]; } ss-=1; } void people::psearch()//查询人员信息 { int i; cout<<"请输入要查询人员的编号(编号从0开始)"<<endl; cin>>i; cout<<"姓名为"<<T[i].name<<endl; cout<<"职务为"<<T[i].zw<<endl; cout<<"备注为"<<T[i].bz<<endl; } void people::pdisplay()//显示人员信息 { for(int i=0; i<ss; i++) { cout<<"编号为"<<T[i].bh<<endl; cout<<"姓名为"<<T[i].name<<endl; cout<<"职务为"<<T[i].zw<<endl; cout<<"备注为"<<T[i].bz<<endl; } } void people::pupdate()//修改人员信息 { int se; cout<<"请输入要修改人员的编号"<<endl; cin>>se; cout<<"请重新输入姓名"<<endl; cin>>T[se].name; cout<<"请重新输入职务"<<endl; cin>>T[se].zw; cout<<"请重新输入备注"<<endl; cin>>T[se].bz; } void people::padd()//增加人员信息 { cout<<"编号为"<<ss<<endl; T[ss].bh=ss; cout<<"请输入姓名"<<endl; cin>>T[ss].name; cout<<"请输入职务"<<endl; cin>>T[ss].zw; cout<<"请输入备注"<<endl; cin>>T[ss].bz; ss++; } void Showmain1() { cout<<"---------固定资产管理系统----------"<<endl; cout<<"1.管理员登录"<<endl; cout<<"2.退出系统"<<endl; cout<<"请输入您的选择: "<<endl; } class Cmoney//用于资产处置 { public: void Cshow(); void tiaobo();//调拨 void bianmai();//变卖 void baofei();//报废 }; void Cmoney::baofei() { cout<<"请输入要报废资产的编号"<<endl; int se; cin>>se; if(p[se].use=="空") { p[se].zt=="报废"; cout<<"报废成功"<<endl; } else cout<<"无法报废"<<endl; } void Cmoney::Cshow() { cout<<"----资产处置-----"<<endl; cout<<"1.调拨"<<endl; cout<<"2.变卖"<<endl; cout<<"3.报废"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择:"<<endl; } void Cmoney::tiaobo()//资产的调拨 { cout<<"请输入您要调拨的固定资产的编号"<<endl; int se; cin>>se; cout<<"--请输入你要调拨的方式--"<<endl; cout<<"1.通过变更资产使用人"<<endl; cout<<"2.通过改变存放位置"<<endl; cout<<"3.通过改变资产状态"<<endl; cout<<"请输入您的选择: "<<endl; int sele; cin>>sele; if(sele==1) { cout<<"请输入您要调拨资产的两个人的编号A与B,将资产A给B"<<endl; int bh1,bh2; cin>>bh1>>bh2; T[bh2].bz=T[bh2].bz+T[bh1].bz; T[bh1].bz="\0"; } else if(sele==2) { cout<<"请输入您要改变资产存放的位置,如A与B互换"<<endl; int se1,se2; cin>>se1>>se2; Money tt; tt=p[se1]; p[se1]=p[se2]; p[se2]=tt; } else if(sele==3) { cout<<"请输入您要改变资产状态的编号"<<endl; int se; string str; cin>>se; cout<<"请输入您要改变资产状态的状态"<<endl; cin>>str; p[se].zt=str; } } void Cmoney::bianmai()//变卖函数 { cout<<"请输入变卖的资产的编号"<<endl; int se; cin>>se; if(p[se].zt=="空") { for(int i=se; i<ee-1; i++) { p[i]=p[i+1]; } ee-=1; cout<<"变卖成功"<<endl; } else { cout<<"先归还此资产"<<endl; p[se].use="空"; cout<<"请输入归还日期"<<endl; cin>>U[r2].time; cout<<"归还管理员为"<<Y[se].gl<<endl; U[r2++].gl=Y[se].gl; for(int j=se; j<rr-1; j++) { Y[j]=Y[j+1]; } rr-=1; for(int i=se; i<ee-1; i++) { p[i]=p[i+1]; } ee-=1; cout<<"变卖成功"<<endl; } } void Fmoney::GH() { cout<<"请输入你要归还的资产编号"<<endl; int se; cin>>se; if(se>=rr) { cout<<"你输入归还的资产编号错误"<<endl; return ; } p[se].use="空"; cout<<"请输入归还日期"<<endl; cin>>U[r2].time; cout<<"归还管理员为"<<Y[se].gl<<endl; U[r2++].gl=Y[se].gl; for(int j=se; j<rr-1; j++) { Y[j]=Y[j+1]; } rr-=1; } void Fmoney::LY() { int se; bool se1=false; cout<<"请输入已经登记人员的编号"<<endl; cin>>se; if(se>=ss) { cout<<"输入人员编号有误"<<endl; return ; } cout<<"登记表的编号为"<<rr<<endl; Y[rr].djbh=rr; Y[rr].temp=T[se]; cout<<"请输入设备编号"<<endl; cin>>Y[rr].bh; if((p[Y[rr].bh].zt=="正常")&&(p[Y[rr].bh].use=="空")) { se1=true; } if(se1==false) { cout<<"此资产不能用"<<endl; return ; } cout<<"请输入领用日期"<<endl; cin>>Y[rr].time; cout<<"请输入管理员编号"<<endl; cin>>Y[rr].gl; cout<<"请输入用途"<<endl; cin>>Y[rr].yt; cout<<"请输入备注"<<endl; cin>>Y[rr++].bz; } void Fmoney::Fshow() { cout<<"----资产分配----"<<endl; cout<<"1.领用"<<endl; cout<<"2.归还"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void enter() { cout<<"-----登录页面-----"<<endl; cout<<"1.直接登录"<<endl; cout<<"2.注册新用户"<<endl; cout<<"3.修改密码"<<endl; cout<<"请输入您的选择: "<<endl; flag=false; int se;//选择 Manager TEMP;//暂时借助的对象 cin>>se; if(se==1) { TEMP.denglu();//登录函数 } else if(se==2) { TEMP.zhuce();//注册 } else if(se==3) { TEMP.update();//修改密码 } else { cout<<"输入错误,请重新输入"<<endl; } } void SHOWMAIN() { cout<<"--------------固定资产管理系统-------------"<<endl; cout<<"1.资产信息管理"<<endl; cout<<"2.人员信息管理"<<endl; cout<<"3.资产配置"<<endl; cout<<"4.资产处置"<<endl; cout<<"5.用户管理"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择:"<<endl; } void Guding()//固定资产管理系统函数 { int SE;//选择 int ssee;//选择 int mssee;//选择 SHOWMAIN();//主菜单 while(cin>>SE) { if(SE==0) { cout<<"回到主菜单"<<endl; break; } else if(SE==1)//资产信息管理 { Money Tp;//暂时使用对象 Tp.show(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } else if(ssee==1)//对固定资产类别管理 { Tp.show11(); while(cin>>mssee) { if(mssee==0) { break;//返回上一级 } else if(mssee==1)//添加固定资产设备 { Tp.add(); } else if(mssee==2)//删除固定资产设备 { Tp.delet(); } else if(mssee==3)//显示已有小类设备 { Tp.sdisplay(); } else if(mssee==4)//显示已有大类设备 { Tp.bdisplay(); } Tp.show11(); } } else if(ssee==2) { Tp.show22(); while(cin>>mssee) { if(mssee==0) { break;//返回上一级 } else if(mssee==1)//添加固定资产信息 { Tp.xadd(); } else if(mssee==2)//删除固定资产信息 { Tp.xdelet(); } else if(mssee==3)//修改固定资产信息 { Tp.xupdate(); } else if(mssee==4)//显示固定资产信息 { Tp.xdisplay(); } Tp.show11(); } } Tp.show(); } } else if(SE==2)//人员信息管理 { people Tp;//暂时使用对象 Tp.pshow(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } switch(ssee) { case 1: Tp.padd(); break;//增加 case 2: Tp.pupdate(); break;//修改 case 3: Tp.psearch(); break;//查询 case 4: Tp.pdelete(); break;//删除 case 5: Tp.pdisplay(); break;//显示 default :cout<<"输入有误"<<endl;break; } Tp.pshow(); } } else if(SE==3)//资产配置 { Fmoney Tp;//暂时使用对象 Tp.Fshow(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } switch(ssee) { case 1: Tp.LY(); break;//增加 case 2: Tp.GH(); break;//修改 default :cout<<"输入有误"<<endl;break; } Tp.Fshow(); } } else if(SE==4)//资产处置 { Cmoney Tp;//暂时使用对象 Tp.Cshow(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } switch(ssee) { case 1: Tp.tiaobo(); break;//挑拨 case 2: Tp.bianmai(); break;//变卖 case 3: Tp.baofei(); break;//报废 default :cout<<"输入有误"<<endl;break; } Tp.Cshow(); } } else if(SE==5)//用户管理 { Manager Tp;//暂时使用对象 Tp.Mshow(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } switch(ssee) { case 1: Tp.Madd(); break;//增加 case 2: Tp.Mupdate(); break;//修改 case 3: Tp.Msearch(); break;//查询 case 4: Tp.Mdelete(); break;//删除 case 5: Tp.Mdisplay(); break;//显示 default :cout<<"输入有误"<<endl;break; } Tp.Mshow(); } } SHOWMAIN();//主菜单 } } int main() { init(); int choose=0; Showmain1(); cin>>choose; while(1) { if(choose==1) { flag=false; enter();//登录函数 if(flag)//登陆成功 { Guding();//进入固定资产管理系统 } } else if(choose==2) { cout<<"是否退出系统,如果退出请输入数字1"<<endl; int tempp=0; cin>>tempp; if(tempp==1) { cout<<"退出系统成功,欢迎再次使用"<<endl; } } else { cout<<"输入错误,请重新输入"<<endl; } Showmain1(); cin>>choose; } return 0; }
#include <iostream> #include <algorithm> #include <string> #include <cstring> #include <map> #include <queue> const int N=1000001; using namespace std; int ss=0;//可领资产人员的数目 int rr=0;//登记表上记录的人数 int r2=0;//记录归还表上记录的人数 bool flag=false;//标记作用 bool ZZ=false,SE22=true; static int countt=0;//管理人员编号 static int count2=0;//固定资产编号 map<string,int>A; map<string,int>::iterator it; void init()//在录入资产信息之前就定义好的固定资产的类别 { A["办公设备"]=1;//大类 A["数码相机"]=1; A["投影仪"]=1; A["笔记本电脑"]=1; A["台式机"]=1; A["服务器"]=1; A["传真机"]=2;//小类 A["复印机"]=2; A["打印机"]=2; A["其它"]=2; } //管理员类及其函数 class Manager//管理员类 { public: Manager() { mima="123456";//初始密码 } string name;//只含有数字,字母组成的字符串 string mima;//管理员的密码 int bh; class Manager *next; void denglu();//登录函数 void zhuce();//注册新管理员函数 void update();//修改密码函数 void Mshow();//用户管理,针对管理员 void Mdisplay();//显示 void Mupdate();//修改 void Madd();//添加 void Mdelete();//删除 void Msearch();//查询 }; //含有的管理员的人数上限 class Manager *head=new Manager; void Manager::Mshow() { cout<<"----用户管理-----"<<endl; cout<<"1.添加人员信息"<<endl; cout<<"2.修改人员信息"<<endl; cout<<"3.查询人员信息"<<endl; cout<<"4.删除人员信息"<<endl; cout<<"5.显示已有人员信息"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void Manager::Mdelete()//删除人员信息 { string str; cout<<"请输入要删除用户名"<<endl; cin>>str; class Manager *tail,*pp; for(pp=head,tail=head->next; tail!=NULL; tail=tail->next,pp=pp->next) { if(tail->name==str) { pp->next=tail->next; delete tail; break; } } } void Manager::Msearch()//查询人员信息 { string str; cout<<"请输入要查询人员的用户名"<<endl; cin>>str; class Manager *tail; for(tail=head->next; tail!=NULL; tail=tail->next) { if(tail->name==str) { cout<<"编号为"<<tail->bh<<endl; cout<<"用户名为"<<str<<endl; return ; } } cout<<"此用户名不存在"<<endl; } void Manager::Mdisplay()//显示人员信息 { class Manager *tail; for(tail=head->next; tail!=NULL; tail=tail->next) { cout<<"用户名为"<<tail->name<<endl; } } void Manager::Mupdate()//修改人员信息 { string se; cout<<"请输入要修改人员的用户名"<<endl; cin>>se; class Manager *tail; for(tail=head->next; tail!=NULL; tail=tail->next) { if(tail->name==se) { cout<<"请重新输入用户名"<<endl; cin>>tail->name; return ; } } cout<<"此用户名不存在"<<endl; } void Manager::Madd()//增加人员信息 { class Manager *qq; qq=new Manager; qq->next=NULL; cout<<"请输入新增人员用户名"<<endl; cin>>qq->name; cout<<"请输入密码"<<endl; cin>>qq->mima; cout<<"编号为"<<countt<<endl; qq->bh=countt++; qq->next=head->next; head->next=qq; } void Manager::denglu() { string str,str2; if(ZZ==false) { ZZ=true; head->next=NULL; } cout<<"请输入用户名"<<endl; cin>>str; class Manager *tail; for(tail=head->next; tail!=NULL; tail=tail->next) { if(tail->name==str) { cout<<"请输入密码"<<endl; cin>>str2; if(str2==tail->mima) { flag=true; cout<<"登录成功"<<endl; } else { cout<<"密码错误,请重新登陆"<<endl; } return ; } } cout<<"不存在此用户名,请重新登陆"<<endl; } void Manager::zhuce() { string str; cout<<"请输入合法的用户名,作为新注册管理员名"<<endl; if(ZZ==false) { ZZ=true; head->next=NULL; } class Manager *tail,*qq; bool RRR=true; while(cin>>str) { for(tail=head->next; tail!=NULL; tail=tail->next) { if(str==tail->name) { cout<<"此用户名已经存在,请重新输入一个合法的用户名"<<endl; RRR=false; break; } } if(RRR) { flag=true; qq=new Manager; qq->next=NULL; qq->name=str; cout<<"请输入密码"<<endl; cin>>qq->mima; cout<<"编号为"<<countt<<endl; qq->bh=countt++; qq->next=head->next; head->next=qq; break; } RRR=true; } } void Manager::update() { cout<<"请输入您所要修改密码的用户名"<<endl; if(ZZ==false) { ZZ=true; head->next=NULL; } string str,str2; cin>>str; class Manager *tail; for(tail=head->next; tail!=NULL; tail=tail->next) { if(tail->name==str) { cout<<"请输入新密码"<<endl; cin>>tail->mima; flag=true; cout<<"修改密码成功,并成功登陆"<<endl; return ; } } cout<<"此用户名不存在,请重新登陆"<<endl; } //固定资产信息管理类及其函数 class Money//固定资产 { public: int bh; string mc;//名称 int lb;//类别 string xh;//型号 double jz;//价值 string time;//购买时间 string zt;//状态(正常,维修,报废) string use;//使用者(空,使用中) string bz;//备注 void show(); void show11(); void show22(); class Money *next; void add();//增加类中设备 void delet();//删除类中设备 void sdisplay();//显示已有小类设备 void bdisplay();//显示已有大类设备 void xadd();//增加固定资产信息 void xupdate();//修改固定资产信息 void xdelet();//删除固定资产信息 void xdisplay();//显示固定资产信息 }; class Money *head1=new Money; void Money::show() { cout<<"----固定资产信息管理----"<<endl; cout<<"1.固定资产类别管理"<<endl; cout<<"2.固定资产信息管理"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择:"<<endl; } void Money::show11() { cout<<"----固定资产类别管理-----"<<endl; cout<<"1.添加资产设备"<<endl; cout<<"2.删除资产设备"<<endl; cout<<"3.显示已有小类设备"<<endl; cout<<"4.显示已有大类设备"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void Money::show22() { cout<<"----固定资产信息管理-----"<<endl; cout<<"1.添加固定资产信息"<<endl; cout<<"2.删除固定资产信息"<<endl; cout<<"3.修改固定资产信息"<<endl; cout<<"4.显示固定资产信息"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void Money::add()//添加设备 { int se; bool B=false; string str; cout<<"请输入你要增加的设备名称"<<endl; cin>>str; cout<<"请输入你要增加的设备分类,1代表大类,2代表小类"<<endl; cin>>se; if(A[str]) { cout<<"此类别已经存在,不需要重新添加"<<endl; B=true; } if(B==false) { A[str]=se; cout<<"添加类别成功"<<endl; } } void Money::delet()//删除设备 { bool B=false; string str; cout<<"请输入你要删除的设备名称"<<endl; cin>>str; if(A[str]) { cout<<"删除成功"<<endl; A[str]=0; B=true; } if(B==false) { cout<<"此类别不存在"<<endl; } } void Money::sdisplay()//显示已有小类设备 { cout<<"目前所有小类清单"<<endl; for(it=A.begin(); it!=A.end(); it++) { if(it->second==2) { cout<<it->first.data()<<endl; } } } void Money::bdisplay()//显示已有大类设备 { cout<<"目前所有大类清单"<<endl; for(it=A.begin(); it!=A.end(); it++) { if(it->second==1) { cout<<it->first.data()<<endl; } } } void Money::xadd()//增加固定资产信息 { class Money *ppp; ppp=new Money; cout<<"增加固定资产信息"<<endl; cout<<"编号为"<<count2<<endl; ppp->bh=count2++; cout<<"请输入名称"<<endl; cin>>ppp->mc; cout<<"请输入类别(1代表大类,2代表小类)"<<endl; cin>>ppp->lb; if(A[ppp->mc]==0)//添加新资产类别名称 A[ppp->mc]=ppp->lb; cout<<"请输入资产型号"<<endl; cin>>ppp->xh; cout<<"请输入资产价值"<<endl; cin>>ppp->jz; cout<<"请输入资产的购买日期(形式如2008-08-08)"<<endl; cin>>ppp->time; cout<<"请输入资产的状态(状态分为:正常、维修、报废)"<<endl; cin>>ppp->zt; cout<<"请输入资产的使用者(空,使用中)"<<endl; cin>>ppp->use; cout<<"请输入资产的备注"<<endl; cin>>ppp->bz; ppp->next=head1->next; head1->next=ppp; } void Money::xdelet()//删除固定资产信息 { cout<<"通过编号来进行删除信息,请输入你要修改的编号(编号从0开始)"<<endl; int se; cin>>se; class Money *ppp,*tail; for(tail=head1,ppp=head1->next; ppp!=NULL; ppp=ppp->next,tail=tail->next) { if(ppp->bh==se) { tail->next=ppp->next; ppp->next=NULL; delete ppp; cout<<"删除成功"<<endl; return ; } } cout<<"不存在此编号"<<endl; } void Money::xupdate()//修改固定资产信息 { cout<<"通过编号来进行修改信息,请输入你要修改的编号(编号从0开始)"<<endl; int se; cin>>se; class Money *ppp; for(ppp=head1->next; ppp!=NULL; ppp=ppp->next) { if(ppp->bh==se) { cout<<"请重新输入名称"<<endl; cin>>ppp->mc; cout<<"请重新输入类别(1代表大类,2代表小类)"<<endl; cin>>ppp->lb; if(A[ppp->mc]==0)//添加新资产类别名称 A[ppp->mc]=ppp->lb; cout<<"请重新输入资产型号"<<endl; cin>>ppp->xh; cout<<"请重新输入资产价值"<<endl; cin>>ppp->jz; cout<<"请重新输入资产的购买日期(形式如2008-08-08)"<<endl; cin>>ppp->time; cout<<"请重新输入资产的状态(状态分为:正常、维修、报废)"<<endl; cin>>ppp->zt; cout<<"请重新输入资产的使用者(空,使用中)"<<endl; cin>>ppp->use; cout<<"请重新输入资产的备注"<<endl; cin>>ppp->bz; cout<<"修改成功"<<endl; return ; } } cout<<"不存在此编号"<<endl; } void Money::xdisplay()//显示固定资产信息 { cout<<"已有固定资产信息"<<endl; class Money *tail; for(tail=head1->next; tail!=NULL; tail=tail->next) { cout<<"资产的编号为"<<tail->bh<<endl; cout<<"资产的名称为"<<tail->mc<<endl; cout<<"资产的类别为"<<tail->lb<<endl; cout<<"资产的型号为"<<tail->xh<<endl; cout<<"资产的价值为"<<tail->jz<<endl; cout<<"资产的购买日期为"<<tail->time<<endl; cout<<"资产的状态为"<<tail->zt<<endl; cout<<"资产的使用者为"<<tail->use<<endl; cout<<"资产的备注为"<<tail->bz<<endl; } } //人员信息类及其函数 class people:public Manager { public: int bh;//编号 string zw;//职务 string bz;//备注,存储员工所属资产 void pshow(); void pdisplay();//显示 void pupdate();//修改 void padd();//添加 void pdelete();//删除 void psearch();//查询 } T[N]; void people::pshow() { cout<<"----人员信息管理-----"<<endl; cout<<"1.添加人员信息"<<endl; cout<<"2.修改人员信息"<<endl; cout<<"3.查询人员信息"<<endl; cout<<"4.删除人员信息"<<endl; cout<<"5.显示已有人员信息"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void people::padd()//增加人员信息 { cout<<"编号为"<<ss<<endl; T[ss].bh=ss; cout<<"请输入姓名"<<endl; cin>>T[ss].name; cout<<"请输入职务"<<endl; cin>>T[ss].zw; cout<<"请输入备注(代表人员可以使用的资产)"<<endl; cin>>T[ss].bz; ss++; } void people::pdelete()//删除人员信息 { int se; cout<<"请输入要删除人员的编号(编号从0开始)"<<endl; cin>>se; for(int j=se; j<ss-1; j++) { T[j]=T[j+1]; } ss-=1; } void people::psearch()//查询人员信息 { int se; cout<<"请输入要查询人员的编号(编号从0开始)"<<endl; cin>>se; cout<<"姓名为"<<T[se].name<<endl; cout<<"职务为"<<T[se].zw<<endl; cout<<"备注为"<<T[se].bz<<endl; } void people::pdisplay()//显示人员信息 { for(int i=0; i<ss; i++) { cout<<"编号为"<<T[i].bh<<endl; cout<<"姓名为"<<T[i].name<<endl; cout<<"职务为"<<T[i].zw<<endl; cout<<"备注为"<<T[i].bz<<endl; } } void people::pupdate()//修改人员信息 { int se; cout<<"请输入要修改人员的编号"<<endl; cin>>se; cout<<"请重新输入姓名"<<endl; cin>>T[se].name; cout<<"请重新输入职务"<<endl; cin>>T[se].zw; cout<<"请重新输入备注"<<endl; cin>>T[se].bz; } //资产分配类及其函数 class Fmoney//用于资产分配 { public: int djbh;//登记表的编号 int bh;//设备编号 string time;//领用时间 string gl;//管理员 string yt;//用途 string bz;//备注 people temp;//类对象,用于登记人员 void Fshow(); void LY();//领用函数 void GH();//归还函数 } Y[N],U[N]; //登记表,归还表 void Fmoney::Fshow() { cout<<"----资产分配----"<<endl; cout<<"1.领用"<<endl; cout<<"2.归还"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择"<<endl; } void Fmoney::LY()//领用函数 { int se; bool se1=false; cout<<"请输入已经登记人员的编号(从0开始)"<<endl; cin>>se; if(se>=ss) { cout<<"输入人员编号有误"<<endl; return ; } cout<<"登记表的编号为"<<rr<<endl; Y[rr].djbh=rr; Y[rr].temp=T[se]; cout<<"请输入设备编号"<<endl; cin>>Y[rr].bh; for(class Money *ppp=head1->next; ppp!=NULL; ppp=ppp->next) { if(ppp->bh==Y[rr].bh&&ppp->zt=="正常"&&ppp->use=="空") { se1=true; ppp->use="使用中";//改变设备状态 break; } } if(se1==false) { cout<<"此资产不能用"<<endl; return ; } cout<<"请输入领用日期"<<endl; cin>>Y[rr].time; cout<<"请输入管理员编号"<<endl; cin>>Y[rr].gl; cout<<"请输入用途"<<endl; cin>>Y[rr].yt; cout<<"请输入备注"<<endl; cin>>Y[rr++].bz; } void Fmoney::GH()//归还函数 { cout<<"请输入你要归还的资产编号(从0开始)"<<endl; int se; cin>>se; if(se>=rr) { cout<<"你输入归还的资产编号错误"<<endl; return ; } for(class Money *ppp=head1->next; ppp!=NULL; ppp=ppp->next) { if(ppp->bh==se) { ppp->use="空";//改变设备状态 break; } } cout<<"请输入归还日期"<<endl; cin>>U[r2].time; cout<<"归还管理员为"<<Y[se].gl<<endl; U[r2++].gl=Y[se].gl; for(int j=se; j<rr-1; j++) { Y[j]=Y[j+1]; } rr-=1; } //资产处置类及其函数 class Cmoney//用于资产处置 { public: void Cshow(); void tiaobo();//调拨 void bianmai();//变卖 void baofei();//报废 }; void Cmoney::Cshow() { cout<<"----资产处置-----"<<endl; cout<<"1.调拨"<<endl; cout<<"2.变卖"<<endl; cout<<"3.报废"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择:"<<endl; } void Cmoney::tiaobo()//资产的调拨 { cout<<"--请输入你要调拨的方式--"<<endl; cout<<"1.通过变更资产使用人"<<endl; cout<<"2.通过改变存放位置"<<endl; cout<<"3.通过改变资产状态"<<endl; cout<<"请输入您的选择: "<<endl; int sele; cin>>sele; if(sele==1) { cout<<"请输入您要调拨资产的两个人的编号A与B,将资产A给B"<<endl; int bh1,bh2; cin>>bh1>>bh2; T[bh2].bz=T[bh2].bz+T[bh1].bz; T[bh1].bz="\0"; } else if(sele==2) { cout<<"请输入您要改变资产存放的位置,如A与B互换"<<endl; int se1,se2; cin>>se1>>se2; for(class Money *ppp=head1->next; ppp!=NULL; ppp=ppp->next) { if(ppp->bh==se1||ppp->bh==se2) { if(ppp->bh==se1) { ppp->bh=se2; } if(ppp->bh==se2) { ppp->bh=se1; } } } } else if(sele==3) { cout<<"请输入您要改变资产状态的编号"<<endl; int se; string str; cin>>se; for(class Money *ppp=head1->next; ppp!=NULL; ppp=ppp->next) { if(ppp->bh==se) { cout<<"请输入您要改变资产状态的状态"<<endl; cin>>str; ppp->zt=str; break; } } } } void Cmoney::bianmai()//变卖函数 { cout<<"请输入变卖的资产的编号"<<endl; int se; cin>>se; class Money *ppp,*tail; for(tail=head1,ppp=head1->next; ppp!=NULL; ppp=ppp->next,tail=tail->next) { if(ppp->bh==se&&ppp->zt=="空") { tail->next=ppp->next; ppp->next=NULL; delete ppp; cout<<"变卖成功"<<endl; return ; } } cout<<"先归还此资产"<<endl; for(ppp=head1->next; ppp!=NULL; ppp=ppp->next) { if(ppp->bh==se) { ppp->use="空";//改变设备状态 break; } } cout<<"请输入归还日期"<<endl; cin>>U[r2].time; cout<<"归还管理员为"<<Y[se].gl<<endl; U[r2++].gl=Y[se].gl; for(int j=se; j<rr-1; j++) { Y[j]=Y[j+1]; } rr-=1; cout<<"变卖成功"<<endl; } void Cmoney::baofei() { cout<<"请输入要报废资产的编号"<<endl; int se; cin>>se; for(class Money *ppp=head1->next; ppp!=NULL; ppp=ppp->next) { if(ppp->use=="空") { ppp->zt="报废"; cout<<"报废成功"<<endl; return ; } } cout<<"无法报废"<<endl; } //----------------------------------------------------------------- void Showmain1() { cout<<"---------固定资产管理系统----------"<<endl; cout<<"1.管理员登录"<<endl; cout<<"2.退出系统"<<endl; cout<<"请输入您的选择: "<<endl; } void enter() { cout<<"-----登录页面-----"<<endl; cout<<"1.直接登录"<<endl; cout<<"2.注册新用户"<<endl; cout<<"3.修改密码"<<endl; cout<<"请输入您的选择: "<<endl; flag=false; int se;//选择 Manager TEMP;//暂时借助的对象 cin>>se; if(se==1) { TEMP.denglu();//登录函数 } else if(se==2) { TEMP.zhuce();//注册 } else if(se==3) { TEMP.update();//修改密码 } else { cout<<"输入错误,请重新输入"<<endl; } } void SHOWMAIN() { cout<<"--------------固定资产管理系统-------------"<<endl; cout<<"1.资产信息管理"<<endl; cout<<"2.人员信息管理"<<endl; cout<<"3.资产配置"<<endl; cout<<"4.资产处置"<<endl; cout<<"5.用户管理"<<endl; cout<<"0.返回上一级"<<endl; cout<<"请输入您的选择:"<<endl; } void Guding()//固定资产管理系统函数 { int SE;//选择 int ssee;//选择 int mssee;//选择 SHOWMAIN();//主菜单 while(cin>>SE) { if(SE==0) { cout<<"回到主菜单"<<endl; break; } else if(SE==1)//资产信息管理 { Money Tp;//暂时使用对象 Tp.show(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } else if(ssee==1)//对固定资产类别管理 { if(SE22) { head1->next=NULL; SE22=false; } Tp.show11(); while(cin>>mssee) { if(mssee==0) { break;//返回上一级 } else if(mssee==1)//添加固定资产设备 { Tp.add(); } else if(mssee==2)//删除固定资产设备 { Tp.delet(); } else if(mssee==3)//显示已有小类设备 { Tp.sdisplay(); } else if(mssee==4)//显示已有大类设备 { Tp.bdisplay(); } Tp.show11(); } } else if(ssee==2) { Tp.show22(); while(cin>>mssee) { if(mssee==0) { break;//返回上一级 } else if(mssee==1)//添加固定资产信息 { Tp.xadd(); } else if(mssee==2)//删除固定资产信息 { Tp.xdelet(); } else if(mssee==3)//修改固定资产信息 { Tp.xupdate(); } else if(mssee==4)//显示固定资产信息 { Tp.xdisplay(); } Tp.show22(); } } Tp.show(); } } else if(SE==2)//人员信息管理 { people Tp;//暂时使用对象 Tp.pshow(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } switch(ssee) { case 1: Tp.padd(); break;//增加 case 2: Tp.pupdate(); break;//修改 case 3: Tp.psearch(); break;//查询 case 4: Tp.pdelete(); break;//删除 case 5: Tp.pdisplay(); break;//显示 default : cout<<"输入有误"<<endl; break; } Tp.pshow(); } } else if(SE==3)//资产配置 { Fmoney Tp;//暂时使用对象 Tp.Fshow(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } switch(ssee) { case 1: Tp.LY(); break;//增加 case 2: Tp.GH(); break;//修改 default : cout<<"输入有误"<<endl; break; } Tp.Fshow(); } } else if(SE==4)//资产处置 { Cmoney Tp;//暂时使用对象 Tp.Cshow(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } switch(ssee) { case 1: Tp.tiaobo(); break;//挑拨 case 2: Tp.bianmai(); break;//变卖 case 3: Tp.baofei(); break;//报废 default : cout<<"输入有误"<<endl; break; } Tp.Cshow(); } } else if(SE==5)//用户管理 { Manager Tp;//暂时使用对象 Tp.Mshow(); while(cin>>ssee) { if(ssee==0) { break;//返回上一级 } switch(ssee) { case 1: Tp.Madd(); break;//增加 case 2: Tp.Mupdate(); break;//修改 case 3: Tp.Msearch(); break;//查询 case 4: Tp.Mdelete(); break;//删除 case 5: Tp.Mdisplay(); break;//显示 default : cout<<"输入有误"<<endl; break; } Tp.Mshow(); } } SHOWMAIN();//主菜单 } } int main() { init(); int choose=0; Showmain1(); cin>>choose; while(1) { if(choose==1) { flag=false; enter();//登录函数 if(flag)//登陆成功 { Guding();//进入固定资产管理系统 } } else if(choose==2) { cout<<"是否退出系统,如果退出请输入数字1"<<endl; int tempp=0; cin>>tempp; if(tempp==1) { cout<<"退出系统成功,欢迎再次使用"<<endl; } } else { cout<<"输入错误,请重新输入"<<endl; } Showmain1(); cin>>choose; } return 0; }