小项目: 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 ...
随机推荐
- 基于Struts2+MySQL的多表出差明细表单
下载地址:http://download.csdn.net/detail/qq_33599520/9790629 项目结构: UserAction package com.mstf.action; i ...
- 实体转XML XML转实体
// <summary> /// 实体类序列化成xml /// </summary> /// <param name="enitities">实 ...
- 联想 M415 I3-6100 CPU安装系统方法
问题: 直接用PE GHOST系统后,USB无法使用,导致鼠标.U盘也无法使用 即 无法安装驱动.软件等 方法: 1.按网上方式,安装集成USB3.0的PE系统 2. 直接用PS2鼠标安装
- github下载速度慢解决方法
1.获取 global.ssl.fastly地址 访问 http://github.global.ssl.fastly.net.ipaddress.com/#ipinfo 获取cdn域名以及ip地址 ...
- JavaScript笔记(1)
JS前导: ECMA欧洲计算机制造者协会 ECMA-262 (ES5规范) ECMA-404(Json规范) wsc定义HTML.CSS.DOM规范 计算机程序分为: cpu密集(用于计算) I/O密 ...
- [USACO14FEB]路障Roadblock
题目:洛谷P2176. 题目大意:有n个点m条无向边,一个人要从1走到n,他会走最短路.现在可以让一条边的长度翻倍,求翻倍后这个人要多走多少距离. 解题思路:首先可以知道,翻倍肯定是在最短路上的某条边 ...
- MyEclipse连接不上genymotion的解决方式
奇怪的是我的MyEclipse有时候连接得上genymotion,有时候又连接不上.之前连接不上的时候,就直接用真机调试,因此出现这个问题非常久了一直都没有去找解决方式.今天认真的反省了自己,再也不能 ...
- .NET进阶——ORM基础认识
ORM对象关系映射,对象即实体,关系即关系数据库表.ORM即实现从实体对象关系数据库数据的映射. 本质上就是将数据从一种形式转换到还有一种形式.它详细又有哪些表现呢.咱们一步步学习,一步步分析. OR ...
- ASE加、解密
AES已经变成目前对称加密中最流行算法之一:AES可以使用128.192.和256位密钥,并且用128位分组加密和解密数据. /** * 加密 * * @param content 需要加密的内容 * ...
- Gym - 100203G Good elements 水+模拟
题意:good element的定义是a[i]在1~i-1中任取三个数(可以重复)的和能等于a[i] 思路:vis[x]标记一下任两个数的和,处理a[i]时枚举1~i-1判断vis[a[i] - a[ ...