题目:
员工信息包括,员工编号(ID),姓名(Name),职务(Title),电话(Phone),试开发一个有人机界面的程序能够完成以下功能:
① 能够添加新员工信息
② 列表打印所有员工信息
③ 输入一个员工编号,输出该员工所有信息
提示:本程序用元组设计界面与员工信息表的表头,每个员工信息用列表存储,利用字典组织数据集合
分析:
首先,我们先定义元祖用来存放菜单:
menu_tuple = ("员工信息系统(Python版)", "\t1:添加员工信息", "\t2:列表打印所有员工信息", "\t3:通过员工编号查询员工信息", "\t0:退出系统")
定义元祖存放表头:
emp_tuple = ("ID", "Name", "Title", "Phone")
定义列表存放员工信息:
emp_list = []
定义一个字典(dictionary):
emp_dict = {}
使用while语句让菜单可以循环输入:
while choice != 0:
for i in menu_tuple:
print i
choice = input("请输入您想使用的功能序号:")
if choice == 1:
print "添加员工信息"
emp_add(emp_list,emp_dict)
elif choice == 2:
print "列表打印所有员工信息"
emp_list_p(emp_list, emp_tuple)
elif choice == 3:
print "通过员工编号查询员工信息"
emp_find(emp_dict, emp_tuple)
elif choice == 0:
print "退出系统" + "\n" + "您已成功退出系统!"
break
最后,在输入的时候别忘了进行异常处理哦!
运行效果如图:
完整代码如下:
Practice.py
# coding: utf-8
from Practice0401_fun import *
choice = -1 # 初始化choice
# 定义元祖用来存放菜单
menu_tuple = ("员工信息系统(Python版)", "\t1:添加员工信息", "\t2:列表打印所有员工信息", "\t3:通过员工编号查询员工信息", "\t0:退出系统")
# 定义元祖用来存放表头
emp_tuple = ("ID", "Name", "Title", "Phone")
# 定义列表用来存放员工信息
emp_list = []
# 定义一个字典(dictionary)
emp_dict = {}
# 使用while语句可以循环输入
while choice != 0:
for i in menu_tuple:
print i
choice = input("请输入您想使用的功能序号:")
if choice == 1:
print "添加员工信息"
emp_add(emp_list,emp_dict)
elif choice == 2:
print "列表打印所有员工信息"
emp_list_p(emp_list, emp_tuple)
elif choice == 3:
print "通过员工编号查询员工信息"
emp_find(emp_dict, emp_tuple)
elif choice == 0:
print "退出系统" + "\n" + "您已成功退出系统!"
break
Practice_fun.py
# coding: utf-8
from prettytable import PrettyTable
def emp_add(emp_list, emp_dict):
id = input("员工编号:")
name = raw_input("姓名:") # raw_input返回的永远是字符串
title = raw_input("职务:")
phone = raw_input("职务电话:")
emp_list.append([`id`, name, title, phone])
for i in emp_list:
emp_dict[i[0]] = i[:]
print "信息录入成功:员工编号: %s ,姓名: %s ,职务: %s ,职务电话: %s " % (`id`, name, title, phone)
return 0
def emp_list_p(emp_list, emp_tuple):
table = PrettyTable() # 使用prettytable显示列表
table.field_names = (emp_tuple[:]) # 使用元祖的内容作为表头
for r in emp_list:
table.add_row(r[:])
print table
def emp_find(emp_dict, emp_tuple):
try: # 此处要进行异常处理
ID = input("请输入员工编号(ID):")
print type(emp_dict.get(`ID`))
table = PrettyTable() # 使用prettytable显示列表
table.field_names = (emp_tuple[:]) # 使用元祖的内容作为表头
table.add_row(emp_dict.get(`ID`))
if emp_dict[`ID`] != "":
print "查询到信息,列表如下:"
print table
else:
print "未查询到信息!"
except IOError, e:
print "对不起,员工编号输入错误!请输入字符类型。"
finally:
print "END."