首页 > 编程知识 正文

包含python实现通信录的词条

时间:2023-12-27 22:26:01 阅读:323402 作者:RZBH

本文目录一览:

python用单链表写一个通讯录,包括添加,删除(可恢复),查找等基本功能

///////////list3.c实现链表的插入删除查找

#include

#include

#include

typedef

struct

LNode

//////////定义数据结构体

{

int

num;

char

name[20];

struct

LNode*

next;

}*Link;

///////////定义一个指针类型

typedef

struct

{

Link

head,tail;

int

len;

}LinkList;

LinkList

*gList;

void

MenuInfo();

void

InputData(LinkList

*mList);

void

OutputData(LinkList

*mList);

void

InsertData(LinkList

*mList,int

n);

Link

SearchNode(LinkList

*mList,int

n);

void

DeleteData(LinkList

*mList,int

n);

void

main()

{

int

_choice;

int

_quit=0;

int

n=0;

gList=(LinkList

*)malloc(sizeof(LinkList));

gList-head=gList-tail=NULL;

do

{

MenuInfo();

scanf("%d",_choice);

switch(_choice)

python:编写一个通讯录管理程序,实现通讯录文件建立,读取,添加记录,查找记录的功能。

可以将数据存储在列表里

然后再将列表保存到文件里

通过对列表的操作动态更改存储在文件里的内容

如果有文件的话程序启动时从文件里加载数据保存到列表即可

如果代码不想自己写的话

我可以有偿代劳

用python实现简单通讯录 大学生水平即可 越简单越好 其中较复杂的地方注释一下 谢谢~

自己实现一个排序的dict,python文档上好像都有一个例子,

pcike模块保存到文件

python简单的好友通讯录管理程序怎么做

friend={ '小明':['001', '广州'],'小红':['002','深圳'],'小王':['003','北京']}

model=input("model:")

if model=='1':

print("好友添加:",end='')

new_friend=input("newfriend:name,number,address")

friend_n=list(new_friend.split(','))

friend[friend_n[0]] =friend_n[1:3] # 添加

# friend4=dict.fromkeys([friend_n[0]],friend_n[1:3])

print("friend: ", friend)

elif model=='2':

print("好友删除:",end='')

new_friend = input("name")

# del friend[ new_friend] # 删除键是'Name'的条目

try:

friend.pop(new_friend)

print("friend: ", friend)

except:

print("查无此人")

elif model=='3':

print("好友修改:", end='')

new_friend = input("name")

friend[new_friend]=list(input("number,address").split(','))

print("friend: ", friend)

else:

print("好友查询:", end='')

new_friend = input("name")

try:

print(new_friend,':', friend[new_friend])

except:

print("查无此人")

以上程序包含了整个流程,有删赠改查功能,还有利用异常处理的处理过程。

求python 通讯录原代码

我做的,文件信息保存在excel文件中,希望能帮助你,添加功能只需模仿就可以了

# -*- coding: cp936 -*-

import wx

import os

import copy

from mytools import Excell

wildcard = "note source (*.xsl)|*.xls|"

"All files (*.*)|*.*"

class TestFrame(wx.Frame):

def __init__(self):

wx.Frame.__init__(self,None,-1,"account input")

self.panel = wx.Panel(self)

self.topLbl = wx.StaticText(self.panel,-1,"帐户信息")

self.topLbl.SetFont(wx.Font(18,wx.SWISS,wx.NORMAL,wx.BOLD))

self.nameLbl = wx.StaticText(self.panel,-1,"姓名:")

self.name = wx.TextCtrl(self.panel,-1,"阮班勇")

self.addrLbl = wx.StaticText(self.panel,-1,"地址:")

self.addr = wx.TextCtrl(self.panel,-1,"")

self.addr2 = wx.TextCtrl(self.panel,-1,"")

self.cstLbl = wx.StaticText(self.panel,-1,"市,县,村:")

self.city = wx.TextCtrl(self.panel,-1,"")

self.state = wx.TextCtrl(self.panel,-1,"")

self.zip = wx.TextCtrl(self.panel,-1,"")

self.phoneLbl = wx.StaticText(self.panel,-1,"电话:")

self.phone = wx.TextCtrl(self.panel,-1,"")

self.qqLbl = wx.StaticText(self.panel,-1,"QQ:")

self.qq = wx.TextCtrl(self.panel,-1,"")

self.emailLbl = wx.StaticText(self.panel,-1,"Email:")

self.email = wx.TextCtrl(self.panel,-1,"")

self.saveBtn = wx.Button(self.panel,-1,"保存")

self.Bind(wx.EVT_BUTTON,self.OnSave,self.saveBtn)

self.Bind(wx.EVT_CLOSE,self.OnCloseWindow)

self.cancelBtn = wx.Button(self.panel,-1,"删除")

self.Bind(wx.EVT_BUTTON,self.OnCancel,self.cancelBtn)

self.saveAsBtn = wx.Button(self.panel,-1,"新建")

self.Bind(wx.EVT_BUTTON,self.OnSaveAs,self.saveAsBtn)

self.exitBtn = wx.Button(self.panel,-1,"退出")

self.Bind(wx.EVT_BUTTON,self.OnExit,self.exitBtn)

self.data = {"姓名":1,"地址":2,"市":3,"县":4,"村":5,

"电话":6,"QQ":8,"email":7}

self.dataStr="姓名 地址 市 县 村 电话 QQ email".split()

self.olddata={"1":1}

self.row = 2

mainSizer = wx.BoxSizer(wx.VERTICAL)

mainSizer.Add(self.topLbl,0,wx.ALL,5)

mainSizer.Add(wx.StaticLine(self.panel),0,wx.EXPAND|wx.TOP|wx.BOTTOM,5)

addrSizer = wx.FlexGridSizer(cols=2,hgap=5,vgap=5)

addrSizer.AddGrowableCol(1)

addrSizer.Add(self.nameLbl,0,wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)

addrSizer.Add(self.name,1,wx.EXPAND)

addrSizer.Add(self.addrLbl,1,wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)

addrSizer.Add(self.addr,1,wx.EXPAND)

addrSizer.Add((10,10))

addrSizer.Add(self.addr2,1,wx.EXPAND)

addrSizer.Add(self.cstLbl,1,wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)

cstSizer = wx.BoxSizer(wx.HORIZONTAL)

cstSizer.Add(self.city,1)

cstSizer.Add(self.state,0,wx.LEFT|wx.RIGHT,5)

cstSizer.Add(self.zip,)

addrSizer.Add(cstSizer,1,wx.EXPAND)

addrSizer.Add(self.phoneLbl,1,wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)

addrSizer.Add(self.phone,1,wx.EXPAND)

addrSizer.Add(self.qqLbl,1,wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)

addrSizer.Add(self.qq,1,wx.EXPAND)

addrSizer.Add(self.emailLbl,1,wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)

addrSizer.Add(self.email,1,wx.EXPAND)

mainSizer.Add(addrSizer,0,wx.EXPAND,10)

btnSizer = wx.BoxSizer(wx.HORIZONTAL)

btnSizer.Add((20,20),1)

btnSizer.Add(self.saveBtn)

btnSizer.Add((20,20),1)

btnSizer.Add(self.saveAsBtn)

btnSizer.Add((20,20),1)

mainSizer.Add(btnSizer,0,wx.EXPAND,15)

btnSizer2 = wx.BoxSizer(wx.HORIZONTAL)

btnSizer2.Add((20,20),1)

btnSizer2.Add(self.cancelBtn)

btnSizer2.Add((20,20),1)

btnSizer2.Add(self.exitBtn)

btnSizer2.Add((20,20),1)

mainSizer.Add(btnSizer2,1,wx.EXPAND|wx.BOTTOM,10)

self.panel.SetSizer(mainSizer)

mainSizer.Fit(self)

mainSizer.SetSizeHints(self)

self.bFirst = True

self.created = False

def OnSave(self,event):

if self.bFirst and not self.created:

dlg = wx.FileDialog(self, message="Save file as ...", defaultDir=r'D:My Documents',

defaultFile="", wildcard=wildcard, style=wx.OPEN)

if dlg.ShowModal() == wx.ID_OK:

path = dlg.GetPath()

self.myExcell = Excell.easyExcel(path)

else:

return

self.bFirst = False

row = self.myExcell.getEmptyRow("sheet1")

self.row = row

self.saveData()

def saveData(self):

self.data["姓名"] = self.name.GetValue()

self.data['地址'] = self.addr.GetValue()

self.data['市'] = self.city.GetValue()

self.data['县'] = self.state.GetValue()

self.data['地址'] += self.addr2.GetValue()

self.data['村'] = self.zip.GetValue()

self.data['电话'] = self.phone.GetValue()

self.data['email'] = self.email.GetValue()

self.data['QQ'] = self.qq.GetValue()

bsave = True

if self.olddata == self.data:

t = wx.MessageBox("与上次数据相同是否保存?",style=wx.OK|wx.CANCEL)

print t

if t == wx.CANCEL:

bsave = False

if bsave and self.data["姓名"] == u"阮班勇":

t = wx.MessageBox("你是DOC阮吗,真的要保存他吗?",style=wx.OK|wx.CANCEL)

print t

if t == wx.CANCEL:

bsave = False

if bsave :

self.olddata =copy.copy( self.data)

wx.MessageBox("保存成功!")

col = 1

for value in self.dataStr:

self.myExcell.setCell('sheet1',1,col,value)

self.myExcell.setCell('sheet1',self.row,col,self.data[value])

col +=1

self.myExcell.save()

self.row+=1

def OnCloseWindow(self,event):

if not self.bFirst:

self.myExcell.close()

print 'dedeted'

self.Destroy()

def OnCancel(self,event):

self.name.SetValue("")

self.addr.SetValue("")

self.addr2.SetValue("")

self.city.SetValue("")

self.state.SetValue("")

self.zip.SetValue("")

self.qq.SetValue("")

self.phone.SetValue("")

self.email.SetValue("")

def OnSaveAs(self,event):

dlg = wx.FileDialog(

self, message="Save file as ...", defaultDir=r'D:My Documents', wildcard=wildcard, style=wx.SAVE)

if dlg.ShowModal() == wx.ID_OK:

path = dlg.GetPath()

self.myExcell = Excell.easyExcel()

self.created = True

self.myExcell.save(path)

self.saveData()

def OnExit(self,event):

self.Close(True)

if __name__ == '__main__':

app = wx.PySimpleApp()

frame =TestFrame()

frame.Show()

app.MainLoop()

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。