python通讯录管理程序 有界面_蛋疼写的python 通讯录管理

这是一个使用Python编写的带有图形界面的通讯录管理程序,可以进行增删改查操作。程序通过读取和写入文件来保存数据,但菜单部分存在一些小bug。程序包括地址簿主程序(address_book.py)和辅助模块(tcstory.py),实现了通讯录的基本功能。
摘要由CSDN通过智能技术生成

我以后啊,再也不敢把文本界面的程序模仿成图形界面的了,因为需要处理的东西太多了 ,所以我以后写的程序,尽量把菜单写得简单一点,至于图形界面,就留给别人了

现在这个程序的菜单还是有bug  大家凑合着用吧 ,但是程序对于文件的读取和写入  是没有问题的

以下是两个程序,

名为 address_book.py

1 #!/usr/bin/python3 2 import os,sys 3 os.chdir("./")       #把读取文件的目录设置在当前目录 4 sys.path.append('./') #把读取模块的目录设置为当前目录 5 import tcstory   #导入我的模块 6 NUMBER=-4 7 user_list=[] 8 class People: 9     count=010     def __init__(self,g_name='None',g_telephone='None',g_email='None'):11         self.name=g_name12         self.telephone=g_telephone13         self.email=g_email14         People.count+=115 def menu():16     print("\t\t\t     欢迎来到通讯录")17     print("\t\t\t   n:下一页   b:上一页")18     print('\t\t\tc:修改   s:保存   q:退出')19 def display(choice):20     global NUMBER,user_list21     os.system("clear")22     flag=123     if choice=='n':24         menu()25         NUMBER+=426         for i in range(4):27             try:28                 print('\t\t\t'+str(NUMBER+i)+':'+user_list[NUMBER+i].name,user_list[NUMBER+i].telephone,user_list[NUMBER+i].email)29                 flag=030             except IndexError:31                 if flag:32                     NUMBER-=433                     flag=134                 return35     elif choice=='b':36         menu()

37         if People.count<=4:return38         NUMBER-=439         if NUMBER<0:40             NUMBER=-441             return42         for i in range(4):43             print('\t\t\t'+str(NUMBER+i)+':'+user_list[NUMBER+i].name,user_list[NUMBER+i].telephone,user_list[NUMBER+i].email)44     elif choice=='q':45                 exit()46     elif choice=='c':47         os.system('clear')48         modify()49     elif choice=='s':50         with open('info.txt','w+') as data:51             for each in user_list:52                 data.write(each.name+' ')53                 data.write(each.telephone+' ')54                 data.write(each.email+'\n')   #由于write方法不会自动添加回车键,所以我自己添加55         exit()

56 57     else:58         print("\t\t\t未知的输入")59 def load_info():60     global user_list61     try:62         with open('info.txt','r+') as data:63             for f in data:64                 temp=People()65                 temp.name,temp.telephone,temp.email=f.split(' ')66                 temp.email=temp.email.replace('\n','')  #因为从文件读取的每一行的最后都有一个回车键,所以这里把他去掉:67                 user_list.append(temp)68     except IOError as ioerr:69         print("File error:"+str(ioerr))70         exit()71 def modify():72     os.system('clear')73     global user_list74     print("\t\t\t1.新增   2.修改   3.删除")75     print("\t\t\tq:离开")76     choice=input("\t\t\t请输入您的选择: ")77     if choice=='1':78         tcstory.add(user_list)79     elif choice=='2':80         tcstory.change(user_list)81     elif choice=='3':82         tcstory.delete(user_list)83     else:84         os.system('clear')85 86 def main():87     global user_list88     choice='n'89     load_info()90     while True:91         display(choice)92         choice=input('\n\t\t\t请输入你的选择')93 if __name__=='__main__':main()

以下是需要到的模块  名字为 tcstory.py

1 #!/usr/bin/python3 2 import os,sys 3 os.chdir("./") 4 sys.path.append('./') 5 from address_book import People 6 def add(_list): 7     temp=People() 8     temp.name=input('\t\t\t请输入名字: ') 9     temp.telephone=input('\t\t\t请输入手机号码: ')10     temp.email=input('\t\t\t请输入电子邮件: ')11     _list.append(temp)12 def change(_list):13     name=input('\t\t\t请输入姓名: ')14     for each in _list:15         if name==each.name:16             flag=117         else:flag=018     if flag:19         each.telephone=input('\t\t\t请输入新的手机号码: ')20         each.email=input('\t\t\t请输入新的电子邮箱: ')21         print('\t\t\tDone.')22     else:print('\t\t\t找不到')23 def delete(_list):24     name=input('\t\t\t请输入姓名: ')25     for each in _list:26         if name==each.name:27             flag=128             break29         else:flag=030     if flag:31         _list.remove(each)32         print('\t\t\tDone.')33     else:print("\t\t\t找不到")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中可以使用sqlite数据库来实现通讯录管理程序,并且可以为其添加一个界面。 首先,我们需要导入sqlite模块,并连接到数据库。可以使用connect方法来连接到数据库文件,如果不存在则会创建一个新的数据库文件。然后,使用cursor方法创建一个游标对象,可以通过游标对象来执行SQL语句。 接下来,我们可以创建一个表来存储通讯录的信息。可以使用execute方法执行CREATE TABLE语句来创建表。在表中,可以定义不同的列来存储不同的字段,比如姓名、电话号码等。 之后,在界面中,可以通过输入信息的方式向数据库添加新的联系人。可以使用INSERT语句将联系人的信息插入到表中。可以使用execute方法执行SQL语句,并使用commit方法提交更改。 同时,我们还可以提供修改和删除联系人的功能。使用UPDATE语句可以修改表中的数据,通过设置WHERE条件来定位需要修改的联系人。使用DELETE语句可以删除表中的数据,也可以通过设置WHERE条件来定位需要删除的联系人。 最后,还可以提供查询功能。可以使用SELECT语句来从表中检索出符合条件的联系人信息。可以使用execute方法执行SELECT语句,并使用fetchall方法获取查询结果。 通过以上的步骤,我们可以完成一个利用sqlite数据库的通讯录管理程序,并且为其添加一个界面,用户可以通过界面来进行添加、修改、删除和查询联系人的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值