Python编写首先定义一个包含5个元素结构体数组,结构体成员包括姓名和电话号码,然后编写保存信息函数,输入5个朋友的通讯信息,姓名和电话号码之间加空格,利用fputs函数依次保存到文件中,保存时每位朋友的电话号码后面加上换行符。为了控制读取位置,再编写读取信息函数,逐一读取字符,如果不是空格,读取姓名信息;如果是空格,说明下一个字符是电话号码,如果是电话号码,读取电话号码,分别将字符依次存储到姓名或者电话号码数组中。最后编写显示信息函数和主函数,主函数中分别调用保存信息函数、读取信息函数和显示信息函数。 具体算法如下。 ① 定义包含5个元素的结构体数组。 ② 编写保存信息函数,利用fputs函数实现将数据保存到文件中。 ③ 编写读取信息函数,利用fgetc函数逐一读取文件中的字符,通过判断字符类型分别将读取的信息保存到姓名或者电话号码数组中。 ④ 编写显示信息函数,打印结构体数组中的所有数据。 ⑤ 编写主函数,分别调用保存信息函数、读取信息函数和显示信息函数。
时间: 2024-03-08 10:50:58 浏览: 63
下面是Python实现保存、读取和显示通讯信息的示例代码:
```python
import os
# 定义结构体
class Contact:
def __init__(self, name, phone):
self.name = name
self.phone = phone
# 保存信息函数
def save_info(contacts):
with open("contacts.txt", "w") as f:
for c in contacts:
line = c.name + " " + c.phone + "\n"
f.write(line)
# 读取信息函数
def load_info():
contacts = []
with open("contacts.txt", "r") as f:
name = ""
phone = ""
while True:
c = f.read(1)
if not c:
break
if c == " ":
phone = ""
while True:
c = f.read(1)
if c == "\n":
break
phone += c
contacts.append(Contact(name, phone))
name = ""
else:
name += c
return contacts
# 显示信息函数
def show_info(contacts):
for c in contacts:
print("姓名:", c.name, "\t电话:", c.phone)
# 主函数
def main():
# 定义5个联系人信息
contacts = [Contact("", "") for i in range(5)]
for i in range(5):
name = input("请输入第%d个联系人姓名:" % (i+1))
phone = input("请输入第%d个联系人电话:" % (i+1))
contacts[i].name = name
contacts[i].phone = phone
# 保存信息到文件
save_info(contacts)
# 从文件中读取信息
contacts = load_info()
# 显示所有联系人信息
show_info(contacts)
if __name__ == "__main__":
main()
```
以上代码中,我们定义了一个Contact类来表示每个联系人的姓名和电话号码,并定义了保存、读取和显示信息的函数。在主函数中,我们首先定义5个联系人信息,然后将其保存到文件中,再从文件中读取信息,并最终显示所有联系人的信息。
阅读全文