实验室设备管理系统课程设计

有人帮帮忙读懂吗,答辩不知道要说什么(ー_ー)!! #include<iostream> #include<cstdlib> #include<string> #include<fstream> #include<sstream> using namespace std; class Node //结点类,用于存放客户的各种信息 { public: long id; //实验设备编号 string name; //名称 string type; //设备类型 string buytime; //购买时间 string price; //价格 string exist; //是否报废 string damda; //报废日期 Node *next; //指向下一结点的指针 Node(long id=000,string nname="noname",string ntype="unkown",string nbuytime="unknow",string nprice="unknow", string nexist="unknow", string ndamda="unkown");//构造函数,初始化变量 }; class Link//Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象 { private: Node *head; //链表的头指针,为Node对象类型的指针 public : Link();//构造函数,初始化变量 bool linkIsEmpty();//判断链表是否为空 void linkInsert(Node *newnode);//向链表中插入新的结点 bool linkDelete(int nid);//从链表中删除的结点 void linkClear();//清空链表中数据 void linkView();//查看链表中数据 Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针 Node* getHead();//获取头指针 }; Node::Node(long nid, string nname, string ntype, string nbuytime,string nprice,string nexist, string ndamda) { id=nid; name=nname; type=ntype; buytime=nbuytime; price=nprice; exist=nexist; damda=ndamda; next=NULL; } Link::Link() //构造函数,初始化链表为空 { head=NULL; } bool Link::linkIsEmpty() //判断链表是否为空,空则返回true { return(head==NULL); } void Link::linkInsert(Node *newnode) //按id值从小到大的顺序,插入新的结点 { Node *p1; if(!head)//链表为空的情况 head=newnode; else if((head->id)>(newnode->id)) //插入到第一个结点的情况 { newnode->next=head; head=newnode; } else //插入到第二个及以后情况 { p1=head; while(1) { if(!(p1->next)) { p1->next=newnode; break; } else if((p1->next)->id>newnode->id) { newnode->next=p1->next; p1->next=newnode; break; } p1=p1->next; } } } bool Link::linkDelete(int nid) //删除结点,成功则返回true { Node *p; if(head==NULL)//链表为空的情况 return false; if(head->id==nid) //删除的为第一个结点的情况 { head=head->next; return true; } p=head; while(p->next) //删除的为第二个及以后结点的情况 { if((p->next)->id==nid) { p->next=(p->next)->next; return true; } p=p->next; } return false; } void Link::linkClear() //清空链表 { head=NULL; } Node* Link::linkFind(int nid) //查找id值为nid的结点,返回该结点的指针 { Node *p=head; //没找到符合条件的结点的话,返回的指针值为NULL while(p) { if(p->id==nid) break; else p=p->next; } return p; } void Link::linkView() //显示链表数据 { Node *p=head; while(p) { cout<<"实验设备编号: "<<p->id<<endl>name<<endl>type<<endl>buytime<<endl>price<<endl>exist<<endl>damda<<endl>next; } } Node* Link::getHead() { return head; } //类Shebei,用于包装Link类及菜单操作 class Shebei { private: Link clink;//Link对象成员 bool k;//记录数据是否被修改 public: Shebei(); void ShebeiClear(); void ShebeiInsert(); void ShebeiDelete(); void ShebeiFind(); void ShebeiModify(); void ShebeiView(); void ShebeiLoad(); void ShebeiSave(); void Exit();//退出程序 void showMenu();//显示菜单 void showTip();//显示操作提示 void doMenu(char n);//执行相应菜单项功能 }; Shebei::Shebei() { Link();//调用成员对象的构造函数 ShebeiLoad();//从文件中读取数据,创建链表 k=false;//设置数据被修改 } void Shebei::ShebeiClear() //清空设备记录 { clink.linkClear(); cout<<"成功清空设备信息记录"<<endl>>p->id; cout<<"请输入名称:"; cin>>p->name; cout<<"请输入类型:"; cin>>p->type; cout<<"请输入购买时间:"; cin>>p->buytime; cout<<"请输入价格:"; cin>>p->price; cout<<"请输入是否报废:"; cin>>p->exist; cout<<"请输入报废时间:"; cin>>p->damda; if(!clink.linkFind(p->id)) //判断设备信息是否存在 { clink.linkInsert(p); k=true; } else cout<<"设备编号为"<<p->id<<"的的设备已存在,插入失败!"<<endl>>i; if(clink.linkDelete(i)) { cout<<"成功删除编号为"<<<"的实验记录!"<<endl>>n; p=clink.linkFind(n);//获得找到的结点的指针 if(p) //指针值不为NULL时 { cout<<"实验设备编号:"<<p->id<<endl>name<<endl>type<<endl>buytime<<endl>price<<endl>exist<<endl>damda<<endl>>n; p=clink.linkFind(n);//获得找到的结点的指针 if(p) //指针值不为NULL时 { cout<<"实验设备编号:"<<p->id<<endl>name<<endl>type<<endl>buytime<<endl>price<<endl>exist<<endl>damda<<endl>>p->id; cout<<"请输入名称:"; cin>>p->name; cout<<"请输入类型:"; cin>>p->type; cout<<"请输入购买时间:"; cin>>p->buytime; cout<<"请输入价格:"; cin>>p->price; cout<<"请输入是否报废:"; cin>>p->exist; cout<<"请输入报废时间:"; cin>>p->damda; } else//指针值为NULL时 cout<<"没有找到编号为"<<n><<"的设备记录!"<<endl>>nid) //读取客户,直到读空 { p=new Node(); p->id=nid; infile>>p->name; //读取名称 infile>>p->type; infile>>p->buytime; infile>>p->price; infile>>p->exist; infile>>p->damda; clink.linkInsert(p); } infile.close(); //关闭文件 } void Shebei::ShebeiSave() //将数据保存到文件 { Node *p=clink.getHead(); ofstream outfile("data.txt"); if(!outfile) cerr<<"错误:数据文件不能打开!\n"; else { while(p) { outfile<<p->id<<" "<<p->name<<" "<<p->type<<" "<<p->buytime<<" "<<p->price<<" "<<p->exist<<" "<<p->damda <<" "<<endl>next; } k=false; cout<<"保存成功!"<<endl>>s; if(s=='y'||s=='Y') ShebeiSave(); } cout<<"已安全退出,"; system("pause"); exit(0); } void Shebei::showMenu(){ cout<<"\t\t**************************************************"<<endl>>i; system("cls"); //清除屏幕 c.showMenu(); c.doMenu(i); c.showTip(); } return 0; } #include<iostream> #include<cstdlib> #include<string> #include<fstream> #include<sstream> using namespace std; class Node //结点类,用于存放客户的各种信息 { public: long id; //实验设备编号 string name; //名称 string type; //设备类型 string buytime; //购买时间 string price; //价格 string exist; //是否报废 string damda; //报废日期 Node *next; //指向下一结点的指针 Node(long id=000,string nname="noname",string ntype="unkown",string nbuytime="unknow",string nprice="unknow", string nexist="unknow", string ndamda="unkown");//构造函数,初始化变量 }; class Link//Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象 { private: Node *head; //链表的头指针,为Node对象类型的指针 public : Link();//构造函数,初始化变量 bool linkIsEmpty();//判断链表是否为空 void linkInsert(Node *newnode);//向链表中插入新的结点 bool linkDelete(int nid);//从链表中删除的结点 void linkClear();//清空链表中数据 void linkView();//查看链表中数据 Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针 Node* getHead();//获取头指针 }; Node::Node(long nid, string nname, string ntype, string nbuytime,string nprice,string nexist, string ndamda) { id=nid; name=nname; type=ntype; buytime=nbuytime; price=nprice; exist=nexist; damda=ndamda; next=NULL; } Link::Link() //构造函数,初始化链表为空 { head=NULL; } bool Link::linkIsEmpty() //判断链表是否为空,空则返回true { return(head==NULL); } void Link::linkInsert(Node *newnode) //按id值从小到大的顺序,插入新的结点 { Node *p1; if(!head)//链表为空的情况 head=newnode; else if((head->id)>(newnode->id)) //插入到第一个结点的情况 { newnode->next=head; head=newnode; } else //插入到第二个及以后情况 { p1=head; while(1) { if(!(p1->next)) { p1->next=newnode; break; } else if((p1->next)->id>newnode->id) { newnode->next=p1->next; p1->next=newnode; break; } p1=p1->next; } } } bool Link::linkDelete(int nid) //删除结点,成功则返回true { Node *p; if(head==NULL)//链表为空的情况 return false; if(head->id==nid) //删除的为第一个结点的情况 { head=head->next; return true; } p=head; while(p->next) //删除的为第二个及以后结点的情况 { if((p->next)->id==nid) { p->next=(p->next)->next; return true; } p=p->next; } return false; } void Link::linkClear() //清空链表 { head=NULL; } Node* Link::linkFind(int nid) //查找id值为nid的结点,返回该结点的指针 { Node *p=head; //没找到符合条件的结点的话,返回的指针值为NULL while(p) { if(p->id==nid) break; else p=p->next; } return p; } void Link::linkView() //显示链表数据 { Node *p=head; while(p) { cout<<"实验设备编号: "<<p->id<<endl>name<<endl>type<<endl>buytime<<endl>price<<endl>exist<<endl>damda<<endl>next; } } Node* Link::getHead() { return head; } //类Shebei,用于包装Link类及菜单操作 class Shebei { private: Link clink;//Link对象成员 bool k;//记录数据是否被修改 public: Shebei(); void ShebeiClear(); void ShebeiInsert(); void ShebeiDelete(); void ShebeiFind(); void ShebeiModify(); void ShebeiView(); void ShebeiLoad(); void ShebeiSave(); void Exit();//退出程序 void showMenu();//显示菜单 void showTip();//显示操作提示 void doMenu(char n);//执行相应菜单项功能 }; Shebei::Shebei() { Link();//调用成员对象的构造函数 ShebeiLoad();//从文件中读取数据,创建链表 k=false;//设置数据被修改 } void Shebei::ShebeiClear() //清空设备记录 { clink.linkClear(); cout<<"成功清空设备信息记录!"<<endl>>p->id; cout<<"请输入名称:"; cin>>p->name; cout<<"请输入类型:"; cin>>p->type; cout<<"请输入购买时间:"; cin>>p->buytime; cout<<"请输入价格:"; cin>>p->price; cout<<"请输入是否报废:"; cin>>p->exist; cout<<"请输入报废时间:"; cin>>p->damda; if(!clink.linkFind(p->id)) //判断设备信息是否存在 { clink.linkInsert(p); k=true; } else cout<<"设备编号为"<<p->id<<"的的设备已存在,插入失败!"<<endl>>i; if(clink.linkDelete(i)) { cout<<"成功删除编号为"<<<"的实验记录!"<<endl>>n; p=clink.linkFind(n);//获得找到的结点的指针 if(p) //指针值不为NULL时 { cout<<"实验设备编号:"<<p->id<<endl>name<<endl>type<<endl>buytime<<endl>price<<endl>exist<<endl>damda<<endl>>n; p=clink.linkFind(n);//获得找到的结点的指针 if(p) //指针值不为NULL时 { cout<<"实验设备编号:"<<p->id<<endl>name<<endl>type<<endl>buytime<<endl>price<<endl>exist<<endl>damda<<endl>>p->id; cout<<"请输入名称:"; cin>>p->name; cout<<"请输入类型:"; cin>>p->type; cout<<"请输入购买时间:"; cin>>p->buytime; cout<<"请输入价格:"; cin>>p->price; cout<<"请输入是否报废:"; cin>>p->exist; cout<<"请输入报废时间:"; cin>>p->damda; } else//指针值为NULL时 cout<<"没有找到编号为"<<n><<"的设备记录!"<<endl>>nid) //读取客户,直到读空 { p=new Node(); p->id=nid; infile>>p->name; //读取名称 infile>>p->type; infile>>p->buytime; infile>>p->price; infile>>p->exist; infile>>p->damda; clink.linkInsert(p); } infile.close(); //关闭文件 } void Shebei::ShebeiSave() //将数据保存到文件 { Node *p=clink.getHead(); ofstream outfile("data.txt"); if(!outfile) cerr<<"错误:数据文件不能打开!\n"; else { while(p) { outfile<<p->id<<" "<<p->name<<" "<<p->type<<" "<<p->buytime<<" "<<p->price<<" "<<p->exist<<" "<<p->damda <<" "<<endl>next; } k=false; cout<<"保存成功!"<<endl>>s; if(s=='y'||s=='Y') ShebeiSave(); } cout<<"已安全退出,"; system("pause"); exit(0); } void Shebei::showMenu(){ cout<<"\t\t**************************************************"<<endl>>i; system("cls"); //清除屏幕 c.showMenu(); c.doMenu(i); c.showTip(); } return 0; } #include<iostream> #include<cstdlib> #include<string> #include<fstream> #include<sstream> using namespace std; class Node //结点类,用于存放客户的各种信息 { public: long id; //实验设备编号 string name; //名称 string type; //设备类型 string buytime; //购买时间 string price; //价格 string exist; //是否报废 string damda; //报废日期 Node *next; //指向下一结点的指针 Node(long id=000,string nname="noname",string ntype="unkown",string nbuytime="unknow",string nprice="unknow", string nexist="unknow", string ndamda="unkown");//构造函数,初始化变量 }; class Link//Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象 { private: Node *head; //链表的头指针,为Node对象类型的指针 public : Link();//构造函数,初始化变量 bool linkIsEmpty();//判断链表是否为空 void linkInsert(Node *newnode);//向链表中插入新的结点 bool linkDelete(int nid);//从链表中删除的结点 void linkClear();//清空链表中数据 void linkView();//查看链表中数据 Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针 Node* getHead();//获取头指针 }; Node::Node(long nid, string nname, string ntype, string nbuytime,string nprice,string nexist, string ndamda) { id=nid; name=nname; type=ntype; buytime=nbuytime; price=nprice; exist=nexist; damda=ndamda; next=NULL; } Link::Link() //构造函数,初始化链表为空 { head=NULL; } bool Link::linkIsEmpty() //判断链表是否为空,空则返回true { return(head==NULL); } void Link::linkInsert(Node *newnode) //按id值从小到大的顺序,插入新的结点 { Node *p1; if(!head)//链表为空的情况 head=newnode; else if((head->id)>(newnode->id)) //插入到第一个结点的情况 { newnode->next=head; head=newnode; } else //插入到第二个及以后情况 { p1=head; while(1) { if(!(p1->next)) { p1->next=newnode; break; } else if((p1->next)->id>newnode->id) { newnode->next=p1->next; p1->next=newnode; break; } p1=p1->next; } } } bool Link::linkDelete(int nid) //删除结点,成功则返回true { Node *p; if(head==NULL)//链表为空的情况 return false; if(head->id==nid) //删除的为第一个结点的情况 { head=head->next; return true; } p=head; while(p->next) //删除的为第二个及以后结点的情况 { if((p->next)->id==nid) { p->next=(p->next)->next; return true; } p=p->next; } return false; } void Link::linkClear() //清空链表 { head=NULL; } Node* Link::linkFind(int nid) //查找id值为nid的结点,返回该结点的指针 { Node *p=head; //没找到符合条件的结点的话,返回的指针值为NULL while(p) { if(p->id==nid) break; else p=p->next; } return p; } void Link::linkView() //显示链表数据 { Node *p=head; while(p) { cout<<"实验设备编号: "<<p->id<<endl>name<<endl>type<<endl>buytime<<endl>price<<endl>exist<<endl>damda<<endl>next; } } Node* Link::getHead() { return head; } //类Shebei,用于包装Link类及菜单操作 class Shebei { private: Link clink;//Link对象成员 bool k;//记录数据是否被修改 public: Shebei(); void ShebeiEnter(); void ShebeiInsert(); void ShebeiDelete(); void ShebeiFind(); void ShebeiModify(); void ShebeiView(); void ShebeiLoad(); void ShebeiSave(); void Exit();//退出程序 void showMenu();//显示菜单 void showTip();//显示操作提示 void doMenu(char n);//执行相应菜单项功能 }; Shebei::Shebei() { Link();//调用成员对象的构造函数 ShebeiLoad();//从文件中读取数据,创建链表 k=false;//设置数据被修改 } void Shebei::ShebeiEnter() //清空设备记录 { clink.linkClear(); cout<<"成功录入设备信息记录!"<<endl>>p->id; cout<<"请输入名称:"; cin>>p->name; cout<<"请输入类型:"; cin>>p->type; cout<<"请输入购买时间:"; cin>>p->buytime; cout<<"请输入价格:"; cin>>p->price; cout<<"请输入是否报废:"; cin>>p->exist; cout<<"请输入报废时间:"; cin>>p->damda; if(!clink.linkFind(p->id)) //判断设备信息是否存在 { clink.linkInsert(p); k=true; } else cout<<"设备编号为"<<p->id<<"的的设备已存在,插入失败!"<<endl>>i; if(clink.linkDelete(i)) { cout<<"成功删除编号为"<<<"的实验记录!"<<endl>>n; p=clink.linkFind(n);//获得找到的结点的指针 if(p) //指针值不为NULL时 { cout<<"实验设备编号:"<<p->id<<endl>name<<endl>type<<endl>buytime<<endl>price<<endl>exist<<endl>damda<<endl>>n; p=clink.linkFind(n);//获得找到的结点的指针 if(p) //指针值不为NULL时 { cout<<"实验设备编号:"<<p->id<<endl>name<<endl>type<<endl>buytime<<endl>price<<endl>exist<<endl>damda<<endl>>p->id; cout<<"请输入名称:"; cin>>p->name; cout<<"请输入类型:"; cin>>p->type; cout<<"请输入购买时间:"; cin>>p->buytime; cout<<"请输入价格:"; cin>>p->price; cout<<"请输入是否报废:"; cin>>p->exist; cout<<"请输入报废时间:"; cin>>p->damda; } else//指针值为NULL时 cout<<"没有找到编号为"<<n><<"的设备记录!"<<endl>>nid) //读取客户,直到读空 { p=new Node(); p->id=nid; infile>>p->name; //读取名称 infile>>p->type; infile>>p->buytime; infile>>p->price; infile>>p->exist; infile>>p->damda; clink.linkInsert(p); } infile.close(); //关闭文件 } void Shebei::ShebeiSave() //将数据保存到文件 { Node *p=clink.getHead(); ofstream outfile("data.txt"); if(!outfile) cerr<<"错误:数据文件不能打开!\n"; else { while(p) { outfile<<p->id<<" "<<p->name<<" "<<p->type<<" "<<p->buytime<<" "<<p->price<<" "<<p->exist<<" "<<p->damda <<" "<<endl>next; } k=false; cout<<"保存成功!"<<endl>>s; if(s=='y'||s=='Y') ShebeiSave(); } cout<<"已安全退出,"; system("pause"); exit(0); } void Shebei::showMenu(){ cout<<"\t\t**************************************************"<<endl>>i; system("cls"); //清除屏幕 c.showMenu(); c.doMenu(i); c.showTip(); } return 0; } </endl></endl></endl></p-></p-></p-></p-></p-></p-></p-></endl></n></endl></endl></endl></endl></endl></endl></endl></p-></endl></endl></endl></endl></endl></endl></endl></p-></endl></endl></p-></endl></endl></endl></endl></endl></endl></endl></endl></p-></sstream></fstream></string></cstdlib></iostream></endl></endl></endl></p-></p-></p-></p-></p-></p-></p-></endl></n></endl></endl></endl></endl></endl></endl></endl></p-></endl></endl></endl></endl></endl></endl></endl></p-></endl></endl></p-></endl></endl></endl></endl></endl></endl></endl></endl></p-></sstream></fstream></string></cstdlib></iostream></endl></endl></endl></p-></p-></p-></p-></p-></p-></p-></endl></n></endl></endl></endl></endl></endl></endl></endl></p-></endl></endl></endl></endl></endl></endl></endl></p-></endl></endl></p-></endl></endl></endl></endl></endl></endl></endl></endl></p-></sstream></fstream></string></cstdlib></iostream>#AMD##笔试题目#
全部评论
龟龟,鬼才啊。
点赞 回复
分享
发布于 2019-07-03 17:23

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务