1.
1.1 设计内容:
编写一个简单的实验室设备管理程序,帮助管理实验室设备信息。要求具有设备信息管理的功能。其中包括设备信息的录入、删除、查询和修改等功能。还应包括对实验室信息管理的功能。其中包括对实验室信息的录入、删除、修改和查询等功能。
1.2 任务和要求
运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。
1.3 提供的基本管理功能有:
添加:即增加一条信息到设备信息中,或增加一条信息到实验室信息中;
显示:即在屏幕上显示所有设备或实验室信息;
存储:即将设备信息和实验室信息分别保存在文件中;
装入:即将文件中的信息读入程序;
查询:可根据设备名称查找具体情况,若找到,显示在屏幕上;
修改:可修改设备信息,或对实验室信息进行修改。
普通管理员的账户可以由vip管理员添加
vip 管理员账号:admin 密码:123456
2. 代码实现
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define H "----------------------------------------------------------------n"
#define H1 "| 编号 | 类别 | 名称 | 价格 | 库存数量 |n"
#define H2 "|-----------|-----------|------------|------------|------------|n"
#define H3 "--------------------------n"
#define H4 "| 账号 | 密码 |n"
#define H5 "|-----------|------------|n"
class machine
{
public:
machine();
machine(string a,string b,string c,double d,int e);
//char inter_face();//首页
void add();//添加数据
void dele();//删除数据
void show();//显示所有
void alter();//修改数据
void select();//查询数据
void save_new();//保存新增加数据
private:
string num;
string category;
string name;
double price;
int quantity;
};
class account
{
public:
account();
char home_face();
virtual void entrance();
// void enter;
private:
string id;
string password;
};
class admin:public account
{
public:
admin();
virtual void admin_enter();
void entrance();
private:
string id;
string password;
};
class vip:public admin
{
public:
vip();
void vip_enter();
void entrance();
void inter_face();//首页
void add();//添加数据
void dele();//删除数据
void show();//显示所有
void alter();//修改数据
void select();//查询数据
void save_new();//保存新增加数据
private:
string id;
string password;
};
machine::machine()
{
num=" ";
category=" ";
name=" ";
price=0;
quantity=0;
}
account::account()
{
id=" ";
password=" ";
}
admin::admin()
{
id=" ";
password=" ";
}
vip::vip()
{
id="admin";
password="123456";
}
void account::entrance()
{
system("color 0b");
char n;
machine m;
while(1)
{
system("cls");
cout >n;getchar();
if(n'3')
printf("输入错误,请您重新输入选项(1-3):[ ]bb");
else
break;
}
if(n=='1') {m.show();}
if(n=='2') m.select();
if(n=='3') return;
}
}
void admin::admin_enter()
{
string pp;
char m;
admin Admin;
system("cls");
cout>pp;
if (!inData)
{
cout >id>>password)
{
getline(inData, str);
if (id==pp)
{
flag = false;
if(password==qq)
{
Admin.entrance();
return;
}
else
cout>pp;
getchar();
if(pp=="#") return;
if(pp==VIP.id)
{
L:;cout>n;getchar();
if(n'6')
printf("输入错误,请您重新输入选项(1-6):[ ]bb");
else
break;
}
switch(n)
{
case '1':Machine.add();break;
case '2':Machine.show();break;
case '3':Machine.select();break;
case '4':Machine.alter();break;
case '5':Machine.dele();break;
case '6':return;
}
}
}
void vip::entrance()
{
system("color 0e");
char n;
machine Machine;
vip VIP;
while(1)
{
system("cls");
cout >n;getchar();
if(n'7')
printf("输入错误,请您重新输入选项(1-7):[ ]bb");
else
break;
}
switch(n)
{
case '1':Machine.add();break;
case '2':Machine.show();break;
case '3':Machine.select();break;
case '4':Machine.alter();break;
case '5':Machine.dele();break;
case '6':VIP.inter_face();break;
case '7':return;
}
}
}
void vip::inter_face()
{
system("color 0c");
char n;
vip VIP;
account Account;
while(1)
{
system("cls");
cout >n;getchar();
if(n'6')
printf("输入错误,请您重新输入选项(1-6):[ ]bb");
else
break;
}
switch(n)
{
case '1':VIP.add();break;
case '2':VIP.show();break;
case '3':VIP.select();break;
case '4':VIP.alter();break;
case '5':VIP.dele();break;
case '6':return;
}
}
}
void Get_xy(int x,int y) //获取鼠标位置
{
COORD pos;
pos.X=x;
pos.Y=y;
HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hout,pos);
}
char account::home_face()
{
system("color 0d");
char n;
system("cls");
cout >n;getchar();
if(n'4')
printf("输入错误,请您重新输入选项(1-4):[ ]bb");
else
return n;
}
}
//添加设备
void machine::add()
{
char m;
bool flag=true;
ifstream inData("e:\pbook.txt",ios::in);
do
{
cout >num;
cout >category;
if(category=="tv"||category=="dvd"||category=="tv_dvd") break;
else
cout>name;
cout >price;
cout >quantity;
if (!inData)
{
flag=true;
}
string sign,str;
while (inData>>sign)
{
getline(inData, str);
if (num==sign)
{
flag = false;
}
}
if(flag) save_new();
else
cout >m;
if(m=='n') break;
}while(1);
}
//添加管理员
void vip::add()
{
char m;
bool flag=true;
ifstream inData("e:\Document.txt",ios::in);
do
{
cout >id;
cout>password;
if (!inData)
{
flag=true;
}
string sign,str;
while (inData>>sign>>str)
{
if (id==sign)
{
flag = false;
}
}
if(flag) save_new();
else
cout >m;
if(m=='n') break;
}while(1);
}
//删除设备
void machine::dele()
{
ofstream outData("e:\temp.txt", ios::out);
ifstream inData("e:\pbook.txt", ios::in);
if (!inData)
{
cout >sign;
string str1;
bool flag = true;
string str;
while(inData>>num)
{
getline(inData,str);
if(sign==num)
{
cout >sign;
string str1;
bool flag = true;
string str;
while(inData>>id)
{
getline(inData,str);
if(sign==id)
{
cout >sign;
bool flag = true;
string str;
while (inData>>num)
{
getline(inData, str);
if (sign==num)
{
cout >num;
cout >category;
cout >name;
cout >price;
cout >quantity;
save_new();
flag = false;
break;
}
outData>sign;
bool flag = true;
string str;
while (inData>>id)
{
getline(inData, str);
if (sign==id)
{
cout >id;
cout >password;
save_new();
flag = false;
break;
}
outData>sign;
string str1;
bool flag =true;
string str;
while (inData>>num)
{
getline(inData, str);
if (num==sign)
{
cout >sign;
string str1;
bool flag =true;
string str;
while (inData>>id)
{
getline(inData, str);
if (id==sign)
{
cout
服务器租用托管,机房租用托管,主机租用托管,https://www.e1idc.com