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()
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值