1、c语言通讯录管理系统课程设计(此文档为word格式,下载后您可任意编辑修改!)计算机科学与技术学院课程设计成绩单C+:7274分 C:6871分 C-:6467分 D:6063分 F:next=p; rear=p; fclose(pRead); fclose(pWrite); Fflag=1; rear-next=NULL; return (Gfilename,r); if(NULL=gRead)exit(0); gWrite=fopen(group_bin.txt,wb); if(NULL = gWrite) fclose(gRead); exit(0); while(!feof(gRead
2、) p=(Group *)malloc(sizeof(Group); fscanf(gRead,%d %sn,&p-GInfo.Gnum,p-GInfo.Gname); fwrite(p,sizeof(struct Group),1,gWrite); rear-next=p; rear=p; fclose(gRead); fclose(gWrite); Gflag=1; rear-next=NULL; return n%20sn,通 讯 录); while(p!=NULL) p=p-next; 添加通讯录成员信息*添加模块insertF( ):向通讯录中添加某人通讯信息的子函数*链表结点的插入
3、,按编号次序有序插入使用两个指针变量p1和p2分别指向当前访问过的结点和下一结点。循环顺序查找插入结点的位置,其中p1指向待插入位置的前一个结点。void insertF(FInfoList Fhead,Friend *Fp) Friend *p1,*p2; p1=Fhead; p2=p1-next; while(p2!=NULL&strcmp(p2-FInfo.Fnum,Fp-FInfo.Fnum)next; p2指向下一个结点 p1-next=Fp; 插入p所指向的结点 Fp-next=p2; 查找通讯录成员信息*查找模块search( ):在通讯录中查找某人通讯信息的子函数*如果查找成功
4、,则输出查找到的通讯者信息,返回p。若查找失败,则输出查找失败,返回p。把汉字转化为拼音缩写的函数,如李勇-lybool In(wchar_t start, wchar_t end, wchar_t code) if (code = start & code = end) return true; return false;char convert(wchar_t n) if (In(0xB0A1,0xB0C4,n) return a; if (In(0XB0C5,0XB2C0,n) return b; if (In(0xB2C1,0xB4ED,n) return c; if (In(0xB4
5、EE,0xB6E9,n) return d; if (In(0xB6EA,0xB7A1,n) return e; if (In(0xB7A2,0xB8c0,n) return f; if (In(0xB8C1,0xB9FD,n) return g; if (In(0xB9FE,0xBBF6,n) return h; if (In(0xBBF7,0xBFA5,n) return j; if (In(0xBFA6,0xC0AB,n) return k; if (In(0xC0AC,0xC2E7,n) return l; if (In(0xC2E8,0xC4C2,n) return m; if (I
6、n(0xC4C3,0xC5B5,n) return n; if (In(0xC5B6,0xC5BD,n) return o; if (In(0xC5BE,0xC6D9,n) return p; if (In(0xC6DA,0xC8BA,n) return q; if (In(0xC8BB,0xC8F5,n) return r; if (In(0xC8F6,0xCBF0,n) return s; if (In(0xCBFA,0xCDD9,n) return t; if (In(0xCDDA,0xCEF3,n) return w; if (In(0xCEF4,0xD188,n) return x;
7、 if (In(0xD1B9,0xD4D0,n) return y; if (In(0xD4D1,0xD7F9,n) return z; return 0; char* TransformToSpell(char name) char chr3; wchar_t wchr = 0; char* Spell = new charstrlen(name)2; memset(Spell, 0x00, sizeof(char)*strlen(name)2+1); for (unsigned int i = 0, j = 0; i (strlen(name)2); +i) memset(chr, 0x0
8、0, sizeof(chr); chr0 = namej+; chr1 = namej+; chr2 = 0; wchr = 0; wchr = (chr0 & 0xff) next; scanf(%d,&m); if(m=1) scanf(%s,namekey); int flag=0; 判断是否找到 int i=0,count=0; char num205; while(p) if(strcmp(namekey,p-FInfo.Fname)=0) flag=1; strcpy(numi,p-FInfo.Fnum); i+; count+; p=p-next; if(flag=0) prin
9、tf(n对不起,通讯簿中没有此人的记录。n); if(flag=1) printf(n已查到%d条记录,分别为:nn,count); p=Fhead-next; i=0; while(p) if(strcmp(numi,p-FInfo.Fnum)=0) i+; p=p-next; else if(m=3) printf(n请输入要查找的电话号码:); if(p=NULL) printf(n对不起,通讯簿中没有此人的记录。n); if(p!=NULL) printf(n已查到,记录为:nn); else if(m=2) scanf(%s,namespell); int flag=0; 判断是否找
10、到 int i=0,count=0; char num205; while(p) if(strcmp(namespell,TransformToSpell(p-FInfo.Fname)=0) flag=1; strcpy(numi,p-FInfo.Fnum); i+; count+; p=p-next; if(flag=0) printf(n对不起,通讯簿中没有此人的记录。n); if(flag=1) printf(n已查到%d条记录,分别为:nn,count); p=Fhead-next; i=0; while(p) if(strcmp(numi,p-FInfo.Fnum)=0) i+; p
11、=p-next; 修改通讯录成员信息*修改模块modify( ):在通讯录中修改某人通讯信息的子函数*void modify(FInfoList Fhead) char ch; char kind10,NewInfo15; Friend *p; char namekey8; char namespell5; int m; p=Fhead-next; scanf(%d,&m); if(m=1) scanf(%s,namekey); int flag=0; 判断是否找到 int i=0,count=0; char num205; while(p) if(strcmp(namekey,p-FInfo
12、.Fname)=0) flag=1; strcpy(numi,p-FInfo.Fnum); i+; count+; p=p-next; if(flag=0) printf(n没有找到要修改的通讯者!n); if(flag=1) printf(n已查到%d条记录,分别为:nn,count); p=Fhead-next; i=0; while(p) if(strcmp(numi,p-FInfo.Fnum)=0) i+; p=p-next; char num25; p=Fhead-next; printf(n请输入所要修改的通讯者的编号:); scanf(%s,num2); while(p) if(
13、strcmp(num2,p-FInfo.Fnum)=0) printf(n真的要修改该结点吗?(是:y 否:n):); scanf(%s,&ch); while(ch=y) int i=0,n; int flag=0; printf(n请输入所需修改的信息类别:); scanf(%s,kind); if(strcmp(kind,编号)=0) printf(n请输入所需修改的通讯信息:); 杨颖 性别 男 scanf(%s,NewInfo); while(flag=0) n=strlen(NewInfo); while(NewInfoi!=0) if(NewInfoi=0&NewInfoiFIn
14、fo.Fnum,NewInfo); printf(修改成功!n); return; printf(n请输入所需修改的通讯信息:); scanf(%s,NewInfo); while(flag=0) n=strlen(NewInfo); if(n8) printf(请重新输入:); scanf(%s,NewInfo); else flag=1; strcpy(p-FInfo.Fname,NewInfo); printf(修改成功!n); return; else if(strcmp(kind,性别)=0) printf(n请输入所需修改的通讯信息:); scanf(%s,NewInfo); wh
15、ile(flag=0) n=strlen(NewInfo); if(n2) printf(输入的性别格式错误!n); printf(请重新输入:); scanf(%s,NewInfo); else flag=1; strcpy(p-FInfo.sex,NewInfo); printf(修改成功!n); return; else if(strcmp(kind,生日)=0) printf(n请输入所需修改的通讯信息:); scanf(%s,NewInfo); while(flag=0) n=strlen(NewInfo); while(NewInfoi!=0) if(NewInfoi=0&NewI
16、nfoiFInfo.birthday,NewInfo); printf(修改成功!n); return; else if(strcmp(kind,电话号码1)=0) printf(n请输入所需修改的通讯信息:); scanf(%s,NewInfo); while(flag=0) n=strlen(NewInfo); if(n1) printf(n输入的电话号码尾数不足或者格式错误!n); printf(请重新输入:); scanf(%s,NewInfo); else flag=1; printf(修改成功!n); return; else if(strcmp(kind,电话号码2)=0) pr
17、intf(n请输入所需修改的通讯信息:); scanf(%s,NewInfo); while(flag=0) n=strlen(NewInfo); if(n1) printf(输入的电话号码尾数不足或者格式错误!n); printf(请重新输入:); scanf(%s,NewInfo); else flag=1; printf(修改成功!n); return; else if(strcmp(kind,电话号码3)=0) printf(n请输入所需修改的通讯信息:); scanf(%s,NewInfo); while(flag=0) n=strlen(NewInfo); if(n1) printf(输入的电话号码尾数不足或者格式错误!n);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1