实现用户通信录程序:通信录最关键的信息:姓名 性别 和电话等信息,通信录信息保存在一个文件中,请实现通讯录信息的添加 删除 修改 排序和统计等功能。
时间: 2024-05-01 22:19:08 浏览: 146
好的,我可以为您提供一个简单的Python程序来实现这个通讯录功能。首先,我们需要一个保存通讯录信息的文件,可以使用CSV格式的文件来实现。以下是实现程序的步骤:
1. 创建一个CSV文件来存储通讯录信息。文件的第一行应该是标题行,包含姓名、性别和电话等信息。
2. 实现将新联系人添加到通讯录的功能。当用户选择添加新联系人时,程序会要求输入姓名、性别和电话等信息,并将这些信息写入CSV文件中。
3. 实现删除现有联系人的功能。当用户选择删除联系人时,程序会要求输入要删除的联系人的姓名或电话号码。程序会搜索CSV文件,找到匹配的联系人并将其删除。
4. 实现修改现有联系人的信息。当用户选择修改联系人信息时,程序会要求输入要修改的联系人的姓名或电话号码,然后显示该联系人的当前信息。用户可以选择修改其中的任何字段,并将更新后的信息写入CSV文件中。
5. 实现对通讯录信息进行排序的功能。当用户选择排序通讯录信息时,程序将按照姓名或电话号码的字母顺序对通讯录信息进行排序,并将排序后的结果显示出来。
6. 实现对通讯录信息进行统计的功能。当用户选择统计通讯录信息时,程序将计算通讯录中男性和女性的数量,并将结果显示出来。
下面是一个简单的Python程序,实现了上述功能:
```python
import csv
def add_contact():
with open('contacts.csv', 'a', newline='') as csvfile:
writer = csv.writer(csvfile)
name = input("请输入姓名:")
gender = input("请输入性别:")
phone = input("请输入电话号码:")
writer.writerow([name, gender, phone])
print("联系人已添加成功!")
def remove_contact():
name_or_phone = input("请输入要删除的联系人的姓名或电话号码:")
with open('contacts.csv', 'r', newline='') as csvfile:
reader = csv.reader(csvfile)
rows = list(reader)
found = False
with open('contacts.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
for row in rows:
if name_or_phone in row:
found = True
else:
writer.writerow(row)
if found:
print("联系人已删除成功!")
else:
print("没有找到匹配的联系人。")
def modify_contact():
name_or_phone = input("请输入要修改的联系人的姓名或电话号码:")
with open('contacts.csv', 'r', newline='') as csvfile:
reader = csv.reader(csvfile)
rows = list(reader)
found = False
with open('contacts.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
for row in rows:
if name_or_phone in row:
found = True
print("当前联系人信息:", row)
field = input("请选择要修改的字段(姓名、性别、电话):")
if field == "姓名":
name = input("请输入新的姓名:")
row[0] = name
elif field == "性别":
gender = input("请输入新的性别:")
row[1] = gender
elif field == "电话":
phone = input("请输入新的电话号码:")
row[2] = phone
writer.writerow(row)
if found:
print("联系人已修改成功!")
else:
print("没有找到匹配的联系人。")
def sort_contacts():
field = input("请选择排序字段(姓名、电话):")
with open('contacts.csv', 'r', newline='') as csvfile:
reader = csv.reader(csvfile)
rows = list(reader)
rows.sort(key=lambda x: x[0] if field == "姓名" else x[2])
print("排序结果:")
for row in rows:
print(row)
def count_contacts():
with open('contacts.csv', 'r', newline='') as csvfile:
reader = csv.reader(csvfile)
male_count = 0
female_count = 0
for row in reader:
gender = row[1]
if gender == "男":
male_count += 1
elif gender == "女":
female_count += 1
print("通讯录中共有%d位男性,%d位女性。" % (male_count, female_count))
while True:
print("请选择操作(1-添加联系人 2-删除联系人 3-修改联系人信息 4-排序通讯录信息 5-统计通讯录信息):")
choice = input()
if choice == "1":
add_contact()
elif choice == "2":
remove_contact()
elif choice == "3":
modify_contact()
elif choice == "4":
sort_contacts()
elif choice == "5":
count_contacts()
else:
break
```
这个程序可以实现基本的通讯录功能,您可以根据需要对其进行扩展和修改。
阅读全文