#include
#include
#include
typedef
struct
LNode
//////////定义数据结构体
{
int
num
char
name[20]
struct
LNode*
next
}*Link
///////////定义一个指针类型
typedef
struct
{
Link
head,tail
int
len
}LinkList
LinkList
*gList
void
MenuInfo()
void
InputData(LinkList
*mList)
void
OutputData(LinkList
*mList)
void
InsertData(LinkList
*mList,int
n)
Link
SearchNode(LinkList
*mList,int
n)
void
DeleteData(LinkList
*mList,int
n)
void
main()
{
int
_choice
int
_quit=0
int
n=0
gList=(LinkList
*)malloc(sizeof(LinkList))
gList->head=gList->tail=NULL
do
{
MenuInfo()
scanf("%d",&_choice)
switch(_choice)
friend={ '小明':['001', '广州'],'小红':['002','深圳'],'小王':['003','北京']}model=input("model:")
if model=='1':
print("好友添加:",end='')
new_friend=input("newfriend:name,number,address")
friend_n=list(new_friend.split(','))
friend[friend_n[0]] =friend_n[1:3] # 添加
# friend4=dict.fromkeys([friend_n[0]],friend_n[1:3])
print("friend: ", friend)
elif model=='2':
print("好友删除:",end='')
new_friend = input("name")
# del friend[ new_friend] # 删除键是'Name'的条目
try:
friend.pop(new_friend)
print("friend: ", friend)
except:
print("查无此人")
elif model=='3':
print("好友修改:", end='')
new_friend = input("name")
friend[new_friend]=list(input("number,address").split(','))
print("friend: ", friend)
else:
print("好友查询:", end='')
new_friend = input("name")
try:
print(new_friend,':', friend[new_friend])
except:
print("查无此人")
以上程序包含了整个流程,有删赠改查功能,还有利用异常处理的处理过程。
要求提的不是很明确,按照最简单的功能来做了。
只记录姓名和电话号码,没有做号码检验。也没有做保存功能。
import syslast_id = 0
class Person:
def __init__(self, name, phone):
self.name = name
self.phone = phone
global last_id
last_id += 1
self.id = last_id
def match(self, filter):
return filter in self.name or filter in self.phone
class AddressBook:
def __init__(self):
self.people = []
def new_person(self, name, phone=''):
self.people.append(Person(name, phone))
def find_person(self, id):
for person in self.people:
if str(id) == str(person.id):
return person
return None
def modify_person(self, id, name, phone):
person = self.find_person(id)
if person:
person.name = name
person.phone = phone
else:
print "person:", id, " not found"
def delete_person(self, id):
person = self.find_person(id)
if person:
self.people.remove(person)
def search(self, filter):
return [person for person in self.people if person.match(filter)]
class Menu:
def __init__(self):
self.address_book = AddressBook()
self.choices = {
"1": self.show_people,
"2": self.add_person,
"3": self.remove_person,
"4": self.modify_person,
"5": self.search_person,
"6": self.quit
}
def display_menu(self):
print("""
Address Book Menu
1. Show all People
2. Add Person
3. Remove Person
4. Modify Person
5. Search Person
6. Quit
""")
def run(self):
while True:
self.display_menu()
choice = raw_input("Enter an option: ")
action = self.choices.get(choice)
if action:
action()
else:
print("{0} is not a valid choice".format(choice))
def show_people(self, people=None):
if not people:
people = self.address_book.people
for person in people:
print("{0}: {1} {2}".format(person.id, person.name, person.phone))
def search_person(self):
filter = raw_input("search for: ")
people = self.address_book.search(filter)
self.show_people(people)
def add_person(self):
name = raw_input("Enter a name: ")
phone = raw_input("Enter his/her phone number: ")
self.address_book.new_person(name, phone)
print("{0} has been added.".format(name))
def remove_person(self):
id = raw_input("Enter his/her id: ")
if id:
self.address_book.delete_person(id)
def modify_person(self):
id = raw_input("Enter a person id: ")
name = raw_input("Enter his/her name: ")
phone = raw_input("Enter his/her phone: ")
self.address_book.modify_person(id, name, phone)
def quit(self):
print("Thank you for using your address book today.")
sys.exit(0)
Menu().run()