# include <stdio.h>
# include <string.h>
# include <iostream>
# include <stdlib.h>
# include <algorithm>
# include <windows.h>
using namespace std;
struct yonghu
{
char zhanghao[20];
char name[20];
char mima[20];
char xibie[20];
};
struct guanli
{
char zhanghao[20];
char mima[20];
char name[20];
char bumen[20];
};
struct shebei
{
char bianhao[20];
char name[100];
char shiyanshi[100];
char leibie[100];
char jianjie[100];
char caozuo[1000];
};
struct yonghu a[100];
struct guanli b[100];
struct shebei c[100];
int n1=0;
int n2=0;
int n3=0;
int i;
int q;
bool yong=0;
bool guan=0;
void start();
void menu1();
void zhucaidan();
void chaxun();
void shebei();
void gerenxinxi();
void zhuce();
void bianhaochaxun();
void mingchengchaxun();
void tuichu();
void xiugaimima();
void guanli();
void yonghuguanli();
void shebeiluru();
void xiugaiyonghumima();
void tianjiayonghu();
void chaxunyonghu();
void start() //开始界面
{
system("cls");//清屏
system("color 1E"); //设置文字颜色为黄色 背景色蓝色
printf("\n\n\n\n\n\n");
printf("********************************************************************************");
printf("*****************************高校实验室设备管理系统*****************************");
printf("********************************************************************************\n\n\n\n\n");
printf("\t\t\t\t \n");
printf("\t\t\t\t \n\n\n\n");
printf("\t\t\t ***按任意键进入***\n");
}
void menu1() //登录注册界面 已完成
{
system("cls");
system("color 1F");
printf("\t\t\t\t***菜单***\n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 1 登录 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 注册 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 退出 \n\n");
}
void xiugaimima()
{
char s1[20],s2[20];
J:
system("cls");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入新密码: ");
scanf("%s",s1);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请再一次输入新密码: ");
scanf("%s",s2);
if(stricmp(s1,s2)==0)
{
if(yong)
strcpy(a[i].mima,s1);
else if(guan)
strcpy(b[q].mima,s1);
printf("\n\n\n\n********************************************************************************");
printf("********************************恭喜您,修改成功!**********************************");
printf("********************************************************************************\n\n\n\n\n");
getchar();
gerenxinxi();
}
else
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 两次输入不一致请重新输入!: ");
getchar();
getchar();
goto J;
}
}
void guanli()
{
M:
system("cls");
printf("\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 1 设备查找 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 个人信息 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 退出 \n\n");
int num=0;
scanf("%d",&num);
switch(num)
{
case 1: shebei();break;
case 2: gerenxinxi();break;
case 3:
tuichu();
//
break;
default :printf("\t\t您输入的有误请重新输入!\t\t\n");
getchar();
goto M;
}
}
void tuichu()//已完成
{
FILE*fp; //声明fp是指针,用来指向FILE类型的对象
if ((fp=fopen("yonghu","w"))==NULL) //打开职工列表文件为空
{
printf ("打开失败\n");
exit(0);
}
for(int j=0;j<n1;j++)
fprintf(fp,"%s %s %s %s\n",a[j].zhanghao,a[j].name,a[j].mima,a[j].xibie);
fclose(fp);
if ((fp=fopen("shebei","w"))==NULL) //打开职工列表文件为空
{
printf ("打开失败\n");
exit(0);
}
for(int j=0;j<n3;j++)
fprintf(fp,"%s %s %s %s %s %s\n",c[j].bianhao,c[j].name,c[j].shiyanshi,c[j].leibie,c[j].jianjie,c[j].caozuo);
fclose(fp);
if ((fp=fopen("guanliyuan","w"))==NULL) //打开职工列表文件为空
{
printf ("打开失败\n");
exit(0);
}
for(int j=0;j<n2;j++)
fprintf(fp,"%s %s %s %s\n",b[j].zhanghao,b[j].name,b[j].mima,b[j].bumen);
fclose(fp);
system("cls");//
printf("\n\n\n\n********************************************************************************");
printf("**************************谢谢使用高校实验室设备管理系统************************");
printf("********************************************************************************\n\n\n\n\n");
system("pause");
exit(0);
//
}
void denglu() //登录界面 已完成
{
int num=0;
char s1[20],s2[20];
B:
system("cls");//
printf("\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入账号: ");
scanf("%s",s1);
i=0;
for(;i<n1;i++)
if(strcmp(a[i].zhanghao,s1)==0)
break;
q=0;
for(;q<n2;q++)
if(strcmp(b[q].zhanghao,s1)==0)
break;
if(i==n1&&q==n2)
{
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 对不起没有该账号,请重新输入或者注册\n");
getchar();
goto B;
}
C:
system("cls");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 请输入密码: ");
scanf("%s",s2);
if(strcmp(a[i].mima,s2)!=0&&strcmp(b[q].mima,s2)!=0)
{
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 密码有误,请重新输入\n");
Sleep(800);
getchar();
num++;
if(num==3)
{
num=0;
D:
int X;
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 您的密码输错三次。继续登录请按:1,返回主菜单请按:0 \n");
scanf("%d",&X);
switch(X)
{
case 0: zhucaidan();break;
case 1: goto B;break;
default: printf(">>>>>>>>>>>>>>>>>>>>>>>>> 您输入的数字不正确,请重新输入数字 \n");
getchar();
Sleep(800);
goto D;
}
goto B;
}
goto C;
}
else if(i<n1)
{
system("cls");//
printf("\tWELCOME %s using laboratory equipment management system \n",a[i].name);
getchar();
getchar();
yong=true;
chaxun();
}
else if(q<n2)
{
system("cls");//
printf(" \n\n\nWelcome to the administrator %s using laboratory equipment management system \n",b[q].name);
guan=true;
getchar();
getchar();
chaxun();
}
}
void shebei() //已完成
{
G:
system("cls");
printf("********************************************************************************");
printf("********************************************************************************\n\n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 1 按编号查询 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 设备名称查询 \n\n");\
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 返回上一层 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 4 退出 \n\n");
int num;
scanf("%d",&num);
switch(num)
{
case 1: bianhaochaxun();break;
case 2: mingchengchaxun();break;
case 3: chaxun();break;
case 4:
tuichu();
break;
default :
printf("\t\t您输入的有误请重新输入!\t\t\n");
Sleep(800);
getchar();
goto G;
}
}
void xiugaiyongyumima()
{
char s[20],s1[20],s2[20];
L:
system("cls");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入用户账号: ");
scanf("%s",s);
int xx=0;
for(;xx<n1;xx++)
if(strcmp(a[xx].zhanghao,s)==0)
break;
if(xx==n1)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 账号:%s不存在请重新输入!\n\n",s);
getchar();
goto L;
}
M:
system("cls");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入用户新密码: ");
scanf("%s",s1);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请再一次输入用户的新密码: ");
scanf("%s",s2);
if(strcmp(s1,s2)!=0)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 两次输入不一致,请重新输入!\n");
getchar();
Sleep(800);
goto M;
}
else
{
strcpy(a[xx].mima,s1);
printf("\n\n\n\n********************************************************************************");
printf("********************************恭喜您,修改成功!**********************************");
printf("********************************************************************************\n\n\n\n\n");
getchar();
getchar();
yonghuguanli();
}
}
void tianjiayonghu()
{
LL:
bool flag=0;
system("cls");
char s1[20];
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入用户账号 : ");
scanf("%s",s1);
int qq=0;
for(;qq<n1;qq++)
if(strcmp(a[qq].zhanghao,s1)==0)
{
flag=1;
break;
}
if(flag)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 该用户账号已存在,请重新输入用户账号! ");
getchar();
Sleep(800);
goto LL;
}
else
{
strcpy(a[n1].zhanghao,s1);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入用户的名字 : ");
scanf("%s",a[n1].name);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入用户的密码 : ");
scanf("%s",a[n1].mima);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入用户系别 : ");
scanf("%s",a[n1].xibie);
AA:
system("cls");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 确定添加请按:1,取消添加请按:2!");
int x;
scanf("%d",&x);
switch(x)
{
case 1:
n1=n1+1;
printf("\n\n\n\n********************************************************************************");
printf("********************************恭喜您,添加成功!**********************************");
printf("****************************************************************************\n\n\n\n\n");
break;
case 2:
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 已取消添加!");
getchar();
break;
default:printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 输入的数字不正确,请重新输入数字!");
getchar();
Sleep(800);
goto AA;
}
getchar();
yonghuguanli();
}
}
void gerenxinxi() //已完成
{
if(yong)
{
system("cls");
printf("********************************************************************************");
printf("\n*************姓名 账号 密码 系别*********************");
printf("\n*************%s %s %s %s\n",a[i].name,a[i].zhanghao,a[i].mima,a[i].xibie);
printf("********************************************************************************\n\n\n\n\n");
getchar();
getchar();
}
else if(guan)
{
system("cls");
printf("********************************************************************************");
printf("\n*************姓名 账号 密码 部门*********************");
printf("\n*************%s %s %s %s\n",b[q].name,b[q].zhanghao,b[q].mima,b[q].bumen);
printf("********************************************************************************\n\n\n\n\n");
getchar();
getchar();
}
F:
system("cls");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 1 返回主菜单 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 返回上一层 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 修改密码 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 4 退出 \n\n");
int num;
scanf("%d",&num);
switch(num)
{
case 1: zhucaidan();break;
case 2: chaxun();break;
case 3: xiugaimima();break;
case 4:
tuichu();
//
break;
default :printf("\t\t您输入的有误请重新输入!\t\t\n");getchar();goto F;
}
}
void zhuce()// 已完成
{
bool flag=0;
int cou=0;
char s1[20],s2[20],s3[20];
I:
system("cls");
printf("\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入账号: ");
scanf("%s",s3);
for(int j=0;j<n1;j++)
if(strcmp(a[j].zhanghao,s3)==0)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 您的账号已存在,请直接登录! ");
getchar();
getchar();
denglu();
}
strcpy(a[n1].zhanghao,s3);
H:
if(flag)
system("cls");
printf("\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入密码: ");
scanf("%s",s1);
printf("\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 请再一次输入密码: ");
scanf("%s",s2);
if(stricmp(s1,s2)==0)
strcpy(a[n1].mima,s1);
else
{
printf("\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 两次密码不一致请重新输入! ");
cou++;
if(cou==3)
{
printf("\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 输入错误三次请重新注册! ");
getchar();
cou=0;
goto I;
}
flag=1;
goto H;
}
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入姓名: ");
scanf("%s",a[n1].name);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入系别: ");
scanf("%s",a[n1].xibie);
system("cls");
printf("\n\n\n\n********************************************************************************");
printf("********************************恭喜您,注册成功!**********************************");
printf("****************************************************************************\n\n\n\n\n");
getchar();
getchar();
n1=n1+1;
getchar();
denglu() ;
}
void bianhaochaxun() //已完成
{
char s1[20];
int cun=0;
K:
system("cls");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入设备编号: ");
scanf("%s",s1);
int jj=0;
for(;jj<n3;jj++)
if(strcmp(c[jj].bianhao,s1)==0)
break;
if(jj==n3)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 不存在该编号的设备! ");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请重新输入设备编号!");
Sleep(800);
getchar();
cun++;
if(cun==3)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 您已输错多次,建议您按名称查询! ");
getchar();
shebei();
}
goto K;
}
system("cls");
printf("设备编号 : %s\n设备名称 : %s\n设备实验室: %s\n设备类别 : %s\n设备简介 :%s\n设备操作 :%s\n",c[jj].bianhao,c[jj].name,c[jj].shiyanshi,c[jj].leibie,c[jj].jianjie,c[jj].caozuo);
getchar();
getchar();
shebei();
}
void yonghuchaxun()
{
char s[20];
B:
system("cls");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入用户账号:");
scanf("%s",s);
int ii=0;
for(;ii<n1;ii++)
if(strcmp(a[ii].zhanghao,s)==0)
break;
if(ii==n1)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 没有该用户,请重新输入!\n ");
getchar();
goto B;
}
else
{
system("cls");
printf("********************************************************************************");
printf("\n*************姓名 账号 密码 系别*********************");
printf("\n*************%s %s %s %s\n",a[ii].name,a[ii].zhanghao,a[ii].mima,a[ii].xibie);
printf("********************************************************************************\n\n\n\n\n");
getchar();
getchar();
yonghuguanli();
}
}
void yonghuguanli()
{
N:
system("cls");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 添加用户请按 :1");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 修改用户密码请按 :2 ");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 返回上一层请按 :3 ");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 查询用户请按 :4 ");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 退出请按 :5 \n");
int num=0;
scanf("%d",&num);
switch(num)
{
case 1: tianjiayonghu();break;
case 2: xiugaiyongyumima();break;
case 3: chaxun();break;
case 4: yonghuchaxun();break;
case 5:
tuichu();
break;
default :printf("\t\t您输入的有误请重新输入!\t\t\n");getchar();goto N;
}
}
void shebeiluru()
{
char s1[20];
WW:
system("cls");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入设备编号: ");
scanf("%s",s1);
int xx=0;
for(;xx<n3;xx++)
if(strcmp(c[xx].bianhao,s1)==0)
break;
if(xx<n3)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 该编号的设备已存在,请重新输入! ");
getchar();
goto WW;
}
else if(xx==n3)
{
strcpy(c[n3].bianhao,s1);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入设备名称 :");
scanf("%s",s1);
strcpy(c[n3].name,s1);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入设备所在的实验室: ");
scanf("%s",s1);
strcpy(c[n3].shiyanshi,s1);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入设备类别 :");
scanf("%s",s1);
strcpy(c[n3].leibie,s1);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入简介 : ");
scanf("%s",s1);
strcpy(c[n3].jianjie,s1);
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入设备的操作 : ");
scanf("%s",s1);
strcpy(c[n3].caozuo,s1);
n3=n3+1;
system("cls");
printf("\n\n\n\n********************************************************************************");
printf("********************************恭喜您,录入成功!**********************************");
printf("*****************************************************************************\n\n\n\n\n");
getchar();
getchar();
chaxun();
}
}
void mingchengchaxun() //已完成
{
char s1[20];
int cun=0;
K:
system("cls");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请输入设备名称: ");
scanf("%s",s1);
int jj=0;
for(;jj<n3;jj++)
if(strcmp(c[jj].name,s1)==0)
{
system("cls");
printf("设备名称 : %s\n设备编号 : %s\n设备实验室: %s\n设备类别 : %s\n设备简介 :%s\n设备操作 :%s\n",c[jj].name,c[jj].bianhao,c[jj].shiyanshi,c[jj].leibie,c[jj].jianjie,c[jj].caozuo);
getchar();
getchar();
shebei();
}
if(jj==n3)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 不存在该名称的设备! ");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 请重新输入设备名称!");
Sleep(800);
getchar();
cun++;
if(cun==3)
{
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>> 您已输错多次,建议您了解后再查询! ");
Sleep(800);
getchar();
Sleep(800);
shebei();
}
goto K;
}
}
void chaxun() //已完成
{
if(yong)
{
E:
system("cls");
printf("\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 1 设备查找 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 个人信息 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 退出 \n\n");
int num=0;
scanf("%d",&num);
switch(num)
{
case 1: shebei();break;
case 2: gerenxinxi();break;
case 3:
tuichu();
//
break;
default :
printf("\t\t您输入的有误请重新输入!\t\t\n");
Sleep(800);
getchar();
goto E;
}
}
else if(guan)
{
N:
system("cls");
printf("\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 1 设备查找 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 个人信息 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 用户管理 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 4 设备录入 \n\n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>> 5 退出 \n\n");
int num=0;
scanf("%d",&num);
switch(num)
{
case 1: shebei();break;
case 2: gerenxinxi();break;
case 3: yonghuguanli();break;
case 4: shebeiluru();break;
case 5:
tuichu();
break;
default :
printf("\t\t您输入的有误请重新输入!\t\t\n");
Sleep(800);
getchar();
goto N;
}
}
}
void zhucaidan() //已完成
{
int num;
A:
menu1();
scanf("%d",&num);
switch(num)
{
case 1: denglu();break;
case 2: zhuce();break;
case 3:
tuichu();
break;
default :
printf("\t\t您输入的有误请重新输入!\t\t\n");
Sleep(800);
getchar();
goto A;
}
}
int main()
{
FILE*fp; //声明fp是指针,用来指向FILE类型的对象
if ((fp=fopen("yonghu","r"))==NULL) //打开职工列表文件为空
{
printf ("打开失败\n");
exit(0);
}
//cout<<n1<<endl;
do
{
fscanf(fp,"%s%s%s%s",a[n1].zhanghao,a[n1].name,a[n1].mima,a[n1].xibie);
n1++;
//cout<<n1<<endl;
}
while(feof(fp)==0); //检测流上的文件结束符
fclose(fp);
if ((fp=fopen("shebei","r"))==NULL) //打开职工列表文件为空
{
printf ("打开失败\n");
exit(0);
}
do
{
fscanf(fp,"%s%s%s%s%s%s",c[n3].bianhao,c[n3].name,c[n3].shiyanshi,c[n3].leibie,c[n3].jianjie,c[n3].caozuo);
n3++;
}
while(feof(fp)==0); //检测流上的文件结束符
fclose(fp);
if ((fp=fopen("guanliyuan","r"))==NULL) //打开职工列表文件为空
{
printf ("打开失败\n");
exit(0);
}
do
{
fscanf(fp,"%s%s%s%s",b[n2].zhanghao,b[n2].name,b[n2].mima,b[n2].bumen);
n2++;
}
while(feof(fp)==0); //检测流上的文件结束符
fclose(fp);
start();
//cout<<n1<<endl;
//for(int qq=0;qq<n1;qq++)
//printf("%s %s %s %s\n",a[qq].zhanghao,a[qq].name,a[qq].mima,a[qq].xibie);
getchar();
zhucaidan();
return 0;
}
实验室设备管理 系统
最新推荐文章于 2024-07-28 09:52:08 发布