#include<stdio.h>
#include<string.h>
#define N 10
struct user//用户结构体
{
char name[N];
char key[N];
}Users[80] = {0};
user admin = { "admin","admin123" };
struct good//商品结构体
{
char name[20];
float price;
}goods[100]={"苹果",10,"梨",6};
int goods_count = 2;
int users_count = 0;
int i = 0;
void print1()//打印一级菜单
{
printf("**************************\n");
printf("1:注册\n");
printf("2:登录\n");
printf("3:退出登录\n");
printf("**************************\n");
printf("请选择操作");
}
void aprint2()//打印二级菜单
{
printf("**************************\n");
printf("1:查看商品\n");
printf("2:添加商品\n");
printf("3:修改商品\n");
printf("4:返回上级菜单\n");
printf("**************************\n");
printf("请选择操作");
}
void aprint3()//打印三级菜单
{
printf("**************************\n");
printf("1:修改名称\n");
printf("2:修改价格\n");
printf("3:返回上级菜单\n");
printf("**************************\n");
printf("请选择操作:");
}
void printgoods()//查看商品
{
printf("************商品列表***********\n");
printf("名称 价格 \n");
for (int i = 0; i < goods_count; i++)
{
printf("%-8s%-8.1f%\n", goods[i].name, goods[i].price);
}
printf("**************************\n");
}
void addgoods()//添加商品
{
struct good tgood;
float tprice=0;
printf("输入您要添加的商品名称:");
scanf_s("%s", tgood.name,N);
strcpy_s(goods[goods_count].name, tgood.name);//添加商品名称
printf("输入您要添加的商品价格:");
scanf_s("%f", &tprice);
goods[goods_count].price = tprice;//添加商品价格
goods_count++;//商品个数加 1
}
void modifygoods()//修改商品
{
good tgood;
int tempi=0, n=0;
printf("输入您要修改的商品名称");
scanf_s("%s", tgood.name,N);
for (int i = 0; i < goods_count; i++)
{
if (strcmp(tgood.name, goods[i].name) == 0)
{
tempi = i;
break;
}
}
printf("************您要修改的商品***********\n");
printf("名称 价格 \n");
printf("%-8s%-8.1f%\n", goods[tempi].name, goods[tempi].price);
printf("**************************\n");
while (1)
{
aprint3();//打印三级菜单
scanf_s("%d", &n);
if (n == 1)
{
printf("输入您要修改的商品名称");
scanf_s("%s", goods[tempi].name,N);
}
if (n == 2)
{
printf("输入您要添加的商品价格:");
scanf_s("%f", &goods[tempi].price);
}
if (n == 3)
{
break;
}
}
}
void regedit()//用户注册
{
user tuser;
int j, p, q;
while (1)
{
p = 0;
printf("请输入用户名:");
scanf_s("%s", tuser.name,N);
for (int k = 0; k < users_count; k++)
{
if (strcmp(tuser.name, Users[k].name) == 0)
{
p = 1;
break;
}
}
if (p == 1)
{
printf("用户名已存在\n");
}
else
{
strcpy_s(Users[i].name, tuser.name);
break;
}
}
while (1)
{
printf("请输入密码:");
scanf_s("%s", tuser.key,N);
j = 0;
p = 0;
while (tuser.key[j] != '\0')
{
if ((tuser.key[j] >= 'a' && tuser.key[j] <= 'z' || tuser.key[j] >= 'A' && tuser.key[j] <= 'Z'))
{
p = 1;
break;
}
j++;
}
j = 0;
p = 0;
while (tuser.key[j] != '\0')
{
if (tuser.key[j] >= '0' && tuser.key[j] <= '9')//判断含数字字符
{
q = 1;
break;
}
j++;
}
if (p == 1 && q == 1)
{
printf("恭喜你,注册成功\n");
strcpy_s(Users[i].key, tuser.key);
users_count++;
i++;
break;
}
else
{
printf("密码要含有数字和字母1\n");
continue;
}
}
}
void alogin()//管理员登录
{
user tuser;
int p = 0;//用户名匹配的标记
int q = 0;//密码匹配的标记
printf("请输入用户名:");
scanf_s("%s", tuser.name,N);
printf("请输入密码:");
scanf_s("%s", tuser.key,N);
if (strcmp(tuser.name, admin.name) == 0) //管理员账户匹配
{
p = 1;
if (strcmp(tuser.key, admin.key) == 0)//密码匹配
{
q = 1;
}
}
if (p == 1 && q == 1)
{
printf("**************************\n");
printf(" 登录成功\n");
printf("**************************\n");
while (1)
{
aprint2();
int m;
scanf_s("%d", &m);
if (m==1)
{
printgoods();//查看商品
}
if (m == 2)
{
addgoods();//添加商品
}
if (m == 3)
{
modifygoods();//修改商品
}
if (m == 4)
{
break;//返回上级菜单
}
}
}
else
printf("************登录失败***********\n");
}
void logout()
{
printf("************goodbye***********\n");
}
int main()
{
int n;
while (1)
{
print1();
scanf_s("%d", &n);
if (n == 1)
{
regedit();//注册
}
if (n == 2)
{
alogin();//管理登录
}
if (n == 3)
{
logout();//退出登录
break;
}
}
return 0;
}
管理员端开发
最新推荐文章于 2024-07-15 15:17:48 发布