python通讯录管理程序(帮忙设计一个手机通讯录管理系统程序)
本文目录
- 帮忙设计一个手机通讯录管理系统程序
- 求python 通讯录原代码
- python简单的好友通讯录管理程序怎么做
- python用单链表写一个通讯录,包括添加,删除(可恢复),查找等基本功能
- python:编写一个通讯录管理程序,实现通讯录文件建立,读取,添加记录,查找记录的功能
帮忙设计一个手机通讯录管理系统程序
以下是我做程序设计时写的,有些小地方可能需要改动,具体调试下就可以了,不过大体上就卖肢是这样了 #include 《stdio.h》 #include 《stdlib.h》 /*与malloc.h差不多*/ #include 《string.h》 #include 《iostream.h》 #define maxlen 15 struct persons {int num; /*定义结构体数组用于缓存数据*/ char name; char e_addr; char tel_no; char sim_no; char arch; }persons; typedef struct lnode{ /*通讯录结构中结点的中或世定义*/ int num; char name; char e_addr; char tel_no; char sim_no; char arch; struct lnode *next; }listnode,*linklist; linklist head=NULL,r=NULL; /*定义头指针和尾指针*/ listnode *s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9; int i; char name1; char s1; FILE *fp; /*定义文件指针*/ void creat() /*将文件的信息读入结构体数组在团段转存入链表中*/ { int j; long k; fp=fopen("数据文件.txt","r t"); /*打开文件*/ if(fp!=NULL) {for(i=0;i《=maxlen;i++ ) { j=fgetc(fp); if(j==EOF) return; k=i; fseek(fp,k*sizeof(struct persons),0); /*读取一个人的信息*/ fread(&persons,sizeof(struct persons),1,fp); s=(linklist)malloc(sizeof(listnode)); /*装存入链表中*/ s-》num=persons.num; strcpy(s-》name,persons.name); strcpy(s-》e_addr,persons.e_addr); strcpy(s-》tel_no,persons.tel_no); s-》sim_no=persons.sim_no; s-》arch=persons.arch; if(head==NULL) /*用尾插法将其插入链表中*/ {head=s;r=head;head-》next=NULL;} else {r-》next=s; r=s;r-》next=NULL; }}fclose(fp);} else { fp=fopen("数据文件.txt","w"); /*不能打开另开辟一个文件*/ i=1; } } void ShowA() {p1=head; while(p1!=NULL) {if(p1-》arch==’A’) { cout《《endl; cout《《p1-》name《《endl; cout《《p1-》tel_no《《endl; cout《《p1-》sim_no《《endl;} p1=p1-》next;continue;} } void ShowB() {p1=head; while(p1!=NULL) {if(p1-》arch==’B’) { cout《《endl; cout《《p1-》name《《endl; cout《《p1-》tel_no《《endl; cout《《p1-》sim_no《《endl;} p1=p1-》next;continue;} } void ShowC() {p1=head; while(p1!=NULL) {if(p1-》arch==’C’) { cout《《endl; cout《《p1-》name《《endl; cout《《p1-》tel_no《《endl; cout《《p1-》sim_no《《endl;} p1=p1-》next;continue;} } void Show() /*显示所有的信息*/ {char ch1; printf("Which arch do you want to show?\n"); cout《《"A:办公类"《《"B:个人类"《《"C:商务类"《《endl; cout《《"请选择:"《《endl; cin》》ch1; switch(ch1) {case’A’:ShowA();break; case’B’:ShowB();break; case’C’:ShowC();break; default:cout《《"error"《《endl; } } void Delete() /*定义一个删除的函数*/ { printf("\n\n\t请输入要删除用户的姓名:"); cin》》name1; p4=head; if(strcmp(p4-》name,name1)==0) { p4=p4-》next; /*根据各种情况判断可能性*/ head=p4; } else { while(strcmp(p4-》next-》name,name1)!=0) p4=p4-》next; p5=p4-》next; p4-》next=p5-》next; free(p5); } } void Input() /*向.通讯录中输入一个人的信息*/ { s=(linklist)malloc(sizeof(listnode)); printf("\n\n\t请输入该用户的信息:"); cout《《"name:"; cin》》s-》name; cout《《"tel_no:"; cin》》s-》tel_no; cout《《"sim_no:"; cin》》s-》sim_no; cout《《"e_addr:"; cin》》s-》e_addr; cout《《"arch:"; cin》》s-》arch; if(head==NULL)printf("\n\n"); else {p8=head; while(p8!=NULL&&strcmp(s-》name,p8-》name)!=0&&strcmp(s-》tel_no,p8-》tel_no)!=0) p8=p8-》next; if(p8!=NULL) {printf("您添加的用户已存在!"); free(s);}} if(head==NULL) {head=s;head-》next=NULL;} else {r-》next=s; r=s;r-》next=NULL;} } void Alter() /*改变一个人的信息*/ { printf("\n\n\t请输入姓名:"); cin》》name1; p3=head; while(p3!=NULL&&strcmp(name1,p3-》name)!=0) p3=p3-》next; if(p3==NULL) printf("\n\n\t您选择的用户不存在!"); else { printf("\n\n\t请输入该用户的新信息!"); /*输入要改人的新信息*/ cout《《"name:"; cin》》name1; cout《《"tel_no:"; cin》》tel_no1; cout《《"e_addr:"; cin》》e_addr1; cout《《"sim_no:"; cin》》sim_no1; cout《《"arch:"; cin》》arch1; while(p9!=NULL&&strcmp(name1,p9-》name)!=0&&strcmp(tel_no1,p9-》tel_no)!=0) p9=p9-》next; if(p9==NULL) {strcpy(p3-》name,name1); strcpy(p3-》tel_no,tel_no1); strcpy(p3-》e_addr,e_addr1); p3-》sim_no=sim_no1; p3-》arch=arch1; } else printf("您添加的用户已存在!"); } } void Dial() {int a;char b; cout《《"1.拨叫用户:"《《endl; cout《《"2.使用单键拨号:"《《endl; cin》》a; p0=head; if(a==1) {cout《《"请输入拨叫用户的姓名:"; cin》》name1; while(strcmp(name1,p0-》name)!=0&&p0!=NULL) p0=p0-》next; if(p0==NULL) cout《《"您选择的用户不存在!"; else /*for(c=0;c《15;c++) {cout《《endl; cout《《(*p0).tel_no;}*/ {cout《《endl; cout《《p0-》tel_no; cout《《endl;} } else {cout《《"请输入单键号码:"; cin》》b; while(p0!=NULL&&b!=p0-》sim_no) p0=p0-》next; if(p0==NULL) cout《《"您输入的单键号码不存在!"; else {cout《《endl; cout《《p0-》name《《endl; cout《《p0-》tel_no; cout《《endl;} } } void Save() /*保存信息*/ { int j; fp=fopen("数据文件.txt","w"); for(p2=head,j=0;p2!=NULL;j++ ,p2=p2-》next)/*将信息装出入结构体数组在出入链表中*/ { /*避免地址的出入,造成乱码文件*/ strcpy(persons.name,p2-》name); strcpy(persons.tel_no,p2-》tel_no); persons.sim_no=p2-》sim_no; strcpy(persons.e_addr,p2-》e_addr); persons.arch=p2-》arch; fwrite(&persons,sizeof(struct persons),1,fp); } } void main() { creat(); do { printf("\n\n\n\n\t欢迎使用您的通讯录!");/*显示提示的信息*/ printf("\n\n\t\t请选择操作:"); printf("\n\t\t1.显示通讯录"); printf("\n\t\t2.删除通讯录"); printf("\n\t\t3.添加通讯录"); printf("\n\t\t4.通讯录"); printf("\n\t\t5.拨号功能"); printf("\n\t\t6.保存刚才的操作并退出"); printf("\n\n\n"); printf("\t请选择:"); cin》》ch; switch(ch) { case ’1’: Show(); /*用单条件多选择语句实现调用与循环*/ break; case ’2’: Delete(); break; case ’3’: Input(); break; case ’4’: Alter(); break; case ’5’: Dial(); break; case ’6’: Save(); fclose(fp); exit(0); break; default: printf("\ n\t*********************************\n"); printf("\n\t The num should 1-6!!! \n"); printf("\n\t**********************************"); break; } }while(1); }这是C++的程序 你可以转换成JAVA语句
求python 通讯录原代码
我做的,文件信息保存在excel文件中,希望能帮助你,添加功能只需模仿就可以了# -*- coding: cp936 -*-import wximport osimport copyfrom mytools import Excellwildcard = "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 = Falsedef 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 = self.email.GetValue() self.data = 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 = Falseif 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) 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()
python简单的好友通讯录管理程序怎么做
friend={ ’小明’:}model=input("model:")if model==’1’:print("好友添加:",end=’’)new_friend=input("newfriend:name,number,address")friend_n=list(new_friend.split(’,’))friend # 添加# friend4=dict.fromkeys()print("friend: ", friend)elif model==’2’:print("好友删除:",end=’’)new_friend = input("name")# del friend # 删除键是’Name’的条目try:friend.pop(new_friend)print("friend: ", friend)except:print("查无此人")elif model==’3’:print("好友修改:", end=’’)new_friend = input("name")friend=list(input("number,address").split(’,’))print("friend: ", friend)else:print("好友查询数历:", end=’’)new_friend = input("name")try:print(new_friend,’:’, friend)except:print("查无此人")以上慧亮程序包含了整个流程,有删赠改查功能,还有利用异常处理的薯碧搜处理过程。
python用单链表写一个通讯录,包括添加,删除(可恢复),查找等基本功能
/////////戚唯//list3.c实现链表的插入删除查找#include#include#includetypedefstructLNode//////////则码定义数据结构体{intnum;charname;structLNode*next;}*Link;///////////定义一个指针类型typedefstruct{Linkhead,tail;intlen;}LinkList;LinkList*gList;voidMenuInfo();voidInputData(LinkList*mList);voidOutputData(LinkList*mList);voidInsertData(LinkList*mList,intn);LinkSearchNode(LinkList*mList,intn);voidDeleteData(LinkList*mList,intn);voidmain(){int_choice;int_quit=0;intn=0;gList=(LinkList*)malloc(sizeof(LinkList));gList-》head=gList-》孙仔哪tail=NULL;do{MenuInfo();scanf("%d",&_choice);switch(_choice)
python:编写一个通讯录管理程序,实现通讯录文件建立,读取,添加记录,查找记录的功能
可以将数据存储在列表里然后再将列表保存到文件里通过对列表的操作动态更改配空存储在文件里的内容如果有文件的话程序启动时从文件里加载档野数据保存到列表即可如果代码不想自己写的话我可以有偿培蠢瞎代劳
更多文章:
angular 翻译(angular velocity是什么意思)
2024年7月20日 00:48
数控编程工资一般多少(自己编程一人做三台数控工资多少钱一天)
2024年7月19日 00:16
dreamweaver cs6(dreamweaver8.0 和dreamweaver cs6有什么区别啊)
2024年5月9日 14:00
英文名leon.z.gent什么意思?什么是Divergent_Thinking
2023年11月3日 18:40
excel判断大小公式(excel中如何对一组数(3个数字)进行大中小判断)
2024年7月24日 08:28
伊斯坦布尔有什么好玩的地方?伊斯坦布尔是什么国家伊斯坦布尔好玩吗
2024年7月23日 01:47
netstat查看连接数(如何查看自己的TCPIP连接数是多少)
2024年10月20日 05:15
getelementbyname用法(怎么通过getElementsByName( ))
2024年7月27日 08:55
matlab数组定义(matlab 长度为n的空数组怎么定义)
2024年8月24日 22:00