小项目: low版本的 员工信息程序:
### 附加两个文件1 user_info 和worker_info flag = False
2 def logon(): #登录函数
3 global flag
4 usr = input('Username:').strip()
5 pwd = input('Password:').strip()
6 with open('user_info',encoding= 'utf-8') as f:
7 for line in f.readlines():
8 if usr+'\t'+pwd == line.strip():
9 print('登录成功')
10 flag = True
11 return
12 else:
13 print('输入错误')
14
15
16 def id_find(): # 支持输入ID 准确查找
17 find_id = input('请输入您要查找的员工信息的ID: ')
18 print('ID, Name, Age, Phone, Job:')
19 with open('worker_info','r+',encoding='utf-8') as f:
20 f.seek(0)
21 lines = f.readlines()
22 print(lines[int(find_id)-1])
23
24
25 def age_find():# 支持输入两个age 来找范围里面的 信息
26 find_age_1 = input('请输入您要查找的大于某某年龄段的数字:')
27 find_age_2 = input('请输入您要查找的小于某某年龄段的数字:')
28 print('ID, Name, Age, Phone, Job:')
29 with open('worker_info','r+',encoding='utf-8') as f:
30 f.seek(0)
31 for line in f.readlines():
32 lis = line.strip().split(',')
33 if int(lis[2]) > int(find_age_1) and int(lis[2]) < int(find_age_2):
34 print(line)
35
36
37 def kwargs_find():# 支持关键字模糊查找
38 find_kwargs = input('请输入您的关键字:')
39 print('ID, Name, Age, Phone, Job:')
40 with open('worker_info','r+',encoding='utf-8') as f:
41 for line in f.readlines():
42 if find_kwargs in line:
43 print(line)
44
45
46 def warpper(fu):# 认证
47 def inner():
48 if flag == False:
49 print('请先登录')
50 logon()
51 ret = fu()
52 return ret
53 return inner
54
55
56 @warpper
57 def find_worker(): # 查找函数
58 print('1, ID查找 \n2, 年龄段查找 \n3, 关键字模糊查找 \n4, 查看全部信息')
59 find_id = input('请输入您选择的查找方法:').strip()
60 if find_id == '1':
61 id_find()
62 elif find_id == '2':
63 age_find()
64 elif find_id == '3':
65 kwargs_find()
66 elif find_id == '4':
67 print('下面是所有员工信息:')
68 print('ID, Name, Age, Phone, Job:')
69 with open('worker_info','r+',encoding='utf-8') as f:
70 for i in f.readlines():
71 print(i)
72
73
74 @warpper
75 def append_info():# 添加新员工信息
76 name = input('请输入新员工的名字:').strip()
77 age = input('请输入新员工的年龄:').strip()
78 phone = input('请输入新员工的电话:').strip()
79 job = input('请输入新员工的工作:').strip()
80 with open('worker_info', 'a+', encoding='utf-8') as f:
81 f.seek(0)
82 li_lines = f.readlines()
83 f.seek(0,2)
84 f.write(str(len(li_lines)+1)+',%s,%s,%s,%s\n' %(name,age,phone,job))
85
86
87 @warpper
88 def pop_info():#删除指定ID的员工信息
89 pop_id = input('请输入您要删除的员工的ID: ')
90 print('删除成功')
91 with open('worker_info','r+',encoding='utf-8') as f:
92 f.seek(0)
93 lines = f.readlines()
94 lines[int(pop_id)-1] ='该员工已经被删除\n'
95 f.seek(0)
96 for i in lines:
97 f.write(i)
98 return
99
100
101 @warpper
102 def change_info():
103 change_id = input('请输入您要修改的员工信息的ID: ')
104 name = input('请输入新员工的名字:')
105 age = input('请输入新员工的年龄:')
106 phone = input('请输入新员工的电话:')
107 job = input('请输入新员工的工作:')
108 print('修改成功')
109 with open('worker_info','r+',encoding='utf-8') as f:
110 f.seek(0)
111 lines = f.readlines()
112 lines[int(change_id)-1] = '%s,%s,%s,%s,%s\n' %(change_id, name, age, phone, job)
113 f.seek(0)
114 for i in lines:
115 f.write(i)
116 return
117
118
119 def choise():
120 while 1:
121 print('员工信息操作:')
122 print('1, 登录\n2, 查找员工信息\n3, 添加新员工信息\n4, 删除员工信息\n5, 修改员工信息\n6, 退出程序')
123 choose = input('请输入您要操作的功能:').strip()
124 if choose == '1':
125 logon()
126 elif choose == '2':
127 find_worker()
128 elif choose == '3':
129 append_info()
130 elif choose == '4':
131 pop_info()
132 elif choose == '5':
133 change_info()
134 elif choose == '6':
135 return
136 choise()
小项目: low版本的 员工信息程序:的更多相关文章
- VS下如何建立一个新的MFC程序 网络编程 课设 基于C++ MFC 连接数据库 小应用 小项目浅析展示
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8191036.html 这里不知道会不会有人是真的新手 新新手 不知道怎么 如何建立一个MFC ...
- Python程序练习4--模拟员工信息数据库操作
1.功能简介 此程序模拟员工信息数据库操作,按照语法输入指令即能实现员工信息的增.删.改.查功能. 2.实现方法 架构: 本程序采用python语言编写,关键在于指令的解析和执行:其中指令解析主要 ...
- python作业员工信息表程序(第四周)
作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...
- qt项目:员工信息管理系统
开发一个员工信息管理系统 一.项目具体要求: 1.用qt开发界面,数据库用QSqlite 数据库文件名:demostudent.db 2.通过界面能够查看到数据库中员工信息表中内容,包括员工姓名.年龄 ...
- python练习程序_员工信息表_基本实例
python实现增删改查操作员工信息文件,可进行模糊查询: http://edu.51cto.com/lesson/id-13276.html http://edu.51cto.com/lesson/ ...
- 小项目特供 贪吃蛇游戏(基于C语言)
C语言写贪吃蛇本来是打算去年暑假写的,结果因为ACM集训给耽搁了,因此借寒假的两天功夫写了这个贪吃蛇小项目,顺带把C语言重温了一次. 是发表博客的前一天开始写的,一共写了三个版本,第一天写了第一版,第 ...
- 【PHP小项目使用MVC架构】
小项目名称是雇员管理系统. mvc是一种项目的开发模式,中文名称为模式视图控制器,是强制程序员将数据的输入.处理.输出分开的一种开发模式. 在这个小项目中,控制器使用service作为后缀名. 项目u ...
- 一个asp.net小项目总结
写这篇文章之前先吐槽一下,最近换了一个公司,是给一个国企做外包,有两个月了,感觉这里的气氛有点不爽,还有点怀念以前的公司.具体听我说来,这里有几个团队,.net,java,手机开发,.net只有6个人 ...
- 团队项目-Alpha2版本发布
第五次团队作业 序言 所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign 作业要求 https://w ...
随机推荐
- VS导出方法名和方法备注的方法
VS导出方法名和方法备注的方法 方法一: 只能导出图片格式的UML 类图 1.点击查看类图 2.在空白处点击讲关系导出为图像 方法二: 是把整个类库的方法名都罗列出来 这个方便整理一些 具体方法如下 ...
- OnClientClick知识+一个上传的例子
文件名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp ...
- PostgreSQL Replication之第九章 与pgpool一起工作(4)
9.4 设置复制和负载均衡 要配置pgpool,我们可以简单地使用一个包含一种典型的配置信息的已经存在的样本文件,将它拷贝到我们的配置目录并修改之: $ cp /usr/local/etc/pgpoo ...
- OGG切换步骤
步骤描述 提前准备好切换方案:以及其他相关人员的配合 切换至容灾数据库: (1)停止前端业务,确认目标端数据已经追平 (2)数据校验,确认数据一致 (3)停止生产库OGG进程(停止后可以直接删除) ( ...
- vue打包后js和css、图片不显示,引用的字体找不到问题
vue打包后js和css.图片不显示,引用的字体找不到问题:图片一般都是背景图片. 一.vue打包出现js和css不显示问题: 1.不使用mode:'history' 2.使用mode:'histor ...
- Rendering and compositing out of process iframes
For Developers > Design Documents > Out-of-Process iframes (OOPIFs) > Rendering and ...
- 洛谷 P2542 [AHOI2005]航线规划 树链剖分_线段树_时光倒流_离线
Code: #include <map> #include <cstdio> #include <algorithm> #include <cstring&g ...
- NodeJS学习笔记 (20)错误处理-error
文章地址 https://github.com/chyingp/nodejs-learning-guide
- JavaScript进阶之原型链
对象 function f1(){ }; typeof f1 //"function"函数对象 var o1 = new f1(); typeof o1 //"objec ...
- Android设计模式(十二)--抽象工厂模式
问题: 抽象工厂模式,是一个,狠恶心的模式,那么这个模式在Android有没实用到过呢? 1.定义: 抽象工厂模式:为创建一组相关或者是相互依赖的对象提供一个接口,而不须要指定他们的详细类. 2.使用 ...