- 实现了利用txt充当数据库,并可以进行账号的登录和注册
- 登录成功后进入系统,可以实现学生的增删改查
#注册页面
myfile = open(r'C:\Users\Administrator\Desktop\user.txt', 'a+')
b=0#标记位注册成功进入登录页面
print('--------------注册页面------------------')
while True:
account = input('注册-账户:')
a = 1 # 设置标记位,如果用户没被注册,a=1,注册了a=0,继续循环输入注册账户
myfile.seek(0,0)#每次都保证从文件开头读
for file_account in myfile:
if account == file_account.split(':')[0]:# 将文件中储存的形式按:分割开,并取出第一个
print('重新注册-账户:')
a=0
break#只能结束for的循环
if a == 1:
password1 = input('注册-密码:')
password2 = input('注册-确认密码:')
if password1 == password2:
print('注册成功!')
b=1
buf = '%s:%s\n' % (account, password1) # 将密码和账号储存为: account-password1
myfile.write(buf)
break
else:
print('!!密码不相同,请重新注册!!')
continue
myfile.close()
#登录页面
if b==1:
print('--------------登录页面------------------')
myfile = open(r'C:\Users\Administrator\Desktop\user.txt', 'r') # 只进行读文件
i = 1 # 只允许用户输入三级账户密码
islogin = 0 # 如果等于0,我没是没有登录的,用于跳出大循环
a = 0 # 标记位,如果登录成功为1,登录失败还是0
while True:
if islogin == 0:
if i > 3:
print('三次均输入错误,再见!')
break
print('开始你的第%d次机会,如果错了你还有%d次机会' % (i, 3 - i))
account = input('请输入你的账户:')
pwd = input('请输入你的密码:')
# 数据库中以( 账户:密码\n )形式储存
myfile.seek(0, 0)
for buf in myfile: # 遍历数据库中的每行数据,但是注意每行都有一个\n
account_buf = buf.split(':')[0] # 取到了账户
pwd_buf = buf.split(':')[1] # 取到了密码
pwd_buf = pwd_buf.strip() # 去掉密码后的\n
if account == account_buf and pwd_buf == pwd:
print(account, ',欢迎进入系统')
islogin = 1 # 修改标记位,退出大循环
a = 1
break # 只能跳出for循环,就是读取文件的for循环
i += 1
continue
else:
break
myfile.close()
#系统页面
if a==1:
print('--------------------------------')
print('==欢迎进入学生管理系统==')
print('====1.添加学生信息====')
print('====2.删除学生信息====')
print('====3.修改学生信息====')
print('====4.查找学生信息====')
print('====5.显示所有信息====')
print('=====0.退出系统======')
all_student = [] # 储存所有添加的学生信息
while True:
num = input('请输入你要进行的操作\n>>>') # 用字符串来接受用户的操作
if num == '1': # 添加学生信息
student = {} # 将每个学员的信息储存为{'name':name,'age':age,'sex':sex}的形式
name = input('请输入学生姓名:')
age = input('请输入%s的年龄:' % name)
sex = input('请输入%s的性别:' % name)
student['name'] = name
student['age'] = age
student['sex'] = sex
print('你输入的信息为:姓名:%s 年龄:%s 性别:%s' % (name, age, sex))
print('===添加成功===')
all_student.append(student)
continue
elif num == '2': # 删除学生信息
while True:
del_name = input('请输入你要删除学生的名字:')
count1 = 0 # 计数,记录下边for循环查找到列表中的第几个
f = 0 # 计数负责让操作退出while循环
for name_1 in all_student:
if name_1['name'] == del_name:
del all_student[count1]
print('==删除成功==')
f = 1
break
count1 += 1
if f == 1:
break
if f == 0:
print('没有找到!请重新输入:')
continue
elif num == '3': # 修改学生信息
while True:
m = 0 # 记录循环次数,索引号=m-1
for modify_name1 in all_student:
modify_name = input('请输入你要修改的姓名:')
m += 1
if modify_name == modify_name1['name']:
break
else:
print('输入有误!')
continue
while True:
num2 = input('请输入你要修改的内容:1.姓名 2.年龄 3.性别') # 记录修改操作选项
if num2 == '1':
all_student[m - 1]['name'] = input('请输入修改后的姓名:')
break
elif num2 == '2':
all_student[m - 1]['age'] = input('请输入修改后的年龄')
break
elif num2 == '3':
all_student[m - 1]['sex'] = input('请输入修改后的性别:')
break
else:
print('输入有误,请重新输入:')
continue
break
elif num == '4': # 查找单个学生信息
while True:
count2 = 0 # 负责计数,来退出循环
find_name = input('输入你要查找的学生姓名:')
for find_name1 in all_student:
if find_name == find_name1['name']:
print('该学生信息为:姓名:%s 年龄:%s 性别:%s' % (find_name1['name'], find_name1['age'], find_name1['sex']))
count2 = 1
break
if count2 == 1:
break
if count2 == 0:
print('没有查找到你要的姓名,请重新输入:')
continue
elif num == '5': # 显示所有学生信息
print('姓名 年龄 性别')
for display_name in all_student:
print('%s %s %s' % (display_name['name'], display_name['age'], display_name['sex']))
continue
elif num == '0': # 退出系统
break
else:
print('输入有误,请重新输入!')
continue
1.运行程序,进入注册页面
2.注册成功会会在桌面上创建一个user.txt的文件,做账号的数据库,创建成功后,进行登录,会逐行进行账号校验
3.登录成功,进入系统,可以进行:增,删,改,查,显示全部的信息和退出功能