用C语言编写一个手机电话本程序

如题所述

#include <stdio.h> #include <stdlib.h> #include <string.h> #define szSTR 64 #define fileDB "c:\\contact.txt" struct CONTACT { char name[szSTR];/*姓名*/ char unit[szSTR];/*工作单位*/ char tele[szSTR];/*电话*/ char mail[szSTR];/*mail*/ }; typedef struct CONTACT CON; #define BNAME 1 #define BUNIT 2 #define BTELE 4 #define BMAIL 8 #define BFULL 0xFF int OPER[5] = ; void input(CON * s, int mask) { if(mask & BNAME) if(mask & BUNIT) if(mask & BTELE) if(mask & BMAIL) }/*end input*/ void show (int id, CON * s) { if(!s) return ; if(id) printf("%d\t%s\t%s\t%s\t%s\n", id, s->name , s->unit , s->tele , s->mail ); else printf("%s%s%s%s\n", s->name , s->unit , s->tele , s->mail ); /*end if*/ }/*end show*/ void regist(void) { CON s; FILE * f = 0; input(&s, BFULL); f = fopen(fileDB, "ab"); fwrite(&s,sizeof(s),1,f); fclose(f); printf("资料已保存!\n"); }/*end regist*/ int browse(char * key, fpos_t * p, CON * s) { FILE * f =0; int i = 0, r = 0; CON t; char * a = 0, * b = 0; fpos_t q; if(!s) return 0; f = fopen(fileDB, "rb"); if(!f) { printf("数据库暂无记录\n"); return 0; }/*end if*/ printf("编号\t姓名\t单位\t电话\t电邮\n"); printf("------------------------------------------------\n"); while(!feof(f)) { fgetpos(f, &q); r = fread(&t, sizeof(t), 1, f); if(r<1)break; if(t.name[0]==0) continue; if(key) { a = strstr(t.name , key); b = strstr(t.tele , key); if(a == 0 && b == 0) continue; }/*end if*/ if(p) *p = q; if(s) memcpy(s, &t, sizeof(t)); i++; show(i, &t); }/*end while*/ fclose(f); printf("------------------------------------------------\n"); return i; }/*end browse*/ fpos_t query(CON * s) { char key[szSTR]=""; fpos_t p = 0; int r = 0; printf("请输入姓名或者电话号码:"); scanf("%s", key); r = browse(key, &p, s); return r?p:-1; }/*end query*/ void clear(void) { FILE * f = 0; CON s; fpos_t p = query(&s); if(p<0) return; f = fopen(fileDB, "rb+"); fsetpos(f, &p); memset(&s, 0, sizeof(s)); fwrite(&s, sizeof(s),1, f); fclose(f); printf("记录已删除!\n"); }/*end clear*/ void modify(void) { FILE * f = 0; CON s; int cmd = 0; fpos_t p = query(&s); if(p<0) return; f = fopen(fileDB, "rb+"); fsetpos(f, &p); for(;;) { show(0, &s); printf("请选择:1-姓名;2-工作单位;3-电话;4-电邮;5-保存并退出;6-放弃修改并退出\n"); scanf("%d", &cmd); switch(cmd) { case 1: case 2: case 3: case 4: input(&s, OPER[cmd]); break; case 5: fsetpos(f, &p); fwrite(&s, sizeof(s), 1, f); case 6: fclose(f); return; default: printf("错误的操作,请重新输入。\n"); }/*end case*/ }/*mext*/ }/*end clear*/ int main(void) { int cmd = 0; CON s; for(;;) { printf("欢迎使用通信簿!请选择:1-添加;2-查询;3-删除;4-修改;5-全部输出;0-退出\n"); scanf("%d", &cmd); switch(cmd) { case 0: return 0; case 1: regist(); break; case 2: query(&s); break; case 3: clear(); break; case 4: modify(); break; case 5: browse(0, 0, &s); break; }//end case } return 0; }

记得采纳啊
温馨提示:内容为网友见解,仅供参考
无其他回答

用C语言编写一个手机电话本程序
include <stdio.h> #include <stdlib.h> #include <string.h> #define szSTR 64 #define fileDB "c:\\\\contact.txt" struct CONTACT { char name[szSTR];\/*姓名*\/ char unit[szSTR];\/*工作单位*\/ char tele[szSTR];\/*电话*\/ char mail[szSTR];\/*mail*\/ }; typedef struct CONTACT ...

求用C语言编写手机通讯录系统的程序
void Delete()void Input() \/*向.通讯录中输入一个人的信息*\/ { s=(linklist)malloc(sizeof(listnode));printf("\\n\\n\\t请输入该用户的信息:");printf("姓名:");scanf("%s",&s->name);printf("电话号码:");scanf("%s",&s->tel_no);printf("单键拨号:");scanf("%s",&s->sim...

用c语言编写简单的手机通讯录
cout<<setw(6)<<"年龄"<<setw(10)<<"姓名"<<setw(6)<<"电话"<<endl;for(int i=0;i<n;i++){ file.read((char *)&one,sizeof(MyFriend));if(comp(one.getname(),sname)==1)one.disp();} file.close();} int comp(char s1[],char s2[]){ int i=0;while(s1[i]!='...

c语言手机通讯录程序啊~小弟初来,分数不高,望各位高手给指点指点吧...
fscanf(fp,"%15s%20s%15s%30s%10s%10s",p->data.telenub, p->data.name ,p->data.city ,p->data.email,p->data.qq,p->data.youbian); printf("%15s,%20s,%15s,%30s,%10s,%10s",p->data.telenub, p->data.name ,p->data.city ,p->data.email,p->data.qq,p->data.youbian); }...

c语言编写一个通讯录系统 用简单一点的c
手机答题 我的 c语言编写一个通讯录系统 用简单一点的c c语言编写一个通讯录系统用简单一点的c(1)查看功能:①当输入某类时,显示出此类所有数据中的姓名和电话号码;②当输入某人姓名时,显示出此人的姓名、电话号码所在类;③... c语言编写一个通讯录系统用简单一点的c(1)查看功能:① 当输入某类...

用C语言. 编写一个“通讯录管理系统”程序
手机答题 我的 用C语言. 编写一个“通讯录管理系统”程序 用C语言.编写一个“通讯录管理系统”程序,通讯录信息包括姓名、工作单位、电话号码、QQ号码、等信息。通讯录信息用磁盘文件保存,要求程序包括如下功能。1.可以输入追加联系人记录。... 用C语言.编写一个“通讯录管理系统”程序,通讯录信息包括姓名、工作...

用c语言编写通讯录管理程序
100% (1) 不好0% (0) 相关内容• 救命啊! 哪位高手能帮我用C语言编写一个通讯录管理的... • 3110c 通讯录的问题 • 索爱510c的电话本备份? • 6120C的电话本能不能通过什么方式转到6500C来 • 关于诺基亚7310c通讯录显示姓名的问题~~~ 更多关于c语言编写通讯录管理程序的问题>> 查看同主题...

怎么用c语言编写一个小程序?
1、首先打开DEV C++软件,点击“新建源代码”,在编辑页面输入以下代码。2、因为题目要求我们先输入一个整数,所以在定义变量时,就应该将其定义为整数型,注意,在输入,输出函数中,整数型对应的是“%d”。3、接下来就要对输入的整数进行判断,在C语言中,if是判断语句,所以用它来对整数进行判断。if...

如何用C语言来编写一个简单的手机通讯录?
这些功能要实现得上百条,0分也太那啥了,不如你在百度搜下,可能有现成的

用C语言编写一个程序,在线等
include <stdio.h>void main(){ int x,y,z; printf("请输入三个数字"); scanf("%d%d%d",&x,&y,&z); if(x+y==z) { printf("%d+%d=%d",x,y,z); } else { printf("%d+%d!=%d",x,y,z); }}

相似回答