-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchange_admin.cpp
More file actions
executable file
·125 lines (102 loc) · 3.22 KB
/
Copy pathchange_admin.cpp
File metadata and controls
executable file
·125 lines (102 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include "change_admin.h"
#include "database.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int change_admin_check_email(char email[20]) {
int i, j = 0, k = 0, n = 0, m = 0, temp = 0;
for (i = 0; i < strlen(email); i++) {
if (email[i] == '@')
j++, n = i;
}
for (i = 0; i < strlen(email); i++) {
if (email[i] == '.')
k++, m = i;
}
if (k == 1 && j == 1)
temp++;
if (n + 1 < m)
temp++;
return temp;
}
void change_admin_password(char user_id[11]) {
printf("\n请输入新的账户密码: ");
scanf("%s", admin_information.password);
printf("\n修改成功! ");
return;
}
void change_admin_email(char user_id[11]) {
printf("\n请输入新的邮箱: ");
scanf("%s", admin_information.email);
int i;
i = change_admin_check_email(admin_information.email);
while (i != 2) {
printf("\n您的输入格式错误, 请检查后重新输入:");
printf("\n");
memset(admin_information.email, 0, sizeof(admin_information.email));
scanf("%s", admin_information.email);
i = change_admin_check_email(admin_information.email);
}
printf("\n修改成功! ");
printf("\n请输入任意字符并按回车键以继续...\n");
char screen[10];
scanf("%s", screen); // 延长屏幕显示时间
return;
}
int change_admin_choose() {
char choose[10]; // 记录管理员操作时的选择
int choose_num;
printf("您的个人信息如下:\n");
printf("饭店名\t\t管理员姓名\t\t邮箱\t\t\t密码\n");
printf("%-16s\t%-16s\t%-20s\t%-10s\n",
admin_information.shop_id, // 饭店名
admin_information.name, // 管理员姓名
admin_information.email, // 邮箱
admin_information.password // 密码
);
printf("\n请输入任意字符并按回车键以继续...\n");
char screen[10];
scanf("%s", screen); // 延长屏幕显示时间
// 用户界面
printf("\n---------------请选择您需要的操作类型---------------\n\n");
printf("\n1. 修改账户密码.\n2. 修改邮箱\n0. 返回.\n");
printf("\n-------------------------------------------------\n");
printf("请按数字键选择要执行的操作:\n");
scanf("%s", choose);
// 容错判断
if (strcmp(choose, "1") != 0 && strcmp(choose, "2") != 0 &&
strcmp(choose, "0") != 0) {
printf("\n您的输入有误, 请按照操作选项再次输入:\n\n");
choose_num = change_admin_choose();
} else
choose_num = atoi(choose);
return choose_num;
}
void change_admin(char user_id[11]) {
if (!database_admin_information(user_id, 0)) { // 数据库读取, 只读
printf("没有找到文件? 请核查数据库信息.");
return; // 读取文件发生错误, 返回上一级
}
int choose = change_admin_choose(); // 用户界面传入指令
switch (choose) {
case 1: {
printf("\n您正在修改账户密码! ");
change_admin_password(user_id);
database_admin_information(user_id, 1); // 入库
change_admin(user_id);
break;
}
case 2: {
printf("\n您正在修改邮箱! ");
change_admin_email(user_id);
database_admin_information(user_id, 1); // 入库
change_admin(user_id);
break;
}
case 3: {
break;
}
}
database_admin_information(user_id, 1); // 入库
return;
}