char name[10]; char tel[15]; char addr[50]; };
void creat() {
struct person people;
printf(\"\\n请输入电话簿名:\"); scanf(\"%s\
if((fp=fopen(filename,\"w\"))==NULL) {
printf(\"\\n不能建立电话簿!\"); exit(1); }
printf(\"\\n请输入姓名、电话号码及住址(以0结束)\\n\"); scanf(\"%s\
while(strcmp(people.name,\"0\")) {
scanf(\"%s%s\
fprintf(fp,\"%-10s%-20s%-50s\\n\ scanf(\"%s\ }
fclose(fp);
printf(\"按任意键继续!\"); getchar(); }
void output() {
struct person people;
if((fp=fopen(filename,\"r\"))==NULL) {
printf(\"\\n不能建立电话簿!\"); exit(1); }
printf(\"\\n\\n%5s\\n\电话簿:\"); while(!feof(fp)) {
fscanf(fp,\"%s%s%s\\n\ printf(\" 姓名:%-10s电话号码:%-15s地址:%-15s\\n\ }
fclose(fp);
printf(\"按任意键继续......\"); getchar(); }
void append() {
struct person people;
if((fp=fopen(filename,\"a\"))==NULL) {
printf(\"\\n不能建立电话簿!\"); exit(1); }
printf(\"\\n请输入添加的姓名、电话号码及住址\\n\"); scanf(\"%s%s%s\
fprintf(fp,\"%-10s%-20s%-50s\\n\ fclose(fp);
printf(\"按任意键继续......\"); getchar(); }
void search() {
int k=0;
char namekey[10]; struct person people;
printf(\"\\n请输入要查找的姓名:\"); scanf(\"%s\
if((fp=fopen(filename,\"rb\"))==NULL) {
printf(\"\\n不能打开电话簿!\"); exit(1); }
while(!feof(fp)) {
fscanf(fp,\"%s%s%s\\n\ if(!strcmp(namekey,people.name)) {
printf(\"\\n\\n已查到,记录为:\");
printf(\"姓名:%-10s电话号码:%-15s地址:%-15s\\n\ k=1; } }
if(!k)
printf(\"\\n\\n对不起,电话簿还没有你要查找的人!\"); fclose(fp);
printf(\"按任意键继续......\"); getchar(); }
void modify() {
int m=0,k=0; long offset;
char namekey[10]; struct person people;
printf(\"\\n请输入要修改的姓名:\"); scanf(\"%s\
if((fp=fopen(filename,\"r+\"))==NULL) {
printf(\"\\n不能打开通讯录!\"); exit(1); }
while(!feof(fp)) {
offset=ftell(fp);
fscanf(fp,\"%s%s%s\\n\ if(!strcmp(namekey,people.name)) { k=1; break; } } if(k) {
printf(\"\\n已查到,记录为:\");
printf(\"姓名:%-10s电话号码:%-25s地址:%-15s\\n\ printf(\"\\n请输入新姓名、电话号码及住址:\");
scanf(\"%s%s%s\ fseek(fp,offset,SEEK_SET); printf(\"%ld\
fprintf(fp,\"%-10s%-20s%-50s\\n\ } else
printf(\"\\n对不起,电话簿中没有此人的记录.\"); fclose(fp);
printf(\"按任意键继续......\"); getchar();
}
void del() {
int m,k=0,flag;
long offset1,offset2;
char namekey[10],valid[4]; struct person people;
printf(\"\\n请输入要删除的姓名:\"); scanf(\"%s\
if((fp=fopen(filename,\"r+\"))==NULL) {
printf(\"\\n不能打开电话簿!\"); exit(1); }
while(!feof(fp)) {
offset1=ftell(fp);
fscanf(fp,\"%s%s%s\\n\ if(!strcmp(namekey,people.name)) { k=1; break; } } if(k) {
printf(\"\\n已查到要删除的人的信息,记录为:\");
printf(\"姓名:%-10s电话号码:%-20s地址:%-20s\\n\ printf(\"\\n确实要删除,按1; 不删除,按0:\"); scanf(\"%d\ if(m) {
fseek(fp,offset1,SEEK_SET);
fprintf(fp,\"%-10s%-20s%-50s\\n\ } } else
printf(\"\\n对不起,电话簿中没有此人的记录.\"); fclose(fp);
printf(\"按任意键继续......\"); getchar(); }
void creat(); void output();
void search(); void append(); void modify(); void del(); void menu() {
printf(\"\\n 通 讯 录: \"); printf(\"\\n \"); printf(\"\\n 添加,请按1\"); printf(\"\\n 查找,请按2\"); printf(\"\\n 修改,请按3\"); printf(\"\\n 删除,请按4\"); printf(\"\\n 输出,请按5\"); printf(\"\\n 退出,请按0\"); }
void main() {
int m; creat(); while(1) {
menu();
printf(\"\\n请选择:\"); scanf(\"%d\ if(m>=0&&m<=5) {
switch(m) {
case 1: append(); break;
case 2: search(); break;
case 3: modify(); break;
case 4: del(); break;
case 5: output(); break;
case 0: exit(1); }
printf(\"\\n\\n操作完毕,请再次选择!\"); } else
printf(\"\\n\\n选择错误,请再次选择!\"); }
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo3.cn 版权所有 湘ICP备2023017654号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务