文件名:staff_table.txt

文件内容:

1,Alex Li,22,13651054608,market,2013-04-01

2,Jack Wang,28,13451024608,HR,2015-01-07

3,Rain Wang,21,13451054608,market,2017-04-01

4,Mack Qiao,44,15653354208,Sales,2016-02-01

5,Rachel Chen,23,13351024606,market,2013-03-16

6,Eric Liu,19,18531054602,Marketing,2012-12-01

7,Chao Zhang,21,13235324334,Administration,2011-08-08

8,Kevin Chen,22,13151054603,Sales,2013-04-01

9,Shit Wen,20,13351024602,market,2017-07-03

10,Shanshan Du,26,13698424612,Operation,2017-07-02

要求:

1. 可进行模糊查询,语法至少支持下面3种查询语法:

find name,age from staff_table where age > 22

find * from staff_table where dept = "IT"

find * from staff_table where enroll_date like "2013"

2. 可创建新员工纪录,以phone做唯一键(即不允许表里有手机号重复的情况),staff_id需自增

语法: add staff_table Alex Li,25,134435344,IT,2015-10-29

3. 可删除指定员工信息纪录,输入员工id,即可删除

语法: del from staff where  id=3

4. 可修改员工信息,语法如下:

UPDATE staff_table SET dept="Market" WHERE  dept = "IT" 把所有dept=IT的纪录的dept改成Market

UPDATE staff_table SET age=25 WHERE  name = "Alex Li"  把name=Alex Li的纪录的年龄改成25

5. 以上每条语名执行完毕后,要显示这条语句影响了多少条纪录。 比如查询语句 就显示 查询出了多少条、修改语句就显示修改了top_list = ['查询','修改'] #第一级菜单

#提取号码函数: 用于唯一键判断

definfo_category():globalstaff_phone

staff_phone=[]

f= open('staff_table.txt', 'r', encoding='utf-8')for line inf:

id, name, age, phone, dept, enroll_date= line.split(',')

staff_phone.append(phone)#打印列表清单函数

defprint_list(list):globalchoiceprint('请输入查询编号'.center(50, '-'))for k, i inenumerate(list):print('%s. %s' %(k, i))

choice= int(input('查询编号:').strip())#查询函数:

definfo_search():

count= 0 #用于查询计数

search_list = ['Age', 'Dept', 'Enroll Date']

print_list(search_list) # 调用打印列表函数

find= input('输入查询信息:').strip()

f= open('staff_table改.txt', 'r', encoding='utf-8')for line inf:

id, name, age, phone, dept, enroll_date= line.split(',')#查询年龄

if choice ==0:if int(age) >int(find):

count+= 1

print(name, age)#查询dept

elif choice == 1:if dept ==find:

count+= 1

print(line)#查询入职日期

elif choice == 2:ifenroll_date.startswith(find):

count+= 1

print(line)returncount#修改(增、删、update)信息函数:

definfo_modify():importos

modify_list= ['添加','删除','更新']

print_list(modify_list) # 调用打印函数#创建一个新文件,用于修改文件内容

f1_name = 'staff_table.txt'f2_name= 'staff_table.txt.new' #(自己写出错的地方: 忘了先创建两个文件名)

f1 = open(f1_name,'r',encoding='utf-8')

f2= open(f2_name,'w',encoding='utf-8') #(新创建的文件需要时‘w'(写)的模式)

#添加

definfo_add():

id_no= 1info_category()for line inf1:

f2.write(line)#用于保证:即使什么都没添加,原有的文件也不会被新文件覆盖为空

id_no += 1 #用于员工ID自动加1

phone = input('输入手机号:').strip()if phone not instaff_phone:

name= input('Name:')

age= int(input('Age:'))

dept= input('Dept:')

enroll_date= input('Enroll Date:')

f2.write('\n%s,%s,%s,%s,%s,%s' %(id_no, name, age, phone, dept, enroll_date))else:print('号码已存在')#删除

definfo_del(del_info):for line inf1:

line = line.split(',') # 此时line变成一了个列表

if line[0] == del_info:

pass       else:

line = ','.join(line) #再把line变成一个字符串

f2.write(line)#更新

definfo_update():

count= 0 #用于更新条数计数

update_list = ['dept', 'age']

print_list(update_list) # 调用打印列表函数#更新Dept函数

if choice ==0:

old_content= input('需要更新的部门:')

new_content= input('新部门名称:')for line inf1:if old_content inline:

count+=1line= line.replace(old_content, new_content) #( 要把替换的内容再赋值给line)

f2.write(line)print('更新条数:',count)#根据名字更新年龄函数

elif choice == 1:

name_symbol= input('修改年龄的人名:').strip()

new_age= input('输入新年龄:').strip()for line inf1:if name_symbol inline:

count+= 1line= line.split(',') # 此时line是一个列表

line[2]=new_age #把列表line中索引值为2的元素改为new_ageline= ','.join(line) # 此时line又变成了字符串

f2.write(line)print('更新条数:',count)if choice ==0:

info_add()elif choice == 1:

del_info= input('删除信息id:')

info_del(del_info)elif choice == 2:

info_update()else:for line inf1:

f2.write(line)#用于保证:即使什么都没修改,原有的文件也不会被新文件覆盖为空

f1.close()

f2.close()#(os.replace之前,应该先把两个文件close掉)

os.replace(f2_name, f1_name)

print_list(top_list) # 调用打印列表函数if choice ==0:print('查询匹配条数:',info_search())else:

info_modify()

简单的php员工信息表格代码,员工信息表程序(自写,待优化)相关推荐

  1. c语言编程员工管理的代码,员工信息管理完整(含附源代码).doc

    西安郵電學院 高级语言课程设计报告 题 目: 员 工 信 息 管 理 系 统 系部名称 : 电信系 专业名称 : 电子科学与技术 班 级 : 科技0701 班内序号 : 33 学生姓名 : 贾 春 阳 ...

  2. java程序员用代码表达喜欢你,程序员写三行情诗表达爱意 你造么?

    核心提示:"写给自己":String me="hello,world!";While(life--){me="???";}Me=" ...

  3. 无代码时代下,程序员不够用了!

    从左到右:韦青.刘卓(主持人).蒋涛 扫描上方二维码直达精彩回顾 整理 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 在国外,无代码平台发展得如火如荼,但在国内,无代码平台尚不够普及应用. ...

  4. 计算机信息的编码教案,信息的编码教案信息的编码教案.doc

    信息的编码教案信息的编码教案 1.2信息的编码 授课人:蒋潮侃 一.教学内容分析和设计 本节主要介绍信息编码中的二进制代码.和不同进制之间的转换,学起来比较枯燥,知识与概念偏深,可操作内容偏少.为了提 ...

  5. 使用“快速信息分发“功能将Excel表格中的信息点对点推送给员工(转)

    前言 在工作中经常会遇到需要将一些信息手动点对点分发给员工的情况.例如,部门管理员每月从绩效考核系统中将员工的绩效考核情况导出后,通过企业微信或电子邮件点对点发给部门的每位员工.为了满足这类需求,在E ...

  6. 【java毕业设计】基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计与实现(毕业论文+程序源码)——企业员工信息管理系统

    基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计 ...

  7. [SQL实战]之获取所有部门中当前员工薪水最高的相关信息

    题目描述 获取所有部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary CREATE TABLE dept_emp ( emp_no int(11) NOT N ...

  8. 使用面向对象思想,输出员工信息并计算员工的工资。定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;再定义一个员工(Employee)类,该类的属性有员工编号

    运行结果如下: 题目: 使用面向对象思想,输出员工信息并计算员工的工资. 实现过程为:a.定义一个部门(Department)类,该类有部门编号(Id).部门名称(Name)属性:b.再定义一个员工( ...

  9. C#windows人事信息管理系统,员工评价系统

    中文摘要 为了提高人事信息的管理效率,本课题使用C#语言和SQL Server数据库系统开发了一个WinForm类型的人事管理系统对人事信息进行高效管理,以提升管理质量.本系统包含管理员登录注册.管理 ...

最新文章

  1. 人脸对齐--One Millisecond Face Alignment with an Ensemble of Regression Trees
  2. vivado----fpga硬件调试 (四)----mark_debug
  3. java接口测试工具_接口测试基础了解篇
  4. 小物件之radio单选列表
  5. Python之网络编程(基于tcp实现远程执行命令)
  6. 女生学的计算机专业有前途吗,计算机专业好不好 女生学计算机有前途吗
  7. leetcode 137[转]
  8. html页面画一个矩形,使用HTML5 canvas绘制一个矩形的方法
  9. 计算机视觉相关专业的JCR一区期刊
  10. 【实践】如何用python绘制词云图(文本数据可视化)?
  11. 微信公众号如何添加附件链接
  12. unicloud云开发---uniapp云开发(二)---云存储基础
  13. Fxfactory插件:复古电影调色插件Sheffield Softworks Vintage
  14. Unity笔记-29-ARPG游戏项目-12-完善弓箭
  15. The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path
  16. 开发第一步之SMTP协议发送邮件,获取手机的详细信息
  17. 超好的包体积优化教程,不仅仅是优化
  18. UE4_直播RT输出到OBS教程
  19. AliExpress绑定万事达虚拟信用卡(Mastercard)测试实操教程
  20. Gym 101431B Vera and Banquet (后缀数组)

热门文章

  1. 软件测试用户故事评审实验报告,手把手教你写用户故事验收标准
  2. go语言channel学习与总结(一)channel的一些基本用法
  3. premier视频特效技巧-pre怎么添加特效?
  4. SecureCRT 下载安装与连接
  5. java中this和super是否可以同时使用
  6. 形式化方法 | Symbolic Execution(符号执行)
  7. 监听视频窗口大小变化(resize)实现全屏
  8. 计算机操作基础知识2017,计算机基础知识试题及答案2017
  9. H3CSE路由-IPv6路由协议
  10. 8188gu驱动和su realtek_Realtek全系列官方网卡驱动