小项目: 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 ...
随机推荐
- HBase框架基础(四)
* HBase框架基础(四) 上一节我们介绍了如何使用HBase搞一些MapReduce小程序,其主要作用呢是可以做一些数据清洗和分析或者导入数据的工作,这一节我们来介绍如何使用HBase与其他框架进 ...
- UVa 1600 Patrol Robot【BFS】
题意:给出一个n*m的矩阵,1代表墙,0代表空地,不能连续k次穿过墙,求从起点到达终点的最短路的长度 给vis数组再加一维状态,表示当前还剩下的能够穿越的墙的次数,每次碰到墙,当前的k减去1,碰到0, ...
- WLAN RTT (IEEE 802.11mc)
WLAN RTT (IEEE 802.11mc) Android 9 中的 WLAN 往返时间 (RTT) 功能允许设备测量与其他支持设备的距离:无论它们是接入点 (AP) 还是 WLAN 感知对等设 ...
- mysql 导出到 mongodb 与快速插入测试数据
快速插入数据: 因为 MongoDB 的底层引擎是 JS 引擎,所以完全可以使用一些 Js 的语法. for(var i=0;i<10000;i++){ db.ceshi.insert ...
- twig 模板引擎使渲染视图更加优雅
在使用 laravel 的时候接触过 blade 模板引擎.在学习的时候,接触到了另外一个强大的模板引擎:twig 官网:https://twig.sensiolabs.org/ 中文手册:http: ...
- opencv——均值/中值滤波器去噪
实验内容及实验原理: 1.用均值滤波器(即邻域平均法)去除图像中的噪声: 2.用中值滤波器去除图像中的噪声 3.比较两种方法的处理结果 实验步骤: 用原始图像lena.bmp或cameraman.bm ...
- 洛谷——P1019 单词接龙(NOIP2000 T3)
https://www.luogu.org/problem/show?pid=1019#sub 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母, ...
- 浅谈Python Web的五大框架
说到Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界.各种micro-framework.framework不可胜数. 尽管还有一大脚本语言PHP也有 ...
- Jeff Dean专访,有不少干货
<专访Jeff Dean:我们要推动机器学习再上一层楼> 文件链接如下: Link https://arxiv.org/ 有意思的是,里面提到的 arXiv网站,一个能够用来证明论文上传时 ...
- leetcode -day23 Construct Binary Tree from Inorder and Postorder Traversal & Construct Binary Tree f
1. Construct Binary Tree from Inorder and Postorder Traversal Given inorder and postorder travers ...