diff --git a/MyCode/item_TrainTicketSalesSystem/admin.py b/MyCode/item_TrainTicketSalesSystem/admin.py index da6fc1333408a9aaab09ba867bf1925c809e0385..ed96e5fec1001a7063f52634c6978639fddf2502 100644 --- a/MyCode/item_TrainTicketSalesSystem/admin.py +++ b/MyCode/item_TrainTicketSalesSystem/admin.py @@ -5,9 +5,8 @@ from commonFile import * # 添加列车信息 def train_info_add(): write_flag = False - with open('trainInfomation.csv', mode='r', encoding='gbk') as f: - train = f.readlines() with open('trainInfomation.csv', mode='a+', encoding='gbk') as f: + train = f.readlines() for i in range(len(train_info)): in_info_str = str(input("请输入" + train_info[i] + ":")) if i == 0: # 检查车次是否重复 diff --git a/MyCode/item_TrainTicketSalesSystem/commonFile.py b/MyCode/item_TrainTicketSalesSystem/commonFile.py index 2de4336e26338bcd79d8ef3e872d9a68c05cd35b..a6d5e099e38741cdf3dc5651829a608e280c9948 100644 --- a/MyCode/item_TrainTicketSalesSystem/commonFile.py +++ b/MyCode/item_TrainTicketSalesSystem/commonFile.py @@ -55,18 +55,44 @@ def captcha(): # 查询列车信息 def train_query(): - print(" 输出列车信息:".rjust(28, '^')) - # 读取列车信息数据库 - with open('trainInfomation.csv', 'r', encoding='gbk') as f: # trainInfomation.csv 为当前目录文件 - train_csv = csv.reader(f) - # 输出表头 - for i in range(len(train_info)): - print(train_info[i].ljust(11, ' ') + " ", end="") - print() - # 输出列车信息 - for row in train_csv: - for i in range(len(row)): - print(row[i].ljust(11, ' ') + " ", end="") - print() + train_flag = False + while True: + print(" 查询列车信息".rjust(27, '^')) + print(" 要查询车次信息请直接输入所要查询的车次或地点 \n 输入'查询'或'all'输出所有列车信息 \n 输入'quit'退出查询") + in_temp = input(" 请输入想要的操作:".rjust(30, '^')).strip() + if in_temp == "查询" or in_temp == "all": + print(" 输出列车信息:".rjust(28, '^')) + # 读取列车信息数据库 + with open('trainInfomation.csv', 'r', encoding='gbk') as f: # trainInfomation.csv 为当前目录文件 + train_csv = csv.reader(f) + # 输出表头 + for i in range(len(train_info)): + print(train_info[i].ljust(11, ' ') + " ", end="") + print() + # 输出列车信息 + for row in train_csv: + for i in range(len(row)): + print(row[i].ljust(11, ' ') + " ", end="") + print() + elif in_temp == "quit": + break + else: + # 查询输入的列车信息 + with open('trainInfomation.csv', 'r', encoding='gbk') as f: # trainInfomation.csv 为当前目录文件 + train_csv = csv.reader(f) + # 输出表头 + for i in range(len(train_info)): + print(train_info[i].ljust(11, ' ') + " ", end="") + print() + for row in train_csv: + if in_temp in row: + for i in range(len(row)): + print(row[i].ljust(11, ' ') + " ", end="") + print() + train_flag = True + else: + train_flag = False + if not train_flag: + print("此列车信息未找到") return True diff --git a/MyCode/item_TrainTicketSalesSystem/user.py b/MyCode/item_TrainTicketSalesSystem/user.py index 513140b0ec58cad861b0bd3c2bad929a50bead94..03ef017c11c64e36b32e9fa3b450bc87be6e09c5 100644 --- a/MyCode/item_TrainTicketSalesSystem/user.py +++ b/MyCode/item_TrainTicketSalesSystem/user.py @@ -82,11 +82,6 @@ def user_register(): # 用户登录 def user_logon(): - # 读取用户数据&用户黑名单数据库 - with open('userDataBase.csv', 'r', encoding='gbk') as f: # userDataBase.csv 为当前目录文件 - user = f.readlines() - with open('userBlacklist.csv', 'r', encoding='gbk') as f: # userBlacklist.csv 为当前目录文件 - black_user = f.read() n = 3 # 密码最多可输错的次数 if captcha(): # 通过验证码认证 j = 0 # 重置密码输入计数器 @@ -95,36 +90,70 @@ def user_logon(): in_name = input(" 请输入用户名:".rjust(28, '~')).strip() # 验证用户名&密码 if 0 != len(in_name): - if in_name in black_user: # 判定该账户是否被拉黑 - print(" 该用户已锁定,请联系管理员".rjust(34, '~')) - return False - for cache in user: # 匹配账号&密码的列表 - cache = cache.split() # 分割字符串,返回字符串列表供系统匹配用户名&密码 - if in_name == cache[0]: # 匹配到用户名的列表,对应该列表的另一个元素为密码 - for i in range(n): # n次密码输入机会 - j += 1 - in_passwd = input(" 请输入6位密码:".rjust(29, '~')).strip() - if 6 == len(in_passwd): # 密码限制条件:6位密码 - if in_passwd == cache[1]: # 密码匹配 - print(" 登陆成功,欢迎 {} 回家!".format(in_name).rjust(31, '~')) - return True + with open('userBlacklist.csv', 'r', encoding='gbk') as f: # userBlacklist.csv 为当前目录文件 + # black_user = f.read() + black_user_csv = csv.reader(f) + for black_user_row in black_user_csv: + if black_user_row[0] == in_name: + print(" 该用户已锁定,请联系管理员".rjust(34, '~')) + return False + with open('userDataBase.csv', 'r', encoding='gbk') as f: # userDataBase.csv 为当前目录文件 + user_csv = csv.reader(f) + for user_row in user_csv: + if user_row[0] == in_name: # 匹配到用户名的列表,对应该列表的另一个元素为密码 + for i in range(n): # n次密码输入机会 + j += 1 + in_passwd = input(" 请输入6位密码:".rjust(29, '~')).strip() + if 6 == len(in_passwd): # 密码限制条件:6位密码 + if in_passwd == user_row[1]: # 密码匹配 + print(" 登陆成功,欢迎 {} 回家!".format(in_name).rjust(31, '~')) + return True + else: + if 0 != (n - j): + print("用户名或者密码错误!还有{}次账户将被锁定!".format(n - j)) else: - if 0 != (n - j): - print("用户名或者密码错误!还有{}次账户将被锁定!".format(n - j)) + print(" 密码位数不对!请输入6位密码!!!".rjust(38, '~')) + # n次密码输入机会用完且用户名与密码不对应将锁定用户。实现方法:是将其用户名写入一个文件中保存 else: - print(" 密码位数不对!请输入6位密码!!!".rjust(38, '~')) - # n次密码输入机会用完且用户名与密码不对应将锁定用户。实现方法:是将其用户名写入一个文件中保存 - else: - if in_name not in black_user: # 遍历用户黑名单 - with open('userBlacklist.csv', mode='a', encoding='gbk') as f: - f.write(in_name + '\n') - f.close() - print("连续输入用户名或密码错误超过{}次,账户已被锁定登录!请联系管理员".format(n)) - return False - else: - continue - else: # 账户不存在 - print(" 用户不存在,请注册!".rjust(31, '~')) - return False + with open('userBlacklist.csv', 'r', encoding='gbk') as fp: # userBlacklist.csv 为当前目录文件 + black_user_csv = csv.reader(fp) + for black_user_row in black_user_csv: + if in_name not in black_user_row[0]: # 遍历用户黑名单 + with open('userBlacklist.csv', mode='a', encoding='gbk') as fp: + fp.write(in_name + '\n') + fp.close() + print("连续输入用户名或密码错误超过{}次,账户已被锁定登录!请联系管理员".format(n)) + return False + # if in_name in black_user: # 判定该账户是否被拉黑 + # print(" 该用户已锁定,请联系管理员".rjust(34, '~')) + # return False + # for cache in user: # 匹配账号&密码的列表 + # cache = cache.split() # 分割字符串,返回字符串列表供系统匹配用户名&密码 + # if in_name == cache[0]: # 匹配到用户名的列表,对应该列表的另一个元素为密码 + # for i in range(n): # n次密码输入机会 + # j += 1 + # in_passwd = input(" 请输入6位密码:".rjust(29, '~')).strip() + # if 6 == len(in_passwd): # 密码限制条件:6位密码 + # if in_passwd == cache[1]: # 密码匹配 + # print(" 登陆成功,欢迎 {} 回家!".format(in_name).rjust(31, '~')) + # return True + # else: + # if 0 != (n - j): + # print("用户名或者密码错误!还有{}次账户将被锁定!".format(n - j)) + # else: + # print(" 密码位数不对!请输入6位密码!!!".rjust(38, '~')) + # # n次密码输入机会用完且用户名与密码不对应将锁定用户。实现方法:是将其用户名写入一个文件中保存 + # else: + # if in_name not in black_user: # 遍历用户黑名单 + # with open('userBlacklist.csv', mode='a', encoding='gbk') as f: + # f.write(in_name + '\n') + # f.close() + # print("连续输入用户名或密码错误超过{}次,账户已被锁定登录!请联系管理员".format(n)) + # return False + # else: + # continue + # else: # 账户不存在 + # print(" 用户不存在,请注册!".rjust(31, '~')) + # return False else: return False diff --git a/MyCode/item_TrainTicketSalesSystem/userDataBase.csv b/MyCode/item_TrainTicketSalesSystem/userDataBase.csv index 5c77c25d2439e4029ca8adcfc18453146d31bc5e..94155947d7460844c69aac96e1af53ed84532a74 100644 --- a/MyCode/item_TrainTicketSalesSystem/userDataBase.csv +++ b/MyCode/item_TrainTicketSalesSystem/userDataBase.csv @@ -1,5 +1,5 @@ -z1 zym787 -zz1 zym787 -violet zym787 -zhang zhang1 +z1,zym787 +zz1,zym787 +violet,zym787 +zhang,zhang1 zym787,zym787 diff --git "a/MyCode/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\346\234\237\346\234\253\350\200\203\346\240\270.rar" "b/MyCode/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\346\234\237\346\234\253\350\200\203\346\240\270.rar" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/MyCode/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\346\234\237\346\234\253\350\200\203\346\240\270/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\346\234\237\346\234\253\350\200\203\346\240\270.doc" "b/MyCode/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\346\234\237\346\234\253\350\200\203\346\240\270/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\346\234\237\346\234\253\350\200\203\346\240\270.doc" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/MyCode/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\346\234\237\346\234\253\350\200\203\346\240\270/\345\255\246\345\217\267 \345\247\223\345\220\215/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\350\257\276\347\250\213\350\200\203\346\240\270\346\212\245\345\221\212.doc" "b/MyCode/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\346\234\237\346\234\253\350\200\203\346\240\270/\345\255\246\345\217\267 \345\247\223\345\220\215/\343\200\212Python\347\250\213\345\272\217\350\256\276\350\256\241\343\200\213\350\257\276\347\250\213\350\200\203\346\240\270\346\212\245\345\221\212.doc" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000