练习题-修改个人信息程序

练习题-修改个人信息程序

在一个文件里存多个人的个人信息,如以下

username password  age position department 
alex     abc123    24   Engineer   IT
rain     df2@432    25   Teacher   Teching
....

1.输入用户名密码,正确后登录系统 ,打印

1. 修改个人信息
2. 打印个人信息
3. 修改密码

2.每个选项写一个方法

3.登录时输错3次退出程序

 

  1 #!/usr/bin/env python
  2 # -*- coding=utf-8 -*-
  3 """
  4 @author:Wllen
  5 @file:staff_manage.py
  6 @time:2018/6/8 14:57
  7 """
  8 def print_info(account_dict,username):  # 打印用户信息,将输入的username作为字典的key进行取值(列表),打印列表
  9     data = account_dict.get(username)
 10     info = '''
 11     姓名: %s
 12     年龄: %s
 13     职务: %s
 14     部门: %s
 15     ''' % (data[0], data[2], data[3], data[4])
 16     print(info)
 17     # save_account(account_dict)
 18 
 19 def save_account(account_dict): # 将修改后的数据存入文件中
 20     with open(account_file, "r+", encoding="utf-8") as f:
 21         f.truncate(0)   # 清空原文件,光标位置向后切片
 22         for j in account_dict:  # 将字典中的key的值存入文件中
 23             row = ",".join(account_dict[j])
 24             f.write("%s \n" % row)
 25         f.flush()
 26 
 27 def change_info(account_dict,username): # 修改用户个人信息
 28     data = account_dict.get(username)
 29     # print(data)
 30     info = '''
 31     1 姓名
 32     2 年龄
 33     3 职务
 34     4 部门
 35     '''
 36     while True: # 一直停留在这
 37         print(info)
 38         change_choice = input("请选择需要修改的选项:").strip()    # 输入选择的功能
 39         if change_choice.isdigit():
 40             change_choice = int(change_choice)
 41             if change_choice > 0 and change_choice <= 4:    # 输入的不能超过功能数
 42                 if change_choice == 1:
 43                     data_name = input("请输入新的用户名:").strip()
 44                     if not data_name:
 45                         print("输入有误!")
 46                     else:
 47                         data[0] = data_name
 48                     print("已将用户名修改为:", data_name)
 49                 elif change_choice == 2:
 50                     data_age = input("请输入新的年龄:").strip()
 51                     if not data_age:
 52                         print("输入有误!")
 53                     else:
 54                         data[0] = data_age
 55                     print("已将年龄名修改为:", data_age)
 56                 elif change_choice == 3:
 57                     data_position = input("请输入新的职务:").strip()
 58                     if not data_position:
 59                         print("输入有误!")
 60                     else:
 61                         data[0] = data_position
 62                     print("已将职务修改为:", data_position)
 63                 elif change_choice == 4:
 64                     data_department = input("请输入新的部门:").strip()
 65                     if not data_department:
 66                         print("输入有误!")
 67                     else:
 68                         data[0] = data_department
 69                     print("已将部门修改为:", data_department)
 70             else:
 71                 print("没有此选项")
 72         elif change_choice.lower() == "b":
 73             break
 74         else:
 75             print("输入有误!")
 76         save_account(account_dict)
 77 def change_passwd(account_dict,username):
 78     data = account_dict.get(username)
 79     # print(data)
 80     while True:
 81         new_passwd = input("请输入您的新密码:").strip()
 82         new_passwd1 = input("请再次输入您的密码:").strip()
 83         if not new_passwd:
 84             print("您的输入有误!")
 85         else:
 86             if new_passwd == new_passwd1:
 87                 data[1] = str(new_passwd)
 88                 print("密码修改成功!")
 89                 break
 90             else:
 91                 print("两次密码不相同,请重新输入!")
 92     save_account(account_dict)
 93 
 94 account_file = "staff_db.db"
 95 with open(account_file, "r+", encoding="utf-8") as f:
 96     raw_data = f.readlines()
 97 accounts = {}
 98 # 把账户数据从文件里读书来,变成dict,key为用户名
 99 for line in raw_data:
100     line = line.strip()
101     items = line.split(",")
102     accounts[items[0]] = items
103 # {'alex': ['alex', 'abc123', '24', 'Engineer', 'IT'], 'rain': ['rain', 'df2@432', '25', 'Teacher', 'Teching']}
104 
105 menu = '''
106 1. 修改个人信息
107 2. 打印个人信息
108 3. 修改密码
109 '''
110 count = 0
111 while count < 3:
112     username = input("请输入您的用户名:").strip()
113     password = input("请输入您的密码:").strip()
114     if username in accounts:
115         if username == accounts.get(username)[0] and password == accounts.get(username)[1]:
116             print("欢迎%s来到员工信息表登记系统!" % username)
117             while True:
118                 print(menu)
119                 choice = input("请输入您需要进行的操作:").strip()
120                 if choice.isdigit():
121                     choice = int(choice)
122                     if choice == 1:
123                         change_info(accounts, username)
124                         print(accounts.get(username))
125                     elif choice == 2:
126                         print_info(accounts, username)
127                     elif choice == 3:
128                         change_passwd(accounts, username)
129                     else:
130                         print("没有此选项,请重新输入!")
131                 elif choice.lower() == 'q':
132                     exit("系统正在退出......")
133                 else:
134                     print("输入有误,请重新输入!")
135         else:
136             print("对不起,您的用户名或密码错误,请重新再试!剩余登录次数%s" % (2-count))
137             count += 1
138     else:
139         print("没有此用户!")

 

posted @ 2018-06-11 21:51 Wllen 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、系统说明 | ----------------------------------- 本系统是在Microsoft Visual Studio 2003环境下用C#语言编个人信息管理系统。 其主要功能有: ------------- 1.文章管理模块  (1)用户发表新文章,可以将文章设为公开或不公开,如果设置为公开的,则所 有使用本系统的用户都可以浏览到你的文章。 (2)用户可以新建文章分类,在文章查询时,文章分类可以做为查询的一个依据。 (3)用户可以查询本人的所有文章,也可以查询其它用户公开的文章,查询条件可以为: 根据文章标题、内容、文章类别、发表时间、修改时间、用户名。 (4)用户可以删除、修改、改变文章是否公开、导出为WORD,但对于其它用户的文章,这些功能有所限制。 -------------- 2.日记管理模块 (1)用户发表新日记,可以将日记设为公开或不公开,如果设置为公开的,则所 有使用本系统的用户都可以浏览到你的日记。 (2)用户可以新建日记分类。 (3)用户可以查询本人的所有日记,也可以查询其它用户公开的日记,查询条件可以为: 根据日记标题、内容、类别、发表时间、修改时间、用户名、心情、天气。 (4)用户可以删除、修改、改变日记是否公开、导出为WORD,但对于其它用户的文章,这些功能有所限制。 -------------- 3.相册管理模块 (1)用户可以上传新图片,可以将图片设为公开或不公开,如果设置为公开的,则所 有使用本系统的用户都可以浏览到你的图片。 (2)用户可以新建相册分类。 (3)用户可以浏览本人的所有图片,以及其它用户公开的图片。 (4)用户可以删除、更新、导出图片,但对于其它用户的图片,这些功能有所限制。 -------------- 4.备忘管理模块 (1)用户可以新备忘,可以设置备忘提醒时间、是否提醒、备忘分类、紧急程度、查看阴阳历。 (2)用户可以新建备忘分类。 (3)用户可以查询本人的所有备忘,查询条件有:备忘标题、内容、提醒时间、是否完成、紧急程度、备忘分类。 (4)用户可以删除、更新备忘。 -------------- 5.费用管理模块 (1)用户可以新费用,可以填费用名称,说明,数量,单价。 (2)用户可以查询本人的所有费用,可以统计查询到的费用情况,并可以将查询记录导出到EXCEL中保存。 (3)用户可以删除、修改费用。 ---------------------------- 6.信息管理模块 (1) 用户可以更改密码。 (2) 提供管理日常联系人的信息功能,可以批量从EXCEL中导入联系人,也可以批量导出联系人。 ---------------------------- |

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值