运行效果:

注意:运行前请在同一目录下创建一个userdata.bin用于保存用户数据

源代码:

  1 # coding:utf-8
2 '''
3 用户注册信息管理系统
4 功能包括:
5 1.查看全部已注册用户信息
6 2.查找用户信息
7 3.修改用户信息
8 4.删除用户信息
9 5.添加新用户
10 6.将用户信息存入文件
11 每个注册用户的信息用对象表示,程序启动时,自动载入文件中保存的用户信息
12 程序启动后,显示操作菜单,并根据选择执行不同的操作
13 各种菜单操作定义为函数,调用函数完成对应操作
14 '''
15 '''
16 导入pickle模块中的dump、load方法
17 dump方法将对象写入文件,load方法从文件中载入对象
18 '''
19
20 from pickle import dump,load
21
22 ##定义user类,实例对象的userName属性存储用户名,passWord属性存储登录密码
23
24 class user:
25 #实例化对象,默认是None
26 def __init__(self,userName=None,passWord=None):
27 self.userName=userName
28 self.passWord=passWord
29
30 #update方法修改用户名和登录密码
31 def update(self,userName,passWord):
32 self.userName=userName
33 self.passWord=passWord
34
35 #__repr__()方法定义对象打印格式
36 def __repr__(self):
37 return 'userName=%s\tpassWord=%s'%(self.userName,self.passWord)
38
39 ##函数showAll()显示当前已注册用户信息########################
40 def showAll():
41 global userList
42 if len(userList)==0:
43 print('\t当前无注册用户')
44 else:
45 print('\t当前已注册用户信息如下:')
46 n=0
47 for x in userList:
48 n+=1
49 print('\t%s. '%n,x)
50 input('\n\t按Enter键继续...\n')
51
52
53 ##函数check_update()执行查找、修改或删除操作######################
54 def check_update():
55 global userList
56 userName=input('\t请输入要查找的用户名:')
57 index=find(userName)
58 if index==-1:
59 print('\t%s不存在!'%userName)
60 else:
61 #用户名已注册,执行修改或删除操作
62 print('\t%s 已经注册!'%userName)
63 print('\t请选择操作:')
64 print('\t 1.修改用户')
65 print('\t 2.删除用户')
66 op=input('\t请输入序号选择对应操作:')
67 if op=='2':
68 #删除用户
69 del userList[index]
70 print('\n\t 已成功删除用户!')
71 else:
72 #修改用户信息
73 userName=input('\t请输入新的用户名:')
74 if userName=='':
75 print('\t用户名输入无效!')
76 else:
77 #检查是否已存在同名的注册用户
78 if find(userName)>-1:
79 print('\t你输入的用户名已经使用!')
80 else:
81 passWord=input('\t请输入新用户登录密码:')
82 if passWord=='':
83 print('\t登录密码输入无效!')
84 else:
85 userList[index].update(userName,passWord)
86 print('\n\t已成功修改用户!')
87 input('\n\t按Enter键继续...\n')
88
89
90 ##函数addUser()添加新用户########################
91 def addUser():
92 global userList
93 userName=input('\t请输入用户名:')
94 if userName=='':
95 print('\t用户名输入无效!')
96 else:
97 #检查是否已存在同名的注册用户
98 if find(userName)>-1:
99 print('您输入的用户名已经使用,请重新添加用户!')
100 else:
101 passWord=input('\t请输入新用户登录密码:')
102 if passWord=='':
103 print('\t登录密码输入无效!')
104 else:
105 userList.append(user(userName,passWord))
106 print('\t已成功添加用户!')
107 input('\n\t按Enter键继续........')
108
109 ##函数find(namekey)查找是否存在用户名为namekey的注册用户
110 def find(namekey):
111 global userList
112 #如果注册用户列表userList中存在namekey的用户,则返回位置,否则返回-1
113 n=-1
114 for x in userList:
115 n+=1
116 if x.userName==namekey:
117 break
118 else:
119 n=-1
120 return n
121
122 ##函数save()将当前用户信息写入文件永久保存
123 def save():
124 global userList
125 #将用户写入文件永久保存
126 myfile=open(r'userdata.bin','wb')
127 global userList
128 dump(userList,myfile)
129 myfile.close()
130 print('\t已成功保存用户信息')
131 input('\n\t按Enter键继续......')
132
133 ##程序启动时,载入文件中的用户数据
134 myfile=open(r'userdata.bin','rb')
135 x=myfile.read(1)
136 if x==b'':
137 userList=list()
138 else:
139 myfile.seek(0)
140 userList=load(myfile)
141 myfile.close()
142
143 #以死循环显示系统操作菜单,直到选择退出系统
144 while True:
145 print('用户注册信息管理系统')
146 print('\t1. 显示全部已注册用户')
147 print('\t2. 查找/修改/删除用户信息')
148 print('\t3. 添加新用户')
149 print('\t4. 保存用户数据')
150 print('\t5. 退出系统')
151 no=input('请输入序号选择对应菜单:')
152 if no=='1':
153 showAll()
154 elif no=='2':
155 check_update()
156 elif no=='3':
157 addUser()
158 elif no=='4':
159 save()
160 elif no=='5':
161 print('谢谢使用,系统已退出')
162 break

Python实现简单用户注册信息管理系统的更多相关文章

  1. python 简单的信息管理系统

    #!/usr/bin/python #coding=utf-8 import io import os import time FileRead = io.open('callingcard','r' ...

  2. Java之从头开始编写简单课程信息管理系统

    编写简单的课程管理系统对于新手并不友好,想要出色的完成并不容易以下是我的一些经验和方法 详情可参考以下链接: https://www.cnblogs.com/dream0-0/p/10090828.h ...

  3. python写一个学生信息管理系统

    #coding:utf-8 2 info = []#全局变量 3 def info_print(): 4 print("请选择功能:") 5 print("1:添加学员& ...

  4. Java Swing设计简单商品信息管理系统(java swing+mysql+eclipse)

    一.概述 为了管理好商店库存信息,提升店铺管理工作效率,结合实际工作需要,设计和开发本系统,主要用于商店商品信息维护出入库等.包含商品库存信息查看.商品信息修改,新增商品信息,删除信息等功能. 二.功 ...

  5. 【python免费代码】设计一个简单的学生信息管理系统

    文章目录 前言 一.理解 二.部分截图展示 三.代码 四.总结 前言 设计一个简单的学生信息管理系统,实现以下功能(bug) : 录入学生信息,信息以文件方式存储 以学生学号或者学生姓名为条件查询该学 ...

  6. python 写简单的职员信息管理系统

    职员信息管理系统要求依次从键盘录入每位员工的信息,包括姓名.员工id.身份证号要求:1.身份证号十八位,要求除了第18位可以为x,其余都只能为数字2.id须由5位数字组成3.否则提示用户重新输入不符合 ...

  7. Python 员工信息管理系统

    学Python将近一个月了,第一次写了两百多行代码,一个很简单的脚本. 员工信息管理系统: 需求: 1.管理员账户能够增加,删除,修改,查询员工信息,并且设置管理员账户. 2.普通账户可以查看所有员工 ...

  8. Python极其简单的分布式异步作业管理系统RQ入门

    Python极其简单的分布式异步作业管理系统RQ入门 原创 2017-08-19 lixing 生信人 Python极其简单的分布式异步作业管理系统RQ入门 1. 什么是Job? Job直译过来就是工 ...

  9. Python基础案例练习:制作学生信息管理系统

    一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...

随机推荐

  1. Dubbo是什么?核心总结

    Dubbo --是SOA架构的具体的实现框架! 2.1 Dubbo简介 Apache Dubbo是一款高性能的Java RPC框架.官网地址:[http://dubbo.apache.org] dub ...

  2. Kendo UI Grid 使用总结

    Kendo UI Grid控件的功能强大,这里将常用的一些功能总结一下. Kendo UI Grid 固定列 在使用Gird控件显示数据时,如果数据列过多,会出现横向滚动条,很多情况下,我们希望某些列 ...

  3. 常用的公共 DNS 服务器 IP 地址

    转载自:小哈龙 2019-04-12 09:34:42 公共 DNS 服务器 IP 地址 名称 DNS 服务器 IP 地址 阿里 AliDNS 223.5.5.5 223.6.6.6 CNNIC SD ...

  4. LGP4287题解

    小清新 manacher 题.题意清楚. 首先看到回文,自然而然地就去想 manacher 了.先想想,manacher 到底在干嘛? manacher 做的其实是一个暴力,枚举每一个位置最远能够伸到 ...

  5. VuePress 博客优化之开启 Algolia 全文搜索

    前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 由于 V ...

  6. bzoj5315/luoguP4517 [JSOI2018]防御网络(仙人掌,dp)

    bzoj5315/luoguP4517 防御网络(仙人掌,dp) bzoj Luogu 题目描述略(太长了) 题解时间 本题和斯坦纳树无关. 题面保证了是一个仙人掌...? 但这个环之间甚至交点都没有 ...

  7. manjaro下使用scrcpy安卓设备投屏

    scrcpy 安卓版本要大于等于 5.0 安装scrcpy及安卓工具包 yay -S scrcpy-git android-tools 打开手机 开发者模式->USB调试,将手机通过数据线连接电 ...

  8. HyBird App(混合应用)核心原理JSBridge

    目录 app分类 HyBird App(混合应用) JSBridge介绍 优势及应用场景 JsBridge的核心 1.Web端调用Native端代码 1.1 拦截URL Schema 1.2 注入ap ...

  9. 对原型链的理解?prototype上都有哪些属性?

    在js里,继承机制是原型继承.继承的起点是 对象的原型(Object prototype). 一切皆为对象,只要是对象,就会有 proto 属性,该属性存储了指向其构造的指针. Object prot ...

  10. 什么是Netflix Feign?它的优点是什么?

    Feign是受到Retrofit,JAXRS-2.0和WebSocket启发的java客户端联编程序.Feign的第一个目标是将约束分母的复杂性统一到http apis,而不考虑其稳定性.在emplo ...