python课程设计通讯录txt文件操作

 

题目6:通讯录程序设计(限2人)

设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。(用文件保存)实现功能:

(1)系统以菜单方式工作

(2)信息录入功能

  (3)信息浏览功能

  (4)信息查询功能

  (5)信息修改功能

(6)系统退出功能

  题目出自:山东科技大学 李成江老师

代码实现:https://gitee.com/ljhahu/address_list_design.git

注意:邮箱只允许输入数字/字母@xxx.xx,不允许出现其他符号

import re
def login():
    print('请输入用户名和密码')
    username=input('Username:')
    password=input('Password:')
    if username=='admin' and password=='qaz123':
        print('登录成功!')
        menu()
    else:
        print('登录失败,请重新登录!')
        login()
def menu():
    print('请输入您需要选择的功能:')
    print('1、信息录入')
    print('2、信息浏览')
    print('3、信息查询')
    print('4、信息修改')
    print('5、退出系统')
    x=input('请输入:')
    if x=='5':
        login()
    elif x=='1':
        print('欢迎录入信息')
        luruinfo()
    elif x=='2':
        print('欢迎浏览信息')
        liulanxinxi()
    elif x=='3':
        print('欢迎查询信息')
        exploreinfo()
    elif x=='4':
        print('欢迎修改信息')
        x = input('请输入你要修改的编号:')
        xiugaiinfo(x)
def luruinfo():
    f1=open('C:/Users/Administrator/Desktop/test/tongxunlu.txt','a')//存放通讯录文件
    no=str(input('请输入编号:'))
    name=str(input('请输入姓名:'))
    address=str(input('请输入籍贯:'))
    cell1=str(input('请输入号码1:'))
    cell2=str(input('请输入号码2:'))
    email=str(input('请输入您的电子邮箱:'))
    remarks=str(input('请输入备注:'))
    novalue=re.compile('\d+')
    resultno=novalue.match(no)
    namevalue=re.compile('.+')
    resultname=namevalue.match(name)
    addressvalue=re.compile('.+')
    resultaddress=addressvalue.match(address)
    cell1value=re.compile('^[1]{1}([0-9]){10}')
    resultcell1=cell1value.match(cell1)
    cell2value = re.compile('^[1]{1}([0-9]){10}')
    resultcell2 = cell1value.match(cell2)
    emailvalue=re.compile('^\w+@(\w+\.)+\w+$')
    reslutemail=emailvalue.match(email)
    if reslutemail and resultaddress and resultcell1 and resultcell2 and resultcell2 and resultname and resultno:
        f1.write(no+'      '+name+'        '+address+'     '+cell1+'       '+cell2+'       '+email+'       '+remarks+'\n')
        f1.close()
        p=input('添加成功,继续添加请输入1,结束添加请输入0')
        if p=='1':
            luruinfo()
        elif p=='0':
            menu()
    else:
        print('输入格式有误,请重新输入!')
        luruinfo()
def liulaninfo():
    f2=open('C:/Users/Administrator/Desktop/test/tongxunlu.txt','r')
    li=f2.readlines()
    for line in li:
        print(line,end='')
    f2.close()
    menu()
def liulanxinxi():
    f3 = open('C:/Users/Administrator/Desktop/test/tongxunlu.txt', 'r')
    while True:
        line=f3.readline()
        if line=='':
            break
        print(line,end= '')
    f3.close()
    menu()
def exploreinfo():
    x=input('请输入您要搜索的名字:')
    f4=open('C:/Users/Administrator/Desktop/test/tongxunlu.txt','r')
    li=f4.readlines()
    for line in li:
        t=line.split()
        if t[1]==x:
            print(t)
            m=input('是否进行对其操作?Y/N:')
            if m=='Y':
                n=input('修改请输入1,删除请输入0:')
                if n=='1':
                    xiugaiinfo(t[0])
                if n=='0':
                    deleteinfo(t[0])
            elif m=='N':
                menu()
    f4.close()
def xiugaiinfo(x):
    f5 = open('C:/Users/Administrator/Desktop/test/tongxunlu.txt', 'r+')
    f6 = open('C:/Users/Administrator/Desktop/test/temp.txt', 'w+')
    li = f5.readlines()
    for line in li:
        print(line)
        t = line.split()
        if t[0] == x:
            t[1] = input('请输入姓名:')
            t[2] = input('请输入籍贯:')
            t[3] = input('请输入号码1:')
            t[4] = input('请输入号码2:')
            t[5] = input('请输入您的电子邮箱:')
            t[6] = input('请输入备注:')
            f6.write(  x + '      ' + t[1] + '        ' + t[2] + '        ' + t[3] + '        ' + t[4] + '        ' + t[5] + '        ' + t[6]+'\n')
        else:
            f6.write(line)
    f6.close()
    f5.close()
    chuandi()
    print('修改成功!')
    menu()
def chuandi():
    f7 = open('C:/Users/Administrator/Desktop/test/tongxunlu.txt', 'w')
    f8 = open('C:/Users/Administrator/Desktop/test/temp.txt', 'r')//暂时文件
    li=f8.readlines()
    for line in li:
        f7.write(line)
    f7.close()
    f8.close()
def deleteinfo(x):
    f9 = open('C:/Users/Administrator/Desktop/test/tongxunlu.txt', 'r+')
    f10 = open('C:/Users/Administrator/Desktop/test/temp.txt', 'w+')
    li = f9.readlines()
    for line in li:
        t = line.split()
        if t[0] == x:
            f10.write('')
        else:
            f10.write(line)
    f9.close()
    f10.close()
    chuandi()
    print('删除成功!')
    menu()
login()
  • 10
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
很高兴听到你的问题。作为一个 AI,我没有上课经历,但我可以为你提供一些通讯录管理系统的设计思路。 首先,我们需要确定这个通讯录管理系统的功能和需求。一个基本的通讯录管理系统应该包括以下功能: 1. 添加联系人 2. 删除联系人 3. 修改联系人信息 4. 查询联系人信息 5. 显示所有联系人信息 接下来,我们可以使用 Python 编程语言来实现这些功能。我们可以使用 Python 内置的数据结构如列表、字典等来存储联系人信息。例如,我们可以使用一个字典来存储每个联系人的信息,如下所示: ```python contact = {'name': 'John', 'phone': '1234567890', 'email': '[email protected]'} ``` 然后我们可以将多个联系人信息存储在一个列表中,如下所示: ```python contacts = [ {'name': 'John', 'phone': '1234567890', 'email': '[email protected]'}, {'name': 'Jane', 'phone': '0987654321', 'email': '[email protected]'}, {'name': 'Bob', 'phone': '5555555555', 'email': '[email protected]'} ] ``` 接下来,我们可以实现具体的功能: 1. 添加联系人:可以通过输入联系人信息来添加一个新的联系人,然后将其添加到联系人列表中。 2. 删除联系人:可以通过输入联系人姓名删除一个已有的联系人。 3. 修改联系人信息:可以通过输入联系人姓名来修改其信息,比如电话号码或电子邮件地址。 4. 查询联系人信息:可以通过输入联系人姓名查询其信息,比如电话号码或电子邮件地址。 5. 显示所有联系人信息:可以将所有联系人的信息遍历并输出。 最后,我们可以将这些功能组合起来,以创建一个完整的通讯录管理系统。当然,这只是一个基本的设计思路,你可以根据实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值